有谁知道如何在基于工作表的 SUMPRODUCT 调用中使用 VBA 函数?
这很好用,将 N 列中的值相加,其中 L 列包含“Y”,A 列包含与 K 列不同的值...
=SUMPRODUCT(--(Input!L1:L100="Y"), --(Input!A1:A100<>Input!K1:K100), Input!N1:N100)
但我希望能够在我的第二个标准中应用更多的逻辑,而不仅仅是 A<>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