列内の一意の数値または日付をカウントする
重複を含む数値リストから、一意の値(リスト内で一度しか出現しない値)の個数をカウントしたい場合があります(下記スクリーンショット参照)。本記事では、このタスクをExcel で素早く簡単にこなすための便利な数式をいくつかご紹介します。

Excel 2019、2016 以前のバージョンで列内の一意の数値または日付をカウントする
Excel 2019 および 2016 より前のバージョンをご利用の場合、通常の SUM、FREQUENCY、IF、COUNTIF、ISNUMBER 関数を組み合わせることで、一意の値または一度しか出現しない値の個数を取得できます。
列内の一意の数値または日付をカウントする
リストから一意の数値をカウントするには、SUM 関数と FREQUENCY 関数を組み合わせるのが便利です。一般的な構文は次のとおりです:
- range:範囲内で一意の値の数をカウントする対象となるデータ列です。
結果を出力する空白セルに、次の数式を入力またはコピーし、Enterキーを押して結果を取得してください:

数式の説明:
=SUM(--(FREQUENCY(A2:A12,A2:A12)>0))
- FREQUENCY(A2:A12,A2:A12):FREQUENCY 関数は、リスト A2:A12 内の各数値の出現回数をカウントし、次のような配列を返します:{1;2;0;2;0;1;1;3;0;0;1;0}。この配列の各数値は、対応する値が列内に何回出現したかを示しています。また、配列内の0 は、その数値がすでにデータ範囲内でカウント済みであることを意味します。
- --(FREQUENCY(A2:A12,A2:A12)>0)=--({1;2;0;2;0;1;1;3;0;0;1;0})>0:配列内の各値がゼロと比較され、0 より大きい場合は TRUE、それ以外は FALSE となります。その後、二重マイナス(--)によって TRUE と FALSE がそれぞれ1 と0 に変換され、次のような結果が得られます:{1;1;0;1;0;1;1;1;0;0;1;0}。
- SUM(--(FREQUENCY(A2:A12,A2:A12)>0))=SUM({1;1;0;1;0;1;1;1;0;0;1;0}):最後に、SUM 関数が配列内のすべての値を合計し、結果として7 が得られます。
列内で一度しか出現しない一意の数値または日付をカウントする
リスト内で一度しか出現しない一意の数値をカウントするには、SUM、IF、ISNUMBER、および COUNTIF 関数を組み合わせた数式を作成する必要があります。一般的な構文は次のとおりです:
Array formula, should press Ctrl + Shift + Enter keys together.
- range:範囲内の一意の値の個数をカウントする対象となるデータ列です。
空白セルに以下の数式を入力またはコピーし、Ctrl + Shift + Enterキーを同時に押して正しい結果を取得してください:

数式の説明:
=SUM(IF(ISNUMBER(A2:A12)*COUNTIF(A2:A12,A2:A12)=1,1,0))
- ISNUMBER(A2:A12):この ISNUMBER 関数は、リスト A2:A12 内の各値が数値かどうかをチェックします。セルに数値が含まれている場合は TRUE、そうでない場合は FALSE を返すため、次のような配列が得られます:{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}。
- COUNTIF(A2:A12,A2:A12):COUNTIF 関数は、指定範囲内で各値が何回出現するかをカウントし、次のような結果を返します:{1;2;2;2;2;1;1;3;3;3;1}。
- ISNUMBER(A2:A12)*COUNTIF(A2:A12,A2:A12)= {TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}* {1;2;2;2;2;1;1;3;3;3;1}:この2 つの式を掛け合わせると、次のような結果が得られます:{1;2;2;2;2;1;1;3;3;3;1}。
- IF(ISNUMBER(A2:A12)*COUNTIF(A2:A12,A2:A12)=1,1,0)=IF({1;2;2;2;2;1;1;3;3;3;1}=1,1,0):ここで IF 関数は、配列内の各値が1 と等しいかどうかをチェックします。等しい場合は1 を返し、そうでない場合は0 を返します。その結果は次のようになります:{1;0;0;0;0;1;1;0;0;0;1}。
- SUM(IF(ISNUMBER(A2:A12)*COUNTIF(A2:A12,A2:A12)=1,1,0))=SUM({1;0;0;0;0;1;1;0;0;0;1}):最後に、SUM 関数が配列内の値を合計し、一意の値の個数として4 を返します。
Excel 365 で列内の一意の数値または日付をカウントする
Excel 365 では、便利な新関数「UNIQUE」が登場しました。この関数を COUNT 関数で囲めば、必要なタスクを素早く処理できます。
列内の一意の数値または日付をカウントする
Excel 365 で一意の数値または日付をカウントする一般的な構文は次のとおりです:
- range:範囲内で一意の値の数をカウントする対象となるデータ列です。
空白セルに以下の数式を入力またはコピーし、Enterキーを押して結果を取得してください(スクリーンショット参照):

数式の説明:
=COUNT(UNIQUE(A2:A12))
- UNIQUE(A2:A12):この UNIQUE 関数を使えば、リストから重複を除いた一意の値をすべて抽出でき、次のような配列が得られます:{258;560;774;801;985;990;1569}。
- COUNT(UNIQUE(A2:A12))=COUNT({258;560;774;801;985;990;1569}):この COUNT 関数は数値の個数をカウントし、結果として7 を返します。
列内で一度しか出現しない一意の数値または日付をカウントする
この UNIQUE 関数を使えば、リスト内で一度だけ出現する一意の値を抽出することも可能です。一般的な構文は次のとおりです。
- range:範囲内で一意の値の数をカウントする対象となるデータ列です。
結果を表示したいセルに次の数式を入力またはコピーし、Enterキーを押してください(スクリーンショット参照)。

数式の説明:
=COUNT(UNIQUE(A2:A12,0,1))
- UNIQUE(A2:A12,0,1):この UNIQUE 関数は、リストから一度だけ出現する一意の値を抽出し、次のような配列リストが得られます:{258;801;985;1569}。
- COUNT(UNIQUE(A2:A12,0,1))=COUNT({258;801;985;1569}):この COUNT 関数は数値の個数をカウントし、結果として4 を返します。
ヒント:上記の数式はすべて、列内の重複しない日付をカウントする際にご利用いただけます。
関連する関数:
- SUM:
- Excel の SUM 関数は、指定された値の合計をすばやく計算して返します。
- FREQUENCY:
- FREQUENCY 関数は、指定した範囲内での各値の出現頻度を計算し、縦方向の数値配列として結果を返します。
- ISNUMBER:
- Excel の ISNUMBER 関数は、セルに数値が含まれていると TRUE を、そうでなければ FALSE を返します。
- COUNTIF:
- COUNTIF 関数はExcel の統計関数の一つで、指定した条件に一致するセルの個数をカウントする際に使います。
- COUNT:
- COUNT 関数は、数値を含むセルの個数や、引数リスト内の数値の個数をカウントする際に使用されます。
- UNIQUE:
- UNIQUE 関数は、リストまたは範囲から重複を除いた一意の値を返します。
その他の記事:
- 条件に基づいて一意の数値をカウントする
- Excel ワークシートでは、特定の条件に基づいて一意の数値の個数をカウントしたい場合があります。たとえば、下記スクリーンショットのようなレポートから、「T シャツ」という製品の数量(Qty)に含まれる一意の値をどのようにカウントすればよいでしょうか?この記事では、Excel でこのタスクを実行するための便利な数式をいくつかご紹介します。
- 複数の値のいずれかと一致するセルの個数をカウントする
- A 列に製品リストがあると仮定します。ここで、下記スクリーンショットのように C4:C6 の範囲に記載された特定の製品「Apple」「Grape」「Lemon」の合計個数を A 列から取得したいとします。このようなケースでは、通常のExcel 関数である COUNTIF や COUNTIFS だけでは対応できません。本記事では、SUMPRODUCT 関数と COUNTIF 関数を組み合わせることで、この課題をスピーディーかつ簡単に解決する方法をご紹介します。
- 特定の文字数を含むセルの個数をカウントする
- 下記スクリーンショットのように、セル範囲内で特定の文字数(例:5 文字)を含むセルの個数をカウントしたい場合があります。Excel では、COUNTIF 関数を使えばこの処理を簡単に実行できます。本記事では、セル範囲内で**ちょうど x 文字**を含むセル、または**x 文字以上**を含むセルの個数を取得する方法をご紹介します。
最高の 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 のような効率的なタブ機能をもたらします。