用Excel公式计算有文本的单元格:任何、特定或过滤的单元格

  • Share This
Michael Brown

如何在Excel中计算包含文本的单元格? 有几个不同的公式可以计算包含任何文本、特定字符或只包含过滤单元格的单元格。 所有公式都可以在Excel 365、2021、2019、2016、2013和2010中使用。

最初,Excel电子表格是为处理数字而设计的。 但现在我们也经常用它们来存储和处理文本。 想知道你的工作表中有多少个带文本的单元格吗? 微软Excel有几个函数,你应该使用哪一个? 嗯,这取决于情况。 在本教程中,你会发现各种公式和每个公式的最佳使用时机。用过的。

    如何计算Excel中带有文本的单元格的数量

    有两个基本公式可以找到在一个给定的范围内有多少个单元格包含任何文本字符串或字符。

    COUNTIF公式计算所有有文本的单元格

    当你希望在Excel中找到有文本的单元格的数量时,COUNTIF函数中带有星号的 标准 论证是最好和最简单的解决方案。

    COUNTIF( 范围 , "*")

    因为星号(*)是一个通配符,可以匹配任何字符序列,该公式计算所有包含任何文本的单元格。

    用SUMPRODUCT公式计算有任何文字的单元格

    另一种获得包含文本的单元格数量的方法是结合SUMPRODUCT和ISTEXT函数。

    总产品(--istext( 范围 ))

    产品(istext( 范围 )*1)

    ISTEXT函数检查指定范围内的每个单元格是否包含任何文本字符,并返回一个TRUE(有文本的单元格)和FALSE(其他单元格)值的数组。 双单数(--)或乘法运算将TRUE和FALSE分别胁迫为1和0,产生一个1和0的数组。 SUMPRODUCT函数将数组的所有元素相加,并返回以下数目1的,也就是包含文本的单元格的数量。

    为了更多地了解这些公式的工作原理,请看哪些值被计算,哪些不被计算。

    计算的内容 不被计算的内容
    • 有任何文字的单元格
    • 特殊字符
    • 数字格式化为文本
    • 含有空字符串("")、撇号(')、空格或非打印字符的可视空白单元格
    • 数字
    • 日期
    • TRUE和FALSE的逻辑值
    • 误区
    • 空白单元格

    例如,要计算A2:A10范围内有文本的单元格,不包括数字、日期、逻辑值、错误和空白单元格,使用这些公式之一。

    =countif(a2:a10, "*")

    =sumproduct(--istext(a2:a10))

    =sumproduct(istext(a2:a10)*1)

    下面的屏幕截图显示了结果。

    计算有文本的单元格,不包括空格和空字符串

    上面讨论的公式计算所有含有任何文本字符的单元格。 然而,在某些情况下,这可能会引起混淆,因为某些单元格可能只是看起来是空的,但实际上含有人眼看不见的字符,如空字符串、撇号、空格、换行符等。头发试图找出原因 :)

    要从计数中排除 "假阳性 "的空白单元格,请使用COUNTIFS函数,在第二条标准中加入 "排除 "字符。

    例如,要计算A2:A7范围内有文本的单元格,忽略那些含有 空格字 ,使用这个公式。

    =countifs(a2:a7, "*", a2:a7, " ")

    如果你的目标范围包含任何公式驱动的数据,一些公式可能会导致一个 空字符串 ("")。 要忽略有以下内容的单元格 空字符串 也要把 "*"替换为 "*?*"。 标准1 争论。

    =countifs(a2:a9, "*?*", a2:a9, " ")

    由星号包围的问号表示单元格中至少要有一个文本字符。 由于空字符串中没有任何字符,它不符合标准,不被计算在内。 以撇号(')开头的空白单元格也不被计算在内。

    在下面的截图中,A7有一个空格,A8有一个撇号,A9有一个空字符串(="")。 我们的公式撇开了所有这些单元格,并返回3个文本单元格计数。

    如何计算Excel中具有特定文本的单元格

    要获得包含特定文本或字符的单元格的数量,你只需在 标准 下面的例子解释了其中的细微差别。

    为了与样本文本相匹配 正是 ,输入引号内的全文。

    COUNTIF( 范围 , " 文本 ")

    要计数的细胞有 部分 匹配 ,将文本放在两个星号之间,星号代表文本前后的任何数量的字符。

    COUNTIF( 范围 , "* 文本 *")

    例如,要找到A2:A7区域中多少个单元格正好包含 "香蕉 "这个词,请使用这个公式。

    =COUNTIF(A2:A7, "香蕉")

    要计算所有在任何位置包含 "香蕉 "作为其内容一部分的单元格,请使用这个。

    =COUNTIF(A2:A7, "*bananas*")

    为了使公式更方便使用,你可以把标准放在一个预定义的单元格中,比如D2,并把单元格引用放在第二个参数中。

    =countif(a2:a7, d2)

    根据D2中的输入,该公式可以完全或部分地与样本文本相匹配。

    • 对于完全匹配,输入整个单词或短语,因为它出现在源表中,例如 香蕉 .
    • 对于部分匹配,输入由通配符包围的样本文本,如 *Bananas* .

    由于该公式为 不区分大小写 ,你可以不关心字母的大小写,这意味着 *香蕉* 也会这样做。

    另外,要计算具有以下特征的细胞 部分匹配 ,连接单元格引用和通配符,如。

    =COUNTIF(A2:A7, "*"&D2&"*")

    更多信息,请参见如何在Excel中计算有特定文本的单元格。

    如何在Excel中计算带文本的过滤单元格

    当使用Excel过滤器只显示某一时刻的相关数据时,你有时可能需要计算 有文本的可见单元格 遗憾的是,这项工作没有一键式的解决方案,但下面的例子可以让你轻松地完成这些步骤。

    假设你有一个如下图所示的表格。 一些条目是用公式从一个较大的数据库中提取的,沿途发生了各种错误。 你正在寻找A列中的项目总数。在所有行都可见的情况下,我们用来计算带有文本的单元格的COUNTIF公式很有效。

    =countif(a2:a10, "*")

    现在,你通过一些标准缩小列表,例如过滤掉数量大于10的项目。 问题是--还剩下多少项目?

    要计算 用文本过滤的单元格 ,这是你需要做的。

    1. 在你的源表中,使所有的行都是可见的。 为此,清除所有的过滤器并取消隐藏的行。
    2. 添加一个带有SUBTOTAL公式的辅助列,表明某行是否被过滤。

      要处理 已过滤的细胞 ,用3表示。 功能_num 争论。

      =小计(3, a2)

      要确定 所有隐藏的单元格 ,手动过滤掉和隐藏,把103个放入 功能_num :

      =小计(103, a2)

      在这个例子中,我们只想计算 有文本的可见单元格 不管其他单元格是如何隐藏的,所以我们在A2中输入第二个公式,并将其复制到A10。

      对于可见的单元格,该公式返回1。只要你过滤掉或手动隐藏一些行,该公式就会返回0(你不会看到这些0,因为它们是为隐藏的行返回的。 为了确保它是这样工作的,只要将带有小计公式的隐藏单元格的内容复制到任何可见的单元格,例如=D2,假设第2行是隐藏的)。

    3. 使用COUNTIFS函数,有两个不同的 标准_范围 / 标准 对来计算有文本的可见单元格。
      • Criteria1 - 在A2:A10范围内搜索有任何文本("*")的单元格。
      • Criteria2 - 在D2:D10范围内搜索1,以检测可见细胞。

      =countifs(a2:a10, "*", d2:d10, 1)

    现在,你可以按你想要的方式过滤数据,公式会告诉你A列中有多少个被过滤的单元格包含文本(在我们的例子中是3个)。

    如果你不想在工作表中插入一个额外的列,那么你将需要一个更长的公式来完成这个任务。 只要选择你更喜欢的那个就可以了。

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10)), --(ISTEXT(A2:A10)) )

    =sumproduct(subtotal(103, offset(a2:a10, row(a2:a10) - min(row(a2:a10)),,1)), -- (istext(a2:a10))

    乘法运算符也会起作用。

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))) * (ISTEXT(A2:A10))

    =sumproduct(subtotal(103, offset(a2:a10, row(a2:a10)-min(row(a2:a10)), ,1)) * (istext(a2:a10))

    使用哪种配方是你个人偏好的问题--在任何情况下结果都是一样的。

    这些公式是如何工作的

    第一个公式使用 INDIRECT 函数将指定范围内所有单元格的单独引用 "送入 "SUBTOTAL。 第二个公式使用 OFFSET、ROW 和 MIN 函数的组合达到相同目的。

    SUBTOTAL函数返回一个1和0的数组,其中1代表可见单元格,0匹配隐藏单元格(如上面的帮助列)。

    ISTEXT函数检查A2:A10中的每个单元格,如果一个单元格包含文本,则返回TRUE,否则返回FALSE。 双重单数运算符(--)将TRUE和FALSE值胁迫为1和0,此时,该公式看起来如下。

    =SUMPRODUCT({0;1;1;1;0;1;1;0;0}, {1;1;1;0;1;1;0;1;1})

    SUMPRODUCT函数首先将两个数组中相同位置的元素相乘,然后对所得数组求和。

    由于乘以0可以得到0,所以只有两个数组中由1代表的单元格在最终数组中都有1。

    =SUMPRODUCT({0;1;1;0;0;1;0;0;0})

    而上述数组中的1的数量是包含文本的可见单元格的数量。

    这就是如何在Excel中用文本计算单元格的方法。 感谢你的阅读,希望下周能在我们的博客上见到你

    可用的下载

    用Excel公式计算有文本的单元格

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.