KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel でフィルタリングされた範囲内の空白セルまたは非空白セルをカウントするには?

著者Xiaoyang変更日

Excel で大規模なデータセットを扱う際、関心のあるデータだけを表示するためにフィルターを使うのは一般的です。フィルターを適用した後、表示された(つまりフィルター済みの)結果の中に、空白セルや非空白セルがそれぞれいくつあるかをさらに分析したい場面がよくあります。Excel には可視セルをカウントする基本機能はありますが、フィルターリスト内の空白セルまたは非空白セルのみを素早く正確にカウントするのは、適切な方法を知らないと意外に難しいものです。こうしたカウントは、データクリーニング、アンケート回答の集計、フィルター済みレポートにおける未入力項目の把握など、さまざまな業務で非常に重要です。本記事では、この課題を解決するための効果的な手法をいくつかご紹介します。数式ベースの方法から VBA ベースのアプローチまで網羅し、多様な実用ニーズにお応えします。さらに、よくあるトラブルの対処法や、各ソリューションを特定のシナリオに最適化するための実践的なヒントもお伝えします。

数式でフィルタリング範囲内の空白セルをカウントする

数式でフィルタリング範囲内の非空白セルをカウントする

VBA コードでフィルタリング範囲内の空白セルまたは非空白セルをカウントする


数式でフィルタリング範囲内の空白セルをカウントする

フィルタリング範囲内で空白セルのみをカウントするには、SUBTOTAL 関数と補助列を組み合わせて使用します。この方法は、フィルターを適用したリストで非表示の行を無視し、指定した列内の可視セルのうち空白のものを正確にカウントしたい場合に最適です。

空白セルのカウント結果を表示したいセルに、次の数式を入力してください:

=SUBTOTAL(3,A2:A20)-SUBTOTAL(3,B2:B20)

数式を入力したら、Enterキーを押してください。すると、フィルター適用済みリスト内の可視の空白セルの数が表示されます。以下のスクリーンショットを例としてご参照ください:

フィルターされた範囲内の空白セルを数えるための数式を使用しているスクリーンショット

説明と使用上のヒント:

  • この数式では、A2:A20を補助列として使用する必要があります。この列には、必ず空白が含まれないことが保証されていなければなりません(たとえば、各行に連番や一意の識別子が入力された列など)。
  • B2:B20は、空白セルをカウントしたい範囲です。
  • SUBTOTAL(3, range) 関数は、指定範囲内で空白でない可視セルの個数を返します。B2:B20の非空白セル数を補助列の合計から引くことで、フィルター適用後の(可視)データに含まれる空白セルの数が求められます。
  • この方法では、フィルター適用後に表示されているセルのみが対象となるため、フィルターで非表示になった行の空白セルはカウントされません。
  • 範囲()A2:A20およびB2:B20)は、実際のデータに合わせて必ず調整してください。補助列(A 列)にはすべての行に値が入力されている必要があります。空白があると、結果が不正確になる可能性があります。

よくある問題とトラブルシューティング:

  • 補助列に非表示または空白の値が含まれていると、空白セルのカウント結果が誤ることがあります。補助列の完全性を必ずご確認ください。
  • 行を追加または削除した際は、数式の範囲も忘れずに調整してください。そうでないと、先頭または末尾のデータが計算対象外になってしまう可能性があります。
  • フィルターが実際に適用されているかご確認ください。適用されていない場合、小計にはすべての行が含まれてしまいます。

数式でフィルタリング範囲内の非空白セルをカウントする

フィルター適用後の列で可視かつ非空白セルの数をカウントするには、Excel のSUBTOTAL 関数を使った簡単な方法があります。この方法は、フィルター適用後に表示されている非空白のエントリだけを正確にカウントし、非表示の行を自動的に無視するので最適です。

このソリューションを使用するには、カウント結果を表示したい空白セルに次の数式を入力してください:

=SUBTOTAL(102,B2:B20)

次に、Enterキーを押してください。すると、Excel は制限された範囲内の可視かつ非空白セルの数を即座に表示します。以下のスクリーンショットの例をご覧ください:

フィルターされた範囲内の非空白セルを数えるための数式を使用しているスクリーンショット

説明と使用上のヒント:

  • ここでは、B2:B20が分析対象の列を表しています。データセットに合わせて、この範囲は適宜調整してください。
  • 102 引数は、SUBTOTAL 関数内で使用され、フィルターで非表示になった行と空白セルを無視して、可視セルのみをカウントします。
  • このソリューションは、単一列の標準的なフィルターリストに最適です。

注意事項:

  • この方法では、「空白」のように見えても空文字列(「」)を返す数式を含むセルはカウントされません。Excel では、こうしたセルは真の空白とは見なされないためです。
  • 結合済みセルや不規則な範囲を使用している場合は、数式の出力結果を正確にご確認ください。
  • 新しい行を追加したりデータを移動したりした際は、必ず範囲を更新してください。

VBA コードでフィルタリング範囲内の空白セルまたは非空白セルをカウントする

非連続範囲や複数列を含むフィルタリング範囲、あるいは柔軟なカスタマイズが求められる高度なシナリオでは、VBA マクロを使って可視セルのみを効率的にループし、空白セルまたは非空白セルを正確にカウントできます。この方法は、複数列にわたる空白/非空白セルのカウントや、数式では簡単に処理できない複雑なデータレイアウトなど、高い柔軟性が求められる場面に特に適しています。

メリットと適用可能なシナリオ:

  • 複数列や非連続範囲に対して、一度の操作で処理できます
  • フィルターへの対応が容易で、可視セルのみを考慮します
  • 1 回の操作で、空白セルと非空白セルのどちらをカウントするかを選択できます
  • 標準的な数式では対応できない場合や、マクロの実行に慣れた上級ユーザー向けに最適です

制限事項:

  • VBA エディターへのアクセスと、マクロの実行許可が必要です
  • カウントロジックでは、空文字列(「」)を返す数式を含むセルを空白と見なします

1。「開発」タブで「Visual Basic」をクリックし、Microsoft Visual Basic for Applicationsエディターを開きます。VBA ウィンドウで「挿入」→「標準モジュール」をクリックして新しいモジュールを作成し、以下のコードをモジュールウィンドウにコピー&ペーストしてください:

Sub CountVisibleBlanksOrNonBlanks()
    Dim rng As Range
    Dim cell As Range
    Dim countBlanks As Long
    Dim countNonBlanks As Long
    Dim resp As Integer
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set rng = Application.Selection
    Set rng = Application.InputBox("Select the filtered range to analyze", xTitleId, rng.Address, Type:=8)
    
    If rng Is Nothing Then Exit Sub
    
    resp = MsgBox("Do you want to count BLANK cells? (Click No to count non-blank cells)", vbYesNo + vbQuestion, xTitleId)
    
    countBlanks = 0
    countNonBlanks = 0
    
    For Each cell In rng.SpecialCells(xlCellTypeVisible)
        If cell.Value = "" Then
            countBlanks = countBlanks + 1
        Else
            countNonBlanks = countNonBlanks + 1
        End If
    Next cell
    
    If resp = vbYes Then
        MsgBox "Number of visible blank cells: " & countBlanks, vbInformation, xTitleId
    Else
        MsgBox "Number of visible non-blank cells: " & countNonBlanks, vbInformation, xTitleId
    End If
End Sub

2。F5 キーを押して、コードを実行しましょう。

  • 対象範囲の選択または確認を求めるプロンプトが表示されます。
  • マクロは、空白セルをカウントするかどうかを尋ねます(「はい」をクリック)。非空白セルをカウントしたい場合は、「いいえ」をクリックしてください。
  • 結果はメッセージボックスに表示され、可視セルのうち空白セルまたは非空白セルの数を示します。

操作のヒントとエラー処理:

  • 範囲に結合セルが含まれていても、マクロは正しくカウントしますが、フィルター適用後のデータに重複やずれがないかご注意ください。
  • マクロを実行する際に有効な範囲が選択されていないと、有効な範囲を選択するよう促されます。
  • 大規模なデータセットでは、マクロの完了まで数秒かかる場合があります。結果を示すメッセージボックスが表示されるまで、しばらくお待ちください。
  • 「セルが見つかりません」というエラーやダイアログが表示された場合は、選択範囲に少なくとも1 つの可視行が含まれており、かつフィルターが有効になっていることをご確認ください。

まとめと推奨事項:日常的な使用では、Excel の数式メソッドがシンプルで迅速、しかも追加設定が不要です。複数列や非連続データの処理、あるいはより高い柔軟性が求められる場合には、VBA ソリューションが非常に優れた適応性を発揮します。マクロを実行する前には、必ず作業内容を保存し、マクロのセキュリティ設定がコードの実行を許可していることを確認してください。


最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

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 アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得