TRUNC関数で、時間、分数の整数部分を取り出す
PowerBIでは(PowerBIだけでなく一般にも?)時間の量的データは「HH:MM:dd」の形式では表せないようです。
例えば、0:00:00(0時) から1:23:45 (1時間23分45秒)の時間の量的データは、開始から終了までの【時間】ではなく、1時間23分45秒という時の中のある一点【時刻】として扱われてしまいます。
そのため、カテゴリAは3794秒、カテゴリBは5466秒というように、秒数で格納されている数量データで棒グラフや円グラフを表現することはできますが、いくら棒グラフで数量の比較ができても、秒数の時間的数量を人間の目から想像するのは難しいです。
ヒント表示やテーブルの列で、人間が時間の量的データを感じやすい「HH:MM:dd」の形式に変換した表示をするため Major(Convert)
という名前でメジャーを作ってみました。
Major(Convert) =
VAR i =
CALCULATE(
SUM('TableToConvert'[Seconds]),
'TableToConvert'[Category]==SELECTEDVALUE('TableToConvert'[Category])
)
VAR HOUR_VALUE = TRUNC(i / 3600) -- 時間単位の部分を取得
VAR MINUTES_VALUE = TRUNC((i - HOUR_VALUE * 3600 ) / 60)-- 秒単位の部分を取得
VAR SECOND = i - (HOUR_VALUE * 3600 ) - (MINUTES_VALUE * 60)
Return HOUR_VALUE&":"&FORMAT(MINUTES_VALUE, "00")&":"&FORMAT(SECOND, "00")
※分や秒は一桁の数値が取れる場合、0パディングを足して2桁で表現したいので、FORMAT([数値], "00")で調整しています。
以上、どこで使うか分かりませんが、秒数を「HH:MM:dd」に変換する式をまとめてみました。