答案1
以下是要点:
- range 重复了?这不是多余吗?
COUNTIF 需要范围和“if”条件。范围重复,因为第一个提供范围,第二个提供条件。这会将范围中的每个单元格与相同的值集合进行比较,并计算匹配项。请注意,使用此结构需要将其作为数组处理,因为您使用的是 IF 条件数组,而不是单个目标。
以下是一个例子。假设您的数据如下所示,并且您想要查找唯一值的数量:
当您使用与条件列表相同的数据时,两个数组看起来像这样(忽略单元格位置,这只是为了说明):
COUNTIF 遍历数据列表,从horse
A2 开始。它horse
与条件列表(此图中为 B2:B7)中的所有值进行比较,并计数 3 个匹配项。
然后它dog
与条件列表进行比较并找到 1 个匹配项。然后cat
,和找到 2 个匹配项。然后horse
在 A5 中,和找到 3 个匹配项。依此类推,遍历整个列表。结果计数如下所示:
出现horse
3 次。每次它都会在条件列表中找到所有三个匹配项。同样,cat
出现两次,每次它都会在条件列表中找到两个匹配项。
- 取倒数?
每当单元格有匹配项时,就会对其进行计数。因此,任何重复的值都会被多次计数。倒数将每个计数结果转换为分数。如果某个值只出现一次,则计数为 1,而倒数将为 1。如果某个值出现“N”次,则结果数组将包含 N 个匹配项计数的 N 次重复。倒数将其转换为 1/N 的 N 次重复。倒数如下所示:
将它们相加后,每个值的倒数总和为 1,这就是您想要的该唯一值的数量。将倒数相加可得出总计3
,即数据中唯一值的数量。
- 和?
如果您使用数组公式(使用Ctrl- Shift-Enter而不是进行确认Enter),则会创建一个结果数组,您可以使用 SUM 对其进行求和。总和将单个计数和多个小数计数相加,以产生唯一值的净计数。
您可以使用 SUMPRODUCT 和普通公式来代替 SUM 和数组公式。SUMPRODUCT 无需数组公式即可处理数组数据。
这里有几个额外的解释,并附有显示内部数组值的示例。 https://www.excel-easy.com/examples/count-unique-values.html演示如何使用带有数组公式的 SUM。 https://exceljet.net/formula/count-unique-values-in-a-range-with-countif演示如何使用 SUMPRODUCT 与普通公式。