【関数】日付(シリアル値)から「曜日」を整数で取得できる「WEEKDAY」の使い方
AさんAさん

Excelで「日付」の列があり、「曜日」を条件に関数で集計したいですが、どうすれば良いでしょうか?

森田森田

その場合は、集計の事前準備に関数のWEEKDAYを活用すると良いですよ!
では、WEEKDAYの使い方について解説していきますね。

はじめに

この記事は関数の概要を把握していることが前提です。

参考記事

関数の概要については以下の記事をご参照ください。

日付から「曜日」のみ取得したい場合は「WEEKDAY」が有効

実務で扱うデータは日付の列が用意されているケースは非常に多いもの。

この日付の中の「曜日」を集計条件にしたい場合、関数で集計するにはハードルが高いです。

一番手軽な解決策としては、日付の列から「曜日」のみ取得した計算列をつくることです。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。

この計算列を集計条件にすることで、関数(SUMIFSCOUNTIFS等)やピボットテーブルで集計しやすくなります。

この「曜日」を取得する計算列を追加する場合、関数のWEEKDAYを使うと良いです。
WEEKDAYは「ウィークデイ」と読む。

WEEKDAYを使うことで、日付(シリアル値)から「曜日」を整数で取得できます。

ちなみに、シリアル値は、190011日を起点に何日目かをカウントした数値です(「44082」なら、190011日から44082日目)。
シリアル値の「1」は1日(=24h)となり、時刻の場合は時間換算した結果を小数点で示します(1h=1/24h1m=1/24h/60m1s=1/24h/60m/60s)。

WEEKDAYの構文

WEEKDAYの構文は以下の通りです。

=WEEKDAY(シリアル値,[種類])
日付に対応する曜日を1から7までの整数で返します。

引数名 必須 データ型 説明
シリアル値 数値 取得対象の単一セル(値が日付)を指定します。
種類 数値 戻り値の種類(整数の範囲と各数値に対応する曜日のパターン)を数値で指定します。

引数「シリアル値」に指定した日付が文字列として入力されたものの場合、エラーになる場合あり。
引数「種類」は選択肢に表示される数値以外を指定した場合、エラー値「#NUM!」が表示。

【参考】引数「種類」のパターン

引数「種類」は基本的に省略してOKです。

もし、パターンを変えたい場合は、引数「シリアル値」の後にコンマ(,)を入力すると、数式上でサジェストされるため、任意の種類を選択し「Tab」キーで確定しましょう。

各パターンの戻り値がどの曜日になるかは以下の表をご覧ください。

引数「種類」の値 WEEKDAYの戻り値
0 1 2 3 4 5 6 7
1または省略
2
3
11
12
13
14
15
16
17

【参考】WEEKDAYは「日付/時刻関数」

あくまで参考情報となりますが、WEEKDAYはリボン「数式」タブの関数ライブラリの「日付/時刻」に分類されています。

実際にWEEKDAYを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

WEEKDAYの使用結果イメージ

WEEKDAYを使い、日付から「曜日」を取得するイメージは以下の通りです。
今回は「受注日」列のデータから「曜日」を取得しました。

上記のように計算列としてWEEKDAYを使う場合、1レコードにつき1つの関数を使います。

ベースの数式をセットしたら、他のセルへペーストしましょう。

【注意】WEEKDAYの戻り値を「曜日」形式で表示するには

WEEKDAYの戻り値は「1~7」の整数のため、パッと見で何の曜日か分かりにくいです。

よって、WEEKDAYがセットされたセルの表示形式を「曜日」に変更しましょう。

表示形式の変更手順は以下の通りです。

  1. 任意のセル上で右クリック
  2. 「セルの書式設定」をクリック
  3. 「ユーザー定義」をクリック
  4. 「種類」ボックスに任意の表示形式を入力
  5. OK」をクリック

なお、表示形式を「曜日」にする場合、手順④は以下4種類のいずれかを入力しましょう(基本は「aaa」)。

表示形式 表示結果 ※戻り値が「1」の場合
aaa
aaaa 日曜日
ddd Sun
dddd Sunday

表示形式の「曜日」は1~7(日~土)のパターンで固定されるため、引数「種類」を省略・「1」・「17」以外にする場合は注意。

WEEKDAYの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はH2セル
  2. =w」等と入力
  3. サジェストから「WEEKDAY」を選択し、「Tab」キーで確定
  4. 取得対象のセルを選択
    ※今回はB2セル
  5. Enter」キーで確定
  6. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はH3~H11セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑥は不要(全レコードへ数式が自動的にコピーされる)。

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

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

サンプルファイル_ワークシート関数_WEEKDAY.xlsx

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

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はH2セル
  2. =w」等と入力
  3. サジェストから「WEEKDAY」を選択し、「Tab」キーで確定
  4. 取得対象のセルを選択
    ※今回はB2セル
  5. Enter」キーで確定
  6. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はH3~H11セルへペースト

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

さいごに

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

WEEKDAYは日付データを元にした計算列の追加に役立つ関数の一つです。

定期的に「曜日」を取得する計算列を作成する機会があるなら、ぜひ覚えておいた方が良いですね。

なお、WEEKDAY以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。


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

森田森田

WEEKDAYとセットで覚えておいた方が良い関数は、「年」を取得できるYEAR、「月」を取得できるMONTH、「日」を取得できるDAYです。
使い勝手は同じなので、セットで覚えておくと良いでしょう。