Jednym z moich ulubionych narzędzi w Excelu jest filtr zaawansowany. Jego potęgę widać zwłaszcza w kontekście budowania raportów VBA. W tej notce chciałbym jednak dość przekornie napisać o jego pewnej pułapce, na którą sporo osób się nabiera.
Idea zadania
W arkuszu Muzyka mamy pewną listę. Są tam głównie nazwiska polskich piosenkarek – nie wnikajmy.
To co jest ważne to fakt, że prawie każdy wpis zawiera słowo anna pisane małą lub wielką literą.
Dodatkowo pozycja 9 zawiera słowo Anna, zaś pozycja 10 słowo anna. Dziwne? Mamy w tym swój cel!
Rozpoczynamy testy
Najpierw opiszę cel, a potem będziemy testować poszczególne kryteria.
Cel zadania
Naszym celem jest wyfiltrowanie pozycji nr 10, czyli słowa anna. Filtr powinien nam zwrócić tylko tą jedną pozycję.
Kryteria filtrowania
Kryteria filtrowania będą podawane w środkowej tabeli, zaś wynik po prawej stronie.
Początek tabeli (słowo Pozycja) znajduje się w komórce B2.
Test 1. anna
Pierwsza próba polega na wpisaniu do komórki F3 słowa anna.
Spodziewam się, że zostanie wyfiltrowana tylko pozycja nr 10.
A jednak zonk! Wynik okazał się inny!
Filtr zaawansowany pokazał wszystkie wpisy, które rozpoczynają się słowem anna, pisanym małą lub wielką literą.
Czyli pominął takie imiona jak Joanna, Hanna czy Marianna. Uwzględnił jednak Anna, anna, ale też np. Anna Wyszkoni. Gdybyśmy jednak na liście mieli wpis Marta Anna Nowak – zostałby on pominięty. Doprawdy ciekawe! :).
Na tym polega pułapka! – Excel zwraca nieprawidłowe dane! Jest to nieintuicyjne.
Test 2. = „anna”
Tym razem do komórki F3 wpisujemy formułę =”anna”.
Spodziewam się, że tym razem wynik już będzie prawidłowy.
A jednak znowu zonk! Filtr zaawansowany zwrócił takie same wyniki jak poprzednio! Są one nieprawidłowe.
Test 3. = „=anna”
W komórce F3 wprowadzamy dodatkowy znak równości. Wpisujemy więc formułę =„=anna”.
Wydaje mi się, że niewiele to zmieni względem poprzednich kryteriów filtrowania.
A jednak! Coś się ruszyło. Jesteśmy blisko prawdy! Excel wyfiltrował tylko dwie pozycje. Potrzebujemy jeszcze tylko uwzględnić wielkość liter.
Test 4. =C3=”anna”
Tym razem spróbujemy zastosować tzw. kryterium formułowe.
W takiej sytuacji musimy jednak zmienić nazwę nagłówka w kolumnie F2, na taki, który nie występuje w tabeli źródłowej.
Do komórki F2 wpisuję słowo Formuła, zaś do F3 formułę =C3=”anna”
Filtr zaawansowany zwraca mi dokładnie taki sam wynik jak w próbie nr 4! To było do przewidzenia.
Test 5. =PORÓWNAJ(C3,”anna”)
Jeszcze raz użyjemy kryterium formułowego, ale będzie ono bardziej rozbudowane.
Do komórki F3 wpisujemy formułę =PORÓWNAJ(C3;anna”).
Chodzi o to, aby Excel porównał każdy wpis z zakresu C3:C12 ze słowem anna, a przy tym uwzględnił wielkość liter….
Obstawiam, że teraz będzie OK ;).
Udało się! Excel wyfiltrował mi tylko pozycję nr 10, czyli słowo anna.
Jak widać – musieliśmy się nieźle nagimnastykować, aby znaleźć prawidłowe rozwiązanie. Więcej informacji na temat filtra zaawansowanego znajdziesz tutaj.