Ulepszanie funkcji WYSZUKAJ.PIONOWO

Spis treści

Jak prawidłowo spakować spadochron?

Korzyść. Wydanie 2, poprawione.

Załóżmy, że mamy następującą tabelę zamówień:

Ulepszanie funkcji WYSZUKAJ.PIONOWO

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ą:

Ulepszanie funkcji WYSZUKAJ.PIONOWO

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Ę

 

Dodaj komentarz