Excelを使用して日付データを分析する際、特定の曜日だけをカウントしたい場面は多々あります。たとえば、毎週の集計で「月曜日だけのデータが何件あるか?」を知りたいときなどです。このようなときに役立つのが、TEXT関数・もしくはWEEKDAY関数と配列数式による集計を用いた数式です。※曜日カウントはCOUNTIF関数では実現できません。
TEXT関数を使って曜日を数える
TEXT関数を使って曜日を数える:数式の基本構造
TEXT関数と配列数式を用いて特定の曜日のセルを数えるための基本的な数式は次の通りです。「範囲」へは日付セルを登録します。この式を旧バージョンのExcelで使用するならば、確定時に「Ctrl + Shift + Enter」を使う必要があります。
=SUM(--(TEXT(範囲, "aaa")="曜日名"))
数式の解説
- TEXT関数の活用: この数式の核となるのはTEXT関数です。TEXT関数は日付データをテキスト形式に変換します。第二引数に “aaa” を指定すると、日付が曜日の略称(日、月、火など)に変換されます。
- 条件の設定:
"曜日名"
はカウントしたい曜日の略称を指定します。例えば、日曜日の場合は”日”、月曜日の場合は”月”と入力します。 - 配列計算の実行: TEXT関数で変換した結果が指定した「曜日名」と一致するかどうかを評価します。これが真(TRUE)ならば1、偽(FALSE)ならば0に変換されるために、
--
(ダブル単項マイナス)が使われます。 - 合計の算出: 最後に、SUM関数で1の合計を計算します。これが、指定した範囲内での特定の曜日のセルの総数になります。
実用例
たとえば、A2:A30の範囲に日付データがあり、その中の「水曜日」のデータを数えたい場合、以下のように数式を入力します。
=SUM(--(TEXT(A2:A30, "aaa")="水"))
この数式はA2からA30までのセルを調べ、「水」曜日であるセルの数をカウントします。
WEEKDAY関数を使って曜日を数える
WEEKDAY関数を使って曜日を数える:数式の基本構造
WEEKDAY関数と配列数式を用いて特定の曜日のセルを数えるための数式は次の通りです。「範囲」へは日付セルを登録します。「曜日番号」は「日曜日を1、月曜日を2、……」とします。この式を旧バージョンのExcelで使用するならば、確定時に「Ctrl + Shift + Enter」を使う必要があります。
=SUM(--(WEEKDAY(範囲)=曜日番号))
数式の解説
- WEEKDAY関数の利用:この数式の核となるのはWEEKDAY関数です。WEEKDAY関数は、指定された日付が週の何日目かを数値で返します。標準的な設定では、日曜日が1、月曜日が2と続き、土曜日が7になります。
- 条件の設定:
曜日番号
は数値で、カウントしたい曜日を指定します。例えば、日曜日を数えたい場合は1、月曜日なら2と設定します。 - 配列計算の実行:
WEEKDAY(範囲)
で各セルの日付を週の何日目かの数値に変換し、それが指定した曜日番号
と等しいかを評価します。この比較が真(TRUE)ならば1、偽(FALSE)ならば0に変換されるため、--
(ダブル単項マイナス)が使用されます。 - 合計の算出:SUM関数で1の合計を計算します。これが、指定した範囲内での特定の曜日のセルの総数になります。
実用例
たとえば、A2:A30の範囲に日付データがあり、その中の「水曜日」(曜日番号3)のデータを数えたい場合、以下のように数式を入力します。
=SUM(--(WEEKDAY(A2:A30)=3))
この数式は、A2からA30までのセルを調べ、「水曜日」であるセルの数をカウントします。この手法は、特定の曜日のデータを効率的に抽出するのに非常に便利です。
コメント