Excel计数跨列范围指定的值,但每列仅计算一次

Excel计数跨列范围指定的值,但每列仅计算一次,excel,excel-formula,Excel,Excel Formula,我一直在尝试计算一个值在一个范围内出现的次数,但每列只出现一次 使用下面的示例数据,我希望得到的结果显示在结束单元格中。使用=COUNTIFA3:G5,J3会在每次出现名称时进行计数,在某些日子会导致双重升级 我如何才能让它在每列中计算每个名称一次,但在多个列中,实际数据中一年中的每一天都有一列 感谢您在A7中输入: 把这个复制到G7。然后在H7中输入: 在A7中输入: 把这个复制到G7。然后在H7中输入: 最后一个问题是“计算名称出现在多少列中” 在这种情况下,您需要在工作表的顶部或底部隐藏一

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

使用下面的示例数据,我希望得到的结果显示在结束单元格中。使用=COUNTIFA3:G5,J3会在每次出现名称时进行计数,在某些日子会导致双重升级

我如何才能让它在每列中计算每个名称一次,但在多个列中,实际数据中一年中的每一天都有一列

感谢您在A7中输入:

把这个复制到G7。然后在H7中输入:

在A7中输入:

把这个复制到G7。然后在H7中输入:


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

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

A1中的公式为=CONCATA3:A5,B1为=CONCATB3:B5,以此类推,范围包括第3行到第5行。CONCAT将文本字符串粘在一起。 b进行计数的单元格为=COUNTIFA1:G1,*J3*。这样做的目的是检查A1:G1中的哪些单元格包含J3以及其他内容


瞧,问题解决了。

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

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

A1中的公式为=CONCATA3:A5,B1为=CONCATB3:B5,以此类推,范围包括第3行到第5行。CONCAT将文本字符串粘在一起。 b进行计数的单元格为=COUNTIFA1:G1,*J3*。这样做的目的是检查A1:G1中的哪些单元格包含J3以及其他内容


瞧,问题解决了。

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

=SUM(--(MMULT(TRANSPOSE(--($A$2:$G$4=I2)),ROW($A$1:$A$3)^0)>0))
按ctrl+shift+enter确认编辑后的数组公式


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

=SUM(--(MMULT(TRANSPOSE(--($A$2:$G$4=I2)),ROW($A$1:$A$3)^0)>0))
按ctrl+shift+enter确认编辑后的数组公式


@Garysstudent的答案同样有效——这是另一种分别对每一列进行总结,然后进行总体计算的方法。@Garysstudent的答案同样有效——这是另一种分别对每一列进行总结,然后进行总体计算的方法。太棒了。这是完美的,我从来没有想过这样做。非常感谢。太棒了。这是完美的,我从来没有想过这样做。非常感谢。哇。太棒了。这可能是一个愚蠢的问题,但为什么这一排人的活动范围比人群的活动范围要短呢?我运行了一个测试,将该行作为完整列表的行,它似乎可以工作,但只是想检查一下。@deaddingo这是因为MMULT函数要求第二个范围的行数与第一个范围的列数相同。转置范围A2:G4变为3列x7行后,第二个参数必须分别有三行。哇。太棒了。这可能是一个愚蠢的问题,但为什么这一排人的活动范围比人群的活动范围要短呢?我运行了一个测试,将该行作为完整列表的行,它似乎可以工作,但只是想检查一下。@deaddingo这是因为MMULT函数要求第二个范围的行数与第一个范围的列数相同。在转置范围A2:G4变为3列x7行之后,第二个参数必须分别有三行。
=SUM(--(MMULT(TRANSPOSE(--($A$2:$G$4=I2)),ROW($A$1:$A$3)^0)>0))