Kontynuując zagadnienie dot. funkcji arkuszowych w pracy z tablicami chciałbym wspomnieć jeszcze o funkcji
Match (PODAJ.POZYCJĘ). Funkcja ta zwraca informację, na której pozycji znajduje się szukany element w jednowymiarowej tablicy danych. Ogólna konstrukcja funkcji jest następująca
1 | =Match(SzukanaWartość, Tablica, ParametrKontrolny) |
Wykorzystując tablicę danych z kursami NBP z poprzedniego postu oraz przyjmując identyczny mechanizm działania procedury poniższy kod zwróci numer wiersza, w którym znajduje się szukany symbol waluty.
03 | Dim Szukana As Variant |
04 | Szukana = InputBox( "wartość szukana" ) |
08 | Set TBL = Application.InputBox( "zaznacz obszar" , Type:=8) |
11 | MsgBox WorksheetFunction.Match(Szukana, TBL.Columns(1), 0) |
Okno wynikowe dla waluty EUR.
I na koniec ważna wskazówka. Kombinacja funkcji
Index oraz
Match w praktyce pozwalają na stworzenie innej wersji funkcji
VLookup (WYSZUKAJ.PIONOWO). W naszym przykładzie, chcąc uzyskać kurs waluty dla wskazanego symbolu z wykorzystaniem takiej kombinacji należałoby wewnątrz procedury zastosować poniższą instrukcję. A wynik jej działania zaprezentowano w kolejnym oknie MsgBox.
2 | MsgBox WorksheetFunction.Index(TBL.Columns(4), _ |
3 | WorksheetFunction.Match(Szukana, _ |
Brak komentarzy:
Prześlij komentarz