いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)WEEKDAY関数で日付から曜日を求める

 Googleスプレッドシートで日付から曜日の値(数値)を求めるWEEKDAY関数の使い方についてです。

  • 「=WEEKDAY(日付)」という式で、その日付の曜日を表す数値(日曜なら1~土曜なら7)を求めることができます。
  • CHOOSE関数などと併用して曜日名を求められますが、日本語の曜日ならTEXT関数で求める方が簡単です。

手順

使用例

 画像ではB列に日付が記録されています。
 これに対し次のように入力して、日付の曜日を示す値(数値)を求めています。

 C3セル(下方にコピー)

=WEEKDAY(B3)

 数値は日曜なら1、月曜なら2……土曜なら7となります。
 後で紹介するように、月曜なら1、火曜なら2……というように数値の基準を変えることもできますが、実際あまり使いません。



 数値だけだと意味が分かりにくいので、他の関数と組み合わせて利用するのが常套手段です。
 次の画像ではCHOOSE関数と組み合わせて日本語の曜日を出力しています。

 C3セル(下方にコピー)

=CHOOSE(WEEKDAY(B3),"日","月","火","水","木","金","土")&"曜日"

 CHOOSE関数はだ1引数の値が1なら第2引数の値、2なら第3引数の値……を返す関数なのでWEEKDAY関数と組み合わせるのにピッタリです。
 ただし後でみるように日本語の曜日を得るならTEXT関数の方が簡単なのでそちらをおすすめします。



 次の画像では英語の曜日を求めています。
 やっていることは上記と同じですが、TEXT関数では英語の曜日を出力できないので、実際の利用ケースとしてはこちらの方が現実的かもしれません。

 C3セル(下方にコピー)

=CHOOSE(WEEKDAY(B3),"Sun","Mon","Tue","Wed","Thu","Fri","Sat")

構文

 WEEKDAY関数の構文は次のとおりです。

WEEKDAY(日付[, 種類])

 引数は2つあり、第1引数の日付だけが必須です。
 第2引数については次の3種の値を指定できます。

第2引数の設定値
効果
1日曜なら1,月曜なら2……土曜なら7を返す(既定値)
2月曜なら1,火曜なら2……日曜なら7を返す
3月曜なら0,火曜なら1……日曜なら6を返す

TEXT関数との比較

 上記ではWEEKDAY関数を使って日本語の曜日を求める例を紹介しましたが、これについてはTEXT関数の方が簡単です。
 「=TEXT(日付,"ddd")」という式で1文字の曜日(日,月…)を、「=TEXT(日付,"dddd")」という式で3文字の曜日(日曜日,月曜日…)を求めることができます。これはExcelとは異なる結果で、GoogleスプレッドシートのTEXT関数では英語の曜日は出力できません。