【スプレッドシート】SUBTOTAL関数に条件を指定したい!

Googleスプレッドシートで、非表示の行を含まない集計をしたいときに便利なSUBTOTAL関数ですが、条件を指定して集計することはできません。この記事ではフィルタ機能や、他の関数を組み合わせて「非表示の行を含まない、特定の条件と一致する」といった集計をする方法をご紹介します。

スポンサーリンク

はじめに

【スプレッドシート】SUBTOTAL関数に条件を指定したい!

SUBTOTAL関数は、「集計コード」を使って「非表示の行」や「小計」を除いた集計ができるのが特徴ですが、特定の条件(例:りんごだけを集計したいなど)を指定することはできません

例:=SUBTOTAL(109,B2:B5)

SUBTOTAL関数の引数:(関数コード, 範囲1, [範囲2, …])

スポンサーリンク

簡単な方法:条件付の非表示を含まない集計

【スプレッドシート】SUBTOTAL関数に条件を指定したい!

「特定の条件に合うものだけを、非表示の行を含まずに集計したい」という場合、フィルター機能を使うのが最も簡単な方法です。

フィルター作成と集計の手順

  1. フィルターを適用する: データ範囲を選択し、「データ」→「フィルタを作成」を選びます。
  2. フィルターで条件を絞り込む: フィルターアイコンを開き、「条件でフィルタ」や「値でフィルタ」を使って、集計したい条件(例:A列を「りんご」で絞り込むなど)を設定します。数値や日付など、様々な条件を指定できます。
  3. SUBTOTAL関数で集計する: 表示されているセルだけがSUBTOTAL関数の集計対象になります。例:B列の合計を出す =SUBTOTAL(109, B2:B5)

ポイント: 109は「非表示の行を含まない合計」のコードです。フィルターで条件に合わない行を非表示にすることで、SUBTOTAL関数がそれらの行を無視して計算します。

スポンサーリンク

数式で実現する方法:条件付の非表示を含まない集計

【スプレッドシート】SUBTOTAL関数に条件を指定したい!

非表示の行を含まない、りんごの価格の合計」といった集計を、どうしても数式だけで完結させたい場合は、作業列(例:D列)を作成することで実現します。

【スプレッドシート】SUBTOTAL関数に条件を指定したい!

ステップ1:非表示行のデータを除外する「作業列」を作る

SUBTOTAL関数を使って、表示されている行の値だけを抽出します。次のような数式を、オートフィルでコピーします。

例:=SUBTOTAL(109,B2)

ポイント: 表示されている行はそのままセルの値に、非表示の行は0になります

【スプレッドシート】SUBTOTAL関数に条件を指定したい!

ステップ2:作業列と条件を使って最終的な合計を出す

FILTER関数を使って、作業列から特定の条件と一致する行を抽出し、SUM関数で合計します。

例:=SUM(FILTER(D2:D5,A2:A5="りんご"))

ポイント:非表示の行もFILTER関数で抽出されますが、作業列(D列)がすでに非表示の行の値を0に変換しているため、SUM関数で合計するときに0として計算されます

FILTER関数の引数:(範囲, 条件1, [条件2, …])

スポンサーリンク

まとめ

  • SUBTOTAL関数に条件を付けたい場合、「フィルター機能を使った手動での絞り込み」が最も簡単で確実な方法です。
  • 「どうしても数式で完結させたい!」という場合は、作業列としてSUBTOTALの結果を作り、それをSUM(FILTER(…))で処理することで実現可能です。

どちらの方法も、非表示の行を無視しつつ、特定の条件を指定して集計できるので、目的に合わせて活用してみてください。

タイトルとURLをコピーしました