Banner

piatok 15. februára 2013

Dvojitý vlookup alebo vlookup podľa dvoch atribútov

 

Určite ste sa v praxi stihli zamyslieť nad problematikou hľadania v tabuľke podľa istej hodnoty. Väčšina z Vás by nemala mať problém používať legendárnu funkciu =vlookup(), no čo musíme urobiť v situácii ak potrebujeme vrátiť hodnotu z tabuľky podľa dvoch rovnocenných argumentov?

V tomto prípade by sa povedzme niečo ako =DOUBLELOOKUP() zišlo, avšak disponuje ním Excel? Primárne nie, avšak ja Vám ukážem ako si pomocou pár príkazov vytvoriť vlastnú funkciu, ktorá vyrieši tento problém. Začnime príkladom:

image

Na obrázku máme vytvorený prípad, v ktorom budeme hľadať osobu podľa mena a priezviska zároveň, no a nezabudnime, že nás zaujíma výška vkladu.

V tomto prípade by bolo ideálne ak by sme mali vytvorenú vlastnú funkciu typu:

=DOUBLELOOKUP( “Meno” ; “Priezvisko” ; “Tabuľka” ; “Vklad” )

Budeme potrebovať:

1 zápis typu Function()End Function

1 FOR cyklus a 3 podmienky IF

8 premenných: LookUpValue1, LookUpValue2, LookUpColumn1 As Long, LookUpColumn2 As Long, ReturnColumn As Long, TableArray As Range, UB As Long,  i As Long

VBA Kód bude vyzerať takto:

Function DOUBLELOOKUP(LookUpValue1, LookUpValue2, LookUpColumn1 _

As Long, LookUpColumn2 As Long, ReturnColumn As Long, TableArray As Range)

Dim UB As Long

Dim i As Long

UB = TableArray.Rows.Count ‘spočíta množstvo riadkov v TableArray

For i = 1 To UB
   
    If TableArray(i, LookUpColumn1) = LookUpValue1 Then
       
       If TableArray(i, LookUpColumn2) = LookUpValue2 Then
            DOUBLELOOKUP = TableArray(i, ReturnColumn)
       End If
       
    End If
   
Next i
   
If DOUBLELOOKUP = "" Then
DOUBLELOOKUP = "#N/A"
End If

End Function

Celá táto funkcia funguje nasledovne:

LookUpValue1 = “Peter” ; LookUpValue2 = “Tabiš”

LookUpColumn1 = 1 (poradie stĺpca, v ktorom hľadá LookUpValue1)

LookUpColumn2 = 2 (poradie stĺpca, v ktorom hľadá LookUpValue2) 

ReturnColumn = 3 (poradie stĺpca, z ktorého chceme vrátiť hodnotu)

TableArray = “C6:E14” (Tabuľka hodnôt)

Funkcia bude v Excel-i vyzerať takto:

image

Celý súbor spolu s vytvorenou funkciou si môžete stiahnuť tu. Dúfam, že táto funkcia Vám uľahčí prácu. V prípade dotazov ma neváhajte kontaktovať, poprípade kliknutím na:

 EK logo FB

Žiadne komentáre:

Zverejnenie komentára

Poznámka: Komentár môže zverejniť iba člen tohto blogu.