在 Excel 中,COUNTIF
函数用于计算满足特定条件的单元格数量。然而,COUNTIF
函数本身不支持跨多个工作表的直接计算。如果你需要跨多个工作表进行条件计数,可以使用一些变通的方法,例如使用 SUMPRODUCT
或 INDIRECT
函数。
SUMPRODUCT
和 INDIRECT
假设你有多个工作表(Sheet1, Sheet2, Sheet3),并且你想计算这些工作表中某个范围内满足特定条件的单元格数量。
=SUMPRODUCT(COUNTIF(INDIRECT("'"&{"Sheet1","Sheet2","Sheet3"}&"'!A:A"), "Apple"))
这个公式的工作原理是:
{"Sheet1","Sheet2","Sheet3"}
创建一个包含工作表名称的数组。INDIRECT("'"&{"Sheet1","Sheet2","Sheet3"}&"'!A:A")
创建一个引用这些工作表中 A 列的数组。COUNTIF(..., "Apple")
对每个工作表的 A 列应用 COUNTIF
函数。SUMPRODUCT(...)
将所有工作表的计数结果相加。COUNTIF
,然后汇总COUNTIF
:在每个工作表中使用 COUNTIF
计算满足条件的单元格数量。例如,在 Sheet1 中的某个单元格(例如 B1)中输入:
=COUNTIF(A:A, "Apple")
在 Sheet2 和 Sheet3 中也类似地输入:
=COUNTIF(A:A, "Apple")
在主工作表中,使用简单的加法公式汇总所有工作表的结果。例如,在主工作表的某个单元格中输入:
=Sheet1!B1 + Sheet2!B1 + Sheet3!B1
如果你需要更灵活和动态的解决方案,可以使用 VBA 脚本来实现跨多个工作表的条件计数。
Alt + F11
打开 VBA 编辑器。Function CountIfAcrossSheets(rng As Range, criteria As String) As Long
Dim ws As Worksheet
Dim count As Long
count = 0
For Each ws In ThisWorkbook.Worksheets
count = count + Application.WorksheetFunction.CountIf(ws.Range(rng.Address), criteria)
Next ws
CountIfAcrossSheets = count
End Function
在 Excel 中,你可以像使用普通函数一样使用这个自定义函数。例如:
=CountIfAcrossSheets(A:A, "Apple")
这个自定义函数会遍历所有工作表,并计算所有工作表中 A 列中等于 "Apple" 的单元格数量。
领取专属 10元无门槛券
手把手带您无忧上云