0
0 Produkty w koszyku

No products in the cart.

Excel — Jak wyciągnąć kod VBA z add-in do Excela — Lista z opcją wyszukiwania — porada #380

W dzisiejszym poście nauczymy się jak skopiować kod add-inn (kod dodatku do Excela), żeby wkleić go do konkretnego pliku Excela. Zadanie to wykonamy na podstawie przykładowych danych z rys. nr 1.

Rys. nr 1 – przykładowe dane
Rys. nr 1 – przykładowe dane

W poprzednim poście  (porada 379) pokazaliśmy jak zainstalować add-inn, dodatek do Excela na przykładzie Jona Acampory. Problem z dodatkami jest taki, że są instalowane na konkretnym urządzeniu (komputerze) i przy kopiowaniu pliku, przenoszeniu pliku na inne urządzenie dodatek nie będzie działał. Podsumowując na innym urządzeniu mimo, że korzystamy z tego samego pliku nie mamy dodatkowych opcji wynikających z dodatku, z którego korzystaliśmy, nie ma również dodatkowej karty XL Campus na pasku narzędzi.

Możemy jednak skopiować kod tego dodatku i podpiąć go pod konkretny plik Excela. Wykonamy to zadanie z kodem Jona Acampory ponieważ jest on darmowy i możemy sobie pozwolić na jego kopiowanie.

Załóżmy że mamy otwarty nasz przykładowy plik Excela (dane z rys. nr 1) i mamy pobrany dodatek Add-inn Jona Acampory na dysk (rys. nr 2).

Rys. nr 2 – dodatek Jona Acampora pobrany na dysk
Rys. nr 2 – dodatek Jona Acampora pobrany na dysk

Istotne jest, że jeśli wykonałeś czynności z poprzedniego postu i masz już zainstalowany dodatek add-in to nie musisz na tym etapie otwierać pliku dodatku. My dla przykładu otworzymy sobie ten plik w Excelu (nie zainstalujemy tylko otworzymy), czyli klikamy na jego nazwę prawym przyciskiem myszy (plik z rozszerzeniem .xlam) i z podręcznego menu rozwijamy polecenie Otwórz za pomocą, a następnie wybieramy program Excel (rys. nr 3).

Rys. nr 3 – Otwieranie dodatku add-in za pomocą programu Excel
Rys. nr 3 – Otwieranie dodatku add-in za pomocą programu Excel

Po uruchomieniu Excela kod Jona Acampory powinien się uruchomić, czyli powinniśmy widzieć kartę XL Campus. Jest tp uruchomienie jednorazowe, czyli jak ponownie uruchomimy Excela to już tego dodatku nie będzie (w przeciwieństwie do porady nr 379, gdzie instalowaliśmy dodatek na stałe na to urządzenie).

Istotne dla nas jest teraz wyciągnięcie kodu z tego dodatku i podpięcie do na stałe do tego pliku. Korzystając ze skrótu klawiszowego Alt+F11, przechodzimy do Edytora zaawansowanego VBA (rys. nr 4).

Rys. nr 4 – edytor zaawansowany VBA
Rys. nr 4 – edytor zaawansowany VBA

Przede wszystkim musimy sobie uruchomić edytor Projektu, a możemy to zrobić wybierając polecenie Project Explorer z karty View (rys. nr 5).

Rys. nr 5 – polecenie Project Explorer
Rys. nr 5 – polecenie Project Explorer

W edytorze projektu widzimy dodatek Add-in oraz nasz plik, który nie posiada pod sobą żadnych modułów, formularzy czy klas. Musimy skopiować elementy zaznaczone na zielono na rys. nr 6 do naszego pliku. Możemy je kopiować dzięki temu, że dodatek Jona Acampora jest darmowy.

Rys. nr 6 – elementy dodatku add-in, które musimy skopiować
Rys. nr 6 – elementy dodatku add-in, które musimy skopiować

Moduły z dodatku kopiujemy na zasadzie przeciągania, czyli przeciągamy wszystkie moduły dodatku add-in do naszego pliku. Po skopiowaniu nasz plik powinien zawierać wszystkie elementy kodu dodatku (przedstawione na rys. nr 7).

Rys. nr 7 – elementy kodu skopiowane do naszego pliku
Rys. nr 7 – elementy kodu skopiowane do naszego pliku

Kiedy już skopiujemy ten kod, musimy poznać na tyle ten dodatek, żeby wiedzieć które makro jest tym głównym, które uruchamia cały proces. W przypadku tego dodatku jest to formularz. Aby uruchomić ten formularz potrzebujemy kodu, który przygotowałem sobie wcześniej. Kod ten powinien wyglądać następująco:

Sub ListaWyszukaj ()

            F_ListSearch.Show

End sub

Zaznaczamy ten kod (rys. nr 8) i kopiujemy go za pomocą skrótu klawiszowego Ctrl+C.

Rys. nr 8 – kod dodatku Add-in (makro)
Rys. nr 8 – kod dodatku Add-in (makro)

Aby wkleić ten kod do naszego pliku klikamy prawym przyciskiem myszy na Modules (moduły w naszym pliku) i z podręcznego menu rozwijamy polecenie Insert, a następnie wybieramy polecenie Module (rys. nr 9).

Rys. nr 9 – polecenie wstawiania modułu (makra)
Rys. nr 9 – polecenie wstawiania modułu (makra)

Otworzy nam się okno, gdzie za pomocą skrótu klawiszowego Ctrl+V możemy wkleić wcześniej skopiowane makro (rys. nr 10).

Rys. nr 10 – miejsce wklejenia skopiowanego makra
Rys. nr 10 – miejsce wklejenia skopiowanego makra

Musimy pamiętać o zapisaniu pliku za pomocą skrótu klawiszowego Ctrl+S. Powyższe działania sprawiły, że mamy działające uruchamiające makro podpięte do naszego pliku. Możemy teraz w Excelu podejrzeć makra klikając polecenie Makra na karcie Deweloper (rys. nr 11). Możemy również skorzystać ze skrótu klawiszowego Alt+F8.

Rys. nr 11 – polecenie Makra na karcie Deweloper
Rys. nr 11 – polecenie Makra na karcie Deweloper

Otworzy nam się okno ze wszystkimi makrami w kodzie przedstawione na rys. nr 12. Nasze makro uruchamiające formularz nazywa się ListaWyszukaj. Musimy je znaleźć na liście wszystkich makr i zaznaczyć. Ważne jest, aby to makro przypiąć do jakiegoś przycisku lub podpiąć pod skrót klawiszowy. My podepniemy je pod skrót klawiszowy ponieważ będziemy go często używać. W tym celu zaznaczamy nasze makro i przechodzimy do jego edycji za pomocą przycisku Opcje (rys. nr 12).

Rys. nr 12 – Nazwa naszego makra na liście wszystkich makr
Rys. nr 12 – Nazwa naszego makra na liście wszystkich makr

Otworzy nam się okno Opcji makra, gdzie możemy sobie wybrać jakiś skrót uruchamiający nasze makro. W polu Klawisz skrótu wpisujemy np. literkę L i otrzymamy skrót klawiszowy uruchamiający makro w postaci Ctrl+L. Wybrany skrót klawiszowy zatwierdzamy przyciskiem OK (rys. nr 13).

Rys. nr 13 – Opcje makra
Rys. nr 13 – Opcje makra

Excel po zatwierdzeniu skrótu klawiszowego powróci do okna Makro, które zamykamy za pomocą znaku x w prawym górnym rogu okna. Teraz możemy sprawdzić działanie makra uruchamiającego nasz dodatek. Wciskamy skrót klawiszowy Ctrl+L aby uruchomić makro ListSearch (rys. nr 14).

Rys. nr 14 – makro ListSearch uruchomione za pomocą skrótu klawiszowego Ctrl+L
Rys. nr 14 – makro ListSearch uruchomione za pomocą skrótu klawiszowego Ctrl+L

W polu w tym oknie możemy zacząć wpisywać nazwę artykułu i funkcja ta ograniczy liste wyszukiwania do słów zawierających dane znaki (rys. nr 15).

Rys. nr 15 – lista rozwijana z wyszukiwaniem
Rys. nr 15 – lista rozwijana z wyszukiwaniem

Kod Jona jest dobrze dopracowany, mianowicie jeśli wpiszemy jakąś wartość i nie wybierzemy czegoś z listy a będziemy chcieli zatwierdzić wpisane znaki przyciskiem Enter, to wyskoczy nam komunikat, że tej wartości nie możemy wpisać bo nie ma jej na liście (rys. nr 16).

Rys. nr 16 – komunikat, że wpisanej wartości nie ma na liście
Rys. nr 16 – komunikat, że wpisanej wartości nie ma na liście

Musimy mieć pewność, że wpisaliśmy pełną nazwę z listy, ponieważ w przeciwnym razie dodatek add-in nie pozwoli nam jej zatwierdzić Enterem.

Analogicznie dodatek zadziała dla listy elementów – kolumny z danymi (bez listy rozwijanej). Uruchamiamy ponownie kod dodatku za pomocą ustawionego przez nas skrótu klawiszowego Ctrl+L. Pojawi nam się okienko ListSearch, które automatycznie wykryje wszystkie elementy z listy w kolumnie (rys. nr 17).

Rys. nr 17 – ListSearch wykrywające elementy z listy w kolumnie (nie listy rozwijanej)
Rys. nr 17 – ListSearch wykrywające elementy z listy w kolumnie (nie listy rozwijanej)

Wszystko działa poprawnie, mamy podpięty kod pod nasz plik i mamy pewność, że po uruchomieniu na innym komputerze zadziała on poprawnie.

Potrzebna nam jest jeszcze drobna modyfikacja tego kodu ponieważ została ona napisana pod język angielski, gdzie znakiem (ogranicznikiem) rozdzielającym elementy jest przecinek (,) a nie jak w polskiej wersji średnik (;). Zaznaczamy dowolną pojedynczą komórkę, a następnie wybieramy polecenie Poprawność danych z karty Dane (rys. nr 18).

Rys. nr 18 – polecenie Poprawność danych
Rys. nr 18 – polecenie Poprawność danych

Otworzy nam się okno Sprawdzania poprawności danych, gdzie w karcie Ustawienia, w polu Dozwolone (Kryteria poprawności) wybieramy z listy rozwijanej opcję Lista, a następnie w polu Źródło dodajemy przykładowe elementy oddzielone odpowiednim znakiem (średnikiem) jak widać na rys. nr 19.

Rys. nr 19 – okno Sprawdzania poprawności danych
Rys. nr 19 – okno Sprawdzania poprawności danych

Otrzymamy prostą, poprawnie działającą listę przedstawioną na rys. nr 20.

Rys. nr 20 – lista rozwijana stworzona poprzez sprawdzanie poprawności danych
Rys. nr 20 – lista rozwijana stworzona poprzez sprawdzanie poprawności danych

Teraz jeśli użyjemy skrótu klawiszowego Ctrl+L, aby uruchomić nasz kod i spróbujemy w okienku ListSearch rozwinąć tą listę otrzymamy tylko jeden element składający się ze wszystkich elementów naszej listy (rys. nr 21).

Rys. nr 21 – elementy z listy rozpoznane przez dodatek jako jeden element
Rys. nr 21 – elementy z listy rozpoznane przez dodatek jako jeden element

Podsumowując kod naszego dodatku nie rozpoznał tej listy, ponieważ jej elementy zostały rozdzielone średnikami, a nie jak w angielskiej wersji przecinkami. Kod ten ma zapisane w pamięci, że znakiem rozdzielającym elementy z listy jest przecinek. Naszym zadaniem jest skorygowanie tego tak, aby kod poprawnie rozpoznawał elementy listy.

Za pomocą skrótu klawiszowego Alt+F11 przechodzimy do kodu w edytorze VBA. Musimy znaleźć w elementach naszego pliku formularz (Forms), żeby wyświetliło się nam odpowiednie okno, w którym wprowadzimy zmiany (rys. nr 22).

Rys. nr 22 – zmiany w kodzie dodatku (formularz)
Rys. nr 22 – zmiany w kodzie dodatku (formularz)

W okienku List Search – ExcelCampus.com musimy kliknąć prawym przyciskiem myszy na szare tło, a następnie wybrać z podręcznego menu polecenie View Code (rys. nr 23).

Rys. nr 23 – polecenie View code
Rys. nr 23 – polecenie View code

Otworzy nam się okno z kodem, który zmodyfikujemy (rys. nr 24).

Rys. nr 24 – okno z kodem
Rys. nr 24 – okno z kodem

Aby wyszukać interesujący nas fragment możemy użyć skrótu klawiszowego Ctrl+F, otworzy nam się okienko Find, gdzie w polu Find What w znakach cudzysłowu wpisujemy szukany znak (przecinek). Wpisany znak zatwierdzamy przyciskiem Find Next (rys. nr 25).

Rys. nr 25 – szukanie w kodzie znaku przecinka
Rys. nr 25 – szukanie w kodzie znaku przecinka

Wyskoczy nam komunikat, że został znaleziony taki element. Zatwierdzamy ten komunikat przyciskiem OK i zamykamy okienko Find. W oknie z kodem mamy podświetlony szukany element kodu co widać na rys. nr 26.

Rys. nr 26 – podświetlony szukany fragment kodu
Rys. nr 26 – podświetlony szukany fragment kodu

Jest to linijka kodu, która wyznacza znak rozdzielający elementy listy. Pamiętamy, że w polskiej wersji oprogramowania podziała elementów odbywa się za pomocą znaku średnika. Udało mi się znaleźć fragment kodu, który należy wstawić w miejsce linijki ze znakiem przecinka. Kopiujemy ten fragment z Notepada ++ za pomocą skrótu klawiszowego Ctrl+C (rys. nr 27).

Rys. nr 27 – fragment kodu, który wkleimy do VBA
Rys. nr 27 – fragment kodu, który wkleimy do VBA

Teraz w VBA wstawiamy fragment kodu ze znakiem przecinka w pojedynczy cudzysłów (robimy z niego komentarz), a następnie wklejamy skopiowany wcześniej kod za pomocą skrótu klawiszowego Ctrl+V. Po drobnych estetycznych poprawkach otrzymamy kod przedstawiony na rys. nr 28. Zostawiam dużo komentarzy, żeby potencjalny użytkownik zrozumiał co tutaj zmieniliśmy.

Rys. nr 28 – Zmieniony kod (teraz średnik będzie znakiem rozdzielającym elementy listy)
Rys. nr 28 – Zmieniony kod (teraz średnik będzie znakiem rozdzielającym elementy listy)

W miejsce przecinka wpisujemy zmienną, która odczyta z wersji oprogramowania Windows odczyta, jaki jest poprawny znak rozdzielający elementy listy. Musimy pamiętać o zapisaniu zmian w kodzie za pomocą skrótu klawiszowego Ctrl+S i wracamy do Excela. Teraz kiedy za pomocą skrótu klawiszowego Ctrl+L wywołamy nasz dodatek ListSearch, otrzymamy trzy elementy listy (rys. nr 29).

Rys. nr 29 – poprawnie rozpoznane elementy listy
Rys. nr 29 – poprawnie rozpoznane elementy listy

Naprawiliśmy tą niedogodność, która nie zawsze występuje, ponieważ jeśli lista rozwijana korzysta ze źródła, którym był zakres komórek, problem ten się nie pojawi. Najczęściej pojawia się taki problem kiedy sami wpisujemy elementy takich list.

Aby sprawdzić czy wszystko działa poprawnie, zamykamy wszystkie okna, arkusze i pliki, a przede wszystkim Excela. Następnie ponownie uruchamiamy nasz plik i korzystając ze skrótu klawiszowego Ctrl+L uruchamiamy nasz dodatek. Podsumowując dzięki naszym modyfikacjom kod działa, ponieważ jest podpięty do pliku. Korzystając ze skrótu klawiszowego Ctrl+F11, uruchamiamy ponownie edytor VBA, żeby pokazać, że mamy uruchomiony tylko nasz plik, nie został uruchomiony plik kodu z rozszerzeniem .xlam, co widać na rys. nr 30 

Rys. nr 30 – edytor VBA
Rys. nr 30 – edytor VBA

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.

Aktualnie w promocji urodzinowej możesz mieć Mistrza Excela w obniżonej cenie, jeśli tylko wpiszesz kod 35URODZINY
https://exceliadam.pl/produkt/ksiazka-mistrz-excela

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.

Power Query
https://www.udemy.com/course/mistrz-power-query/?couponCode=35URODZINY

Mistrz Excela
https://www.udemy.com/mistrz-excela/?couponCode=35URODZINY

Dashboardy
https://www.udemy.com/course/excel-dashboardy/?couponCode=35URODZINY

Mistrz Formuł
https://www.udemy.com/course/excel-mistrz-formul/?couponCode=35URODZINY

VBA
https://www.udemy.com/course/excel-vba-makra/?couponCode=35URODZINY

Microsoft Power BI
https://www.udemy.com/course/power-bi-microsoft/?couponCode=35URODZINY

Książka Mistrz Excela reklama

Excel Power Query 49 — Błąd przy pobieraniu nazwanego zakresu, który jest filtrowany

W dzisiejszym poście zajmiemy się błędem, który pojawia się przy pobieraniu danych, kiedy wcześniej nałoży się filtr. Załóżmy, że mamy w przykładowych danych zakres, który nie jest tabelą.  Zaznaczamy ten zakres i będziemy chcieli go nazwać — po prostu NazwanyZakres (w miejscu oznaczonym strzałką na rys. nr 1).

rys. nr 1 - nazywanie zaznaczonego zakresu
rys. nr 1 — nazywanie zaznaczonego zakresu

Nazwanie zakresu pozwala nam wrócić do niego z każdego miejsca w arkuszu (z każdej komórki) rozwijając okno, w którym nazywaliśmy ten zakres (rys. nr 2).

rys. nr 2 - powrót do nazwanego zakresu z każdego miejsca w arkuszu
rys. nr 2 — powrót do nazwanego zakresu z każdego miejsca w arkuszu

Kiedy mamy nazwany zakres możemy za pomocą polecenia Z tabeli/zakresu z karty Dane pobrać go do Power Query (rys. nr 3).

rys. nr 3 - pobieranie danych do Power Query za pomocą polecenia Z tabeli/zakresu
rys. nr 3 — pobieranie danych do Power Query za pomocą polecenia Z tabeli/zakresu

W takim przypadku Power Query nie ma żadnych problemów, pobiera dane prawidłowo. Otworzy nam się Edytor zapytań z wczytanym zaznaczonym zakresem (rys. nr 4).

rys. nr 4 - edytor zapytań z wczytanym zakresem z Excela
rys. nr 4 — edytor zapytań z wczytanym zakresem z Excela

Problem pojawia się jeśli na ten nazwany zakres w Excelu nałożymy filtr, a następnie za pomocą polecenia Z tabeli/zakresu z karty Dane wczytamy ten zakres do Power Query. Otworzy nam się edytor zapytań Power Query, ale z błędem (rys. nr 5).

rys. nr 5 - edytor zapytań z wczytanym zaznaczonym zakresem z błędem
rys. nr 5 — edytor zapytań z wczytanym zaznaczonym zakresem z błędem

Błąd wynika z tego, że Power Query nie odczytuje zakresu danych tylko próbuje odczytać filtr, który jest nałożony na ten zakres (rys. nr 6).

rys. nr 6 - próba odczytania danych nie z zaznaczonego zakresu a z nałożonego filtru
rys. nr 6 — próba odczytania danych nie z zaznaczonego zakresu a z nałożonego filtru

Możemy przyjrzeć się dokładniej funkcji Excel.CurrentWorkbook, gdzie widzimy, że przy nazwie filtru jest błąd, ponieważ Power Query próbuje pobrać tabelę, której nazwa nie istnieje (rys. nr 7).

rys. nr 7 - Próba pobrania danych z tabeli, której nazwa nie istnieje
rys. nr 7 — Próba pobrania danych z tabeli, której nazwa nie istnieje

Jako tester lubię sobie czasem poeksperymentować, poszukać sposobu na obejście tego błędu. W innym pliku rozwijamy polecenie Pobierz dane (punkt 2 na rys. nr 8) z karty Dane (punkt 1), następnie rozwijamy polecenie Z pliku (punkt 3) i wybieramy Ze skoroszytu (punkt 4).

rys. nr 8 - ścieżka dostępu do polecenia Ze skoroszytu
rys. nr 8 — ścieżka dostępu do polecenia Ze skoroszytu

Otworzy nam się okno Importowanie danych, gdzie wybieramy nasz plik klikając na niego dwa razy (rys. nr 9).

rys. nr 9 - okno Importowania danych
rys. nr 9 — okno Importowania danych

Otworzy nam się okno Nawigator, gdzie możemy podejrzeć zawartość skoroszytu, czyli jego poszczególne elementy (rys. nr 10).

rys. nr 10 -  okno Nawigator, gdzie możemy podejrzeć zawartość skoroszytu
rys. nr 10 — okno Nawigator, gdzie możemy podejrzeć zawartość skoroszytu 

Jeśli zaznaczymy sobie cały plik Excela i wciśniemy przycisk Edytuj, to zobaczymy wszystkie elementy i zakresy z tego pliku. Otworzy nam się edytor zapytań Power Query z listą tych wszystkich elementów. Tutaj Power Query użyje innej funkcji Excel.Workbook (rys. nr 11).

rys. nr 11 - Edytor zapytań z listą wszystkich elementów znajdujących się w skoroszycie
rys. nr 11 — Edytor zapytań z listą wszystkich elementów znajdujących się w skoroszycie

W naszych danych nie interesują nas arkusze, czyli odfiltrujemy kolumnę Kind. W tym celu klikamy na trójkąt przy nazwie kolumny Kind i odznaczamy checkbox przy nazwie Sheet (czyli arkusz). Filtr zatwierdzamy przyciskiem OK (rys. nr 12).

rys. nr 12 - nakładanie filtru (odfiltrowanie arkuszy)
rys. nr 12 — nakładanie filtru (odfiltrowanie arkuszy)

Otrzymamy tabelę tylko ze zdefiniowanymi nazwami przedstawioną na rys. nr 13.

rys. nr 13 - tabela ze zdefiniowanymi nazwami
rys. nr 13 — tabela ze zdefiniowanymi nazwami

Interesuje nas jeszcze kolumna Hidden, która pokazuje które elementy są ukryte. Filtr nałożony na dane jest ukryty, natomiast nazwany zakres jest widoczny. Przy pobieraniu danych Power Query sięga niestety po tą tabelę, która jest ukryta (rys. nr 14).

rys. nr 14 -  elementy ukryte - Hidden
rys. nr 14 — elementy ukryte — Hidden

W takim rozwiązaniu Power Query nie ma problemu i poprawnie odczytuje dane.

Jak możemy obejść ten błąd przy standardowym pobieraniu danych do Power Query? 

Wyłączamy filtr w naszym nazwanym zakresie. Jest on niewidoczny ale dalej się tam znajduje. Stworzyliśmy tabelę pomocniczą z zakresem do filtrowania i właśnie na nią nakładamy ten filtr za pomocą skrótu klawiszowego Ctrl+Shift+L (rys. nr 15).

rys. nr 15 - nakładanie filtru za pomocą skrótu klawiszowego Ctrl+Shift+L
rys. nr 15 — nakładanie filtru za pomocą skrótu klawiszowego Ctrl+Shift+L

Teraz jeśli pobierzemy dane z tego zakresu za pomocą polecenia Z tabeli/zakresu z karty Dane, otworzy nam się edytor zapytań Power Query z wczytanym zakresem (rys. nr 16).

rys. nr 16 - Edytor zapytań z wczytanym zakresem
rys. nr 16 — Edytor zapytań z wczytanym zakresem

W kroku Źródło w Zastosowanych krokach możemy podejrzeć sobie funkcję użytą przez Power Query. Możemy zauważyć, że dalej pojawia nam się błąd mimo, że dane zostały wczytane (rys. nr 17).

rys. nr 17 - funkcja Excel.CorrentWorkbook
rys. nr 17 — funkcja Excel.CorrentWorkbook

Sposobem na zlikwidowanie błędu jest zmiana właściwości zakresu w VBA (rys. nr 18).

rys. nr 18 - zmiana właściwości zakresu w VBA
rys. nr 18 — zmiana właściwości zakresu w VBA

