Obsah článku:
- Žiadne nadpisy nenájdené
Takúto otázku som dostal od Silvie, ktorú zaujala funkcia hladajaspoj (venujeme sa jej v článku Je možné použiť VLOOKUP na vypísanie viacerých hodnôt?).
Dobrý deň, zaujala ma funkcia „hladajaspoj“. Super funkcia. Chcela by som sa opýtať, či je možné ešte túto funkciu vylepšiť, aby v danom prípade vypísalo údaje (zo stĺpca B), ale po preverení dvoch podmienok – kód reference (zo stĺpca A), ale aj quality (zo stĺpca C).
Silvia
Pôvodne funkcia hladajaspoj v Exceli hľadá a vypisuje všetky dostupné farby podľa hodnoty Ref. Silvia potrebuje okrem Ref vypisovať farby aj podľa množstva. Našu funkciu teda potrebujeme použiť v nasledovnej tabuľke:
Ak si nepamätáte z predchádzajúceho článku, tak tu je ukážka zdrojových údajov v hárku Table2:
Potrebujeme teda vypísať všetky farby s daným kódom a zároveň s daným množstvom.
Určite ste si všimli použitie slovného spojenia „a zároveň“, čiže je jasné, že stačí sa jemne pohrať s pôvodným kódom funkcie a pridať iba pomocou AND ďalšiu podmienku. Zvýraznil som všetky zmeny oproti pôvodnému kódu. A ešte drobnosť Hladaj_v_stlpci som len premenoval na Hladaj_v_oblasti, čiže to ani za zmenu nepovažujem 😀
Function hladajaspoj2(Vyhladavana_hodnota As String, Vyhladavane_mnozstvo As String, Hladaj_v_oblasti As Range, Vysledky_zo_stlpca As Range, Oddelovac As String)
Dim i As Long
Dim result As String
For i = 1 To Hladaj_v_oblasti.Count
If Hladaj_v_oblasti.Cells(i, 1) = Vyhladavana_hodnota And Hladaj_v_oblasti.Cells(i, 3) = Vyhladavane_mnozstvo Then
If result = "" Then
result = Vysledky_zo_stlpca.Cells(i, 1).Value
Else
result = result & Oddelovac & Vysledky_zo_stlpca.Cells(i, 1).Value
End If
End If
Next
hladajaspoj2 = Trim(result)
End Function
A už stačí len funkciu použiť:
=hladajaspoj2($A2;B$1;Table2!$A$2:$C$73;Table2!$B$2:$B$73;“, „)
A takýto je výsledok:
Podobne by sme vedeli pridať aj ďalšie podmienky.
Súbor na stiahnutie: