0049

以前、範囲内の一意の値をカウントする方法を学びました。また、範囲から一意の値を抽出する方法も学びました。この記事では、Excelの条件で範囲内の一意の値をカウントする方法を学習します。

一般式

{=SUM(--(FREQUENCY(IF(condition,MATCH(range,range,0)),ROW(range)-ROW(firstCell in range)+1)>0))}

_これは配列数式です。CTRL+ SHIFT + ENTER_を使用してください。条件:一意の値を取得する基準。

範囲:一意の値を取得する範囲。

範囲内のfirstCell:範囲内の最初のセルの参照です。

範囲がA2:A10の場合、それはA2です。

例:

ここに私はこの名前のデータを持っています。対応するクラスは、隣接する列に記載されています。各クラスで一意の名前を数える必要があります。

0050

上記の一般式を使用して、この式をE2に記述します

{=SUM(--(FREQUENCY(IF(B2:B19="Class 1",MATCH(A2:A19,A2:A19,0)),ROW(A2:A19)-ROW(A2)+1)>0))}

上記の数式は、B2:B19 = “Class 1″の条件で、Excel範囲A2:A19の一意の値を返します。

0051

異なるクラスで一意の値を取得するには、基準を変更します。ここでハードコーディングしましたが、セル参照を指定することもできます。範囲をあまり変更したくない場合は、名前付き範囲または範囲の絶対参照を使用します。

どのように機能しますか?

内側から分解してみましょう。

link:/ Tips-if-condition-in-excel [IF](B2:B19 = “Class 1″、 link:/ lookup-formulas-excel-match-function [MATCH](A2:A19、A2 :A19,0))B2:B19 = “クラス1” *:この部分はtrueとfalseの配列を返します。

一致するたびにTRUE。

\ {TRUE; FALSE; TRUE; FALSE; TRUE; TRUE; FALSE…。} link:/ lookup-formulas-excel-match-function [MATCH](A2:A19、A2:A19,0)*:

この部分は、MATCHのプロパティに従って、範囲A2:A19の各値の最初の場所を返します。

\ {1; 2; 1; 4; 5; 4; 1; 8; 9; 1; 2; 1; 4; 5; 4; 1; 8; 9}。

これで、TRUE値ごとに位置が取得され、falseの場合はFALSEが取得されます。したがって、IFステートメント全体に対して\ {1; FALSE; 1; FALSE; 5; 4; FALSE; FALSE; FALSE; FALSE; 2; FALSE; FALSE; 5; FALSE; 1; 8; FALSE}が得られます。

次に周波数部分に移ります。

link:/ statistics-formulas-excel-frequency-function-2 [FREQUENCY]link:/ Tips-if-condition-in-excel [IF](B2:B19 = “Class 1″、 link: / lookup-formulas-excel-match-function [MATCH] `(A2:A19、A2:A19,0))、 link:/ lookup-and-reference-excel-row-function [ROW] (A2:A19 )-`link:/ lookup-and-reference-excel-row-function [ROW] `(A2)+1) link:/ lookup-and-reference-excel-row-function [ROW] `(A2:A19 ):*これは、範囲A2:A19の各セルの行番号を返します。

\ {2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19} link:/ lookup-and-reference-excel- row-function [ROW] `(A2:A19)- link:/ lookup-and-reference-excel-row-function [ROW]`(A2):

次に、各行番号から最初の行番号を引きます。これにより、0から始まるシリアル番号の配列が返されます。

\ {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17} 1から始まるシリアル番号が必要なので、それに1を追加します。

link:/ lookup-and-reference-excel-row-function [ROW](A2:A19)-` link:/ lookup-and-reference-excel-row-function [ROW] `(A2)+1。

これにより、1から始まるシリアル番号の配列が得られます。

\ {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18}これは、条件に基づいて一意のカウントを取得するのに役立ちます。

今、私たちは持っています:

link:/ statistics-formulas-excel-frequency-function-2 [FREQUENCY](\ {1; FALSE; 1; FALSE; 5; 4; FALSE; FALSE; FALSE; FALSE; 2; FALSE; FALSE; 5; FALSE; 1; 8; FALSE}、* \ {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18})

これにより、指定された配列の各数値の頻度が返されます。\ {3; 1; 0; 1; 2; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0ここで、各正の数は、基準が満たされたときに一意の値が発生することを示しています。この配列では、0より大きい値をカウントする必要があります。

そのために、> 0でチェックします。これはTRUEとFALSEを返します。 -(二重二項演算子)を使用してtruefalseを変換します。

link:/ math-and-trig-excel-sum-function [SUM](-(\ {3; 1; 0; 1; 2; 0; 0; 1; 0; 0; 0; 0; 0 ; 0; 0; 0; 0; 0; 0})> 0)これはSUM(\ {1; 1; 0; 1; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0})

そして最後に、基準の範囲内の名前の一意の数を5として取得します。

理解するのは少し複雑ですが、数式評価オプションから確認してください。

複数の基準で一意の値をカウントするには、ブール論理を使用できます:

論理を使用して複数の基準で一意の値をカウントする

{=SUM(--(FREQUENCY(IF(condition1 * Condition2,MATCH(range,range,0)),ROW(range)-ROW(firstCell in range)+1)>0))}

上記の一般式は、複数の条件で、それらすべてが真である場合に一意の値をカウントできます。

またはロジックを使用して複数の基準で一意の値をカウントする

{=SUM(--(FREQUENCY(IF(condition1 + Condition2,MATCH(range,range,0)),ROW(range)-ROW(firstCell in range)+1)>0))}

この一般式は、Orロジックで一意の値をカウントするために使用できます。

つまり、いずれかの条件が真であるかどうかがカウントされます。

そうですね、これは、複数の条件で範囲内の一意の値をカウントする方法です。これは少し複雑ですが、高速です。使い始めると、どのように機能するかがわかります。

このExcel式の記事について疑問がある場合は、以下のコメントセクションでお知らせください。

関連記事:

link:/ lookup-formulas-excel-formula-to-extract-unique-values-from-a-list [リストから一意の値を抽出するExcelの数式]

人気の記事:

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数]

link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]