Excel で特定の値を含む行の数をカウントする
Excel ワークシートで特定の値を持つセルの数をカウントするのは簡単ですが、その値を含む「行」の数を取得するのはやや複雑です。こうしたケースでは、SUM 関数、MMULT 関数、TRANSPOSE 関数、および COLUMN 関数を組み合わせた高度な数式が活用できます。本チュートリアルでは、Excel でこのタスクを効率的に処理するための数式の作り方を詳しく解説します。

特定の値を含む行の数をカウントする
たとえば、ワークシートに値の範囲があり、以下のスクリーンショットのように指定値「300」を含む行の数をカウントしたい場合があります。

特定の値を含む行の数を取得する一般的な構文は、次のとおりです。
{=SUM(–(MMULT(–(data=X),TRANSPOSE(COLUMN(data)))>0))}
Array formula, should press Ctrl + Shift + Enter keys together.
Array formula, should press Ctrl + Shift + Enter keys together.
- data 特定の値を含むかどうかを確認するセル範囲です。
- X:行数をカウントする際に使用する特定の値です。
1。結果を表示したい空白セルに、以下の数式を入力またはコピーしてください。
=SUM(--(MMULT(--($A$2:$C$12=300),TRANSPOSE(COLUMN($A$2:$C$12)))>0))
2。次に、Ctrl + Shift + Enterキーを同時に押して、正しい結果を取得してください(スクリーンショットを参照)。

数式の説明:
=SUM(--(MMULT(--($A$2:$C$12=300),TRANSPOSE(COLUMN($A$2:$C$12)))>0))
- --$A$2:$C$12=300:この数式は、範囲 A2:C12 内に値「300」が含まれているかどうかをチェックし、TRUE と FALSE からなる配列を返します。先頭のダブルマイナス(--)は、論理値を数値に変換する役割を果たし、TRUE を 1 に、FALSE を 0 に置き換えます。その結果、次のような 11 行 × 3 列の配列が得られます:{0,0,0;1,0,0;0,0,0;0,1,1;0,0,0;0,1,0;0,0,0;1,0,0;0,0,1;0,0,0;1,1,1}。この配列は、MMULT 関数の array1 引数として使用されます。
- TRANSPOSE(COLUMN($A$2:$C$12)):ここで COLUMN 関数は、範囲 A2:C12 の列番号を取得し、{1,2,3}のような3 列の配列を返します。その後、TRANSPOSE 関数がこの配列を{1;2;3}という3 行の配列に変換し、MMULT 関数内の array2 として機能します。
- MMULT(--($A$2:$C$12=「Joanna」),TRANSPOSE(COLUMN($A[[PH_39]]:$C[[PH_38]]))):この MMULT 関数は上記2 つの配列の行列積を計算し、次のような結果を返します:{0;1;0;5;0;2;0;1;3;0;6}。
- SUM(--(MMULT(--($A$2:$C$12=「Joanna」),TRANSPOSE(COLUMN($A[[PH_67]]:$C[[PH_66]])))>0))= SUM(--{0;1;0;5;0;2;0;1;3;0;6}>0):まず、配列内で0 より大きい値をチェックします。0 より大きい値は TRUE、そうでない値(0 以下)は FALSE になります。その後、ダブルマイナス(--)によって TRUE と FALSE がそれぞれ1 と0 に強制変換され、次のような配列が得られます:SUM({0;1;0;1;0;1;0;1;1;0;1})。最後に、SUM 関数がこの配列の値を合計し、結果として6 を返します。
ヒント:
ワークシートで特定のテキストを含む行の数をカウントしたい場合は、以下の数式をご活用ください。合計カウントを取得するには、Ctrl + Shift + Enterキーを同時に押すのをお忘れなく!
=SUM(--(MMULT(--(ISNUMBER(SEARCH(「Joanna」,A2:C12))),TRANSPOSE(COLUMN($A$2:$C$12)))>0))

使用した関連関数:
- SUM:
- Excel の SUM 関数は、指定された値の合計をすばやく計算して返します。
- MMULT:
- Excel の MMULT 関数は、2 つの配列の行列積を計算して返します。
- TRANSPOSE:
- TRANSPOSE 関数は、指定したセル範囲に基づき、配列の向きを変えて新しい配列を返します。
- COLUMN:
- COLUMN 関数は、その数式が入力されている列の番号、または指定した参照の列番号を返します。
関連記事:
- 内部条件を満たす行をカウントする
- 今年と昨年の製品売上レポートがあり、今年の売上が昨年より大きい製品、または今年の売上が昨年より小さい製品を、以下スクリーンショットのようにカウントしたい場合があります。通常は、2 年間の売上差を計算するためのヘルパー列を追加し、COUNTIF 関数で結果を取得できます。しかし、本記事では、ヘルパー列を使わずに直接結果を得るための SUMPRODUCT 関数をご紹介します。
- 複数の条件を満たす行をカウントする
- 範囲内の行数を複数の条件に基づいてカウントする際、その一部が行レベルで動作する論理テストに依存しているなら、Excel の SUMPRODUCT 関数が非常に役立ちます。
- 複数の値のいずれかと等しいセルの数をカウントする
- A 列に製品リストがあると仮定します。ここで、C4:C6 の範囲に記載された特定の製品「Apple」「Grape」「Lemon」の合計数を、A 列から下のスクリーンショットのように取得したいとします。通常、Excel では単純な COUNTIF 関数や COUNTIFS 関数だけではこのシナリオに対応できません。本記事では、SUMPRODUCT 関数と COUNTIF 関数を組み合わせて、この作業を素早く簡単に解決する方法をご紹介します。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools を好みの言語でお使いいただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+言語以上をサポートしています!
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。