4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Power BI で "YYYYMMDDHHMMSS"型の日付文字列をdatetimeに変換する

Posted at

データを入手したときに、型変換で一番最初にやらないといけないのが、日付データです。
この形式が直接変換できる環境も多いですが、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

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?