Wynika z tego, że funkcja Power Query źle odwołuje się do zakresu i stąd wynika problem (zły zapis zakresu – pojedynczy cudzysłów).

Podsumowując celem tego filmu było pokazanie, że Power Query nie zawsze chce zwracać dane, których potrzebujesz. Przede wszystkim w sytuacji kiedy nakładasz filtr na nazwany zakres.


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.

Aktualnie w promocji urodzinowej możesz mieć Mistrza Excela w obniżonej cenie, jeśli tylko wpiszesz kod 35URODZINY
https://exceliadam.pl/produkt/ksiazka-mistrz-excela

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.

Power Query
https://www.udemy.com/course/mistrz-power-query/?couponCode=35URODZINY

Mistrz Excela
https://www.udemy.com/mistrz-excela/?couponCode=35URODZINY

Dashboardy
https://www.udemy.com/course/excel-dashboardy/?couponCode=35URODZINY

Mistrz Formuł
https://www.udemy.com/course/excel-mistrz-formul/?couponCode=35URODZINY

VBA
https://www.udemy.com/course/excel-vba-makra/?couponCode=35URODZINY

Microsoft Power BI
https://www.udemy.com/course/power-bi-microsoft/?couponCode=35URODZINY

Książka Mistrz Excela reklama

Power Query 32 — Powtarzanie kodów kreskowych w kolejnych wierszach

W dzisiejszym poście zajmiemy się tematem powtarzania kodów kreskowych bądź innych wartości w kolejnych wierszach. Omówimy rozwiązanie tego zagadnienia w Power Query na podstawie przykładowych danych źródłowych z rysunku nr 1.

rys. nr 1 — Przykładowe dane

Podczas jednej z moich konsultacji online pojawił się problem – potrzeba, aby powtarzać kodu kreskowe kilka razy pod rząd w kolejnych wierszach. Można to zrobić za pomocą VBA, ale tutaj omówimy rozwiązanie w Power Query. W naszych danych źródłowych kody kreskowe zapisane są w postaci ciągów cyfr, w drugiej kolumnie mamy podaną ilość powtórzeń danego kodu.

Aby wczytać dane do Power Query wybieramy polecenie Z tabeli z karty Dane (rys. nr 2).

rys. nr 2 — Z tabeli

Otworzy nam się Edytor zapytań z wczytaną tabelą tKody (rys. nr 3). W Ustawieniach zapytania usuwamy krok Zmieniono typ z Zastosowanych kroków, ponieważ jest zbędny. Musimy zmienić typ danych ręcznie. 

rys. nr 3 — Edytor zapytań

Nasz kod kreskowy jest zmieniony na liczby, a my chcemy by był traktowany jako tekst, ponieważ funkcja z jakiej będziemy korzystać w Power Query radzi sobie z tekstem, natomiast z liczbami nie (trzeba by dokonywać konwersji). Klikamy na ikonkę ABC123 z boku nazwy tytułu kolumny Kod kreskowy i z podręcznego menu wybieramy polecenie Tekst (rys. nr 4).

rys. nr 4 — Polecenie Tekst

W kolejnym kroku musimy dodać kolumnę za pomocą polecenie Kolumna niestandardowa (punkt nr 2 na rysunku nr 5) z karty Dodaj kolumnę.

rys. nr 5 — Kolumna niestandardowa

Otworzy nam się okno Kolumny niestandardowej, gdzie będziemy korzystać z funkcji. Zmieniamy nazwę kolumny na Powt, a następnie w polu Formuła kolumny niestandardowej wpisujemy formułę funkcji dla tej kolumny. Do zapisania formuły użyjemy kolumn z pola Dostępne kolumny (oznaczone strzałkami na rysunku nr 6). Zapis formuły będzie wyglądał następująco:

