見出し画像

Power Queryにおける25時とかの時刻の取り扱いのメモ

Excelに入力されている時刻。
見た目は同じに見えても、Power Queryエディタに取り込んでみると結構違ったりする。

普通に0:00~23:59の時刻を取り扱うのなら、時刻型にしちゃえばいいので別段気にする必要はないのだと思う。

私が今 困っているのは、深夜時間も24時間表記をしなければいけないこと。
深夜1時を25時とかする アレですよ、アレ🙃 33時とか、もうそれ何時やねん的なやつ。

Power Queryさんは、25:00などという表記は時刻として認めてくれないので、時刻型にするとErrorと返されます🥺
なのでテキスト型にしないといけません。
(ちなみに私は時刻計算がしたい訳ではなく、システムにインポートするデータ作成のため、ただ単にそういう表記にしたいだけです🙏)

Excelにどう入っていると、Power Queryでどう変換されるんだ?というのが気になったので、検証のメモ。

まず普通の時間 5:10。セルの書式設定は標準のままで。
でも文字を入力して確定すると、自動でユーザー定義 h:mm になります。

これをPower Queryで読み込むと、

10進数になりました。時刻型に変換可能。

続いて、29:10。こちらも標準で入力しましたが、確定すると自動でユーザー定義 [h]:mm:ss になった上に、自動で日付が付与されました。

Power Queryで読み込むと、

同じく10進数になりました。先に書いた通り、時刻型には変換できません。

セルの書式設定を、時刻にしてみます。

標準から自動でユーザー定義に変わったときは h:mmだったけど、時刻の初期値は h:mm:ss なので秒数まで入っています。

Power Queryで読み込むと、

10進法になります。当然 時刻に変換可能。

時刻にした 29:10。こちらも秒数が表示されて、自動で日付が付与されます。

結果が同じなので、はしょり気味に。

次。文字列にしてみます。

5:10 は、時刻には変換できたけど 10進法には変換できず。

29:10 は、時刻は当然のことながら、10進法にも変換できず。

TEXT関数で変換。

セルの書式設定で文字列にしたときと、結果は同じ。

いっちばん嫌いな、10進法で表記されていたとき。

計算をするため、10進数に変換。

変換タブの標準→除算→24

10進法で表記されたこれを

時刻型に。

一応 こっちもやってみる。

うん、除算まではね…

そうだね、わかってたよ。。。

始めから文字列になっていれば、24時以降の24時間表記もそのまま使える。
セルの書式設定で見た目だけ24時間表記になっている場合は、TEXT関数で変換するのが一番楽と感じました!

一度テーブルで吐き出してTEXT関数で変換した後のテーブルを、またPower Queryで読み込むみたいな二段階を踏む。

もしかしたらM言語で解決できるのかもしれないけど…
ちゃんとあってるよね~って確認もできるし、まぁ一度組めば次は更新でいいので、ヘタにステップごちゃごちゃさせちゃうよりはいいかなぁ🤔

開始時間と比較して1時を25時とかに変換するのは、別でnote書いていますのでよかったらどうぞ🥰

事務員が少しの背伸びでできる効率化を目指す🌈✨ 自分の好きなものを、楽しく発信していきたいです! いただいたサポートは学習費にあてさせていただきます🥰