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

Excel で、1 つの列内の指定範囲に含まれる一意の値の数をカウントするにはどうすればよいですか?
下のスクリーンショットのような商品テーブルがあると仮定します。「Product」列に含まれる一意の値のみをカウントするには、以下のいずれかの数式をご利用いただけます。

汎用数式
=SUMPRODUCT(--(FREQUENCY(MATCH(range,range,0),ROW(range)-ROW(range.firstcell)+1)>0))
=SUMPRODUCT(1/COUNTIF(range,range))
引数
これらの数式はどのように使いますか?
1.結果を出力する空のセルを選択してください。
2.選択したセルに以下のいずれかの数式を入力し、Enterキーを押してください。
=SUMPRODUCT(--(FREQUENCY(MATCH(D3:D16,D3:D16,0),ROW(D3:D16)-ROW(D3)+1)>0))
=SUMPRODUCT(1/COUNTIF(D3:D16,D3:D16))

注記:
数式の説明
=SUMPRODUCT(--(FREQUENCY(MATCH(D3:D16,D3:D16,0),ROW(D3:D16)-ROW(D3)+1)>0))
- MATCH(D3:D16,D3:D16,0):MATCH 関数は、範囲 D3:D16 内の各項目がその範囲内で初めて出現する位置を返します。値が複数回現れる場合でも、最初に現れた位置が使われるため、結果として{1;2;3;2;1;1;3;2;1;1;1;2;3;2}のような配列が生成されます。
- 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;2;3;2;1;1;3;2;1;1;1;2;3;2},{1;2;3;4;5;6;7;8;9;10;11;12;13;14}):FREQUENCY 関数は、データ配列内で各数値がどれくらいの頻度で出現するかを計算し、結果として次のような数値の配列{6;5;3;0;0;0;0;0;0;0;0;0;0;0}を返します。
- SUMPRODUCT(--{6;5;3;0;0;0;0;0;0;0;0;0;0;0}>0):
=SUMPRODUCT(1/COUNTIF(D3:D16,D3:D16))
- COUNTIF(D3:D16,D3:D16):COUNTIF 関数は、範囲 D3:D16 内の各値がそれぞれ何回出現するかをカウントします。このとき、同じ範囲を条件としても使用するため、結果として{6;5;3;5;6;6;3;5;6;6;6;5;3;5}のような配列が返されます。これは、「Laptop」が6 回、「Projector」が5 回、「Display」が3 回出現していることを示しています。
- 1/{6;5;3;5;6;6;3;5;6;6;6;5;3;5}: 配列内の各数値を1 で割り、{0.166666666666667;0.2;0.333333333333333;0.2;0.166666666666667;0.166666666666667;0.2;
0.333333333333333;0.166666666666667;0.166666666666667;0.166666666666667;0.333333333333333;0.2;
0.333333333333333;}. - SUMPRODUCT({0.166666666666667;0.2;0.333333333333333;0.2;0.166666666666667;0.166666666666667;)
0.2;0.333333333333333;0.166666666666667;0.166666666666667;0.166666666666667;0.333333333333333;0.2;
0.333333333333333;}):その後、SUMPRODUCT 関数が配列内のすべての数値を合計し、最終結果として3 を返します。
関連関数
Excel SUMPRODUCT 関数
Excel の SUMPRODUCT 関数を使えば、2 つ以上の列や配列の要素をそれぞれ掛け合わせ、その積の合計を簡単に求められます。
Excel FREQUENCY 関数
Excel の FREQUENCY 関数は、指定した範囲内で各値がどれくらいの頻度で出現するかを計算し、縦方向の数値配列として結果を返します。
Excel MATCH 関数
Excel の MATCH 関数は、セル範囲内で特定の値を検索し、その値の相対位置を返します。
Excel ROW 関数
Excel の ROW 関数は、指定した参照セルの行番号を返します。
Excel COUNTIF 関数
Excel の COUNTIF 関数は、指定した条件に一致するセルの個数をカウントする際に使います。
関連数式
フィルターされたリスト内の表示行の数をカウントする
このチュートリアルでは、Excel で SUBTOTAL 関数を使ってフィルターされたリストに表示されている行の数を簡単にカウントする方法をご紹介します。
範囲内の一意の値の数を数える(条件付き)
このステップバイステップガイドでは、別の列で指定された条件を満たす一意の値のみをカウントする方法をわかりやすく解説します。
条件付きで表示行をカウントする
このチュートリアルでは、条件付きで表示される行を正確にカウントするための詳しい手順をご紹介します。
非連続範囲で COUNTIF を使用する
このステップ・バイ・ステップガイドでは、Excel で非連続範囲に COUNTIF 関数を適用する方法をわかりやすく解説します。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。