Czyli formatowanie warunkowe – prosty przykład
Ostatnio prowadziłam szkolenie, pod koniec którego jeden z uczestników zapytał mnie jak zaznaczyć cały wiersz tabeli, jeśli w wybranej kolumnie występuje wybrany wpis. Ponieważ nie starczyło już czasu na pełną odwiedź na to pytanie – skierowałam go na blog, żeby na spokojnie o tym doczytał. Zaczęłam szukać konkretnego wpisu, bo byłam przekonana, że taki jest, a tutaj patrzę: nie ma! Jest kilka innych, wykorzystujących tę samą technikę (np. wartości w 2 kolumnach musiały już kiedyś wystąpić, część wspólna warunków, lub inna wersja części wspólnej warunków), natomiast nie było takiego stricte najprostszego przykładu!
Pomyślałam: no nie, tak nie może być! Przecież to klasyka!
Ten wpis będzie nadrabiał tę niedoróbkę i omówię w nim jak zrobić, aby po wybraniu z listy rozwijanej działu – w tabeli z danymi podświetlały się całe wiersze, w których ten dział występuje. Czyli chcę uzyskać taki efekt:
Formatka będzie to prosta tabela z danymi, u mnie akurat dane pracowników. Do tego, jako bajerek i dla swojej własnej wygody – jest lista rozwijana, z której user wybiera dział, który ma zostać wyróżniony:
Aby dodać formatowanie warunkowe dla całego wiersza, tak na prawdę określamy je dla całej tabeli, na podstawie aktywnej komórki.
- Zaznaczmy więc całą tabelę (bez nagłówka), zaczynając od pierwszej komórki danych, czyli u mnie od B6.
- Wybieramy z menu Narzędzia główne/Formatowanie warunkowe/Nowa reguła…/Użyj formuły do określenia komórek, które należy sformatować
- W pole formuły wpisz prostą regułę:
=$E6=$E$3
- Wybierz format, czyli wyróżnienie (pkt. 3 na rysunku powyżej). U mnie to zaznaczenie na kolor jasnożółty
- Zatwierdź wszystko i to już koniec!
Efekt jest dokładnie taki, jak chcieliśmy:
Prawda, że proste?
Zgadzam się, że wymyślenie tego od zera wcale proste nie jest – te dolary są dość nieintuicyjne na pierwszy rzut oka. Jednak jak pomyślimy sobie, że mamy napisać uniwersalną formułę dla każdej komórki tabeli, i ta formuła ma być prawdziwa (dać w swoim wyniku PRAWDA), gdy użytkownik wybierze konkretny dział, to zobaczymy, że prawdziwość tej formuły zależna będzie od wartości komórki w kolumnie E danego wiersza. Dlatego tę kolumnę blokujemy dolarem ($E), a wiersz zostawiamy w spokoju, ponieważ wiersze akurat mają się zmieniać.
Ważny jest też oczywiście dział wybrany przez usera, E3, który musi być bezwzględnie zablokowany ($E$3), ponieważ każda komórka odwołuje się właśnie do niego. Mam wrażenie, że tu akurat nie ma wątpliwości :).
Powiązane produkty
- WEBINAR: Adresowanie komórek – tutaj dokładnie tłumaczę o co chodzi z tymi dolarami $…
- WEBINAR: Listy rozwijane – a tutaj pokazuję jak ciekawie można użyć list rozwijanych
- WEBINAR: Formatowanie warunkowe – tutaj poznasz więcej fajnych zastosowań formatowania warunkowego
Tutaj możesz pobrać plik xlsx z gotowym rozwiązaniem:
MalinowyExcel Wyroznij caly wiersz tabeli formatowanie warunkowe dw.xlsx
A tutaj wersja wideo na YouTubie:
Hmm rozwiązanie proste i łatwe 😉 Ale jeżeli taka formuła będzie pracować w tabeli gdzie jest 1000 wierszy to już wyraźnie spada wydajność formularza. Widać duże spowolnienie. Jest może jakaś alternatywa mniej zasobo żerna ?
Hmmm… dobre pytanie :). Jeśli chodzi o formatowanie warunkowe to nic mi nie przychodzi innego do głowy. Zastanawiam się też czy w takiej tabeli będziemy tego w ogóle używać? Rozumiem, że masz jakiś fajny przykład? 🙂
To całkiem proste i może się przydać, ale jak to zastosować, kiedy chcemy formatować opierając się tylko na części tekstu, np. mając faktury i zamówienia o innych numerach ale tym samym prefiksie w tej samej kolumnie (np. ZAMxxxx i FKTxxxx) chciałabym wyróżnić tylko faktury (FKTxxxx). Jak wówczas powinna wyglądać formuła?
To ja tutaj bym użyła np. =LEWY($A1;3)=”FKT” i tak samo dla ZAM (jeśli mają to być 2 rózne reguły. Jeśli jedna, formatująca jedne i drugie np. na zielone, to pisałabym tak: =(LEWY($A1;3)=”FKT”)+(LEWY($A1;3)=”ZAM”)
Działa?