poniedziałek, 24 marca 2014

Funkcje arkuszowe w pracy z tablicami Array (1/2)

Wśród dotychczasowych wpisów poświęconych tablicom Array znaleźć można kilka uwzględniających kluczowe techniki pracy z tablicami, w tym m.in:

tworzenie tablicy z wybranego wiersza innej tablicy z pomocą funkcji Index,  szereg przykładów na wykorzystanie funkcji transpozycji (Transpose), wyszukiwanie unikatowych wartości z wykorzystaniem słownika (Dictionary) i kolekcji (Collection).

Są jeszcze dwie funkcje arkuszowe, które mają swoje szczególne miejsce w pracy z tablicami Array- funkcja VLookup (WYSZUKAJ.PIONOWO) oraz Match (PODAJ.POZYCJĘ), które zaprezentuję w tym i kolejnym poście.

Krótko przypomnę zasadę działania pierwszej z funkcji- VLookup (WYSZUKAJ.PIONOWO)- zwraca wartość pochodzącą z n-tej kolumny tablicy gdy szukana wartość zostanie odnaleziona w określonym wierszu pierwszej kolumny tej tablicy. Schematyczny zapis funkcji to:

1=VLookup(SzukanaWartość, Tablica, n-taKolumna, Fałsz)

Wywołując powyższą funkcję w arkuszu Excel w miejsce tablicy wstawiamy odwołanie do zakresu komórek. W języku VBA w miejscu Tablicy pojawi się zmienna reprezentująca tablicę.

Spójrzmy na konkretny przykład z danymi reprezentującymi kursy walut NBP.


Dysponując powyższymi danymi spróbujmy wywołać poniższą procedurę.

01Sub Rozwiązanie_VL()
02 
03    Dim Szukana As Variant
04        Szukana = InputBox("wartość szukana")
05 
06    'tablica Array pochodząca z zaznaczenia obszaru komórek
07    Dim TBL As Range
08    Set TBL = Application.InputBox("zaznacz obszar", Type:=8)
09    
10    'funkcja VLOOKUP
11    MsgBox WorksheetFunction.VLookup(Szukana, TBL, 4, 0)
12 
13End Sub

W momencie wywołania musimy wskazać kolejno indeks waluty (zgodny z kolumną A) oraz w kolejnym kroku zaznaczyć obszar danych zaczynający się w A1. Wpisując w pierwszym kroku EUR w wyniku otrzymamy poniższe okno z szukaną wartością.


Brak komentarzy:

Prześlij komentarz