shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】日付から曜日の抽出(DateTime.ToTextなどの活用例)

Power Queryで、日付データから曜日の抽出する事例です。「例からの列」による方法、DateTime.ToText関数を使用する方法があります。

Excelの数式と同様、容易に抽出可能です。

内容:

アウトプットイメージ

下図のように、PowerQueryで日付データを「曜日名」、略した曜日名(「略曜日名」)、「日付+曜日」という列に変換する事例です。

曜日名、略曜日名、日付+曜日の3パターンに変換した事例です

PowerQueryで日付データに曜日を追加した事例

実施手順

日付データを「曜日名」に変換する方法

「曜日名」を追加する場合は、「例からの列」で設定する方法が簡単です。

「列の追加」タブー「例からの列」をクリックし、サンプル値として日付を曜日に変換した値を入力すると

Date.DayOfWeekName([日付]

という式が自動作成されます。

サンプル値で、いくつか実際の曜日を入力します

「例からの列」の設定イメージ

以上で下図のとおり、日付から曜日に変換した列が追加されています。

Date.DayOfWeekName([日付]という式が自動作成されています

日付データを「曜日名」に変換した結果

日付データを略した曜日名に変換する方法

略した曜日名も前述手順と同様、「例からの列」で設定する方法が簡単です。

自動作成される式は

DateTime.ToText([日付], "ddd")

となります。

 

DateTime.ToText関数の参考情報

DateTime.ToText関数の詳細は以下です。

learn.microsoft.com

なお、「月、火、水、…」が"ddd"である仕様については以下が参考になります。

learn.microsoft.com

日付データを「日付+曜日」に変換する方法

「20xx/4/1(月)」といった表記にする場合、「例から列」の設定で意図した数式を自動作成する方法が分かりませんでした。

「カスタム列」の追加により実施します。

前述のDateTime.ToText関数を仕様して、次のような指定方法で可能です。

DateTime.ToText([日付], "yyyy/M/d(ddd)")

なお、「yyyy/M/d(ddd)」の”M”は大文字です。小文字で”m”にすると「分」を表します。

参考情報

「例からの列」で候補から数式を作成する方法

「例からの列」でサンプル値を入力する箇所を編集状態(ダブルクリックや、F2キー)にすると下図のように候補から数式を自動作成することも可能です。

「曜日名」や「日付から四半期の最終日」、「日付からの年」などの候補から選択できます

「例からの列」の設定で候補から選択イメージ

カスタム列の追加や、「例からの列」などの基本は下記に記載しています。

shikumika.org

Excelの書式設定やTEXT関数を用いた方法

PowerQueryではなく、Excelの書式設定等で日付から曜日を抽出したい場合は以下です。

shikumika.org

以上、Power Queryで、日付から曜日の抽出(DateTime.ToTextなどの活用例)でした。