なんでもエクセル(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関数が使える。