Excel-Count 包含特定字符串的可见单元格的数量

Gh0*_*0sT 7 microsoft-excel-2007 worksheet-function microsoft-excel microsoft-excel-2010

我有一个工作表,我首先将过滤器应用于某个列以显示“仅唯一记录”。现在我有一个列,其中包含例如以下值:

Applepie
Applesauce
Crabapple
Banana
Mango
Run Code Online (Sandbox Code Playgroud)

我需要的是包含单词“Apple”的所有可见单元格的计数。请注意,这应该排除隐藏(过滤掉)的单元格。
现在我找到了一个公式:

`=SUMPRODUCT(SUBTOTAL(3,OFFSET(Sheet1!A:A,ROW(Sheet1!A:A)-MIN(ROW(Sheet1!A:A)),,1))*(Sheet1!A:A="<Text to search>"))`
Run Code Online (Sandbox Code Playgroud)

然而,这个公式的问题是这个公式会搜索整个文本。不只是其中的一部分。如何修改此公式以返回包含“Apple”的单元格计数,即对于此示例,它应返回 3 作为结果。

bar*_*ini 6

COUNTIF使用通配符将单独计算文本中某处带有“Apple”的所有行......但它不限于可见行,您不能COUNTIFSUBTOTAL公式结合使用。

使用SEARCH函数像这样调整你的公式

=SUMPRODUCT(SUBTOTAL(3,OFFSET(Sheet1!A:A,ROW(Sheet1!A:A)-MIN(ROW(Sheet1!A:A)),,1)),ISNUMBER(SEARCH("Apple",Sheet1!A:A))+0)

注意:该版本可能会很慢,引用整列 - 如果可以,最好限制范围

替代方法

如果你想避免那个长公式,那么你可以使用一个辅助列来指示每行是否被过滤,例如在 Sheet1 Z2 中使用复制下来的这个公式

=SUBTOTAL(3,A2)

现在您可以使用一个COUNTIFS函数来计算包含“Apple”的可见行

=COUNTIFS(A:A,"*Apple*",Z:Z,1)