Power BI(Power Query(M言語))でExcelの日付データのタイムゾーンを変更する
概要
Power Appsでアプリを作ってデータをExcelに出力する際に、日付は標準時間(UTC)で出力されるため、Power BIでそのまま読むと日本時間にならないので変換する必要がありました。
ちなみに、Power Appsは自動的に日本時間に変換します。
おまけに、Power Automateは日付のシリアル値を取るというちぐはぐな仕様になっています。
やりたい事
単純に日本時間にずらすだけなら、時間に9を加算すれば良いのですが、日付が変わらないのでタイムゾーンを変更する方法をとることにしました。
目指す結果
Excelデータを読み込んで、Power BI側で日本時間に変換する。
Excelデータ(標準時間) | Power BIデータ(日本時間) |
---|---|
2020/8/7 15:46 | 2020/8/8 00:46 |
2020/8/6 23:58 | 2020/8/7 08:58 |
Excelデータ
変換までの手順
ここからStep By Stepで変換までの手順を紹介します。
Power BIで読み込み
対象のExcelファイルを選択します。
let
ソース = Excel.Workbook(File.Contents("C:\タイムゾーン変換.xlsx"), null, true),
テーブル1_Table = ソース{[Item="テーブル1",Kind="Table"]}[Data],
変更された型 = Table.TransformColumnTypes(テーブル1_Table,{{"timeRec", type datetime}})
in
変更された型
let
ソース = Excel.Workbook(File.Contents("C:\タイムゾーン変換.xlsx"), null, true),
テーブル1_Table = ソース{[Item="テーブル1",Kind="Table"]}[Data],
変更された型 = Table.TransformColumnTypes(テーブル1_Table,{{"timeRec", type datetime}}),
変更された型2 = Table.TransformColumns(変更された型, {{"timeRec", each DateTime.AddZone(_, 0, 0)}}),
変更された型3 = Table.TransformColumns(変更された型2, {{"timeRec", each DateTimeZone.SwitchZone(_, 9), type datetimezone}}),
変更された型4 = Table.TransformColumns(変更された型3, {{"timeRec", each DateTimeZone.RemoveZone(_), type datetime}})
in
変更された型4
- コード説明
- 変更された型2
- Excelから読み取った日付にはタイムゾーンが付いていないので、DateTime.AddZone(_,0,0)で標準時間のタイムゾーンを付加する。
- 変更された型3
- タイムゾーンを標準時間からDateTimeZone.SwitchZone(_,9)で日本時間に変換する。
- 変更された型4
- タイムゾーンはPower BIでは必要ないのでDateTimeZone.RemoveZone(_)でタイムゾーンを削除する。
- 変更された型2
結果確認
Author And Source
この問題について(Power BI(Power Query(M言語))でExcelの日付データのタイムゾーンを変更する), 我々は、より多くの情報をここで見つけました https://qiita.com/echolimitless/items/d4e9702f9c8865dbc191著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .