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 作为结果。
COUNTIF使用通配符将单独计算文本中某处带有“Apple”的所有行......但它不限于可见行,您不能COUNTIF与SUBTOTAL公式结合使用。
使用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)
| 归档时间: |
|
| 查看次数: |
29446 次 |
| 最近记录: |