※本ページにはプロモーション(広告)が含まれています
「SUBTOTAL関数を使っているのに、合計や平均が正しく出ない」「フィルターをかけても値が変わらない」——そんな悩みを抱えていませんか?
ExcelのSUBTOTAL関数は、フィルター適用時の集計や、小計・合計の重複を避けるための非常に便利な関数です。しかし、関数番号の指定ミス・フィルターの設定漏れ・非表示行の扱いなど、いくつかの落とし穴にはまるとまったく意図した結果が得られません。
この記事では、SUBTOTAL関数が正しく動作しない原因を5つに分類し、それぞれの具体的な対処法をわかりやすく解説します。2026年最新のExcel(Microsoft 365対応)の画面をもとに説明していますので、初心者の方でも安心して読み進められます。

この記事でわかること
- SUBTOTAL関数の基本的な仕組みと用途
- SUBTOTAL関数が機能しない・正しい値が出ない5つの主な原因
- 原因ごとの具体的な対処法(スクリーンショット付き手順)
- 関数番号(1〜11 / 101〜111)の違いと使い分け一覧表
- フィルター・非表示行・入れ子構造に関する注意点
SUBTOTAL関数とは?基本の仕組みを理解しよう
SUBTOTAL関数は、指定したセル範囲に対して合計・平均・個数・最大値・最小値など11種類の集計を行える関数です。SUM関数やAVERAGE関数と似ていますが、以下の2点で大きく異なります。
- フィルターで非表示になった行を自動的に除外して集計できる
- SUBTOTAL関数どうしの入れ子(重複集計)を自動的に無視できる
たとえば、売上データをフィルターで絞り込んだとき、SUM関数は非表示の行もすべて合計してしまいますが、SUBTOTAL関数は表示されている行だけを集計します。
SUBTOTAL関数の基本構文
=SUBTOTAL(集計方法, 参照1, [参照2], ...)
| 引数 | 説明 | 例 |
|---|---|---|
| 集計方法 | 1〜11または101〜111の数値で集計の種類を指定 | 9(合計)、1(平均)など |
| 参照1 | 集計対象のセル範囲 | B2:B100 |
| 参照2以降 | 複数範囲を指定する場合(省略可能) | C2:C100 |
集計方法として使える番号は「1〜11」「101〜111」の2系統があり、この違いが原因でトラブルが起きることが多いです。詳しくは後半の一覧表で解説します。
SUBTOTAL関数が正しく動かない5つの主な原因
SUBTOTAL関数が期待通りに動かない場合、以下のいずれかが原因であることがほとんどです。まず原因を特定してから、対処法に進みましょう。
| 原因 | 症状 | 難易度 |
|---|---|---|
| 原因1 関数番号の指定ミス | フィルター後も値が変わらない | ★☆☆ 簡単 |
| 原因2 フィルターが正しく適用されていない | 絞り込んでも合計が変わらない | ★☆☆ 簡単 |
| 原因3 手動で非表示にした行の扱い | 手動で隠した行が集計に含まれる | ★★☆ 普通 |
| 原因4 データ範囲の指定ミス | 一部のデータが集計から漏れる | ★★☆ 普通 |
| 原因5 Excelの計算モードが手動になっている | データを変更しても値が更新されない | ★★☆ 普通 |
対処法1:関数番号を正しく確認する
SUBTOTAL関数の第1引数(集計方法)には、1〜11または101〜111の数値を指定します。この番号を間違えると、意図した集計が行われません。
特に多い間違いのパターン
- 合計を出したいのに「1」を指定している(1は平均、合計は9)
- フィルター連動させたいのに「101〜111」を使っている(1〜11で十分な場面)
- 手動非表示の行も除きたいのに「1〜11」を使っている(101〜111が必要)
正しい関数番号の確認手順
- 関数が入力されているセルをクリックして選択する
- 数式バーに表示されている式を確認する
=SUBTOTAL(のあとの数値が目的の集計方法と一致しているか確認する- 間違っていれば数式バーをクリックして直接数値を修正する
よく使う番号の早見表(1〜11系)
合計=9 / 平均=1 / 個数=2 / 最大値=4 / 最小値=5 / 標準偏差=7 / 積=6

対処法2:フィルターが正しく適用されているか確認する
SUBTOTAL関数はフィルターで非表示になった行を除外して集計しますが、オートフィルターが適用されていない状態では、フィルターをかけても値が変わりません。
フィルターの設定を確認する手順
- 集計対象のデータ表の中をクリックして選択状態にする
- Excelのリボンから「データ」タブを開く
- 「並べ替えとフィルター」グループの「フィルター」ボタンを確認する
- ボタンが強調表示(オン)になっていれば正常にフィルターが適用されている
- オフになっている場合は「フィルター」ボタンをクリックしてオンにする
フィルター適用後の動作確認
- 列ヘッダーの右端に表示されるプルダウン矢印をクリックする
- 任意の条件で絞り込みを行う
- SUBTOTAL関数の結果が絞り込んだデータのみの集計値に変わることを確認する
ポイント:SUBTOTAL関数はフィルター適用列に関係なく、表示されている行すべてを集計します。列Aでフィルターをかけても、集計対象が列Bであれば正しく連動します。
対処法3:手動で非表示にした行の扱いを理解する
フィルターで非表示にした行と、行を右クリックして手動で「非表示」にした行では、SUBTOTAL関数の挙動が異なります。
1〜11系と101〜111系の違い
| 番号系 | フィルター非表示の行 | 手動非表示の行 |
|---|---|---|
| 1〜11(例: 9=合計) | 除外される(集計しない) | 含まれる(集計される) |
| 101〜111(例: 109=合計) | 除外される(集計しない) | 除外される(集計しない) |
対処手順
- 手動非表示の行も除外したい場合は、第1引数を「101〜111系」に変更する
- 例:
=SUBTOTAL(9, B2:B100)→=SUBTOTAL(109, B2:B100)に修正する - Enterキーで確定し、値が変わることを確認する
対処法4:データ範囲の指定を確認する
SUBTOTAL関数の参照範囲が正しく設定されていないと、一部のデータが集計から漏れたり、余分な行が含まれてしまいます。
よくある範囲指定のミス
- データが追加されているのに範囲が古いまま(例: B2:B50 なのに実際はB2:B100まである)
- ヘッダー行が集計範囲に含まれている(数値以外のセルが含まれると誤差が出る場合がある)
- 空白行をまたいで範囲を指定している(意図しない行が含まれる)
範囲指定を修正する手順
- SUBTOTAL関数のセルをクリックしてアクティブにする
- 数式バーの式内で参照範囲(例: B2:B50)の部分をドラッグして選択する
- 実際のデータ範囲を確認し、正しい終端セル(例: B100)に修正する
- 列全体を参照する場合は
B:Bと指定することで自動的に全行が対象になる - ただし列全体の指定はファイルが重くなる場合があるため、データ末尾に余裕を持たせた範囲(例: B2:B10000)がおすすめ
テーブル形式のすすめ:データ範囲をExcelの「テーブル」として設定すると(Ctrl+T)、行を追加するたびに自動で範囲が拡張されます。SUBTOTAL関数との相性も良く、管理が楽になります。

対処法5:Excelの計算モードを確認する
Excelには「自動計算」と「手動計算」の2つのモードがあります。手動計算モードになっていると、データを変更してもSUBTOTAL関数を含むすべての数式が自動で更新されません。
計算モードを確認・変更する手順
- Excelのリボンから「数式」タブを開く
- 「計算方法」グループの「計算方法の設定」をクリックする
- 「自動」「データテーブル以外自動」「手動」の3択が表示される
- 「手動」になっている場合は「自動」をクリックして変更する
- すぐに再計算したい場合はキーボードの「F9」キーを押す
| 計算モード | 動作 | 使用場面 |
|---|---|---|
| 自動(推奨) | データ変更のたびに即時再計算 | 通常の使用(ほぼすべての場面) |
| データテーブル以外自動 | データテーブル以外を自動計算 | 大規模データテーブルがある場合 |
| 手動 | F9を押したときのみ再計算 | 非常に重いファイルで作業速度を上げる場合 |
注意:手動計算モードはファイルを開いたときに前回の設定が引き継がれます。他の人から受け取ったファイルが手動計算になっていたというケースも多いため、値がおかしいと感じたときは必ず確認しましょう。
SUBTOTAL関数番号完全一覧表
SUBTOTAL関数で使える集計方法の番号を一覧にまとめました。1〜11系はフィルター非表示のみを除外し、101〜111系はフィルター非表示+手動非表示の両方を除外します。
| 番号 (フィルターのみ) |
番号 (手動非表示も除外) |
集計方法 | 同等の関数 |
|---|---|---|---|
| 1 | 101 | 平均 | AVERAGE |
| 2 | 102 | 数値のセル数 | COUNT |
| 3 | 103 | 空白でないセル数 | COUNTA |
| 4 | 104 | 最大値 | MAX |
| 5 | 105 | 最小値 | MIN |
| 6 | 106 | 積(掛け算) | PRODUCT |
| 7 | 107 | 標本標準偏差 | STDEV |
| 8 | 108 | 母標準偏差 | STDEVP |
| 9 | 109 | 合計 ← 最もよく使う | SUM |
| 10 | 110 | 標本分散 | VAR |
| 11 | 111 | 母分散 | VARP |
どちらの系列を使うべきか?
| 使用目的 | 推奨する番号系 | 理由 |
|---|---|---|
| オートフィルターで絞り込みながら集計する | 1〜11でOK | フィルターの非表示は両系列とも対応 |
| 手動で行を隠している部分も除外したい | 101〜111を使う | 手動非表示も除外するのは101〜111のみ |
| グループ化(行のグループ化機能)との組み合わせ | 101〜111を使う | グループ折りたたみは手動非表示と同じ扱い |
| 小計行を複数置いて、全体合計でも重複させたくない | 9(合計)でOK | SUBTOTAL関数は同関数どうしを入れ子時に自動スキップ |
この記事に関連するおすすめ商品
Excel 関数 テクニック 本
約1,500円〜
SUBTOTAL・VLOOKUP・ピボットなど業務でよく使う関数を網羅
Excel 2024 仕事に使える最強の一冊
約1,600円〜
フィルター・ピボットテーブル・関数を実務ベースで解説
Microsoft 365 Personal サブスクリプション
約14,900円/年
常に最新のExcelを使えるMicrosoft 365の個人向けプラン
※ 価格は変動します。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q1. SUBTOTAL関数とSUM関数の違いは何ですか?
最大の違いはフィルターで非表示にした行を除外できるかどうかです。SUM関数はすべての行を合計しますが、SUBTOTAL関数はフィルターで非表示になった行を自動的に除外して集計します。また、SUBTOTAL関数どうしが入れ子になっている場合、内側の値を自動的にスキップする機能もあります(二重計算の防止)。
Q2. フィルターをかけたのにSUBTOTALの値が変わりません。なぜですか?
主な原因として3つ考えられます。①オートフィルターがオフになっている(データタブ→フィルターをオンに)、②計算モードが手動になっている(数式タブ→計算方法の設定→自動に変更)、③SUBTOTAL関数の参照範囲がフィルター対象の表の外を指定している(範囲の見直し)、のいずれかをご確認ください。
Q3. 手動で行を非表示にしたのに、SUBTOTALがその行を集計してしまいます。
第1引数に「1〜11系」を使っている場合、手動で非表示にした行は集計に含まれる仕様です。手動非表示の行も除外したい場合は、「101〜111系」に変更してください。例えば合計の場合は =SUBTOTAL(9, 範囲) を =SUBTOTAL(109, 範囲) に変更すると解決します。
Q4. SUBTOTAL関数を使っている行どうしをSUMで合計すると2重計算になりますか?
なりません。SUBTOTAL関数は、引数の参照範囲に別のSUBTOTAL関数が含まれている場合、そのセルの値を自動的に無視します。小計行が複数あっても、全体合計を別のSUBTOTALで出せば正確な値が得られます。
Q5. SUBTOTAL関数で「#VALUE!」エラーが出ます。どうすればいいですか?
考えられる原因は、①第1引数に1〜11または101〜111以外の数値を指定している、②参照範囲に全角スペースなど数値に変換できない文字が含まれている、③数式中の括弧や引数の区切り(カンマ)が不足しているなどです。まず数式バーで構文を確認し、第1引数の数値が適切か見直してください。
Q6. グループ化機能(アウトライン)でグループを折りたたむとSUBTOTALはどうなりますか?
グループ化で折りたたまれた行は「手動非表示」と同じ扱いになります。そのため、第1引数に「1〜11系」を使っている場合、折りたたんでも集計値は変わりません。折りたたんだ行を除外したい場合は「101〜111系」を使用してください。
まとめ
ExcelのSUBTOTAL関数が正しく動作しない原因と対処法をまとめます。
| 原因 | 対処法 |
|---|---|
| 関数番号の指定ミス | 目的の集計方法に合った番号を確認して修正する(合計=9) |
| フィルターが適用されていない | データタブ→フィルターをオンにする |
| 手動非表示の行が集計に含まれる | 番号を101〜111系に変更する(例: 9→109) |
| データ範囲が古い・間違い | 参照範囲を最新のデータ末尾まで正しく指定する |
| 計算モードが手動になっている | 数式タブ→計算方法の設定→自動に変更する |
SUBTOTAL関数は、適切な番号と範囲設定で使えば非常に強力な集計ツールです。フィルターと組み合わせた動的な集計表、小計と総計の重複なし計算など、実務で役立つ場面はたくさんあります。
今回紹介した5つの対処法を順番に試してみて、問題が解決することを確認してください。それでも解決しない場合は、Excelのバージョンや他のアドインとの競合が原因の可能性もあるため、Excelを再起動して再度試してみることをおすすめします。
Excelの関数をもっと使いこなしたい方は、XLOOKUP・UNIQUE・FILTERなど新しい関数群も合わせて学んでみてください。作業効率が大きく向上します。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!