Przed Tobą ostatni odcinek mini-serialu o filtrowaniu tabeli za pomocą funkcji FILTRUJ.
W poprzednim artykule pokazywałam, jak napisać funkcję filtrującą zakres, na podstawie trzech kryteriów. Wykorzystaliśmy do tego funkcję FILTRUJ (ang: FILTER). Filtrowanym zakresem była lista faktur nieopłaconych, których termin płatności już minął i dodatkowo takich, które były przypisane do handlowca wybieranego z listy rozwijanej przez użytkownika. Wyświetlaliśmy wszystkie kolumny pierwotnego zakresu.
Wszystkie artykuły serii Dynamiczne filtrowanie funkcją FILTRUJ:
- Dynamiczne filtrowanie funkcją FILTRUJ: jedno kryterium filtru
- Dynamiczne filtrowanie funkcją FILTRUJ: wiele kryteriów filtru
- Wyświetlanie tylko wybranych kolumn filtrowania – WYBIERZ.KOLUMNY
W tym artykule udoskonalimy to rozwiązanie i w wyniku filtru wyświetlimy tylko potrzebne kolumny, a nie wszystkie dostępne.
Dla przypomnienia – tak wyglądała nasza filtrowana wcześniej tabelka:
A teraz będziemy chcieli wyświetlać z tego zakresu tylko kolumny:
- Data FV (kolumna 1)
- Nr Faktury (kolumna 4)
- Wartość [PLN] (kolumna 5)
- Termin płatności (kolumna 6)
- Klient (kolumna 8)
Do dzieła!
Nasza formuła wymaga w sumie jednej prostej modyfikacji: wrzucimy ją w funkcję WYBIERZ.KOLUMNY (ang: CHOOSECOLS), która – jak sama nazwa wskazuje – wybierze kolumny do wyświetlenia 😉.
Można to oczywiście zrobić na co najmniej kilka sposobów. W tym artykule pokażę Ci dwa.
WYŚWIETLANIE TYLKO WYBRANYCH KOLUMN ZAKRESU – SPOSÓB 1
Funkcja WYBIERZ.KOLUMNY (ang: CHOOSECOLS) potrzebuje od nas następujących argumentów:
- Zakres
- Numery kolumn, które ma wyświetlić – w kolejnych argumentach
A zatem całość może wyglądać następująco:
=WYBIERZ.KOLUMNY( JEŻELI(B3="";tbDane;FILTRUJ(tbDane;(tbDane[Handlowiec]=B3)*(tbDane[Opłacone]="NIE")*(tbDane[Termin płatności]<DZIŚ()))); 1;4;5;6;8)
Zauważ, że numery kolumn do wyświetlenia podałam jako osobne argumenty w kolejności, w jakiej chcę, aby zostały wyświetlone. U mnie akurat są po kolei, ale nie jest to wymóg. Możesz je wyświetlać według własnego uznania 👍.
Efekt formuły po dostosowaniu nagłówków (o tym dalej) jest następujący:
I na dobrą sprawę można tak to zostawić, ale… to rozwiązanie nie jest dynamiczne. Jeśli postanowimy zmienić wyświetlane kolumny – musimy edytować bezpośrednio formułę. Dlatego zobacz sposób 2 – dynamiczny.
WYŚWIETLANIE TYLKO WYBRANYCH KOLUMN ZAKRESU – SPOSÓB 2
Różnica w formule będzie drobna – aby określić numery wyświetlanych kolumn, odwołamy się do zakresu w arkuszu, który zawiera te numery. Możemy je napisać np. nad wynikowym zakresem, gdzieś z boku albo w ogóle w innym arkuszu – jak wolisz.
Ja napiszę nad zakresem, o tak:
A teraz wystarczy się do tego zakresu odwołać w formule, o tak:
=WYBIERZ.KOLUMNY( JEŻELI(B3="";tbDane;FILTRUJ(tbDane;(tbDane[Handlowiec]=B3)*(tbDane[Opłacone]="NIE")*(tbDane[Termin płatności]<DZIŚ()))); A4:E4)
I voila! Efekt filtrowania identyczny:
Ale…
DYNAMICZNE NAGŁÓWKI FILTROWANEGO ZAKRESU
…nagłówki kolumn są niepowiązane z wpisanymi przed chwilą numerami kolumn 🤦♀️.
Potrzebujemy zatem jeszcze jednej prostej formuły na nagłówki. A jest ona taka (A5):
=INDEKS(tbDane[#Nagłówki];A4)
Wystarczy przeciągnąć ją w prawo i gotowe!
Efekt wizualny taki sam, ale DYNAMICZNY, a do tego dążymy kiedy się da. A myślę, że tutaj warto 👍.
https://malinowyexcel.pl/wp-content/uploads/2024/04/MalinowyExcel-20240409-WYBIERZ.KOLUMNY-DW.xlsx
I film na Youtubie, gdzie pokazuję powyższe rozwiązanie:
0 Comments