Excel でフィルターと条件に基づいてセルをカウント/合計するにはどうすればよいですか?
日常のデータ分析やExcel 作業では、長いリストやレポートから特定のデータセグメントに焦点を当てることがよくあります。その際、フィルターによって表示されている行のみを対象とした合計値や件数が必要になるケースが頻繁に発生します。COUNTA や SUM といった基本的なExcel 関数は、フィルターが適用されていない通常の範囲では簡単に使えますが、フィルターによって一部の行が非表示になると、これらの標準関数は非表示の行も計算に含んでしまい、正確でない結果を返すことがあります。 こうした課題を解決し、フィルターや条件を正しく反映した合計および件数を確実に取得するため、このチュートリアルでは、さまざまなシナリオやスキルレベルに応じた実用的な解決策をご紹介します。
Kutools for Excel を使用してフィルターに基づくセルのカウント/合計を行う
数式を使用して特定の条件付きフィルターに基づくセルのカウント/合計を行う
VBA コード – カスタムマクロでフィルターと条件に基づき自動的に表示されているセルのみをカウントまたは合計する
PivotTable – PivotTable を使用して、条件を含むフィルター済みデータを対話的に集計(カウント/合計)する
数式を使用してフィルターに基づくセルのカウント/合計を行う
Excel にはフィルター済みデータ専用の SUBTOTAL 関数が用意されており、非表示のセルを無視して表示されているセルのみを正確にカウントまたは合計できます。これは、特定の値や条件で絞り込まれたデータセットを扱う際に特に役立ちます。SUBTOTAL 関数を使えば、フィルター条件を変更しても計算結果が自動的に更新され、常に高精度な分析が可能です。
フィルタリング範囲内のセルをカウントするには、結果を表示したいセル(例:D1)に次の数式を入力してください。
=SUBTOTAL(3, C6:C19) ここで、C6:C19はカウントしたいフィルター済みデータの範囲です。数式を入力してEnterキーを押すと、この範囲内で表示されている(フィルターされた)セルの件数がすぐに返されます。

フィルタリング範囲内の値を合計するには、次の数式を入力してください(例:D2)。
=SUBTOTAL(9, C6:C19) これにより、フィルター後に表示されているセルのみが合計されます。Enterキーを押して、合計を確認しましょう!

ヒント:SUBTOTAL 関数の最初の引数は、計算の種類を指定する function_num パラメーターです。3 は COUNTA(空白以外のセルをカウント)、9 は SUM(合計)に対応します。これらの結果を信頼する前に、必ずフィルターが有効で正しく適用されていることを確認してください。データ範囲を変更した場合は、セル参照を適宜見直して調整してください。フィルターを変更または解除すると、数式は自動的に再計算されます。
Kutools for Excel を使用してフィルターに基づくセルのカウント/合計を行う
Kutools for Excelでは、ユーザーは専用の関数——COUNTVISIBLEおよびSUMVISIBLE——を使って、表示されている(つまりフィルター済みかつ非表示でない)セルに基づいたカウントや合計を即座に取得できます。これにより、標準のExcel 数式の制限を回避でき、データを頻繁にフィルター分析する際に時間を大幅に節約し、手動でのミスも減らせます。
Kutools for Excelをインストール後、Kutools for Excelワークシートに次の数式を入力して、フィルター済みセルから結果を計算できます(例:D1 または D2)。
フィルター済みセルをカウントするには:
=COUNTVISIBLE(C6:C19) 表示されているフィルター済みセルを合計するには:
=SUMVISIBLE(C6:C19) 
ヒント:これらの関数は、手動で非表示にした行とフィルター済みの行の両方を正しく処理し、表示されているセルのみに基づいた正確な計算結果を提供します。さらに、Kutoolsメニューからもこれらの機能にすぐアクセス可能!手順は簡単:Kutools>拡張機能>統計・数学>AVERAGEVISIBLE/COUNTVISIBLE/SUMVISIBLE。フィルター済みデータの集計が、ワンクリックで瞬時に完了します!

注意:フィルターを変更したり行を非表示にしたりすると、拡張機能は自動的に更新されます。これらの数式は
Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手
数式を使用して特定の条件付きフィルターに基づくセルのカウント/合計を行う
実際の業務では、追加条件に基づいてフィルター済みデータをカウントまたは合計する必要がある場合があります。たとえば、特定の名前が含まれる行のみを集計したいといったケースです。フィルターによって視覚的にデータを絞り込むことはできますが、数式を使うことでフィルターを頻繁に調整することなく、その場でこれらの計算を実行できます。以下に、このようなシナリオに対応する便利な数式を紹介します。

特定の条件付きフィルター済みデータに基づくセルのカウント:
「Nelly」といった特定の条件に一致する表示されている(フィルター済み)セルをカウントするには、セル(例:D1)に次の数式を入力します。
=SUMPRODUCT(SUBTOTAL(3,OFFSET(B6:B19,ROW(B6:B19)-MIN(ROW(B6:B19)),,1)), --(B6:B19="Nelly")) ここで、B6:B19はデータ範囲を表し、「Nelly」は条件です。この数式は、フィルター後に表示されている行のうち、指定された条件を満たすもののみをカウントします。Enterキーを押すと、セルに件数が表示されます。

特定の条件付きフィルター済みデータに基づくセルの合計:
同じ条件でアイテムを合計する必要がある場合は、次の高度な数式を使用します(例:D2 に入力)。
=SUMPRODUCT(SUBTOTAL(3,OFFSET(B6:B19,ROW(B6:B19)-MIN(ROW(B6:B19)),,1)),(B6:B19="Nelly")*(C6:C19)) この数式では、B6:B19が条件列、C6:C19が金額列、「Nelly」が条件です。この数式は、条件を満たしていてかつ表示されている行に対応するC6:C19の値を合計します。Enterキーを押して確定すると、合計が表示されます。

