在Excel中求和函数使用超过30个参数(use more than 30 arguments in

2019-10-31 19:20发布

我想使用求和公式超过30个参数用于Excel中,我使用下面的公式: -

=SUM(IF(AND(ISNUMBER($F$73),ISNUMBER($J$73)),PRODUCT($F$73,$J$73/100),0),IF(AND(ISNUMBER($G$74),ISNUMBER($J$74)),PRODUCT($G$74,$J$74),0))

上述公式将罚款30个argumnets,但超过30个argumemts Excel将返回错误( #VALUE

Answer 1:

你可以批量较小的组成子和数是这样的: =SUM(SUM(1,2), SUM(3,4),...)



Answer 2:

这个版本会更短,你可以添加你想要的,唯一的限制将是最大长度公式

=(COUNT(F73,J73)=2)*(F73*J73/100)+(COUNT(G74,J74)=2)*(G74*J74/100)



Answer 3:

也许你可以挽救你的公式是这样在后续的字符:

=(N(F73)*N(J73)+N(G74)*N(J74))/100

这可以更进一步延长,但为了清楚起见,我建议编写自定义UDF:

=SPRange((F73,G74),(J73,J74))%

SPRange将工作像SUMPRODUCT但多个范围工作:

Function SPRange(Range1 As Range, Range2 As Range) As Double

Dim i As Long, n As Long, rng As Range, Arr() As Double

n = Range1.Count
ReDim Arr(1 To n) As Double

i = 1
For Each rng In Range1
    If IsNumeric(rng.Value2) Then Arr(i) = rng.Value2
    i = i + 1
Next rng

i = 1
SPRange = 0
For Each rng In Range2
    If IsNumeric(rng.Value2) Then SPRange = SPRange + Arr(i) * rng.Value2
    i = i + 1
Next rng

End Function

如果你想扩展到许多范围,你可以通过定义代码名称:

names.Add "Range1",Range("f73,g74")
names.Add "Range2",Range("j73,j74")

它允许在1000个细胞在我的测试。 然后,只需输入公式为:

=SPRange(Range1,Range2)%


文章来源: use more than 30 arguments in sum function in excel