여러 조건이있는 SUMIF()에 대한 Excel의 일반적인 해결책은 입니다 (이 수식은 A 열의 값이 C1이고 B 열의 값이 D1에서) :Excel에서 VBA에 행렬 (?)을 전달
=SUMPRODUCT((A1:A9=C1)*(B1:B9=D1))
이제는 여러 조건을 충족하는 줄의 문자열을 연결하는 기능이 필요합니다. 따라서 하위 제품()를 사용 위에서 트릭 - 내가하지만, 여러 조건을 검사 할 http://www.ms-office-forum.net/forum/showthread.php?t=273352
에서 하나 조건에 대한 훌륭한 솔루션이있다. 내 문제는 : 배열에서 얻으려면 함수에서 매개 변수를 정의해야합니까? 이것은 내가 지금까지 무엇을 가지고 있습니다 :
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Public Function CONCATIF(Kriterium, Inhalte)
Dim mydic As Object
Dim L As Long
Set mydic = CreateObject("Scripting.Dictionary")
For L = 1 To UBound(Kriterium)
If Kriterium(L, 1) = 1 Then
If Inhalte(L, 1) <> "" Then
mydic(L) = Inhalte(L, 1)
End If
End If
Next
CONCATIF = Join(mydic.items, vbCrLf)
End Function
내가 매개 변수 1. 하나의 열을 선택하지만 경우는, 잘 작동 최대한 빨리 (위와 같이) 제품 공식을 포함하는 같은 값으로 만 변형/더블 1은 Kriterium에 전달됩니다.
=CONCATIF(A1:A9; E1:E9) Works fine (if column A is 0/1 coded)
=CONCATIF((A1:A9=C1)*(B1:B9=D1); E1:E9) Does not work at all
의견이 있으십니까? 고맙습니다! 공식 때문에
보십시오. 그것은 나를 위해 작동 –
전혀 SumProduct()를 호출하고 싶지 않아 - SumProduct()와 비슷한 것을하는 함수를 작성하고 싶다. – BurninLeo
@simoco : 문제가 해결되었습니다! 고마워. SUMPRODUCT()가 CRTL + SHIFT + ENTER를 필요로하지 않는 이유는 무엇입니까? – BurninLeo