なんでもエクセル(Nandemo Excel)

何でもエクセルでやってしまう そこのあなた、ようこそ

Power Query:24時間以上の時刻を期間型に変換する

日時の取り扱いは、エクセルとパワークエリで微妙に違うので、慣れるのに時間がかかるかもしれません。例えば、読み込んだデータが 24時間以上を含む時刻データ(表示形でいうと「[h]:mm」)だった場合、クエリで読み込むと number型になってしまいます。

この場合、シリアル値のままでは使いづらいので、期間型(duration型)に変換してしまいましょう。

    期間型に変換 = Table.TransformColumns(
        変更された型, {"時刻", Duration.From, type duration}
    )

こんな感じです。

では、元のファイルがテキストデータで、読み込んだ時点では文字列だった場合はどうすればいいでしょうか。

    ソース = Table.FromColumns(
        {{"24:35:15", "18:30:20", "32:59:59"}},
        type table [時刻=text]
    ),
    期間型に変換 = Table.TransformColumns(
        変更された型, {"時刻", each [
            a=List.Transform(Text.Split(_, ":"), Number.From),
            b=#duration(0, a{0}, a{1}, a{2})
        ][b], type duration}
    ),

以上です。

反対は必要ないかもしれませんが、Duration型の値からシリアル値に変換するのには Duration.TotalDays関数が使えます。