Excel 在有空格和;以前工作表中的零?

Excel 在有空格和;以前工作表中的零?,excel,Excel,我试图计算工作表B列中唯一名称的数量。列B所在的工作表复制同一工作簿中其他工作表的值。如果上一张工作表上有空白单元格,则在公式所在的工作表上显示为零。名称显示为名称。我目前正在使用{=SUM(1/COUNTIF(B1:B468,B1:B468))}。然而,我不确定这是正确的公式。我试图只计算唯一的名称,并排除空白和零。我已经检查了这里提出的两个类似问题&在谷歌上。我发现他们用空格计算单数,但不是用空格和零。我会这样做: = SUMPRODUCT((B1:B468<>0)*NOT(IS

我试图计算工作表B列中唯一名称的数量。列B所在的工作表复制同一工作簿中其他工作表的值。如果上一张工作表上有空白单元格,则在公式所在的工作表上显示为零。名称显示为名称。我目前正在使用{=SUM(1/COUNTIF(B1:B468,B1:B468))}。然而,我不确定这是正确的公式。我试图只计算唯一的名称,并排除空白和零。我已经检查了这里提出的两个类似问题&在谷歌上。我发现他们用空格计算单数,但不是用空格和零。

我会这样做:

= SUMPRODUCT((B1:B468<>0)*NOT(ISBLANK(B1:B468)))
=SUMPRODUCT((B1:B4680)*非(ISBLANK(B1:B468)))
这将统计单元格范围中所有非空和非零的条目。

我会这样做:

= SUMPRODUCT((B1:B468<>0)*NOT(ISBLANK(B1:B468)))
=SUMPRODUCT((B1:B4680)*非(ISBLANK(B1:B468)))
这将统计单元格范围内所有非空和非零的条目。

通过“计数唯一项”,我假设您不想对同一个值进行两次计数……在这种情况下,请尝试此公式

=SUMPRODUCT((B1:B4680)/COUNTIF(B1:B468,B1:B468和“”)

通过“计算唯一值”,我假设您不想对相同的值进行两次计数……在这种情况下,请尝试此公式


=SUMPRODUCT((B1:B4680)/COUNTIF(B1:B468,B1:B468&“”)
巴里·霍迪尼的解决方案有效,但我认为这将大大提高效率(尽管如果您只有约500条记录,这不是问题):

=总和(如果(频率)(如果(B1:B4680,匹配(B1:B468,B1:B468,0)),行(B1:B468)),1))
通过键入Ctrl+Shift+Enter作为数组公式输入

另外,关于ImaginaryHuman072889的答案,NOT(ISBLANK)测试是多余的。这将做完全相同的事情(尽管正如巴里·胡迪尼指出的那样,不会解释唯一的值)

=SUMPRODUCT(--(B1:B4680))

Barry Houdini的解决方案有效,但我认为这将大大提高效率(尽管如果您只有~500条记录,这不是问题):

=总和(如果(频率)(如果(B1:B4680,匹配(B1:B468,B1:B468,0)),行(B1:B468)),1))
通过键入Ctrl+Shift+Enter作为数组公式输入

另外,关于ImaginaryHuman072889的答案,NOT(ISBLANK)测试是多余的。这将做完全相同的事情(尽管正如巴里·胡迪尼指出的那样,不会解释唯一的值)

=SUMPRODUCT(--(B1:B4680))

您提供的公式很容易理解,我一读就明白了。@FrankM
COUNTIFS
也是一个选项,但我通常更喜欢
SUMPRODUCT
@FrankM,但这不满足问题的“计数唯一性”部分,是吗?我发布了一个答案,表明当范围内出现中断时,你会计算单数吗?我试过使用=SUMPRODUCT((B4:B10,B13:B170)*NOT(ISBLANK(B4:B10,B13:B17)),被告知它太复杂了。最后,我在公式末尾使用了-2,但我知道这并不理想。你提供的公式很容易理解,我一读就明白了。@FrankM
COUNTIFS
也是一个选项,但我通常更喜欢
SUMPRODUCT
@FrankM,但这不能满足问题的“计数唯一性”部分,是吗?我发布了一个答案,表明当范围内出现中断时,你会计算单数吗?我试过使用=SUMPRODUCT((B4:B10,B13:B170)*NOT(ISBLANK(B4:B10,B13:B17)),被告知它太复杂了。我最后使用了-2@公式的结尾,但我知道这并不理想。哈,直到现在我才意识到这部分是多余的。谢谢你指出!哈,直到现在我才意识到那部分是多余的。谢谢你指出!你说得对。最初的公式确实不止一次计算了一些数据。我用了一个CountA公式&这就证明了这一点。这是更好的公式,但仍然很简单。你是对的。最初的公式确实不止一次计算了一些数据。我用了一个CountA公式&这就证明了这一点。这是更好的公式,但仍然很简单。
= SUMPRODUCT(--(B1:B468<>0))