![見出し画像](https://assets.st-note.com/production/uploads/images/109087483/rectangle_large_type_2_6db6777328ab2e9e233e5847076e4040.png?width=1200)
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 になります。
![](https://assets.st-note.com/img/1687601907195-wYLObmpHVm.png?width=1200)
これをPower Queryで読み込むと、
![](https://assets.st-note.com/img/1687601970473-7rdWMqNybU.png)
10進数になりました。時刻型に変換可能。
![](https://assets.st-note.com/img/1687602025505-OoCZkXxYew.png)
続いて、29:10。こちらも標準で入力しましたが、確定すると自動でユーザー定義 [h]:mm:ss になった上に、自動で日付が付与されました。
![](https://assets.st-note.com/img/1687602180147-t04DFkrimx.png?width=1200)
Power Queryで読み込むと、
![](https://assets.st-note.com/img/1687602274156-ARm4HrWgjI.png)
同じく10進数になりました。先に書いた通り、時刻型には変換できません。
![](https://assets.st-note.com/img/1687602318442-Q9Sn70LjjF.png)
セルの書式設定を、時刻にしてみます。
![](https://assets.st-note.com/img/1687602595129-BehKIX000Z.png?width=1200)
標準から自動でユーザー定義に変わったときは h:mmだったけど、時刻の初期値は h:mm:ss なので秒数まで入っています。
Power Queryで読み込むと、
![](https://assets.st-note.com/img/1687602701679-GDVK06UYNa.png)
10進法になります。当然 時刻に変換可能。
![](https://assets.st-note.com/img/1687602750122-BA1QkVuOCq.png)
時刻にした 29:10。こちらも秒数が表示されて、自動で日付が付与されます。
結果が同じなので、はしょり気味に。
![](https://assets.st-note.com/img/1687602954450-7uU75YZjVb.png?width=1200)
![](https://assets.st-note.com/img/1687603030439-G1QrUqqPvm.png)
次。文字列にしてみます。
![](https://assets.st-note.com/img/1687603080169-FBZgxvmKUp.png?width=1200)
5:10 は、時刻には変換できたけど 10進法には変換できず。
![](https://assets.st-note.com/img/1687603580460-g0P0vU9GMe.png?width=1200)
29:10 は、時刻は当然のことながら、10進法にも変換できず。
![](https://assets.st-note.com/img/1687603625247-pSBpXZQcXE.png)
TEXT関数で変換。
![](https://assets.st-note.com/img/1687603825931-pqQp6dKg2E.png)
セルの書式設定で文字列にしたときと、結果は同じ。
![](https://assets.st-note.com/img/1687604075479-ukHBN770UY.png)
![](https://assets.st-note.com/img/1687604191292-fkc1BjN4nf.png)
いっちばん嫌いな、10進法で表記されていたとき。
![](https://assets.st-note.com/img/1687605345926-UK9oQG1zV7.png)
計算をするため、10進数に変換。
![](https://assets.st-note.com/img/1687605408055-vhwsKfsRmi.png)
変換タブの標準→除算→24
![](https://assets.st-note.com/img/1687605510909-vaS0MghZjy.png)
10進法で表記されたこれを
![](https://assets.st-note.com/img/1687605561711-hQZ51DplNy.png)
時刻型に。
![](https://assets.st-note.com/img/1687605578291-ogZsWpn9Pj.png)
一応 こっちもやってみる。
![](https://assets.st-note.com/img/1687605637584-5Pdxy1uBXi.png)
うん、除算まではね…
![](https://assets.st-note.com/img/1687605685492-xrrU1BC8d3.png)
そうだね、わかってたよ。。。
![](https://assets.st-note.com/img/1687605704681-vjEOyoJoCX.png)
始めから文字列になっていれば、24時以降の24時間表記もそのまま使える。
セルの書式設定で見た目だけ24時間表記になっている場合は、TEXT関数で変換するのが一番楽と感じました!
![](https://assets.st-note.com/img/1687606278331-0xqcMvDU8U.png?width=1200)
一度テーブルで吐き出してTEXT関数で変換した後のテーブルを、またPower Queryで読み込むみたいな二段階を踏む。
もしかしたらM言語で解決できるのかもしれないけど…
ちゃんとあってるよね~って確認もできるし、まぁ一度組めば次は更新でいいので、ヘタにステップごちゃごちゃさせちゃうよりはいいかなぁ🤔
開始時間と比較して1時を25時とかに変換するのは、別でnote書いていますのでよかったらどうぞ🥰
事務員が少しの背伸びでできる効率化を目指す🌈✨ 自分の好きなものを、楽しく発信していきたいです! いただいたサポートは学習費にあてさせていただきます🥰