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

表の年/月/日の列から日付列を作成したいです。
Power Queryエディター上で日付を作成する場合、どうしたら良いですか?

森田森田

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

森田貢士 公式LINEバナー

はじめに

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

参考記事

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

「#date」の使いどころ

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

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

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

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

#dateを活用することで、指定の年/月/日の数値列から日付列を作成できます。

参考記事

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


構文

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

#date ( year , month , day )
年、月、日を表す整数から日付の値を作成します。

引数名必須データ型説明
year数値日付の「年」にしたい数値列や定数を指定します。
month数値日付の「月」にしたい数値列や定数を指定します。
day数値日付の「日」にしたい数値列や定数を指定します。

引数「year」・「month」・「day」のいずれかがnull、未指定の場合、#dateの戻り値はエラー値「Error」を表示。
引数「year」に1以上かつ9999以下の数値のみ指定可能。それ以外の値を指定した場合、#dateの戻り値はエラー値「Error」を表示。
引数「mont」に1以上かつ12以下の数値以外を指定可能。それ以外の値を指定した場合、#dateの戻り値はエラー値「Error」を表示。
引数「day」に1以上かつ31以下の数値以外を指定可能。それ以外の値を指定した場合、#dateの戻り値はエラー値「Error」を表示。
引数「year」・「month」・「day」の組み合わせ結果が暦にない日付の場合、#dateの戻り値はエラー値「Error」を表示(例:2025/4/31)。

参考記事

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

数式例・使用イメージ

「入社_年」・「入社_月」・「入社_日」列から入社日を作成したイメージが以下です。

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

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

ステップ登録手順

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

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

  1. リボン「列の追加」タブをクリック
  2. 「カスタム列」をクリック
  3. 任意の列名を入力
    ※今回は「入社日」
  4. 「#date」を入力
  5. 「年」の数値列を選択 or 数値を入力
    ※今回は「入社_年」列
  6. コンマ(,)を入力
  7. 「月」の数値列を選択 or 数値を入力
    ※今回は「入社_月」列
  8. コンマ(,)を入力
  9. 「日」の数値列を選択 or 数値を入力
    ※今回は「入社_日」列
  10. 「)」を入力
  11. 「OK」をクリック

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

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

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

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

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

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

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

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

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

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

  1. リボン「列の追加」タブをクリック
  2. 「カスタム列」をクリック
  3. 任意の列名を入力
    ※今回は「入社日」
  4. 「#date」を入力
  5. 「年」の数値列を選択 or 数値を入力
    ※今回は「入社_年」列
  6. コンマ(,)を入力
  7. 「月」の数値列を選択 or 数値を入力
    ※今回は「入社_月」列
  8. コンマ(,)を入力
  9. 「日」の数値列を選択 or 数値を入力
    ※今回は「入社_日」列
  10. 「)」を入力
  11. 「OK」をクリック

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

さいごに

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

#dateを活用することで、指定の年/月/日の数値列から日付列を作成できます。

一連の整形作業の中で、年/月/日の列から日付列を作成したい場合に活用してみましょう!

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


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

森田森田

#dateに慣れたら、他の日付列の作成や計算に役立つM関数もチャレンジしてみましょう。
具体的には、日付に指定の月数を加減算できる「Date.AddMonths」や、日付の月の最終日を返す「Date.EndOfMonth」、日付に指定の日数を加減算できる「Date.AddDays」等です。
他にどんなM関数があるかは、Microsoft Learnの「Power Query M関数参照」も参照してみてくださいね!