【发布时间】:2014-11-25 07:34:22
【问题描述】:
我有一个单元格范围 A1:A10 包含单个字母或短字符串,如“GEPR”、“GE”等,并且想要计算每个包含 G 的单元格。 我试过了
=IFERROR(IF(FIND("G";A1);1);0)
但这会将 1 写入每一行,并且不会输出包含“G”的单元格的总和。此外,如果我想计算另一个字母(例如“E”),我需要在工作表中留出更多空间。有没有更方便的函数,比如COUNTIF,每个字母只需要一个单元格?
【问题讨论】:
我有一个单元格范围 A1:A10 包含单个字母或短字符串,如“GEPR”、“GE”等,并且想要计算每个包含 G 的单元格。 我试过了
=IFERROR(IF(FIND("G";A1);1);0)
但这会将 1 写入每一行,并且不会输出包含“G”的单元格的总和。此外,如果我想计算另一个字母(例如“E”),我需要在工作表中留出更多空间。有没有更方便的函数,比如COUNTIF,每个字母只需要一个单元格?
【问题讨论】:
您可以将SUMPRODUCT 与FIND 一起使用。
=SUMPRODUCT(--NOT(ISERROR(FIND("G",$A$1:$A$10))))
这基本上计算了A1:A10 中有多少值FIND 函数不返回错误。
【讨论】:
-- 基本上是在说“两次-1”。这用于将NOT 返回的布尔值转换为数值(1 或0)。这是SUMPRODUCT 将值相加而不返回错误所必需的。
--什么都没有发生。你能给我这个文档的链接吗? Google 不理解 excel function NOT 或 excel meaining --NOT :-)
假设您不关心大小写,只需将 COUNTIF 与“通配符”一起使用,例如对于您的范围内包含“G”的单元格数
=COUNTIF(A$1:A$10,"*G*")
如果您想对标准使用单元格引用,例如如果 C2 包含“G”,您可以使用此版本:
=COUNTIF(A$1:A$10,"*"&C2&"*")
【讨论】:
您可以将感兴趣的字母放在第 1 行(盯着 B)和 B2 中并复制:
=SUM(IFERROR(IF(FIND(B$1;$A2:$A11);1);0))
使用 Ctrl+Shift+Enter 输入。
【讨论】: