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

Excel で条件に基づいて範囲内の一意の値の数を数える

著者Siluvia変更日

別の列で指定された条件に基づいて一意の値のみをカウントするには、SUM 関数、FREQUENCY 関数、MATCH 関数、ROW 関数を組み合わせた配列数式を使用できます。このステップ・バイ・ステップガイドでは、この数式の中でも特に難解に感じられる使い方を、確実に理解できるよう丁寧にサポートします。

doc-count-unique-with-criteria-1


Excel で条件に基づいて範囲内の一意の値の数をカウントするには?

以下に示す商品テーブルのように、同じ店舗から異なる日付で複数の重複した商品が販売されています。このような場合、店舗 A から販売された商品の一意の件数を取得するには、以下の数式を適用できます。

doc-count-unique-with-criteria-2

汎用数式

{=SUM(--(FREQUENCY(IF(range=criteria,MATCH(vals,vals,0)),ROW(vals)-ROW(vals.firstcell)+1)>0))}

引数

Range(範囲):条件と照合する値を含むセル範囲。
Criteria(条件):範囲内の一意の値の数を数えるする際に基準となる条件。
Vals(値):範囲内の一意の値の数を数える対象のセル範囲。
Vals.firstcell(値の先頭セル):範囲内の一意の値の数を数える対象の範囲の最初のセル。

注:この数式は配列数式として入力する必要があります。正しく適用されると、数式の前後に中括弧が表示されます。

これらの数式はどのように使いますか?

1.結果を表示するための空白セルを選択してください。

2.以下の数式をセルに入力し、Ctrl+Shift+Enterキーを同時に押して、結果を表示させましょう。

=SUM(--(FREQUENCY(IF(E3:E16=H3,MATCH(D3:D16,D3:D16,0)),ROW(D3:D16)-ROW(D3)+1)>0))

doc-count-unique-with-criteria-3

注意事項:この数式では、E3:E16 は条件と照合する値の範囲、H3 は条件を含むセル、D3:D16 はカウント対象の一意な値の範囲、D3 は D3:D16 の先頭セルです。必要に応じて、これらの参照を変更してください。

この数式の動作原理

{=SUM(--(FREQUENCY(IF(E3:E16=H3,MATCH(D3:D16,D3:D16,0)),ROW(D3:D16)-ROW(D3)+1)>0))}

  • IF(E3:E16=H3,MATCH(D3:D16,D3:D16,0)):
1)E3:E16=H3:ここで範囲 E3:E16 内に値 A が存在するかどうかを確認し、見つかった場合は TRUE、見つからない場合は FALSE を返します。結果として、このような配列{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;}が得られます。
2)MATCH(D3:D16,D3:D16,0):MATCH 関数は範囲 D3:D16 内の各アイテムの最初の位置を取得し、このような配列{1;2;3;2;1;1;3;2;1;1;1;2;3;2}を返します。
  • IF({TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;},{1;2;3;2;1;1;3;2;1;1;1;2;3;2}):配列1 の各要素が TRUE の場合、対応する配列2 の値を取得し、FALSE の場合は FALSE を返します。その結果、新しい配列{1;FALSE;FALSE;2;FALSE;FALSE;3;FALSE;FALSE;1;FALSE;FALSE;3;FALSE}が得られます。
  • ROW(D3:D16)-ROW(D3)+1:ここで ROW 関数は、参照範囲 D3:D16 およびセル D3 の行番号を返し、結果として{3;4;5;6;7;8;9;10;11;12;13;14;15;16}-{3}+1 が得られます。
  • 配列内の各数値から3 を引き、その後1 を加算すると、最終的に{1;2;3;4;5;6;7;8;9;10;11;12;13;14}が得られます。
  • FREQUENCY({1;FALSE;FALSE;2;FALSE;FALSE;3;FALSE;FALSE;1;FALSE;FALSE;3;FALSE},{1;2;3;4;5;6;7;8;9;10;11;12;13;14}):この FREQUENCY 関数は、指定された配列内で各数値が出現する回数を返します:{2;1;2;0;0;0;0;0;0;0;0;0;0;0}。
  • =SUM(--({2;1;2;0;0;0;0;0;0;0;0;0;0;0}>0)):
1){2;1;2;0;0;0;0;0;0;0;0;0;0;0}>0:配列内の各数値を0 と比較し、0 より大きい場合は TRUE、そうでない場合は FALSE を返します。結果として、このような TRUE/FALSE 配列{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}が得られます。
2)--{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}:この二重マイナス記号により、「TRUE」は1 に、「FALSE」は0 に変換されます。結果として、新しい配列{1;1;1;0;0;0;0;0;0;0;0;0;0;0}が得られます。
3)SUM{1;1;1;0;0;0;0;0;0;0;0;0;0;0}:SUM 関数は配列内のすべての数値を合計し、最終結果として3 を返します。

関連関数

Excel SUM 関数
Excel の SUM 関数を使えば、簡単に値を合計できます。

Excel FREQUENCY 関数
Excel の FREQUENCY 関数は、指定した範囲内で各値がどのくらいの頻度で出現するかを計算し、縦方向の数値配列として結果を返します。

Excel IF 関数
Excel の IF 関数は、シンプルな論理テストを実行し、その結果が TRUE なら指定した値を、FALSE なら別の値を返します。

Excel MATCH 関数
Excel の MATCH 関数は、セル範囲内で特定の値を検索し、その値の相対位置を返します。

Excel ROW 関数
Excel の ROW 関数は、指定した参照セルの行番号を返します。


関連数式

フィルター済みリストで表示されている行数をカウントする
このチュートリアルでは、Excel の SUBTOTAL 関数を使って、フィルター済みリストに表示されている行数を簡単にカウントする方法をご紹介します。

範囲内の
このチュートリアルでは、Excel で指定された数式を使ってリスト内の重複を除外し、一意の値だけをカウントする方法をご紹介します。

条件に基づいて表示されている行をカウントする
このチュートリアルでは、条件に基づいて表示されている行を正確にカウントするための詳しい手順をご紹介します。

非連続範囲で COUNTIF を使用する
このステップ・バイ・ステップガイドでは、Excel で非連続な範囲に 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 のような効率的なタブ機能をもたらします。