有谁知道如何使用工作基于呼叫中的VBA函数SUMPRODUCT?基于Excel SUMPRODUCT用VBA条件
这工作得很好,在N列,其中L列中包含“Y”和col A包含不同的值对colķ求和值...
=SUMPRODUCT(--(Input!L1:L100="Y"), --(Input!A1:A100<>Input!K1:K100), Input!N1:N100)
但我希望能够应用更多逻辑不仅仅是一个<>在我的第二个标准K,这样的事情...
=SUMPRODUCT(--(Input!L1:L100="Y"), --(MatchNames(Input!A1:A100,Input!K1:K100)), Input!N1:N100)
我有我的VBA函数叫做MatchNames,但我不知道是什么,它需要以恢复工作。我试着返回一个布尔值,整数(设置为0或1)的数组,我试着在返回它们之前调换结果,但没有任何工作。我已经通过MatchNames函数进行了调试,并且它确实返回了“有用的”(即一组布尔值),所以它不是该函数正在部分地进行轰炸,但是我得到了#VALUE!当我尝试在SUMPRODUCT中使用它。
这是我的VBA函数...
Public Function MatchNames(ByVal rng1 As Range, rng2 As Range) As Boolean()
Dim blnOut() As Boolean
Dim k As Long
ReDim blnOut(rng1.Rows.Count - 1)
For k = 1 To rng1.Rows.Count
If rng1.Cells(k, 1).Value <> "" Then
If rng1.Cells(k, 1).Value <> rng2.Cells(k, 1).Value Then
blnOut(k - 1) = True
End If
End If
Next
MatchNames = blnOut
End Function
Ahhhh是的,谢谢。棒极了。我在返回之前尝试了在代码中进行转置,这意味着我不能仅仅将对象作为一个bool数组返回,而是在公式中进行转置。谢谢!! – Mottster 2013-02-11 17:02:21
你可以让你的UDF返回一个二维数组(1列和n行),而不是使用移调。如果你返回1和0而不是布尔值,你也不需要 - 。 – 2013-02-11 17:31:57