Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Fferi50

    Topikgazda

    válasz gyu84 #24070 üzenetére

    Szia!

    Ehhez egy kissé meg kell variálni az fkeres és ha függvényeket, (nem írtad, milyen excel verziód van. 2010-től működik a hahiba függvény is, én ezt vetettem még be.)

    Az egyszerűség kedvéért elneveztem a vizsgálandó tartományokat, az első munkafüzet tartományának neve elso, a másodiké masodik, a harmadiké harmadik.

    A kigyűjtött értékek az E oszlopban vannak, a képletek a G,H,I oszlopokba kerülnek:
    F1 cella képlete:
    =HAHIBA(FKERES(E1;elso;2;0);HAHIBA(FKERES(E1;masodik;2;0);HAHIBA(FKERES(E1;harmadik;2;0);"")))
    G1 cella képlete:
    =HA(HAHIBA(FKERES(E1;harmadik;2;0);"")=F1;"";HA(HAHIBA(FKERES(E1;masodik;2;0);"")=F1;HAHIBA(FKERES(E1;harmadik;2;0);"");HA(HAHIBA(FKERES(E1;masodik;2;0);"")="";HAHIBA(FKERES(E1;harmadik;2;0);"");HAHIBA(FKERES(E1;masodik;2;0);""))))
    H1 cella képlete:
    =HA(HAHIBA(FKERES(E1;harmadik;2;0);"")=F1;"";HA(HAHIBA(FKERES(E1;harmadik;2;0);"")=G1;"";HAHIBA(FKERES(E1;harmadik;2;0);"")))

    Ezeket kell végighúzni a 3 oszlopon.

    A hahiba függvény a Ha( hibás(kifejezés), hibaesetén,nem hiba esetén) összetett függvényt helyettesíti.

    Üdv.

  • Delila_1

    veterán

    válasz gyu84 #24070 üzenetére

    Próbáld meg a lenti makróval.

    Sub Kigyujtes()
    Dim sor As Long, WF As WorksheetFunction, uoszlop As Integer
    Set WF = Application.WorksheetFunction

    Sheets(4).Activate
    sor = 1
    Do While Cells(sor, 1) <> ""
    uoszlop = Cells(sor, Columns.Count).End(xlToLeft).Column + 1
    If WF.CountIf(Sheets(1).Columns(1), Cells(sor, 1)) > 0 Then
    Cells(sor, uoszlop) = _
    WF.VLookup(Cells(sor, 1), Sheets(1).Range("A:B"), 2, 0)
    uoszlop = uoszlop + 1
    End If

    If WF.CountIf(Sheets(2).Columns(1), Cells(sor, 1)) > 0 Then
    Cells(sor, uoszlop) = _
    WF.VLookup(Cells(sor, 1), Sheets(2).Range("A:B"), 2, 0)
    uoszlop = uoszlop + 1
    End If

    If WF.CountIf(Sheets(3).Columns(1), Cells(sor, 1)) > 0 Then
    Cells(sor, uoszlop) = _
    WF.VLookup(Cells(sor, 1), Sheets(3).Range("A:B"), 2, 0)
    End If

    sor = sor + 1
    Loop

    End Sub

Új hozzászólás Aktív témák