A2:A100 の異なる値の数をカウントするには (空白はカウントしません):
=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&""))
@ Ulli SchmidによるWhat is this COUNTIF() formula doing?への回答からコピー :
=SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))
A1:A100 内の一意のセルをカウントします。空白セルと空の文字列 ("") を含むセルは除外されます。
それはどのように行うのですか?例:
A1:A100 = [1, 1, 2, "apple", "peach", "apple", "", "", -, -, -, ...]
then:
A1:A100&"" = ["1", "1", "2", "apple", "peach", "apple", "", "", "", "", "", ...]
したがって、この&""は、空白セル (-) を空の文字列 ("") に変換するために必要です。空白のセルを使用して直接カウントする場合、COUNTIF() は 0 を返します。このトリックを使用すると、"" と - の両方が同じものとしてカウントされます。
COUNTIF(A1:A100,A1:A100) = [2, 2, 1, 2, 1, 2, 94, 94, 0, 0, 0, ...]
but:
COUNTIF(A1:A100,A1:A100&"") = [2, 2, 1, 2, 1, 2, 94, 94, 94, 94, 94, ...]
空白と "" を除くすべての一意のセルの数を取得したい場合は、次のように除算できます。
(A1:A100<>""), which is [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, ...]
中間結果 COUNTIF(A1:A100,A1:A100&"") によって、値を合計します。
SUMPRODUCT((A1:A100<>"")/COUNTIF(A1:A100,A1:A100&""))
= (1/2 + 1/2 + 1/1 + 1/2 + 1/1 + 1/2 + 0/94 + 0/94 + 0/94 + 0/94 + 0/94 + ...)
= 4
COUNTIF(A1:A100,A1:A100)
の代わりにを使用したCOUNTIF(A1:A100,A1:A100&"")
場合、これらの 0/94 の一部は 0/0 になります。ゼロによる除算は許可されていないため、エラーがスローされます。