也许您可以像这样在公式中保存更多字符:
=(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)%