Excel에서 매트릭스 (?)를 VBA로 전달
문제
여러 조건을 가진 SUMIF ()에 Excel에서 하나의 공통 솔루션 하나가 (이 수식은 C1 열의 값이 C1의 값을 갖는 모든 경우와 열 B 값이 D1의 값 을가집니다.
=SUMPRODUCT((A1:A9=C1)*(B1:B9=D1))
.
i, 이제 여러 조건을 수행하는 행에서 문자열을 연결하는 기능이 필요합니다. 조건에 대한 훌륭한 솔루션이 있습니다. > http://www.ms-office-forum.net/forum/showthread.php?t=273352
i 그러나 여러 조건을 확인하고 따라서 위의 하위 제품 () 트릭을 사용하십시오. 내 문제는 다음과 같습니다. 배열을 가져 오기 위해 함수의 매개 변수를 정의해야합니까? 이것은 내가 지금까지 얻은 것입니다 :
' **********************************************************************
' 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을 포함 시키 자마자 값 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
.
모든 제안? 고맙습니다!
해결책
공식 :
에 문제가있었습니다.=CONCATIF((A1:A9=C1)*(B1:B9=D1); E1:E9)
.
ctrl + shift + 를 눌러 호출해야합니다
다른 팁
완전성을 위해 다른 열의 기준이 일치하면 범위 (다중 문자열 열이있을 수 있음)에서 문자열을 연결하는 완전한 Excel VBA 매크로가 있습니다.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************
Option Explicit
Public Function CONCATIF(Kriterium, Inhalte)
Dim mydic As Object
Dim L As Long
Dim C As Long
Dim N As Long
Dim cols As Long
Set mydic = CreateObject("Scripting.Dictionary")
cols = Inhalte.Columns.Count
N = 1
For L = 1 To UBound(Kriterium)
If Kriterium(L, 1) = 1 Then
For C = 1 To cols
If Not IsEmpty(Inhalte(L, C)) Then
mydic(N) = "* " & Inhalte(L, C)
N = N + 1
End If
Next
End If
Next
CONCATIF= Join(mydic.items, vbCrLf)
End Function
.
다음과 같이 사용하며 ctrl + shift +
을 입력하는 것을 잊지 마십시오.=CONCATIF((A1:A:9="male")*(B1:B9="young"); C1:D9)
.
샘플 데이터
A B C D
01 male young Comment 1 Comment 2
02 male old Comment 3 Comment 4
03 female young Comment 5 Comment 6
04 female old Comment 7 Comment 8
05 male young Comment 9 Comment A
.
는
를 생성합니다* Comment 1
* Comment 2
* Comment 9
* Comment A
.
Google : 이것은 또한 Verkettenwenn ()
로 찾아야합니다.제휴하지 않습니다 StackOverflow