【问题标题】:Excel Count specifc value across range of columns, but only once per columnExcel 计算列范围内的特定值,但每列仅计算一次
【发布时间】:2020-09-07 13:09:22
【问题描述】:

我一直在尝试计算如何计算一个值在一个范围内出现的次数,但每列只出现一次。

使用下面的示例数据,我想要得到的结果显示在最后的单元格中。每次出现一个名字时使用 =COUNTIF(A3:G5,J3) 计数,在某些日子会导致翻倍。

如何让它每列计算每个名称一次,但跨多列(实际数据中一年中的每一天都会有 1 列)

谢谢

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    A7中输入:

    =IF(COUNTIF(A3:A5,$J$3)>0,1,0)
    

    并将其复制到 G7。然后在 H7 中输入:

    =SUM(A7:G7)
    

    【讨论】:

    • 太棒了。这完美地工作,我从来没有想过这样做。非常感谢。
    【解决方案2】:

    您还可以使用单个数组公式计算值:

    =SUM(--(MMULT(TRANSPOSE(--($A$2:$G$4=I2)),ROW($A$1:$A$3)^0)>0))
    

    编辑后的数组公式按ctrl + shift + enter确认

    【讨论】:

    • 哇。太棒了。这可能是一个愚蠢的问题,但为什么 ROW 的范围比人的照明范围更短?我进行了测试,并将 ROW 作为完整列表,它似乎有效,但只是想检查一下。
    • @deaddingo 这是因为MMULT 函数要求第二个范围具有与第一个范围列一样多的行。在TRANSPOSE range A2:G4 变为 3 列 x 7 行后,第二个参数必须分别为 3 行。
    【解决方案3】:

    所以最后一个问题是“计算名称出现在多少列中”?

    在这种情况下,您需要在工作表的顶部或底部隐藏一行,其中包含该列中的所有内容。说它是第 1 行:

    a) A1 中的公式为=CONCAT(A3:A5),B1 为=CONCAT(B3:B5),依此类推(范围涵盖第 3 到第 5 行)。 CONCAT 将文本字符串粘在一起。
    b) 进行计数的单元格将是=COUNTIF(A1:G1, "*J3*")。它的作用是检查 A1:G1 中的哪些单元格包含 J3 等。

    瞧,问题解决了。

    【讨论】:

    • @Garysstudent 的回答同样有效 - 这是另一种单独总结每一列然后进行总计数的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多