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

Excel で範囲内の範囲内の一意の値の数を数える

著者Siluvia変更日

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

doc-count-unique-values-in-range-1


Excel で、1 つの列内の指定範囲に含まれる一意の値の数をカウントするにはどうすればよいですか?

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

doc-count-unique-values-in-range-2

汎用数式

=SUMPRODUCT(--(FREQUENCY(MATCH(range,range,0),ROW(range)-ROW(range.firstcell)+1)>0))

=SUMPRODUCT(1/COUNTIF(range,range))

引数

Range:一意の値のみをカウントしたいセル範囲。
Range.firstcell:範囲の最初のセル。

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

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))

doc-count-unique-values-in-range-3

注記:

1) これらの数式では、D3:D16 は一意の値のみをカウントしたいセル範囲、D3 はその範囲の最初のセルです。必要に応じて変更できます。
2) 空のセルが制限された範囲内に存在する場合、最初の数式は#N/A エラーを返し、2 番目の数式は#DIV/0 エラーを返します。

数式の説明

=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)
{6;5;3;0;0;0;0;0;0;0;0;0;0;0}>0:配列内の各数値を0 と比較し、0 より大きい場合は TRUE、それ以外の場合は FALSE を返します。これにより、{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}のような TRUE/FALSE 配列が得られます。
--{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}:この2 つのマイナス記号は「TRUE」を1 に、「FALSE」を0 に変換します。これにより、新しい配列{1;1;1;0;0;0;0;0;0;0;0;0;0;0}が得られます。
SUMPRODUCT({1;1;1;0;0;0;0;0;0;0;0;0;0;0}):SUMPRODUCT 関数は配列内のすべての数値を合計し、最終結果として3 を返します。

=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 を好みの言語でお使いいただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+言語以上をサポートしています!

Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…


Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします

  • 数十もの開いているドキュメントを1 秒で切り替えられます!
  • 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
  • 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
  • Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。