Nie znasz dobrze obsługi Excela? A może nie znasz jej wcale? Doskonale wiem, że w dzisiejszych czasach i realiach, znajomość tego programu jest nie tylko niezbędna, ale przede wszystkim korzystna dla Ciebie samego. Moje szkolenie z Excela online pokaże Ci, że arkusz kalkulacyjny nie jest wcale Twoim wrogiem, a sprzymierzeńcem w porządkowaniu i analizie danych - nie tylko liczbowych. Stworzyłem kurs Excel online na każdym poziomie, zarówno dla osób początkujących, średniozaawansowanych, jak i zaawansowanych. Znajdziesz u mnie także szkolenie z Excela online dedykowane specjalnie przedsiębiorcom. Każdy kurs zawiera starannie wyselekcjonowany zakres wiedzy i zagadnień, które odpowiadają na ściśle sprecyzowane potrzeby jego użytkowników.
Excel - kurs online. Dlaczego warto?
Zastanawiasz się, czy Excel i kurs online to dobre połączenie? Czy taka forma nauki pracy z arkuszem kalkulacyjnym może być efektywna? Pozwól, że rozwieję Twoje wątpliwości.
Od lat z powodzeniem zajmuję się dzieleniem swoją wiedzą zdalnie. Ta forma nauki, szczególnie w ostatnim czasie, mocno zyskała na popularności, a jej techniki znacząco się rozwinęły. Abyś mógł biegle posługiwać się programem Excel, każdy swój kurs zaprojektowałem z ogromną starannością i w oparciu o zasady metodyki nauczania na odległość.
Jednak szkolenie z Excela online, to przede wszystkim ogromna wygoda dla Ciebie, ponieważ nie musisz wychodzić z domu, możesz uczyć się wraz ze mną z dowolnego miejsca i w wybranym przez siebie czasie. Dodatkowo każdy mój kurs Excela online zawiera materiały dydaktyczne dostępne dla Ciebie już po zakończeniu szkolenia. Krótkie nagrania filmowe, prezentujące różnego rodzaju działania w arkuszu kalkulacyjnym, które w dowolnej chwili możesz zatrzymać, odtworzyć ponownie, by jeszcze raz przeanalizować i utrwalić wiedzę, to doskonały sposób, by opanować Excel. Kurs online to nie tylko wygoda, to także oszczędność Twojego i mojego czasu - zamiast dojeżdżać w umówione miejsce, możemy poświęcić więcej chwil na ćwiczenia i praktykę.
W tym poście nauczymy się jak przy listach rozwijanych zależnych sprawić, żeby lista zależna od listy głównej odpowiednio się podświetlała, jeśli jest wypełniona nieprawidłową wartością. W naszym przykładzie mamy dwie listy: w jednej możemy wybrać Region (Centrum, Wschód, Zachód, Północ i Południe), a w drugiej Sprzedawcę. Istotne jest, że w każdym regionie mamy innych sprzedawców. Jeśli zmienimy region, to nazwa sprzedawcy podświetli się (pokaże, że mamy błąd wynikający z tego, że danego sprzedawcy nie ma w wybranym przez nas regionie). Widać to na rys. nr 1.
Rys. nr 1 – podświetlony sprzedawca niewystępujący w danym regionie
Zagadnienie to omówimy na podstawie przykładowych danych z rys. nr 2.
Rys. nr 2 – przykładowe dane
Naszym
zadaniem jest sprawienie, aby komórka z elementem listy zależnej była albo
podświetlona albo wyczyszczona po zmianie regiony na głównej liście.
Rozwiązanie z podświetleniem nazwy sprzedawcy uzyskamy za pomocą formatowania
warunkowego. Natomiast rozwiązanie z czyszczeniem komórki otrzymamy przy użyciu
kodu VBA.
Mamy
przygotowane wcześniej listy (główną i zależną) oraz powiązaną z tymi listami
tabelę, która wyświetla dane dla wybranych wartości. Tabelki te zostały
przedstawione na rys. nr 3.
Rys. nr 3 – listy rozwijane
Najpierw
musimy sprawdzić czy dana pozycja występuje. Do tego wykorzystamy funkcję PODAJ.POZYCJĘ.
Pierwszym argumentem funkcji jest szukana_wartość, czyli komórka z
aktualnie wybranym sprzedawcą (u nas G2). Drugi argument funkcji to przeszukiwana_tab,
czyli kolumna Sprzedawcy (K2:K6). Trzeci argument to typ_porównania,
wybieramy dopasowanie dokładne, czyli wpisujemy wartość 0. Zapis formuły
powinien wyglądać następująco:
=PODAJ.POZYCJĘ(G2;K2:K6;0)
Jeśli danego
sprzedawcy nie będzie w wybranym regionie to funkcja PODAJ.POZYCJĘ wyświetli
nam błąd #N/D (rys. nr 4), co dla formatowania warunkowego oznacza, że nie
nakładamy żadnego formatowania.
Rys. nr 4 – błąd wyświetlany przez funkcję PODAJ.POZYCJĘ
Jeśli
zmienimy sprzedawcę na takiego, który występuje w wybranym regionie funkcja
PODAJ.POZYCJE zwróci nam wartość 1, 2 itd.
Formatowanie
warunkowe liczby całkowite różne od zera, traktuje jako wartość logiczną
PRAWDA. Za pomocą formatowania warunkowego sprawimy, że kolorystyka z komórki
G2 zniknie. Mamy napisaną formułę, którą wykorzystamy w formatowaniu warunkowym
(zapis funkcji PODAJ.POZYCJĘ). Kopiujemy zapis formuły w trybie edycji komórki
za pomocą skrótu klawiszowego Ctrl+C. Zaznaczamy komórkę G2 i rozwijamy
polecenie Formatowanie warunkowe (punkt 2 na rys. nr 5) z karty Narzędzia
główne (punkt 1), następnie wybieramy polecenie Nowa reguła (punkt
3).
Rys. nr 5 – polecenie Nowa reguła
Otworzy nam się okno Nowej reguły formatowania, gdzie w polu Wybierz typ reguły, wybieramy opcję Użyj formuły do określenia komórek, które należy sformatować (punkt 1 na rys. nr 6). Następnie w polu Edytuj opis reguły wklejamy wcześniej skopiowaną formułę (punkt 2). Teraz wybieramy przycisk Formatuj, aby wybrać rodzaj formatowania (punkt 3).
Rys. nr 6 – okno Nowej reguły formatowania
Otworzy nam się okno Formatowania komórek, gdzie przechodzimy na zakładkę Wypełnienie (punkt 1 na rys. nr 7), następnie wybieramy w polu Kolor tła Brak koloru (punkt 2). Takie ustawienie formatowania zatwierdzamy przyciskiem OK.
Rys. nr 7 – okno Formatowania komórek
Excel wróci
do okna Nowa reguła formatowania, które należy zatwierdzić przyciskiem OK.
Jak widać na
rys. nr 8, Stanisław jest sprzedawcą z regionu Północ, więc formatowanie
warunkowe zadziałało w ten sposób, że zmieniło kolor na Brak wypełnienia.
Rys. nr 8 – brak wypełnienia w komórce G2
Jeśli teraz w komórce G1 wybierzemy np. Zachód, nazwa Sprzedawcy podświetli się nam znowu na czerwono. Wynika to z tego, że funkcja PODAJ.POZYCJĘ zwróciła błąd (komórka H1) – rys. nr 9.
Rys. nr 9 – podświetlenie sprzedawcy nie występującego Zachód
W ten sposób
uzyskaliśmy efekt podświetlania kolorystycznego w zależności czy wybrany
sprzedawca występuje w danym regionie. Pokazaliśmy jak rozwiązać taki problem
za pomocą formatowania warunkowego.
W drugim
rozwiązaniu będzie nam potrzebny kod VBA, który jest relatywnie prosty w
porównaniu do niektórych kodów. Jednak żeby dobrze go zrozumieć, trzeba się trochę
orientować w VBA. Aby przejść do języka VBA korzystamy ze skrótu klawiszowego Alt+F11.
Otworzy nam się okno VBA pokazane na rys. nr 10.
Rys. nr 10 – okno VBA
Interesuje
nas sytuacja, kiedy zmienimy wartość w komórce G1, czyli Region. W VBA chcemy
uzyskać rozwiązanie, które będzie polegało na tym, żeby komórka G2 wyczyściła
się ,kiedy zmienimy wartość w komórce G1. Czyli kiedy zmienimy region, chcemy
aby komórka zawierająca nazwę sprzedawcy została wyczyszczona.
Pracujemy na
arkuszu p384_k, więc w panelu bocznym VBA znajdujemy odpowiednią nazwę (rys. nr
11) i klikamy na nią dwukrotnie.
Rys. nr 11 – wybór odpowiedniego arkusza
Otworzy się nam moduł kodu VBA dla tego arkusza, w którym będziemy pisać kod. W pierwszym polu zamiast domyślnego General wybieramy Worsheet (punkt 1 na rys. nr 12), a w drugiem zamiast SelectionChange wybieramy z listy rozwijanej Change (punkt 2).
Rys. nr 12 – zmiana ustawień kodu dla wybranego arkusza
Ostatnie
dwie linijki kodu możemy skasować, są zbędne. Będziemy chcieli zastosować znany
kod na przecięcie elementu/ wartości. Kod ten wykorzystuje funkcję Intersect,
dla której podajemy dwa zakresy i sprawdzamy czy one się przecięły. Pierwszym
naszym zakresem będzie wartość Target, czyli jeśli zmieni się arkusz, to
jaki zakres w tym arkuszu ulegnie zmianie. Target to w skrócie zakres, który
uległ zmianie. Nasze zadanie polega na sprawdzeniu, czy ten zakres ma część
wspólną z drugim zakresem (z komórką G1). Drugi zakres zapisujemy jako Range("G1").
Cały zapis funkcji powinien wyglądać następująco:
Intersect(Target,
Range("G1"))
Funkcja ta,
jeśli znajdzie część wspólną, zwróci właśnie tą wartość. Jeśli zakresy nie będą
miały części wspólnej funkcja zwróci Nothing, czyli pustą komórkę.
Ciężej jest
zorientować się jaki zakres zwraca ta funkcja, więc musimy sprawdzić czy nasza
funkcja zwraca nic. W tym celu do zapisu funkcji należy dopisać sformułowanie "is
nothing". Zapis powinien wyglądać następująco:
Intersect(Target, Range("G1")) is nothing
Jeśli funkcja
zwraca nothing, oznacza to, że przecięcia nie było. Nas interesuje odwrotna
sytuacja, więc przed nazwą funkcji Intersect musimy dopisać Not. Zapis powinien
wyglądać następująco:
Not (Intersect(Target, Range("G1")) is Nothing)
Wykonamy
teraz prosty test logiczny, czyli przed zapisem wpisujemy if, natomiast po
Then. Pod zapisem tej formuły wstawiamy zakończenie funkcji If w postaci zapisu
End If.
Jeśli funkcja
Intersect zwraca nic, oznacza to, że nasze zakresy nie mają przecięcia. W
takiej sytuacji chcemy otrzymać pusty ciąg znaków (""). Zapis
powinien wyglądać następująco (rys. nr 13):
If Not (Intersect(Target, Range("G1")) is Nothing) Then
Range("G2")
= ""
End If
Rys. nr 13 – kod VBA wykorzystujący funkcję If
Możemy łatwo sprawdzić działanie tego kodu. Dla pewności zapisujemy dane z kodu za pomocą skrótu klawiszowego Ctrl+S. Przechodzimy do naszego arkusza w Excelu, gdzie zmieniamy nazwę regionu. Jak widać na rys. nr 14, zmiana nazwy regionu na taki, w którym nie ma aktualnego sprzedawcy (brak przecięcia zakresów) sprawiło, że komórka G2 została wyczyszczona.
Rys. nr 14 – wyczyszczona komórka G2 po zmianie regionu w komórce G1
Możemy pójść
o krok dalej w kodzie VBA i np. zamiast wyczyszczenia komórki (pusty ciąg
znaków), możemy podać tekst "Podaj sprzedawcę". Zapis kodu wyglądałby
wtedy następująco:
If Not (Intersect(Target, Range("G1")) is Nothing) Then
Range("G2")
= "Podaj sprzedawcę"
End If
Wtedy po
zmianie region w komórce G1, w komórce G2 wyświetli się napis Podaj sprzedawcę,
co widać na rys. nr 15.
Rys. nr 15 – wyświetlenie napisu Podaj sprzedawcę
Jest mały
problem, kiedy chcemy zmienić nazwę regionu i się rozmyślimy. VBA automatycznie
po rozwinięciu listy rozwijanej (mimo że nie wybierzemy innego regionu)
zadziała i wyświetli nam napis Podaj sprzedawcę.
Teraz
wykonamy bardziej zaawansowane działania w celu zabezpieczenia się przed taką
sytuacją. Przechodzimy do okna VBA, w którym pisaliśmy nasz kod. Możemy użyć
funkcji Find. Najpierw musimy określić zakres, na którym ta funkcja ma
działać(w naszym przykładzie K2:K8). Funkcja Find będzie szukała naszego wybranego
sprzedawcy, czyli musimy podać zakres (Range("G2")). Jak funkcja Find
znajdzie wybranego sprzedawcę to powinna zwracać odpowiedni zakres, natomiast
jeśli nie znajdzie, powinna zwracać nothing, czyli nic. Zapis całej formuły
powinien wyglądać następująco (rys. nr 16):
If Not (Intersect(Target, Range("G1")) is Nothing) Then
If Range("K2:K8").Find
(Range("G2")).Value, LookIn:=xlValues) is Nothing Then
Range("G2")
= "Podaj sprzedawcę"
End If
End If
Rys. nr 16 – kod VBA
Zastosowanie funkcji Find w funkcji If sprawiło, że wyświetli się napis Podaj sprzedawcę tylko wtedy, kiedy faktycznie ta zmiana w komórce G1 nastąpi.
Książka Mistrz Excela + promo na 35 urodziny
Chcę Cię poinformować, że w końcu udało mi zebrać środki i dopiąć wszystkich formalności, żeby powstało II wydanie mojej książki Mistrz Excela (zostałem wydawcą) II wydanie jest wzbogacone o rozdział (nr 22) wprowadzający w genialny dodatek (Power Query) do Excela służący do pobierania, łączenia i wstępnej obróbki danych z wielu źródeł.
Książka Mistrz Excela to historia Roberta, który musi poznać dobrze Excela na potrzeby nowej pracy. Książka jest napisana w formie rozmów Roberta z trenerem, dzięki temu jest przystępniejsza w odbiorze niż standardowe książki techniczne pisane językiem "wykładowym".
Rozmowy zostały podzielone na 22 tematyczne rozdziały, które krok po kroku wprowadzają Cię w tajniki Excela. Robert zaczyna naukę od poznania ciekawych aspektów sortowania i filtrowania danych w Excelu, przechodzi przez formatowanie warunkowe, tabele przestawne, funkcje wyszukujące i wiele innych tematów, by na koniec poznać wstępne informacje o VBA i Power Query. A wszystko to na praktycznych przykładach i z dużą ilością zdjęć.
Żebyś mógł śledzić postępy Roberta, do książki dołączone są pliki Excela, na których pracuje Robert.
Na powyższej stronie znajdziesz dokładniejszy opis książki, opinie osób, które kupiły I wydanie oraz podgląd pierwszego rozdziału książki, żeby upewnić się, czy forma rozmów przy nauce Excela jest dla Ciebie. Jeśli książka Ci się spodoba poinformuj o niej swoich znajomych.
W ramach promocji na moje 35 urodziny możesz też mieć każdy z moich kursów wideo na Udemy za zaledwie 35 zł. Linki do kursów zamieszczam poniżej. W każdym kursie są udostępnione filmy do podglądu, byś mógł się przekonać czy dany kurs jest dla Ciebie.