データを入手したときに、型変換で一番最初にやらないといけないのが、日付データです。
この形式が直接変換できる環境も多いですが、PowerBIではデフォルトでは対応していません。
いちいちMスクリプトを書くのは若干面倒ですが、以下のスニペットを使って、さっくり終わらせましょう。
変換方法
TextDateTimeという"YYYYMMDDHHMMSS"形式の文字列フィールドがあった場合に以下のようにします。
- 日付へ変換
カスタム列にする場合
Text.Combine({Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 0, 4) ,"/" , Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 4, 2),"/", Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 6, 2) })
詳細エディタで直接書く場合
Table.AddColumn(Previous, "date", each Text.Combine({Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 0, 4) ,"/" , Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 4, 2),"/", Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 6, 2) }) , type date)
- 時刻へ変換
カスタム列にする場合
Text.Combine({Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 8, 2) ,":" , Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 10, 2),":", Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 12, 2)})
詳細エディタで直接書く場合
Table.AddColumn(Previous, "date", each Text.Combine({Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 8, 2) ,":" , Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 10, 2),":", Text.Middle(Text.From([TextDateTime Datetime], "ja-JP"), 12, 2)}) , type date)
カスタム列の場合は次のステップで型変換を行います。詳細エディタで直接M functionを書く場合は型変換まで行われます。
参考
Text.Combine 文字列結合M Function
Text.Middle 文字列抽出M Function