【问题标题】:Excel count number of times a value appears in column, if unique to the rowExcel 计数值出现在列中的次数(如果该行唯一)
【发布时间】:2014-02-21 20:43:51
【问题描述】:

所以我有一个类似这样的 Excel 电子表格:

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

并且,对于每一列 A-D,我想计算 # 条目的数量 - 但仅当同一行中没有其他 # 条目时 - 例如,A 列有 5#,但只有 3 个是独一无二的。 B 列和 C 列没有唯一的条目,D 列有 1 个唯一的#。

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

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    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 来计算它。

    【讨论】:

    • 不错!我以前没有使用过数组公式 - 谢谢 :)
    【解决方案2】:

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

    1. E1中,输入以下公式:=COUNTIF($A1:$D1,"#")并向下拖动
    2. 在您的测试单元格中 - 例如A12,输入以下公式:=SUMPRODUCT(--(A1:A10="#"),--($E$1:$E$10=1)) 并将其拖到 D 列。

    这将为您提供预期的结果3 0 0 1,但我仍然确定有更好的方法....

    希望这会有所帮助!

    【讨论】:

    • 这是一个好的开始,谢谢。在没有帮助列的情况下这样做会使我的电子表格更整洁
    【解决方案3】:

    您可以使用此公式在 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))

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2011-05-12
      • 1970-01-01
      相关资源
      最近更新 更多