QUERY関数で【年】【月】【日】【曜日】【四半期】を返す[QUERY関数]
集計の都合上、日付から【年】【月】【日】【曜日】【四半期】のデータを取り出したいことはよくあります。
QUERY関数では関数式内に関数を用いてそれぞれのデータを返すことができます。
下記のデータをサンプルにします。
QUERY関数を以下のように記述すると…
以下(列E以下)のような値が返されます。
QUERY関数の中で「year関数」「month関数」「day関数」「dayofweek関数」「quarter関数」を用いることにより、列Aの日付からそれぞれ「年/月/日/曜日/四半期」を返すことができます。
注意点が3つあるので解説します。
【1】month関数は1足す
Googleスプレッドシートやエクセルに於いてのmonth関数はそのまま1-12の整数を返しますが、QUERY関数内でmonth関数を用いると「0-11」の整数が返されます。
Google Apps Scriptで「getMonthメソッド」を使われたことのある方はお馴染ですね。
「1月」は「0」が返り、「2月」は「1」、「3月」は「2」、「12月」は「11」が返される仕様なのです。
ですので1を足す必要があります。
【2】dayofweek関数で曜日を返すと数値が返るのでformat句を用いる
Googleスプレッドシートで曜日を返すにはtext関数を用います。
QUERY関数内でtext関数を用いることはできないようなので、代わりにdayofweekという関数を用います。
dayofweek関数をそのまま用いると「1-7」の整数が返されます。
「日曜」が「1」、「月曜」が「2」、「土曜」が「7」となります。
この整数の方が扱いやすい場合もありますが、「月」「火」「水」と日本語一文字で表示したい場合はformat句を用います。
format句を書き足した関数式はこちら。
【3】label句で項目名を整える
関数を用いると項目名がふさわしくなくなるので、label句を用いて項目名を整えます。
label句を書き足した関数式はこちら。
※本記事はある方の「QUERY関数にdayofweek関数を用いる」についてのXのポストをきっかけに、自分なりに調べまとめてみた記事です。きっかけをくださった方に感謝します。
※類似の記事を書きました。