문제

여러 조건을 가진 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 ()

로 찾아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top