=Text.Repeat([#"Kod#(1f)kreskowy"],#"Powtórz [x] razy"]) 

Tak wpisane parametry kolumny niestandardowej zatwierdzamy przyciskiem OK.

rys. nr 6 — Tworzenie kolumny niestandardowej

Otrzymamy dane przedstawione na rysunku nr 7.

rys. nr 7 — dane z nową kolumną

Dane te mają widoczne od razu niedociągnięcie, mianowicie poszczególne kody nie są od siebie niczym oddzielone. W naszym przykładzie kody kreskowe mają po 5 znaków, ale nie każde kody są jednakowe. Musimy wprowadzić modyfikacje w naszą kolumnę niestandardową. Klikamy na ikonkę koła zębatego obok nazwy kroku Dodano kolumnę niestandardową w Zastosowanych krokach. Otworzy nam się po raz kolejny okno Kolumny niestandardowej (rys. nr 8), gdzie musimy zmienić naszą formułę funkcji i wstawić rozdzielenie kodów za pomocą jakiegoś symbolu (w naszym przykładzie @, bo lubię małpki ?). Zapis formuły będzie wyglądał następująco:

=Text.Repeat([#"Kod#(1f)kreskowy"] & "@",#"Powtórz [x] razy"])

Wprowadzoną zmianę zatwierdzamy przyciskiem OK.

rys. nr 8 Kolumna niestandardowa

Otrzymamy dane przedstawione na rysunku nr 9, gdzie kody zostały rozdzielone symbolem @.

rys. nr 9 — Dane z kodami rozdzielonymi znakiem @

Symbole te posłużą nam do rozdzielenia kolumn. Rozwijamy polecenia Podziel kolumny (punkt nr 2 na rysunku nr 10) z karty Narzędzia główne i wybieramy polecenie Według ogranicznika (punkt nr 3 na rysunku nr 10).

rys. nr 10 — Podziel kolumny

Otworzy nam się okno Dzielenia kolumny według ogranicznika (rys. nr 11), gdzie Power Query rozpozna nasz ogranicznik. Musimy rozwinąć sobie Opcje zaawansowane, ponieważ chcemy zrobić podział na Wiersze (zaznaczone zielonym prostokątem na rysunku nr 11) , a nie kolumny, czyli podział ma być w dół danych (zaznaczone zieloną strzałką na rysunku nr 11) a nie w bok.

rys. nr 11 _ dzielenie kolumny według ogranicznika

Wprowadzone parametry podziały kolumny zatwierdzamy przyciskiem OK. i otrzymamy dane przedstawione na rysunku nr 12.

rys. nr 12 — Wydzielone kolumny

Usuwamy krok Zmieniono typ1 z Zastosowanych kroków i otrzymamy dane przedstawione na rysunku nr 13.

rys. nr 13 — Dane

W danych tych odfiltrujemy puste komórki, czyli klikamy ikonkę trójkąta przy nazwie kolumny Powt i w podręcznym menu odznaczamy checkbox przy nazwie Puste (rys. nr 14).

rys. nr 14 — Odfiltrowanie pustych

Nasz filtr zatwierdzamy przyciskiem OK i otrzymamy dane przedstawione na rysunku nr 15, które możemy wczytać do Excela.

rys. nr 15 — Odfiltrowane dane

Tak naprawdę nie potrzebujemy aż trzech kolumn, ponieważ mamy te same dane w kolumnie pierwszej i trzeciej (Kod kreskowy i Powt). Wystarczy nam jedna kolumna z powtórzonymi kodami. Zaznaczamy kolumnę Powt i klikamy na jej tytuł prawym przyciskiem myszy, z podręcznego menu wybieramy polecenie Usuń inne kolumny (rys. nr 16).

rys. nr 16 — Usuń inne kolumny

Tak przygotowane dane możemy załadować do Excela. Wybieramy polecenie Zamknij i załaduj do z karty Narzędzia główne (rys. nr 17).

rys. nr 17 — zamknij i załaduj do

Otworzy nam się okno Ładowania do, gdzie wybieramy sposób wyświetlania danych jako Tabela, a następnie określamy miejsce wstawienia danych jako Istniejący arkusz i wskazujemy konkretną komórkę w tym arkuszu (rys. nr 18). Tak ustawione parametry wstawienia danych zatwierdzamy przyciskiem Załaduj.

rys. nr 18 — Okno ładowania do

Otrzymamy dane załadowane do Excela przedstawione na rysunku nr 19.

rys. nr 19 — Dane w Excelu

Mamy obliczoną dodatkowo ilość wszystkich powtórzeń – 88 sztuk. Taką samą ilość pokazuje nam zapytanie tKody w Zapytaniach dotyczących arkusza (oznaczone zielonymi strzałkami na rysunku nr 20).

rys. 20 — Ilość powtórzeń

Możemy sprawdzić działanie zapytania zmieniając dane w tabeli z danymi źródłowymi. Wystarczy odświeżyć dane z zapytania aby otrzymać aktualne wyniki. 


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.

Aktualnie w promocji urodzinowej możesz mieć Mistrza Excela w obniżonej cenie, jeśli tylko wpiszesz kod 35URODZINY
https://exceliadam.pl/produkt/ksiazka-mistrz-excela

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.

Power Query
https://www.udemy.com/course/mistrz-power-query/?couponCode=35URODZINY

Mistrz Excela
https://www.udemy.com/mistrz-excela/?couponCode=35URODZINY

Dashboardy
https://www.udemy.com/course/excel-dashboardy/?couponCode=35URODZINY

Mistrz Formuł
https://www.udemy.com/course/excel-mistrz-formul/?couponCode=35URODZINY

VBA
https://www.udemy.com/course/excel-vba-makra/?couponCode=35URODZINY

Microsoft Power BI
https://www.udemy.com/course/power-bi-microsoft/?couponCode=35URODZINY

Książka Mistrz Excela reklama

Power Query 31 — Rozrastająca się lista rozwijana

W dzisiejszym poście omówimy temat rozrastającej się listy rozwijanej z unikatowymi wartościami w Power Query. Rozwiązanie tego zadania w Excelu przedstawione zostało w poradzie nr 322 https://exceliadam.pl/?s=porada+322 . W danych źródłowych mamy już listę rozwijaną a naszym zadaniem jest dodanie do niej kolejnych elementów, chcemy dopisać do listy nowe osoby. Dane, na których omówimy to zagadnienie zostały przedstawione na rysunku nr 1.

rys. nr 1 — Przykładowe dane

Rozwiążemy takie zadanie nie korzystając z formuł, ale przy użyciu Power Query – dodatku do Excela. Pierwszym krokiem jest zaczytanie danych do Power Query. Wybieramy polecenie Z tabeli z karty Dane (rys. nr 2).

rys. nr 2 — Z tabeli

Otworzy nam się edytor zapytań z wczytaną tabelą tSprzedawcy. 

rys. nr 3 — Edytor zapytań

Usuwamy krok Zmieniono typ z zastosowanych kroków, bo jest on zbędny. Następnie odfiltrowujemy kolumnę Sprzedawca po wartościach null, czyli klikamy na ikonkę trójkąta w nazwie kolumny Sprzedawca i w podręcznym menu ozdnaczamy checkbox przy wartości null (rys. nr 4). Nasz filtr zatwierdzamy przyciskiem OK.

rys. nr 4 — Odfiltruj dane po wartości null

W kolejnym kroku usuwamy inne kolumny, czyli klikamy prawym przyciskiem myszy na tytuł kolumny Sprzedawca i z podręcznego menu wybieramy polecenie Usuń inne kolumny (rys. nr 5).

rys. nr 5 — Usuń inne kolumny

Otrzymamy dane przedstawione na rysunku nr 6.

rys. nr 6

Interesuje nas tylko kolumna Sprzedawca. Chcemy mieć unikatową listę sprzedawców, więc rozwijamy polecenie Usuń wiersze (punkt nr 2 na rysunku nr 7) z karty Narzędzia główne, a następnie wybieramy polecenie Usuń duplikaty (punkt nr 3 na rysunku nr 7).

rys. nr 7 — Usuń duplikaty

Tak przygotowaną listę danych możemy załadować do Excela. W tym celu rozwijamy polecenie Zamknij i załaduj (punkt nr 2 na rysunku nr 8) z karty Narzędzia główne, a następnie wybieramy polecenie Zamknij i załaduj do (punkt nr 3 na rysunku nr 8).

rys. nr 8 — Zamknij i załaduj do

Otworzy nam się okno Ładowania do, gdzie wybieramy sposób wyświetlania danych jako Tabela, a nastepnie określamy lokalizaję wstawienia danych – Istaniejący arkusz i wskazujemy konkretną komórkę. Tak ustawione parametry zatwierdzamy przyciskiem Załaduj (rys. nr 9).

rys. nr 9 — Okno Ładowania do

Otrzymamy dane wczytane do Excela przedstawione na rysunku nr 10.

rys. nr 10 — Dane wczytane do Excela

Zaznaczamy zakres danych w tabeli z zapytania z Power Query a następnie w polu obok paska formuły zmieniamy nazwę tego zakresu na Sprzedawcy (pole oznaczone zieloną strzałką na rysunku nr 11).

rys. nr 11 — Zmiana nazwy zakresu

W kolejnym etapie zaznaczamy zakres w tabeli z danymi źródłowymi i wybieramy polecenie Poprawność danych (punkr nr 2 na rysunku nr 12) z karty Dane.

rys. nr 12 — Poprawność danych

Otworzy nam się okno Sprawdzania poprawności danych, gdzie w karcie Ustawienia (rys. nr 13) ustalamy Kryteria poprawności danych i podajemy źródło danych (klawisz F3) – wcześniej nazwany zakres Sprzedawcy z tabeli zaczytanej z Power Query. W karcie Komunikat wejściowy odznaczamy checkbox przy opcji Pokazuj komunikat wejściowy przy wyborze komórki. W karcie Alert o błędzie odznaczamy checkbox przy opcji Pokazuj alerty po wprowadzeniu nieprawidłowych danych. Nie chcemy informacji o błędnie wpisanych danych ponieważ chcemy dopisywać nowe osoby do listy sprzedawców. Tak ustawione parametry zatwierdzamy przyciskiem OK.

rys. nr 13 — Użycie klawisza F3

Teraz możemy sobie dopisać sprzedawcę w tabeli z danymi źródłowymi, ale nie ma jej na liście rozwijanej w tej tabeli co przedstawia rysunek nr 14.

rys. nr 14 — Lista rozwijana

Wynika to z podstawowej wady Power Query – nie odświeża się automatycznie. Musimy kliknąc prawym przyciskiem myszy na dowolną komórkę w zakresie Sprzedawcy i z podręcznego menu wybrać polecenie Odśwież (rys. nr 15).

rys. nr 15 — Odśwież

Po odświeżeniu danych z Power Query  dodany sprzedawca będzie widoczny na liście rozwijanej (rys. nr 16).

rys. nr 16

Istnieje możliwość ustawienia automatycznego odświeżania danych za pomocą kodu VBA. Korzystając ze skrótu klawiszowego Alt+F11 możemy przejść do okna Edytora VBA. Jest tam wcześniej przygotowany kod (rys. nr 17).

rys. nr 17 — Alt+F4 przejście do VBA

W arkuszu (Arkusz4 (PQ31)- punkt nr 1 na rysunku nr 18), w którym mamy te listy , musimy dopisać kod VBA. Kod ten będzie działał tylko w momencie, kiedy w naszym arkuszu (Worksheet – punkt nr 2 na rysunku nr 18)) dokona się zmiana (Change – Punkt nr 3 na rysunku nr 18). W sytuacji zmiany w kolumnie A, chcemy aby odpalił się kod VBA i sprawdził czy zmieniane komórki miały część wspólną z kolumną A. Konkretnie sprawdzamy czy zakres który był zmieniany ma część wspólną z kolumną która nas interesuje. Jeśli zmiana nastąpiła w kolumnie A, to nastąpi automatyczne odświeżenie danych w tabeli z Power Query.

rys. nr 18 — Edytor VBA

Zapisujemy nasz kod za pomocą skrótu klawiszowego Ctrl+S. Przechodzimy do Excela i możemy sprawdzić działanie kodu VBA. Dopisujemy kolejnego sprzedawcę (Agnieszka) do danych źródłowych i dane automatycznie się odświeżą i nasz nowy sprzedawca zostanie dodany do listy rozwijanej, co widać na rysunku nr 19.

rys. nr 19 — Dane z kodem z VBA

Podsumowując rozrastającą się listę rozwijaną z unikatowymi wartościami robi się prościej za pomocą Power Query, ale niestety nie jest automatyczna i musimy pamiętać o odświeżaniu danych. Jedynym sposobem na zautomatyzowanie jest dodanie kodu VBA, ale to już temat dla bardziej zaawansowanych użytkowników Excela.

Możemy również zarejestrować makro odświeżania danych w karcie Deweloper, wybierając polecenie Rejestruj makro (punkt nr 2 na rysunku nr 20).

rys. nr 20 — Zarejestruj makro

Otworzy się okno Rejestrowania makra, gdzie wpisujemy nazwę makra i zatwierdzamy przyciskiem OK (rys. nr 21).

rys. nr 21 — Okno rejestrowania makra

Następnie klikamy prawym przyciskiem myszy na dowolną komórkę z zakresu zapytania z Power Query i z podręcznego menu wybieramy polecenie Odśwież (rys. nr 22).

rys. nr 22 — Odśwież

Następnie klikamy polecenie Zatrzymaj rejestrowanie (punkt nr 2 na rysunku nr 23) z karty Deweloper.

rys. nr 23 — zatrzymaj rejestrowanie makra

Teraz w VBA mamy dostępny nowy Moduł, odpowiadający odświeżeniu danych (zaznaczony zieloną strzałką na rysunku nr 24).

rys. nr 24 — Nowy moduł

Dzięki stworzeniu takiego makra mamy automatycznie rozrastającą się listę rozwijaną.


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.

Aktualnie w promocji urodzinowej możesz mieć Mistrza Excela w obniżonej cenie, jeśli tylko wpiszesz kod 35URODZINY
https://exceliadam.pl/produkt/ksiazka-mistrz-excela

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.

Power Query
https://www.udemy.com/course/mistrz-power-query/?couponCode=35URODZINY

Mistrz Excela
https://www.udemy.com/mistrz-excela/?couponCode=35URODZINY

Dashboardy
https://www.udemy.com/course/excel-dashboardy/?couponCode=35URODZINY

Mistrz Formuł
https://www.udemy.com/course/excel-mistrz-formul/?couponCode=35URODZINY

VBA
https://www.udemy.com/course/excel-vba-makra/?couponCode=35URODZINY

Microsoft Power BI
https://www.udemy.com/course/power-bi-microsoft/?couponCode=35URODZINY

Książka Mistrz Excela reklama

Excel — WYSZUKAJ.PIONOWO wszystkie wartości — funkcja POŁĄCZ.TEKSTY — porada 355

W dzisiejszym poście omówimy funkcje WYSZUKAJ.PIONOWO zwracającą wszystkie wartości spełniające dane warunki oraz POŁĄCZ.TEKSTY. Zagadnienie to omówimy na podstawie przykładowych danych z rysunku nr 1. 

rys. nr 1 — Przykładowe dane

W filmie Excel VBA odcinek 12 ( https://www.youtube.com/watch?v=nUhq-noDd2k ) pokazałem jak samodzielnie napisać funkcje, która znajdzie wszystkich sprzedawców z np. województwa świętokrzyskiego (rys. nr 2).

rys. nr 2 — Szukanie sprzedawców według województwa

Od kiedy udało mi się zainstalować licencję 365 Microsoft MVP mam dostęp do funkcji POŁĄCZ.TEKSTY, dzięki której możemy znacznie szybciej przypisać sprzedawców do konkretnych województw. Aby dobrze zrozumieć jak działa ta funkcja omówimy sobie jej poszczególne argumenty. Zapis funkcji będzie wyglądał następująco:

=POŁĄCZ.TEKSTY(", ";FAŁSZ;D2:D8)

Pierwszym argumentem funkcji jest Ogranicznik, w naszym przypadku będzie to przecinek i spacja (", "), czyli sposób rozdzielenia wyników. Kolejnym argumentem jest Ignoruj_puste, czyli PRAWDA (ignoruj puste komórki) lub FAŁSZ (uwzględnij puste komórki). W naszym przykładzie wybierzemy FAŁSZ (rys. nr 3).

rys. nr 3 — Drugi argument funkcji

Następnym argumentem jest Tekst_1, czyli tekst lub zakresy tekstu, które chcemy połączyć. W naszym przykładzie zaznaczymy sobie nazwy województw i dwie komórki poniżej, żeby zobaczyć zachowanie funkcji dla pustych komórek (zakres D2:D8). Wybraliśmy jako drugi argument FAŁSZ, dlatego na końcu mamy uwzględnione puste komórki (rys. nr 4).

rys. nr 4 — Uwzględnione puste komórki w wyniku funkcji POŁĄCZ.TEKSTY

W większości sytuacji chcemy ignorować puste komórki (wpisujemy PRAWDA lub 1), dlatego nasza formuła powinna wyglądać następująco:

=POŁĄCZ.TEKSTY(", ";PRAWDA;D2:D8)

Kiedy zatwierdzimy tak wpisaną formułę nie mamy już dodatkowych przecinków i pustych miejsc w wynikach.

Teraz kiedy wiemy jak działa funkcja POŁĄCZ.TEKSTY, musimy podać funkcji właściwe zakresy dane. Będziemy do tego potrzebować formuły tablicowej – funkcji JEŻELI, która najpierw sprawdzi nam kryteria. Naszym kryterium jest województwo, czyli zaznaczamy zakres $A$2:$A$18 i porównujemy ten zakres do województwa które nas interesuje w tym momencie, czyli do komórki D2. Jeżeli danym wierszu jest wartość która nas interesuje, to chcemy otrzymać sprzedawcę, czyli jako drugi argument funkcji JEŻELI zaznaczamy zakres ze sprzedawcami ($B$$:$B$18). Natomiast w sytuacji kiedy nasz warunek nie jest spełniony chcemy otrzymać pusty ciąg tekstowy, czyli jako trzeci argument wpisujemy nic (""). Zapis funkcji będzie wyglądał następująco:

=POŁĄCZ.TEKSTY(", ";1;JEŻELI($A$2:$A$18=D2; $B$$:$B$18;""))

Jeśli podejrzymy sobie wynik funkcji JEŻELI za pomocą klawisza F9 w trybie edycji komórki zobaczymy następujące wyniki (rys. nr 5)

rys. nr 5 — Podgląd wyników w trybie edycji komórki

Otrzymamy kilku sprzedawców dla województwa świętokrzyskiego i puste ciągi tekstowe dla pozostałych województw. Pamiętamy, że cyfra 1 w funkcji POŁĄCZ.TEKSTY ignoruje te puste miejsca, więc jako wynik otrzymamy tylko imiona sprzedawców. Zatwierdzamy formułę i otrzymujemy błąd- za dużo sprzedawców (rys. nr 6).

rys. nr 6 — Błędny wynik funkcji

Błąd ten wynika z tego iż funkcja JEŻELI jest formułą tablicowa i żeby zadziałała poprawnie należy ją zatwierdzić używając skrótu klawiszowego Ctrl+Shift+Enter (rys. nr 7).

rys. nr 7 — Poprawny wynik funkcji tablicowej

Przeciągamy formułę w dół i otrzymujemy wyniki dla wszystkich województw (rys. nr 8 ).

rys. nr 8 — Wynik działania funkcji dla całej tabeli

Podsumowując skorzystanie z funkcji JEŻELI i POŁĄCZ.TEKSTY jest dużo prostsze niż pisanie kodów w VBA. Musimy jednak pamiętać o prawidłowych zakresach danych i o zatwierdzaniu formuł tablicowych skrótem klawiszowym Ctrl+Shift+Enter.


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.

Aktualnie w promocji urodzinowej możesz mieć Mistrza Excela w obniżonej cenie, jeśli tylko wpiszesz kod 35URODZINY
https://exceliadam.pl/produkt/ksiazka-mistrz-excela

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.

Power Query
https://www.udemy.com/course/mistrz-power-query/?couponCode=35URODZINY

Mistrz Excela
https://www.udemy.com/mistrz-excela/?couponCode=35URODZINY

Dashboardy
https://www.udemy.com/course/excel-dashboardy/?couponCode=35URODZINY

Mistrz Formuł
https://www.udemy.com/course/excel-mistrz-formul/?couponCode=35URODZINY

VBA
https://www.udemy.com/course/excel-vba-makra/?couponCode=35URODZINY

Microsoft Power BI
https://www.udemy.com/course/power-bi-microsoft/?couponCode=35URODZINY

Książka Mistrz Excela reklama