Excelの基準に基づいて一意の数値をカウントします
Excelワークシートでは、特定の条件に基づいて一意の数値の数をカウントする問題が発生する場合があります。 たとえば、以下のスクリーンショットに示すように、レポートから製品「Tシャツ」の一意の数量値をカウントするにはどうすればよいですか? この記事では、Excelでこのタスクを実行するためのいくつかの数式を示します。
Excel 2019、2016以前の基準に基づいて一意の数値をカウントします
Excel 2019以前のバージョンでは、SUM、FREQUENCY、およびIF関数を組み合わせて、基準に基づいて一意の値をカウントするための数式を作成できます。一般的な構文は次のとおりです。
Array formula, should press Ctrl + Shift + Enter keys together.
- criteria_range:指定した基準に一致するセルの範囲。
- criteria:一意の値をカウントする条件。
- range:カウントされる一意の値を持つセルの範囲。
以下の数式を空白のセルに適用して、を押してください Ctrl + Shift + Enter 正しい結果を得るためのキー。スクリーンショットを参照してください。
式の説明:
=SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))
- IF(A2:A12=E2,C2:C12):このIF関数は、列Aの製品が「Tシャツ」の場合に列Cの値を返し、結果は次のような配列になります。{FALSE; 300; 500; FALSE; 400; FALSE; 300; FALSE; FALSE; FALSE; 350}。
- FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)= FREQUENCY({FALSE;300;500;FALSE;400;FALSE;300;FALSE;FALSE;FALSE;350},{200;300;500;350;400;450;300;550;200;260;350}):FREQUENCE関数は、配列リスト内の各数値をカウントし、結果を次のように返すために使用されます:{0; 2; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0} 。
- --(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0)=--({0;2;1;1;1;0;0;0;0;0;0;0}>0):配列の各値が0より大きいかどうかをテストし、結果を次のように取得します:{FALSE; TRUE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE}。 次に、二重否定記号はTRUEとFALSEを1と0に変換し、{0; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0}のような配列を返します。
- SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))=SUM({0;1;1;1;1;0;0;0;0;0;0;0}):最後に、SUM関数を使用してこれらの値を合計し、総数を取得します:4。
ヒント:
複数の条件に基づいて一意の値をカウントする場合は、*文字を使用して数式に他の基準を追加する必要があります。
Excel365の基準に基づいて一意の数値をカウントします
Excel 365では、ROWS、UNIQUE、およびFILTER関数の組み合わせにより、基準に基づいて一意の数値をカウントできます。一般的な構文は次のとおりです。
- range:カウントされる一意の値を持つセルの範囲。
- criteria_range:指定した基準に一致するセルの範囲。
- criteria:一意の値をカウントする条件。
次の数式をコピーするかセルに入力して、を押してください 入力します 結果を返すためのキー。スクリーンショットを参照してください。
式の説明:
=ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))
- A2:A12 = E2:この式は、セルE2の値がA2:A12の範囲にあるかどうかを確認し、次の結果を取得します:{FALSE; TRUE; TRUE; FALSE; TRUE; FALSE; TRUE; FALSE; FALSE; FALSE; TRUE}。
- FILTER(C2:C12,A2:A12=E2):FREQUENCE関数は、配列リスト内の各数値をカウントし、結果を次のように返すために使用されます:{0; 2; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0} 。
- UNIQUE(FILTER(C2:C12,A2:A12=E2))=UNIQUE({300;500;400;300;350}):ここでは、UNIQUE関数を使用して、リスト配列から一意の値を抽出し、次の結果を取得します:{300; 500; 400; 350}。
- ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))=ROWS({300;500;400;350}):ROWS関数は、セル範囲または配列に基づいて行数を返すため、結果は次のようになります。
ヒント:
1.一致した値がデータ範囲に存在しない場合、エラー値が表示されます。エラー値を0に置き換えるには、次の式を適用してください。
2.複数の条件に基づいて一意の値をカウントするには、次のような*文字を使用して数式に他の基準を追加する必要があります。
使用される相対関数:
- 和:
- Excel SUM関数は、指定された値の合計を返します。
- 周波数:
- FREQUENCY関数は、値の範囲内で値が発生する頻度を計算し、数値の垂直配列を返します。
- ロウズ:
- ROWS関数は、指定された参照または配列の行数を返します。
- ユニーク:
- UNIQUE関数は、リストまたは範囲内の一意の値のリストを返します。
- フィルタ:
- FILTER関数は、定義した基準に基づいてデータの範囲をフィルタリングするのに役立ちます。
その他の記事:
- 列内の一意の数値または日付をカウントする
- いくつかの重複を含む数値のリストがあるとすると、次に、一意の値の数をカウントするか、以下のスクリーンショットに示すように、値がリストにXNUMX回だけ表示されます。 この記事では、Excelでこのタスクをすばやく簡単に解決するためのいくつかの便利な数式について説明します。
- XNUMXつの列間のすべての一致/重複をカウントします
- XNUMX列のデータを比較し、XNUMX列のすべての一致または重複をカウントすることは、私たちのほとんどにとって一般的なタスクです。 たとえば、名前のXNUMXつの列があり、一部の名前はXNUMX番目とXNUMX番目の列の両方に表示されます。次に、次のスクリーンショットに示すように、XNUMXつの列の間で一致したすべての名前(XNUMXつの列内の任意の場所にある一致)をカウントします。このチュートリアルExcelでこの目標を達成するためのいくつかの式を紹介します。
- セルのカウント数が多くの値のXNUMXつに等しい
- 列Aに製品のリストがあるとすると、次のスクリーンショットに示すように、列Aから範囲C4:C6にリストされているApple、Grape、Lemonの特定の製品の総数を取得したいとします。 通常、Excelでは、単純なCOUNTIF関数とCOUNTIFS関数はこのシナリオでは機能しません。 この記事では、SUMPRODUCT関数とCOUNTIF関数を組み合わせてこのジョブをすばやく簡単に解決する方法について説明します。
最高のオフィス生産性ツール
Kutools forExcel-群衆から目立つのに役立ちます
毎日の仕事を迅速かつ完璧に完了させたいですか? Kutools for Excel は、300 の強力な高度な機能 (ワークブックの結合、色による合計、セルの内容の分割、日付の変換など) を提供し、80% の時間を節約します。
- 1500 の作業シナリオ用に設計されており、80% の Excel の問題を解決するのに役立ちます。
- 毎日何千ものキーボードとマウスのクリックを減らし、疲れた目と手を和らげます。
- 3分でExcelのエキスパートになります。 面倒な数式やVBAコードを覚えておく必要はもうありません。
- 30日間無制限の無料トライアル。 60日間の返金保証。 2年間の無料アップグレードとサポート。

Officeタブ-MicrosoftOffice(Excelを含む)でタブ付きの読み取りと編集を有効にする
- 数十の開いているドキュメントを切り替えるのにXNUMX秒!
- マウスの手に別れを告げて、毎日何百ものマウスクリックを減らしてください。
- 複数のドキュメントを表示および編集する際の生産性が 50% 向上します。
- Chrome、Firefox、新しいInternet Explorerと同じように、効率的なタブをOffice(Excelを含む)にもたらします。
