公式用于获取 Excel 中包含值的行总数

公式用于获取 Excel 中包含值的行总数

我有一个包含以下格式的数据的电子表格:

User | Group       | ParentGroup | ID
joe  | US fed grp  |  fed        | 123
bill | dev         |  IT         | 234
jim  | UK fed grp  |  fed        | 345  

我需要一个公式来搜索整个工作表中的 Group 和 ParentGroup 列,并给出包含“fed”的行数

在上面的例子中,公式将返回 2(而不是 4,这是“fed”在整个工作表中出现的次数)。2 是“fed”出现的行数。

我在尝试

=COUNTIF(1:4, "*" & "fed" & "*")

但它返回的是 4 (我想要 2)

答案1

不需要辅助列:

=SUMPRODUCT(--ISNUMBER(SEARCH("fed",Group & ParentGroup)))
  • 组指的是 B2:Bn(其中 n 等于或大于最后一行)
  • ParentGroup 指的是 C2:Cn
  • 组和父组必须大小相同

如果您愿意,您可以用单元格引用替换“fed”。

答案2

单细胞答案:

=COUNTIF(B:C, "*fed*") - COUNTIFS(B:B, "*fed*", C:C, "*fed*")

这将计算包含 的单元格数fed,然后对包含两个 单元格的每行减一fed。这很简单,但扩展性不佳(例如,您有 6 列,并且想要计算fed其中任何一列包含 的行数)


更新:可扩展版本

这真的让我很烦,所以我做了更多的挖掘,并得出了这个数组公式

=SUM(IF(ISNUMBER(SEARCH("fed", B1:B4)) +
        ISNUMBER(SEARCH("fed", C1:C4)),
        1, 0))

重要的提示:这是一个数组公式,因此您需要按CTRL+ ALT+ ENTER,而不是直接ENTER在单元格外键入或单击。您可以判断自己是否操作正确,因为公式会显示{}它周围(如果不这样做,结果将始终为 0)。

+ ISNUMBER(SEARCH("fed", X1:X4))现在,您可以通过向函数中添加另一个来扩展它以包含任意数量的列。您可以使用 指定搜索整个列X:X,其中X是列字母,但根据您的系统,这可能会开始运行缓慢。我在搜索整个列时有明显的延迟,但切换到X1:X100让它感觉瞬间完成。我相信您需要使所有列的范围相同(例如,您不能有B:BC1:C10),但我没有测试它。

答案3

以下是我解决问题的方法。
如果 B 列是 Group,C 列是 ParentGroup,I2 是您要查找的单词,在您的例子中是 fed。
创建另一个名为 FED 的列,输入此公式并将其拉到工作表中。=IF(OR(EXACT(B2;$I$2);EXACT(C2;$I$2));1;0)
这样,即使每行中只有几个“fed”,您也会得到数字 1。
然后对 FED 列求和。
我已上传解决方案。

答案4

=COUNTIFS(B:B,"fed",C:C,"fed")

假设两列的值都是“fed”

相关内容