【问题标题】:Excel: Find letter in cell range containing strings and count occurranceExcel:在包含字符串的单元格区域中查找字母并计算出现次数
【发布时间】:2014-11-25 07:34:22
【问题描述】:

我有一个单元格范围 A1:A10 包含单个字母或短字符串,如“GEPR”、“GE”等,并且想要计算每个包含 G 的单元格。 我试过了

=IFERROR(IF(FIND("G";A1);1);0)

但这会将 1 写入每一行,并且不会输出包含“G”的单元格的总和。此外,如果我想计算另一个字母(例如“E”),我需要在工作表中留出更多空间。有没有更方便的函数,比如COUNTIF,每个字母只需要一个单元格?

【问题讨论】:

    标签: excel countif


    【解决方案1】:

    您可以将SUMPRODUCTFIND 一起使用。

    =SUMPRODUCT(--NOT(ISERROR(FIND("G",$A$1:$A$10))))
    

    这基本上计算了A1:A10 中有多少值FIND 函数不返回错误。

    【讨论】:

    • 非常感谢。这正是我想要的。您能否解释一下 --NOT 的作用?
    • -- 基本上是在说“两次-1”。这用于将NOT 返回的布尔值转换为数值(10)。这是SUMPRODUCT 将值相加而不返回错误所必需的。
    • 对不起,我不明白。当我删除--什么都没有发生。你能给我这个文档的链接吗? Google 不理解 excel function NOTexcel meaining --NOT :-)
    【解决方案2】:

    假设您不关心大小写,只需将 COUNTIF 与“通配符”一起使用,例如对于您的范围内包含“G”的单元格数

    =COUNTIF(A$1:A$10,"*G*")

    如果您想对标准使用单元格引用,例如如果 C2 包含“G”,您可以使用此版本:

    =COUNTIF(A$1:A$10,"*"&C2&"*")

    【讨论】:

    • 感谢您的建议,但这似乎不适用于 LibreOffice,尽管我已激活正则表达式。
    • 我假设您使用的是 Excel,这可能是 Excel 中的最佳方法 - 我认为 Libre Office 不支持 COUNTIF 中的通配符
    • 至少它能够在具有函数的单元格中使用正则表达式。我尝试了不同的注册。表达式,但没有一个有效。也许这是一个错误。
    【解决方案3】:

    您可以将感兴趣的字母放在第 1 行(盯着 B)和 B2 中并复制:

    =SUM(IFERROR(IF(FIND(B$1;$A2:$A11);1);0))  
    

    使用 Ctrl+Shift+Enter 输入。

    【讨论】:

    • 抱歉,虽然现在只有 4 个 G,但在寻找“G”时我得到了 6。我不知道为什么会这样,可能是因为我使用的是 Libreoffice。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2019-04-05
    相关资源
    最近更新 更多