Jak prawidłowo spakować spadochron?
Korzyść. Wydanie 2, poprawione.
Załóżmy, że mamy następującą tabelę zamówień:
Musimy wiedzieć na przykład, jaka była kwota trzeciego zamówienia Iwanowa lub kiedy Pietrow wykonał swoją drugą transakcję. Wbudowana funkcja WYSZUKAJ.PIONOWO może wyszukać tylko pierwsze wystąpienie nazwiska w tabeli i nie pomoże nam. Pytania typu „Kto był kierownikiem zamówienia o numerze 10256?” również pozostanie bez odpowiedzi, tk. wbudowana funkcja WYSZUKAJ.PIONOWO nie jest w stanie zwrócić wartości z kolumn na lewo od wyszukiwania.
Oba te problemy są rozwiązywane za jednym zamachem – napiszmy własną funkcję, która będzie szukać nie tylko pierwszego, ale w ogólnym przypadku N-tego wystąpienia. Ponadto będzie mógł wyszukiwać i generować wyniki w dowolnych kolumnach. Nazwijmy to, powiedzmy, WYSZUKAJ.PIONOWO2.
Otwórz Edytor Visual Basic, naciskając klawisze ALT + F11 lub wybierając z menu Usługa – Makro – Edytor Visual Basic (Narzędzia — Makro — Edytor Visual Basic), wstaw nowy moduł (menu Wstaw – moduł) i skopiuj tam tekst tej funkcji:
Funkcja WYSZUKAJ.PIONOWO2(Tabela jako wariant, SearchColumnNum jako długa, SearchValue jako Variant, _ N jako długa, ResultColumnNum jako długa) Dim i jako długa, iCount jako długa Wybierz obserwację Nazwa typu(Tabela) Obserwacja "Zakres" dla i = 1 do tabeli.Wiersze .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Wielkość liter „Variant()” For i = 1 To UBound(Tabela) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 If iCount = N Then VLOOKUP2 = Table(i, ResultColumnNum) Exit For End If Next i End Wybierz funkcję zakończenia
Zamknij Edytor Visual Basic i wróć do programu Excel.
Teraz skończone Wstaw – funkcja (Wstaw — Funkcja) w kategorii Określony przez użytkownika (Określony przez użytkownika) możesz znaleźć naszą funkcję WYSZUKAJ.PIONOWO2 i jej użyć. Składnia funkcji jest następująca:
=WYSZUKAJ.PIONOWO2(tabela; liczba_kolumn_gdzie_szukamy; szukana_wartość; N; liczba_kolumn_od_do_pozyskania_wartości)
Teraz ograniczenia funkcji standardowej nie są dla nas przeszkodą:
PS Specjalne podziękowania dla The_Prist za ulepszenie funkcji, aby mogła przeszukiwać zamknięte księgi.
- Znajdowanie i zastępowanie danych z jednej tabeli do drugiej za pomocą funkcji WYSZUKAJ.PIONOWO
- „W lewo WYSZUKAJ.PIONOWO” za pomocą funkcji INDEKS i PODAJ.POZYCJĘ