有没有办法在 Excel 2010 中使用名称范围作为 sum(countif()) 公式的数组条件

dan*_*z46 2 search array microsoft-excel microsoft-excel-2010

图片栏 充满评论,如调查问题的反馈。现在用一个公式对 B 列进行图片,该公式计算每个评论中特定关键词的出现次数。我目前在 B 列中使用这个公式: SUM(COUNTIF(A27,{" LBNL "," Lawrence Berkeley "," LBL ","Lawrence Lab*"}))

由于列表将在此过程中增长和缩小,并且因为我最终会得到多个类似的公式(针对不同的类别),我想改为在命名范围内控制列表并从那里引用它。

所以现在假设我的列表如下所示,名称范围为 search_items1

  • LBNL
  • 劳伦斯伯克利
  • LBL
  • 劳伦斯实验室

我的公式看起来像 SUM(COUNTIF(A27,search_items1))。

请注意使用 * 作为通配符,这引入了另一个挑战,但即使没有 *,我也无法使上述公式工作。有没有办法使这项工作?带有通配符 * 的解决方案将是理想的。

或者,我可以引用一个从名称范围连接在一起的单元格,如下所示:{" LBNL "," Lawrence Berkeley "," LBL ","Lawrence Lab*"}。我尝试了这一点,但公式将其解释为一个文本块。

我尝试了多种语法变体以及无数的 Google 和超级用户搜索。请帮忙。

Jer*_*rry 5

你的公式有什么作用:

=SUM(COUNTIF(A27,{"LBNL","Lawrence Berkeley","LBL","Lawrence Lab*"}))
Run Code Online (Sandbox Code Playgroud)

如果单元格 A27 是LBNL, or Lawrence Berkeleyor LBLor Lawrence Lab**此处用作通配符),则计数为 1 。

所以,如果你有一个单元格LBNL,你会得到 1 作为结果。有Dr. LBNL将导致 0。

如果要计算1单元格是否至少包含 1 LBNL,则需要在文本的两侧使用通配符,即:

=SUM(COUNTIF(A27,{"*LBNL*","*Lawrence Berkeley*","*LBL*","*Lawrence Lab*"}))
Run Code Online (Sandbox Code Playgroud)

你可以做一个命名范围,并把它放在那里,而不是,但这将成为一个数组公式,其将只与工作Ctrl+ Shift+ Enter

=SUM(COUNTIF(A27,search_items1))
Run Code Online (Sandbox Code Playgroud)

现在,您SUMPRODUCT可以避免使用 CSE 来使用此公式:

=SUMPRODUCT(COUNTIF(A27,search_items1))
Run Code Online (Sandbox Code Playgroud)

但是,如果您有一个包含LBNL LBNL并且希望结果为的单元格2,那又是另一回事,因为COUNTIF一旦它在单元格中找到了它要查找的内容,它的工作就完成了,并且会返回1

在这种情况下,我建议对要检查的每个单元格进行计数(因为上述函数可用于查看整列):

=SUMPRODUCT((LEN(A2)-LEN(SUBSTITUTE(A2,search_items1,"")))/LEN(search_items1))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

[现在请注意,由于SUBSTITUTE工作原理,您需要删除星号。]