パワークエリのM関数「#time」のサムネイル
AさんAさん

表の時/分/秒の列から時刻列を作成したいです。
Power Queryエディター上で時刻を作成する場合、どうしたら良いですか?

森田森田

その場合、M関数の「#time」を使えば良いですよ!
では、詳細を解説していきますね。

森田貢士 公式LINEバナー

はじめに

この記事は「カスタム列」コマンドの詳細を把握していることが前提です。

参考記事

「カスタム列」コマンドの詳細は、以下の記事をご参照ください。

「#time」の使いどころ

Power Queryエディターには、選択した時刻列から任意の要素(時/分/秒)を取得するための「時」・「分」・「秒」コマンドはありますが、その逆パターンとなる時/分/秒の列から時刻列を作成するコマンドがありません。

ワークシート上の関数でいえば、「TIME」と類似のコマンドがないということですね。

Power Queryエディター上でも時/分/秒の列から時刻列を作成したい場合、「カスタム列」ダイアログ上で「#time」を活用しましょう。

パワークエリのM関数「#time」の使いどころ

#timeを活用することで、指定の時/分/秒の数値列から時刻列を作成できます。

参考記事

Power Queryエディターの「時」・「分」・「秒」コマンドと、ワークシート上の関数の「TIME」の詳細は、以下の記事をご参照ください。


構文

#timeの構文は以下の通りです。

#time ( hour , minute , second )
時間、分、秒を表す数値から時刻の値を作成します。

引数名必須データ型説明
hour数値時刻の「時」にしたい数値列や定数を指定します。
minute数値時刻の「分」にしたい数値列や定数を指定します。
second数値時刻の「秒」にしたい数値列や定数を指定します。

引数「hour」・「minute」・「second」のいずれかがnull、未指定の場合、#timeの戻り値はエラー値「Error」を表示。
引数「hour」に1以上かつ24以下の数値のみ指定可能。それ以外の値を指定した場合、#timeの戻り値はエラー値「Error」を表示。
引数「minute」に1以上かつ59以下の数値以外を指定可能。それ以外の値を指定した場合、#timeの戻り値はエラー値「Error」を表示。
引数「second」に1以上かつ60未満の数値以外を指定可能。それ以外の値を指定した場合、#timeの戻り値はエラー値「Error」を表示。

参考記事

必要に応じ、Microsoft Learnの「#time」の記事もご参照ください。

数式例・使用イメージ

「時」・「分」・「秒」列から「受付時刻」列を作成したイメージが以下です。

パワークエリのM関数「#time」の数式例・使用イメージ

カスタム列で参照している数値列は不要であれば別途削除してください。

ステップ登録手順

「カスタム列」コマンドで#timeを登録したい場合は、以下の手順となります。

パワークエリのM関数「#time」のステップ登録手順

  1. リボン「列の追加」タブをクリック
  2. 「カスタム列」をクリック
  3. 任意の列名を入力
    ※今回は「受付時刻」
  4. 「#time(」を入力
  5. 「時」の数値列を選択 or 数値を入力
    ※今回は「時」列
  6. コンマ(,)を入力
  7. 「分」の数値列を選択 or 数値を入力
    ※今回は「分」列
  8. コンマ(,)を入力
  9. 「秒」の数値列を選択 or 数値を入力
    ※今回は「秒」列
  10. 「)」を入力
  11. 「OK」をクリック

登録したステップの変更手順

#timeのステップを後から変更する場合、以下の手順となります。

パワークエリのM関数「#time」のステップ変更手順

  1. 「追加されたカスタム列」ステップの歯車マークをクリック
  2. 任意の箇所を修正
  3. 「OK」をクリック

手順①のステップ名は「カスタム列」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
手順①はステップ名をダブルクリックでもOK。
手順①で起動した「カスタム列」ダイアログは、ステップに設定した内容がセットされた状態。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ整形_#time.xlsx

サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。

ブックを開いたら、「問合せ受付記録」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。

  1. リボン「列の追加」タブをクリック
  2. 「カスタム列」をクリック
  3. 任意の列名を入力
    ※今回は「受付時刻」
  4. 「#time(」を入力
  5. 「時」の数値列を選択 or 数値を入力
    ※今回は「時」列
  6. コンマ(,)を入力
  7. 「分」の数値列を選択 or 数値を入力
    ※今回は「分」列
  8. コンマ(,)を入力
  9. 「秒」の数値列を選択 or 数値を入力
    ※今回は「秒」列
  10. 「)」を入力
  11. 「OK」をクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

#timeを活用することで、指定の時/分/秒の数値列から時刻列を作成できます。

一連の整形作業の中で、時/分/秒の列から時刻列を作成したい場合に活用してみましょう!

なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


ご参考になれば幸いですm(_ _)m

森田森田

#timeに慣れたら、他の時刻列の計算に役立つコマンドやM関数もセットで覚えることをおすすめします。
具体的には、時刻列から任意の要素を取得できる「時」・「分」・「秒」コマンドや、時刻間の期間を計算できる「減算」コマンドです。
#time以外にどんなM関数があるか気になる方は、Microsoft Learnの「Power Query M関数参照」も参照してみてくださいね!