Excel计算值在列中显示的次数(如果该行唯一)

时间:2014-02-20 14:58:24

标签: excel excel-formula

所以我有一个Excel电子表格,如下所示:

ID  A   B   C   D
1   #   £   £   £
2   #   £   £   £
3   £   #   #   #
4   £   #   #   #
5   #   £   #   #
6   £   £   £   #
7   £   #   #   #
8   #   £   £   £
9   £   £   £   £
10  #   £   #   £

并且,对于每列AD,我想计算#个条目的数量 - 但是只要在同一行中没有其他#条目 - 所以,例如,列A有5#,但只有3个很独特。列B和C没有唯一的条目,列D有1个唯一的#。

要计算哈希值,我会使用CountIf,但在比较每一行时我不知道怎么做。

3 个答案:

答案 0 :(得分:2)

我确信你可以用一个sumproduct做到这一点,我仍然在玩这个,但作为一个快速修复,如果你可以使用帮助列,你可以这样做:

  1. E1中,输入以下公式:=COUNTIF($A1:$D1,"#")并将其向下拖动
  2. 在您的测试单元格中
  3. - 说A12,输入以下公式:=SUMPRODUCT(--(A1:A10="#"),--($E$1:$E$10=1))并将其拖到D列。
  4. 这会给你预期的结果3 0 0 1,但我仍然确定有更好的方法....

    希望这会有所帮助!

答案 1 :(得分:2)

在列A中尝试使用此列(对于其他列,将A2:A11="#"更改为B2:B11="#",依此类推):

=SUMPRODUCT((A2:A11="#")*(MMULT(IF(A2:D11="#",1,0),TRANSPOSE(COLUMN($A$2:$D$2)/COLUMN($A$2:$D$2)))=1))

其中A2:D11是您的数组的地址,A2:A11第一列的地址。

注意,因为它是一个数组公式,你应该按 CTRL + SHIFT + ENTER 进行评估。

enter image description here

答案 2 :(得分:1)

您可以在A13中使用此公式复制到D13

=SUMPRODUCT((MMULT((A2:A11="#")*($A2:$D11="#"),{1;1;1;1})=1)+0)

这不需要“数组输入”

{1;1;1;1}部分需要根据您的范围内的列数进行更改 - 这里有四个1,因为您的整个范围是四列。如果您想自动制作该部件,可以切换到这个“数组公式”

=SUM((MMULT((A2:A11="#")*($A2:$D11="#"),TRANSPOSE(COLUMN($A2:$D11)^0))=1)+0)

使用 CTRL + SHIFT + ENTER确认

或其他方式是这样的:

=SUMPRODUCT((A2:A11="#")*(COUNTIF(OFFSET($A2:$D2,ROW(A2:A11)-ROW(A2),0),"#")=1))

所有这些公式应该给出相同的结果