基準をExcelでユニークな値をカウントする方法?
以前、範囲内の一意の値をカウントする方法を学びました。また、範囲から一意の値を抽出する方法も学びました。この記事では、Excelの条件で範囲内の一意の値をカウントする方法を学習します。
一般式
{=SUM(--(FREQUENCY(IF(condition,MATCH(range,range,0)),ROW(range)-ROW(firstCell in range)+1)>0))}
_これは配列数式です。CTRL+ SHIFT + ENTER_を使用してください。条件:一意の値を取得する基準。
範囲:一意の値を取得する範囲。
範囲内のfirstCell:範囲内の最初のセルの参照です。
範囲がA2:A10の場合、それはA2です。
例:
ここに私はこの名前のデータを持っています。対応するクラスは、隣接する列に記載されています。各クラスで一意の名前を数える必要があります。
上記の一般式を使用して、この式を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の一意の値を返します。
異なるクラスで一意の値を取得するには、基準を変更します。ここでハードコーディングしましたが、セル参照を指定することもできます。範囲をあまり変更したくない場合は、名前付き範囲または範囲の絶対参照を使用します。
どのように機能しますか?
内側から分解してみましょう。
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式の記事について疑問がある場合は、以下のコメントセクションでお知らせください。