fbpx

Dynamiczne filtrowanie tabeli dzięki checkboxowi i FILTRUJ

19.11.2024 | Dynamiczne formuły tablicowe, ECP2, Formuły i funkcje, Formuły tablicowe, Microsoft365, Opcje

W tym artykule pokażę Ci świetne zastosowanie nowego checkboxa w Excelu, jakim jest wybór danych, które chcemy zobaczyć na liście. Połączymy to z funkcjami tablicowymi, dostępnymi w nowych wersjach Excela, dzięki czemu otrzymamy dynamiczną listę wyświetlającą tylko te dane, które chce zobaczyć użytkownik. 

W naszym przypadku user będzie filtrował tabelę z transakcjami zrealizowanymi przez handlowców. Tabela nazywa się tbDane i znajduje się w arkuszu TABELA: 

Tabela do filtrowania

 

A w arkuszu Filtr będziemy dokonywać dynamicznego filtrowania. Mam w nim na razie prostą listę z checkboxami i nazwiskami handlowców, pod kątem których będę filtrować tabelę źródłową: 

Lista checkboxów

 

Wynik filtrowania będzie formułą, którą teraz napiszemy. 

 

1. Połączenie checkboxów z tabelą

Aby wybrać wartości z tabeli na podstawie zaznaczenia checkboxów, musimy jakoś połączyć tabelę z checkboxami. Wow, wielkie odkrycie 😊. Ale w swojej prostocie jest sednem sprawy. 

Tym połączeniem będzie dodatkowa kolumna w tabeli tbDane, która w wierszu, w którym znajduje się handlowiec wybrany poprzez zaznaczony checkbox, będzie wyświetlała wartość logiczną PRAWDA, a tam, gdzie nie ma tego handlowca – FAŁSZ. Kolumnę nazwę Check_Handlowiec. 

Napiszemy w tym celu prostą formułę, która wyszuka handlowca w tabelce z checkboxami w arkuszu Filtr i wyświetli wartość zwróconą przez checkbox (PRAWDA/FAŁSZ). Oto formuła: 

=X.WYSZUKAJ([@Handlowiec];Filtr!$C$3:$C$6;Filtr!$B$3:$B$6) 

Do tego wyszukiwania ja użyłam funkcji X.WYSZUKAJ (ang: XLOOKUP), natomiast śmiało można użyć dowolnej innej (np. WYSZUKAJ.PIONOWO, czy INDEKS I PODAJ.POZYCJĘ). 

Efekt jest następujący (dla zaznaczonych checkboxów dla handlowców Grzegorz Jabłoński i Bogusława Jankowska): 

Połączenie tabeli z checkboxami

 

2. Filtrowanie funkcją FILTRUJ (ang. FILTER) 

W arkuszu Filtr (tam są checkboxy), wpiszę formułę do pierwszej komórki pod nagłówkiem, czyli B10. Formuła ta na razie jest następująca: 

=FILTRUJ(tbDane;tbDane[Check_Handlowiec];tbDane) 

(FILTRUJ = ang. FILTER) 

Ta funkcja wyświetla rekordy tabeli tbDane, zawierające słowo PRAWDA w kolumnie Check_Handlowiec. I to jeszcze nie jest efekt, na którym nam zależy: 

Wynik funkcji FILTRUJ

 

Formatowaniem, a raczej jego brakiem, na razie się nie przejmujemy. Bardziej interesuje nas, że zostały wyświetlone wszystkie kolumny tabeli źródłowej, a nie tylko te, które mamy wyświetlone w nagłówkach w formatce. 

Aby temu zaradzić, użyjemy funkcji WYBIERZ.KOLUMNY (ang. CHOOSECOLS) w połączeniu z funkcją PODAJ.POZYCJĘ (ang. MATCH), aby namierzyć konkretną kolumnę zakresu źródłowego: 

=WYBIERZ.KOLUMNY(FILTRUJ(tbDane;tbDane[Check_Handlowiec];tbDane);PODAJ.POZYCJĘ(B9:G9;tbDane[#Nagłówki];0)) 

Efekt jest następujący: 

Wybranie konkretnych kolumn

 

W sumie na tym można byłoby skończyć pisanie formuły. Ja jednak lubię, jak dane są posortowane i tutaj chciałabym, aby było posortowane po handlowcu, a zatem po kolumnie nr 6. 

Wrzucę więc dotychczasową formułę do funkcji SORTUJ (ang. SORT): 

=SORTUJ(WYBIERZ.KOLUMNY(FILTRUJ(tbDane;tbDane[Check_Handlowiec];tbDane);PODAJ.POZYCJĘ(B9:G9;tbDane[#Nagłówki];0));6) 

Po ręcznym sformatowaniu kolumn z datami i liczbami efekt jest taki: 

WYNIK

 

Voila! 

Można by pokusić się tutaj o bardziej dynamiczne rozwiązanie, tzn. takie, które generuje tabelę bez określonych wcześniej nagłówków. O tym jednak napiszę Ci niebawem 😉. 

 


Plik do pobrania:

https://malinowyexcel.pl/wp-content/uploads/2024/11/MalinowyExcel-20241119-Checkbox-FILTRUJ-DW.xlsx

 

Film na Youtubie, gdzie pokazuję powyższe rozwiązanie:

 

 

 

Jeżeli chcesz lepiej poznać Excela na poziomie średniozaawansowanym zapisz się na listę zainteresowanych kursem Excel w codziennej pracy cz. 2! Podczas oczekiwania na kurs będę Ci wysyłała informacje, ciekawostki i excelowe triki. Bezpłatnie! 

Pomogłam Ci? Postaw mi wirtualną kawę! →

Przeczytaj podobne wpisy

Kategorie

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *