如果列B中的ID重复,如何在列C中计算"是"的次数

Mow*_*gli 3 excel vba excel-vba excel-formula excel-2010

我需要帮助在C列中计算是,但只有在B列中的ID重复时才计算一次

输出样本.对于以下计数的样本应为6.

这是dropbox文件链接. Dropbox文件链接

在此输入图像描述

我可以通过if和else条件使用公式来做到这一点,但我希望有人可以使用单行公式提出更好的方法.

细胞F2中的当前解决方案

=IF(B2<>B1,IF(C2="Yes","1",""),IF(B2=B1,IF(F1="1","",IF(B2=#REF!,"",""))))
Run Code Online (Sandbox Code Playgroud)

在单元格F3和向下

=IF(B3<>B2,IF(C3="Yes","1",""),IF(B3=B2,IF(F2="1","",IF(B3=B1,"",""))))
Run Code Online (Sandbox Code Playgroud)

然后我只计算所有的并得到总数1.

=countif(F2:F159,"1")
Run Code Online (Sandbox Code Playgroud)

bar*_*ini 5

您可以在链接中使用与我之前答案类似的方法,即在您的Dropbox示例中使用单元格引用

=SUM(IF(FREQUENCY(IF(I2:I14="Yes",H2:H14),H2:H14),1))

确认 CTRL+SHIFT+ENTER

H2:H14必须是数字数据

一般来说,假设范围4是数字,您可以将此公式用于最多3个条件

=SUM(IF(FREQUENCY(IF((Range1="x")*(Range2="y")*(Range3="z"),Range4),Range4),1))

可以根据需要添加或删除条件

  • 频率返回一个"数组" - 如果你把那个公式放在一个单元格中,你可能只会看到数组的第一个值 - 尝试用公式选择单元格,然后按F2然后按F9 - 你应该能够看到整数组,例如`{0; 0; 0; 0; 1; 2; 0; 0}` - SUM(IF部分为每个值> 0返回1,因此在该示例中结果为2 (2认同)