我一直在寻找这个答案,我确信它非常简单,但我却在任何地方都找不到它。
我有一个非常简单但很长的公式 =SUM(H2:H5,H7,H22:H23,H28:H30,H33,H41,H43:H46.....etc),在下一个单元格中,我希望它显示此总和中存在多少个单元格,而不必手动计算每个单元格的每个实例。谢谢
答案1
创建一个新列,标记H
要包含在 SUM 中的行:
这可能使维护行选择变得更容易。例如,如果它基于其他数据(例如,对落后于计划的项目的预算进行求和),列I
可以是一个公式。此外,这将允许您有条件地格式化列H
以指示哪些单元格包含在总和中。(如果列由计算结果为或 的I
公式填充,而不是 (空白) 或,则中的公式应从 更改为。)0
1
1
K1
=COUNT(I:I)
=SUM(I:I)
答案2
以下用户定义函数 COUNTSUMCELLS() 将返回求和公式中使用的单元格数量。用法很简单 - 如果单元格 A1 包含求和公式,则 COUNTSUMCELLS(A1) 将返回公式中使用的单元格数量。
Function CountSumCells(sumCell As Range) As Long
' Returns a count of the cells used in a sum formula. If there is a
' circular reference, returns #VALUE!.
Dim sFormula As String
sFormula = sumCell.formula
sFormula = Mid(sFormula, 6, Len(sFormula) - 6)
If Not (Intersect(Application.Caller, Range(sFormula)) Is Nothing) Then
CountSumCells = CVErr(xlErrValue)
End If
CountSumCells = Range(sFormula).count
End Function