ヒント:これらの数式を入力する際は、範囲と条件がフィルター済みデータと一致していることを確認してください。数式はフィルターの変更に自動で対応し、最新の合計や件数をリアルタイムで表示します。「Nelly」以外の条件を使用する場合は、必要に応じて単語を置き換えてください。
VBA コード – カスタムマクロでフィルターと条件に基づき自動的に表示されているセルのみをカウントまたは合計する
マクロに慣れているユーザーにとって、VBA は条件を任意に含めつつ表示されているセルのみをカウントまたは合計する柔軟な手段を提供します。これは、フィルターが頻繁に変更される場合やこれらの計算を自動化したい場合に非常に便利です。数式とは異なり、マクロは大規模なデータセットを素早く処理でき、特定のニーズに合わせて動作をカスタマイズすることも可能です。
適用可能なシナリオ:標準の数式では直接サポートされていないカスタム計算を、大規模なフィルター済みテーブルで実行する必要がある方に最適です。自動化と汎用性という大きなメリットがありますが、初期設定が必要なことやマクロを有効化しなければならない点はデメリットとして挙げられます。
注意事項:VBA スクリプトを実行する前に、必ず作業内容を保存してください。マクロはデスクトップ版Excel でのみご利用いただけます。Web 版やモバイル版ではご利用いただけません。
1。「開発」タブをクリックし、開発者ツール > Visual Basic をクリックします。開いたMicrosoft Visual Basic for Applications ウィンドウで、挿入 > 標準モジュールをクリックし、モジュール パネルに次のコードを貼り付けます。
Sub SumOrCountVisibleCellsWithCriteria()
Dim CriteriaCol As Range
Dim DataCol As Range
Dim Criteria As String
Dim Total As Double
Dim Count As Long
Dim i As Integer
Dim LastRow As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set CriteriaCol = Application.InputBox("Select criteria column (e.g. B6:B19)", xTitleId, Type:=8)
Set DataCol = Application.InputBox("Select data/sum column (for sum, e.g. C6:C19; same as criteria for count)", xTitleId, Type:=8)
Criteria = Application.InputBox("Enter criteria (e.g. Nelly)", xTitleId, "", Type:=2)
Total = 0
Count = 0
LastRow = CriteriaCol.Rows.Count
For i = 1 To LastRow
If Not CriteriaCol.Rows(i).EntireRow.Hidden Then
If CriteriaCol.Cells(i, 1).Value = Criteria Then
Total = Total + DataCol.Cells(i, 1).Value
Count = Count + 1
End If
End If
Next i
MsgBox "Sum: " & Total & vbCrLf & "Count: " & Count, vbInformation, xTitleId
End Sub 2。「実行」ボタンをクリックしてマクロを実行します。
ダイアログボックスが表示され、条件列と合計/カウント列の選択、および目的の条件(例:名前)の指定を求められます。完了すると、マクロは指定された条件に一致する表示中のセルの合計と件数を表示します。
ヒント:このマクロは、表示中のフィルター済みデータに対してカウントと合計の両方を実行します。CriteriaColおよびDataColの選択を変更すれば、さまざまな分析ニーズに柔軟に対応できます。ただし、選択した列がフィルター設定と一致していることを必ず確認してください。合計ではなくカウントのみを行いたい場合は、両方の入力に同じ範囲を指定してください。
トラブルシューティング:実行時エラーが発生した場合は、選択した範囲が同じサイズであることを確認し、条件がセル内のテキストと完全に一致しているかご確認ください。大規模なデータセットではパフォーマンスが低下する可能性があるため、マクロ実行前に必要な行だけにフィルターを絞ることをおすすめします。
PivotTable – PivotTable を使用して、条件を含むフィルター済みデータを対話的に集計(カウント/合計)する
PivotTable は、フィルター済み結果を含む大量のデータを要約するための多機能で対話的なExcel ツールです。名前やカテゴリなどの条件に基づく簡単なグループ化、カウント、合計が可能で、内蔵のフィルターにより表示するデータを素早く切り替えられます。
適用シナリオ:動的な集計が必要なとき、さまざまなフィールドで柔軟に集計したいとき、または条件を変更して結果をインタラクティブに探索したいときに最適です。直感的な操作とドラッグ&ドロップによる即時再計算が、大きな利点です。
使用方法:
1。フィルターをかけたデータ範囲全体(ヘッダーを含む)を選択し、分析対象のすべての列が含まれるようにしてください。
2。「挿入」>「PivotTable」をクリックします。ダイアログボックスでテーブル/範囲が正しいことを確認し、PivotTable の配置先(新規ワークシートまたは既存のワークシート)を選択してください。
3。PivotTable のフィールド一覧で、条件フィールド(例:「氏名」)を行エリアにドラッグし、集計対象フィールド(例:「注文金額」)を値エリアにドラッグします。デフォルトでは合計で集計されますが、クリックすればカウントやその他の集計方法に簡単に切り替えられます。
4。PivotTable の組み込みフィルタードロップダウンを使えば、「ネリー」など特定の項目だけを表示したり、複数の条件を組み合わせて関連データをピンポイントで絞り込んだりできます。
5。表示されている条件に基づく合計および/または件数が、PivotTable に即座に反映されます。フィールドの並べ替えや追加フィルターの適用はもちろん、読みやすさを高めるための PivotTable の書式設定も自由自在です。
ヒント:PivotTable はワークシートのフィルターには直接反応せず、独自のフィルター機能を備えており、より強力で柔軟性に優れています。高度な分析には、スライサーや追加の計算フィールドをご活用ください。ソースデータを更新した後は、PivotTable も忘れずに更新しましょう。
トラブルシューティング:結果が期待と異なる場合は、まずフィールドの選択を確認し、ソース範囲にすべての関連データが含まれていることをご確認ください。また、データに明確なヘッダーが設定されていない場合は、PivotTable を作成する前にヘッダーを挿入してください。
まとめと提案:このチュートリアルで紹介した各ソリューションは、それぞれ特定のニーズに最適です。フィルター済みデータの簡単な集計には SUBTOTAL 関数または拡張機能を、条件に基づく結果には高度な数式を、自動化にはマクロを、柔軟性の高い集計とデータ探索には PivotTable をご活用ください。結果の不一致を防ぐため、常にセル参照と条件を再確認しましょう。さらに効率を高めたい場合は、明確なヘッダーと一貫した書式でデータを整えることを強くおすすめします。
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得