📘 Excel逆引き事典

Excelで土日・祝日の合計をFILTER関数を使ってスピルする方法

日々の業務で、特定の日のデータを抽出して合計する必要があることはよくあります。特に土日や祝日は、通常の営業日に比べて異なる傾向を持つことが多いため、その分析が重要です。しかし手作業で行うと時間がかかり、ミスも増えます。この記事では、ExcelのFILTER関数を使ってスピル表示を活用し、土日や祝日のデータを効率的に抽出・合計する方法を詳しく解説します。これにより、業務効率が大幅に向上し、正確な分析が可能になります。

📊 やり方の比較

手法メリットデメリット推奨
数式(FILTER関数)スピル機能で自動更新される, 条件指定が柔軟古いExcelでは使えない, 関数の理解が必要
マウス操作(フィルタリング)直感的で簡単, 元データを変更しない手動での更新が面倒, 条件指定が複雑な場合に不向き

fx 使用する数式

Excel / SpreadSheet
=SUM(FILTER(売上表!C:C, (TEXT(売上表!A:A, "ddd")="土曜日" + TEXT(売上表!A:A, "ddd")="日曜日") * ISNUMBER(MATCH(売上表!A:A, 祝日リスト!A:A, 0))))

💡 仕組みの解説

【数式の仕組み】この数式は、FILTER関数を使って土日や祝日のデータを抽出し、SUM関数で合計します。具体的には以下の通りです。

  1. TEXT(売上表!A:A, “ddd”):各日付セルを「土曜日」「日曜日」の文字列に変換
  2. (TEXT(売上表!A:A, “ddd”)=“土曜日” + TEXT(売上表!A:A, “ddd”)=“日曜日”):土曜日または日曜日の場合はTRUE(1)、それ以外はFALSE(0)
  3. ISNUMBER(MATCH(売上表!A:A, 祝日リスト!A:A, 0)):祝日リストと一致する場合TRUE、それ以外はFALSE
  4. (2) * (3):土曜日または日曜日の上にさらに祝日である場合はTRUE(1)、それ以外はFALSE(0)
  5. FILTER(売上表!C:C, (2) * (3)):条件を満たすセルの値のみ抽出
  6. SUM(…): 抽出された値の合計 この数式は、元データを削除するのではなく、別の場所に抽出したデータとその合計をスピル表示します。

具体的な手順

1
まず、土日と祝日のリストを作成し、それぞれの列に配置します。
2
FILTER関数を入力するセルを選択し、数式バーで以下のように入力します:=SUM(FILTER(売上表!C:C, (TEXT(売上表!A:A, “ddd”)=“土曜日” + TEXT(売上表!A:A, “ddd”)=“日曜日”) * ISNUMBER(MATCH(売上表!A:A, 祝日リスト!A:A, 0))))
3
数式を入力したらEnterキーを押すと、スピル機能が自動的にデータを抽出し、合計値を表示します。

よくある質問

Q Q1. VBAとの違いは?

A.
A1. VBAはマクロ言語で、より複雑な処理や大量のデータを扱う場合に適していますが、FILTER関数はシンプルな構文で即座に結果を得ることができます。

Q Q2. スピルエラーとは?

A.
A2. スピルエラーは、数式が範囲外のセルを参照しようとした場合に出るエラーです。データ範囲を適切に設定することで解消できます。

Q Q3. スマホ版でも使える?

A.
A3. Excel for the webやGoogleスプレッドシートではスピル機能が利用可能ですので、スマートフォンからも同様の操作が可能となります。