0
0 Produkty w koszyku

No products in the cart.

Excel — Wyszukiwanie po 2 kryteriach — porada 432

W tym poście omówimy wyszukiwanie po dwóch lub więcej kryteriach. Ze względu na nową funkcję w Excelu tablicowym przedstawimy 4 różne sposoby rozwiązania takiego problemu.

Problem polega na tym, że cena produktu zależy nie tylko od nazwy produktu, ale również od kraju, z jakiego pochodzi ten produkt. Musimy wyszukać cenę produktu po 2 kryteriach. Pierwsze rozwiązanie wykorzystuje kolumnę pomocniczą (rys. nr 1).

Rys. nr 1 – przykładowe dane do pierwszego rozwiązania

Musimy napisać formułę, w której połączymy nazwę owocu z krajem jego pochodzenia. Użyjemy do tego znaku ampersand (&) i pionowej kreski (|), aby na pewno rozdzielić dwa ciągi tekstowe. Zapis formuły powinien wyglądać następująco:

=B3&"|"&C3

Po zatwierdzeniu formuły i przeciągnięciu jej na komórki poniżej otrzymamy dane przedstawione na rys. nr 2.

Rys. nr 2 – połączone dane z dwóch kolumn (Owoc i Kraj)

Otrzymaliśmy połączone niejako dane z pierwszej i drugiej kolumny rozdzielone pionową kreską. Dla Excela nie jest to potrzebne, ale my mamy lepszą wizualną formę danych. Mamy pomocniczą kolumnę z połączoną informacją i teraz możemy skopiować z niej formułę za pomocą skrótu klawiszowego Ctrl+C i wkleić w kolumnę pomocniczą z Cennikiem. Istotne jest tutaj, że zarówno dane z naszej Tabeli sprzedaży jak i w Cenniku muszą mieć ten znak rozdzielający (pionową kreskę) – rys. nr 3.

Rys. nr 3 – pionowa kreska rozdzielająca nazwę owocu i jego kraj pochodzenia w obu tabelach

Po wklejeniu formuły do komórki I3, zatwierdzamy ją i kopiujemy na komórki poniżej. Otrzymamy dane przedstawione na rys. nr 4.

Rys. nr 4 – wypełniona kolumna pomocnicza w Cenniku

Teraz musimy wyszukać tylko jedną informację (połączone dwie wartości), dlatego możemy skorzystać ze standardowej funkcji WYSZUKAJ.PIONOWO. Pierwszym argumentem funkcji jest szukana_wartość, czyli dane z kolumny Pomoc z Tabeli sprzedażowej. Drugi argument funkcji to tabela_tablica, czyli kolumny Pomoc i Cena z tabeli Cennik (zablokowane bezwzględnie). Trzeci argument to nr_indeksu_kolumny, czyli u nas wartość 2, bo chcemy wyciągnąć informację z kolumny Cena, która jest druga w kolejności z zakresu tabela_tablica. Ostatni argument (opcjonalny) to przeszukiwany_zakres, w którym musimy zdecydować, czy robimy wyszukiwanie przybliżone, czy dokładne. W większości sytuacji chcemy mieć dopasowanie dokładne, bo nie mamy pewności, czy dane są posortowane, czyli wpisujemy wartość logiczną FAŁSZ lub wartość z nią tożsamą (0). Zapis formuły powinien wyglądać następująco:

=WYSZUKAJ.PIONOWO(D3;$I$3:$J$10;2;0)

Powyższą formułę zatwierdzamy i kopiujemy w dół. Otrzymamy dane z dopasowaną ceną według dwóch kryteriów przedstawione na rys. nr 5.

Rys. nr 5 — dane z dopasowaną ceną według dwóch kryteriów (pierwszy sposób – Excel klasyczny)

Teraz omówimy drugie rozwiązanie, które również będzie niejako wykorzystywało kolumnę pomocniczą, ale zbudowaną wewnątrz funkcji. Rozwiązanie to omówimy na podstawie przykładowych danych z rys. nr 6.

Rys. nr 6 przykładowe dane do rozwiązanie drugim sposobem

W klasycznym Excelu mogliśmy użyć funkcji PODAJ.POZYCJĘ. Pierwszym argumentem funkcji jest szukana_wartość, w którym szukamy owocu połączonego z krajem pochodzenia za pomocą znaku ampersand (&). Drugi argument to przeszukiwana_tab, czyli znowu dwie połączone za pomocą znaku & kolumny tym razem z tabeli Cennik zablokowane bezwzględnie. Jeśli na tym etapie podejrzymy wyniki formuły za pomocą klawisza F9, zobaczymy połączone dane z obu kolumn (rys. nr 7).

Rys. nr 7 – podejrzane wyniki formuły w trybie edycji komórki

Wychodzimy z podglądu wyników formuły za pomocą skrótu klawiszowego Ctrl+Z. Pozostaje nam ostatni argument, czyli typ_porównania. U nas będzie to wartość 0 odpowiadająca dopasowaniu dokładnemu. Zapis formuły powinien wyglądać następująco:

=PODAJ.POZYCJĘ(N3&O3;$R$3:$R$10&$S$3:$S$10;0)

Powyższą formułę zatwierdzamy i kopiujemy w dół. Pokazują nam się wartości w złotówkach, ale to tylko dlatego, że mamy sformatowaną kolumnę walutowo. Tak naprawdę pokazuje nam się pozycja szukanej ceny (rys. nr 8).

Rys. nr 8 – pozycje szukanych cen sformatowane walutowo

Mamy znalezioną pozycję właściwej ceny. Teraz na podstawie tej pozycji musimy wyszukać pasującą cenę. Taki efekt możemy uzyskać za pomocą funkcji INDEKS. Pierwszym argumentem funkcji jest tablica, czyli kolumna, z której chcemy dostać zwróconą cenę zablokowana bezwzględnie. Drugi argument funkcji to nr_wiersza, czyli wynik naszej funkcji PODAJ.POZYCJĘ. Zapis formuły powinien wyglądać następująco:

=INDEKS($T$3:$T$10;PODAJ.POZYCJĘ(N3&O3;$R$3:$R$10&$S$3:$S$10;0))

Powyższą formułę zatwierdzamy i kopiujemy na komórki poniżej. Otrzymamy ceny produktów wyszukane według 2 kryteriów przedstawione na rys. nr 9.

Rys. nr 9 — ceny produktów wyszukane według 2 kryteriów (drugi sposób – Excel klasyczny)

Trzecie rozwiązanie wykonamy w Excelu tablicowym. Przykładowe dane do tego zadania zostały przedstawione na rys. nr 10.

Rys. nr 10 – przykładowe dane do rozwiązania w Excelu tablicowym (trzecie rozwiązanie)

Wykorzystamy tutaj funkcję X.WYSZUKAJ. Pierwszym argumentem funkcji jest szukana_wartość, czyli połączone dwie wartości z kolumny Owoc i Kraj za pomocą znaku & z Tabeli sprzedażowej. Drugi argument funkcji to szukana_tablica, czyli połączone kolumny Owoc i Kraj za pomocą znaku &, ale z tabeli Cennik i zablokowane bezwzględnie. Kolejny argument to zwracana_tablica, czyli wartości z kolumny Cena z tabeli Cennik zablokowane bezwzględnie. Funkcja X.WYSZUKAJ działa na zasadzie dopasowania dokładnego, więc nie musimy podawać argumentów opcjonalnych. Zapis formuły powinien wyglądać następująco:

=X.WYSZUKAJ(N19&O19;$R$19:$R$26&$S$19:$S$26;$T$19:$T$26)

Powyższą formułę zatwierdzamy i kopiujemy w dół. Otrzymamy ceny wyszukane na podstawie 2 kryteriów przedstawione na rys. nr 11.

Rys. nr 11 — ceny wyszukane na podstawie 2 kryteriów (trzeci sposób – Excel tablicowy)

Pozostało nam czwarte rozwiązanie, w którym będziemy bazować na tym, jak się nasze dane układają i jak często się powtarzają. Przykładowe dane zostały przedstawione na rys. nr 12.

Rys. nr 12 – przykładowe dane (czwarte rozwiązanie)

Możemy łatwo zauważyć, że każdy wiersz z tabeli Cennik jest unikatowy, czyli występuje tylko 1 raz. Na tej podstawie w tym rozwiązaniu możemy wykorzystać całkiem inną funkcję niż funkcje wyszukujące, których do tej pory używaliśmy. Wykorzystamy funkcję SUMA.WARUNKÓW. Pierwszym argumentem funkcji jest suma_zakres, czyli u nas kolumna z Ceną z tabeli Cennik zablokowana bezwzględnie za pomocą klawisza F4. Drugi argument funkcji to kryteria_zakres1, czyli zakres, na którym budujemy pierwsze kryterium – kolumna Owoc z tabeli Cennik zablokowana bezwzględnie. Kolejny argument to kryteria1, czyli dane z kolumny Owoc z Tabeli sprzedażowej. Kolejny argument to kryteria_zakres2, czyli drugie kryterium – kolumna Kraj z tabeli Cennik zablokowana bezwzględnie. I ostatni argument kryteria2, czyli wartość z kolumny Kraj z Tabeli sprzedażowej. Zapis formuły powinien wyglądać następująco:

=SUMA.WARUNKÓW($AD$3:$AD$10;$AB$3:$AB$10;X3;$AC$3:$AC$10;Y3)

Powyższą formułę zatwierdzamy i kopiujemy w dół. Otrzymamy ceny ustalone według 2 kryteriów przedstawione na rys. nr 13.

Rys. nr 13 – ceny ustalone na podstawie 2 kryteriów (czwarte rozwiązanie)

Jak widać powyżej możemy to samo zadanie wykonać w Excelu na kilka sposobów, wykorzystując różne funkcje. Każde z przedstawionych rozwiązań zwróciło te same wartości. Do nas należy decyzja i ocena, które rozwiązanie jest najlepsze czy najszybsze.

Excel — Wyszukiwanie stawki godzinowej w zależności od liczby przepracowanych godzin — widzowie 123

W tym poście obliczymy kwotę, jaką należy wypłacić pracownikowi za ilość przepracowanych godzin. Trudność polega na tym, że stawka godzinowa wzrasta wraz z ilością przepracowanych godzin przez danego pracownika.

Zadanie to wykonamy na podstawie przykładowych danych z rys. nr 1.

Rys. nr 1 – przykładowe dane

Jak widać na rysunku powyżej, jeśli pracownik przepracował mniej niż 100 godzin, to stawkę bierzemy z kolumny F. Jeśli przepracowana została ilość godzin między 100 a 200 stawka godzinowa jest brana z kolumny G, a powyżej 200 godzin, mamy stawkę z kolumny H. Nasze zadanie polega na obliczeniu kwoty, jaka należy się pracownikowi za przepracowane godziny.

Zaczniemy od funkcji WYSZUKAJ.PIONOWO, za której pomocą odnajdziemy wiersz, w którym są dane dla wybranego pracownika. Pierwszy argument funkcji to szukana_wartość, czyli konkretny pracownik (komórka A2). Drugi argument funkcji to tabela_tablica, czyli dane w tabeli z rozpisanymi stawkami godzinowymi (zakres zablokowany bezwzględnie za pomocą klawisza F4, bo będziemy kopiować formułę w dół $E$2:$H$5). W tym zakresie nie zaznaczamy nagłówka, bo nie jest potrzebny. Trzeci argument funkcji to nr_indeksu_kolumny, czyli z której kolumny będziemy wybierać dane. Na tą chwilę wpiszemy tu na stałe wartość 2, czyli dane z drugiej kolumny dla ilości przepracowanych godzin do 100. W miejsce tego argumentu będziemy musieli napisać formułę, która będzie wybierać odpowiednią kolumnę w zależności od ilości przepracowanych godzin. Czwarty argument to przeszukiwany_zakres, czyli rodzaj dopasowania. Wpisujemy tutaj wartość 0 dla dopasowania dokładnego co widać na rys. nr 2.

Rys. nr 2 – wybór dopasowania w funkcji WYSZUKAJ.PIONOWO

Zapis formuły powinien wyglądać następująco:

=WYSZUKAJ.PIONOWO(A2;$E$2:$H$5;2;0)

Zatwierdzamy powyższą formułę i kopiujemy w dół. Otrzymamy stawki godzinowe dla poszczególnych pracowników przedstawione na rys. nr 3.

Rys. nr 3 – stawka godzinowa dla poszczególnych pracowników

Wyciągnęliśmy stawki godzinowe dla poszczególnych pracowników. Ale ta stawka jest wyciągnięta z kolumny F, czyli dla ilości przepracowanych godzin do 100. Stawka ta jest zależna od ilości przepracowanych godzin każdego pracownika podanych w kolumnie B. Aby uwzględnić te zmiany, musimy w miejsce wpisanego na stałe argumentu nr_indeksu_kolumny wstawić funkcję PODAJ.POZYCJĘ. Pierwszym argumentem funkcji jest szukana_wartość, czyli liczba przepracowanych godzin (B2). Drugi argument to przeszukiwana_tab, czyli nagłówki naszych danych z progami ilości godzin zablokowane bezwzględnie ($F$1:$H$1). Trzeci argument to typ_porównania, czyli mniejsze niż w naszym przykładzie – wpisujemy wartość 1 (rys. nr 4).

Rys. nr 4 – typy porównania w funkcji PODAJ.POZYCJĘ

Funkcja PODAJ.POZYCJĘ będzie szukała w której kolumnie znajduje się ilość przepracowanych godzin przez danego pracownika. Jeśli np. ilość godzin będzie wynosiła 200 to funkcja poda numer kolumny H. Musimy zwrócić uwagę, że wynik funkcji PODAJ.POZYCJĘ jest o 1 mniejsza niż ilość kolumn, których potrzebujemy w funkcji WYSZUKAJ.PIONOWO, bo zaznaczaliśmy o jedną kolumnę mniejszy zakres (tylko kolumny od F do H). Dlatego do tego argumentu musimy dodać wartość 1.

Zapis całej formuły powinien wyglądać następująco:

=WYSZUKAJ.PIONOWO(A2;$E$2:$H$5;PODAJ.POZYCJĘ(B2;$F$1:$H$1;1)+1;0)

Powyższą formułę zatwierdzamy i kopiujemy w dół. Otrzymamy dane przedstawione na rys. nr 5.

Rys. nr 5 – stawka godzinowa pracowników według ilości przepracowanych godzin

Otrzymaliśmy prawidłowe stawki godzinowe dla poszczególnych pracowników. Pozostaje nam pomnożyć stawkę godzinową przez ilość przepracowanych godzin. Zapis formuły powinien wyglądać następująco:

=B2*WYSZUKAJ.PIONOWO(A2;$E$2:$H$5;PODAJ.POZYCJĘ(B2;$F$1:$H$1;1)+1;0)

Powyższą formułę zatwierdzamy i kopiujemy w dół. Otrzymamy kwoty do wypłaty dla poszczególnych pracowników przedstawione na rys. nr 6.

Rys. nr 6 – obliczone kwoty do wypłaty

Excel — Funkcja ZEZWALAJ (LET) pierwsze spojrzenie — porada 387

W tym poście omówimy funkcję ZEZWALAJ (w języku angielskim LET). Pierwszy raz o tej funkcji usłyszałem od Billa Jelena (https://www.youtube.com/watch?v=FF5jZ6mWH14).

W subskrypcji Insider mamy nową funkcję do testowania – ZEZWALAJ, która pozwala niejako na nazywanie formuł wewnątrz niej samej. Zaczniemy od prostych przykładów z równaniami matematycznymi. Dane do tego zadania zostały przedstawione na rys. nr 1.

Rys. nr 1 – dane do zadania

Pierwszym argumentem funkcji jest nazwa1, czyli w naszym przykładzie x. Co istotne, nie musimy nazwy pisać w podwójnych cudzysłowach. Drugi argument funkcji to wartość_nazwy1, czyli odwołanie do komórki z wartością argumentu X lub możemy również wartość tą wpisać na stałe ręcznie. Trzeci argument funkcji to obliczenie_lub_nazwa2, czyli np. równanie które chcielibyśmy obliczyć. Istotne jest, że nasza nazwa argumentu x jest nazwą wykorzystywaną tylko wewnątrz funkcji (rys. nr 2).

Rys. nr 2 – nazwa wykorzystywana wewnątrz funkcji

W trzecim argumencie wpisujemy proste równanie  x^2 + 2*x +3. Zapis całej formuły powinien wyglądać następująco:

=ZEZWALAJ(x;A2;x^2+2*x+3)

Po zatwierdzeniu formuły otrzymamy wynik przedstawiony na rys. nr 3.

Rys. nr 3 – wynik funkcji ZEZWALAJ
Rys. nr 3 – wynik funkcji ZEZWALAJ

Jak widać na rysunku powyżej otrzymaliśmy wynik po tym, jak Excel w miejsce każdego znaku x w równaniu wstawił wartość x=5.

Dzięki zastosowaniu funkcji ZEZWALAJ możemy budować różne równania i w łatwy sposób otrzymać gotowy wynik. Zrobimy teraz kolejny przykład. W tej formule w drugim argumencie funkcji zamiast odwołania do komórki, wpiszemy stałą wartość x (5). A równanie w trzecim argumencie zapiszemy w następujący sposób: x^3+2*x^2+3*x+2. Zapis całej formuły powinien wyglądać następująco:

=ZEZWALAJ(x;5;x^3+2*x^2+3*x+2)

Po zatwierdzeniu formuły otrzymamy wynik przedstawiony na rys. nr 4.

Rys. nr 4 – wynik funkcji ZEZWALAJ

Funkcja ZEZWALAJ pozwala nam również obliczać bardziej skomplikowane zadania np. z dwoma niewiadomymi (x i y). W pierwszym argumencie funkcji podamy wartość x, której w drugim argumencie przypiszemy wartość z komórki A8. Następnie podajemy argument nazwa2, czyli argument y i kolejny argument wartość_nazwy2 równą wartości w komórce B8. Dopiero po wpisaniu tych czterech argumentów, możemy wpisać argument obliczenie. Zapis równania w argumencie obliczenie będzie wyglądał następująco: x^2+y^2+x*y. Zapis całej formuły będzie wyglądał następująco:

=ZEZWALAJ(x;A8;y;B8; x^2+y^2+x*y)

Po zatwierdzeniu formuły otrzymamy wynik przedstawiony na rys. nr 5.

Rys. nr 5 – wynik funkcji ZEZWALAJ dla dwóch wartości

Co istotne jeśli w zapisie funkcji w argumencie wartość_nazwa1 wykorzystamy odwołanie do komórki, to funkcja będzie dynamiczna. Oznacza to, że jeśli zmienimy wartość x w komórce z odwołania to automatycznie zmieni nam się wynik. Jeśli natomiast wpiszemy konkretną wartość, nic nam się da zmiana w tabeli z danymi. 

Z funkcji ZEZWALAJ możemy korzystać nie tylko do obliczania równań. Pokażemy teraz jej inne możliwości. Zadanie to wykonamy na podstawie przykładowych danych z rys. nr 6.

Rys. nr 6 – przykładowe dane do zadania
Rys. nr 6 – przykładowe dane do zadania

Tę funkcję możemy wykorzystać tam, gdzie chcemy coś wyszukać, a funkcja WYSZUKAJ zwraca nam nie to, co chcemy pokazać użytkownikom. W przykładowych danych mamy tabelkę z produktami, w której oprócz cen mamy informację, że coś jest niedostępne, brak lub nie ma. Nie chcemy pokazywać klientowi tych informacji, tylko żeby wyświetlała się informacja np. – (myślnik). Gdybyśmy chcieli to rozwiązać za pomocą innej funkcji, użylibyśmy funkcji WYSZUKAJ.PIONOWO. Zapis funkcji wyglądałby następująco:

=WYSZUKAJ.PIONOWO(A2;$G$2:$H$9;2;0)

Jeśli funkcja WYSZUKAJ.PIONOWO zwróci nam tekst (nie ma, brak czy niedostępny, to chcemy aby wyświetlał się znak myślnika. Natomiast jeśli funkcja WYSZUKAJ.PIONOWO zwróci liczbę, to chcemy aby ta liczba się wyświetlała, czyli żeby został wynik funkcji.

W tym przykładzie nie zadziała funkcja JEŻELI.BŁĄD, bo wynik funkcji WYSZUKAJ.PIONOWO nie jest błędny, tylko dla nas nie odpowiedni. Musimy napisać funkcję JEŻELI, która będzie sprawdzała, czy wynik funkcji WYSZUKAJ.PIONOWO jest tekstem. Użyjemy tutaj funkcji CZY.TEKST.

Argumentem funkcji CZY.TEKST jest wartość, czyli sprawdzamy c k funkcji WYSZUKAJ.PIONOWO jest tekstem. Zapis funkcji CZY.TEKST powinien wyglądać następująco:

=CZY.TEKST(WYSZUKAJ.PIONOWO(A2;$G$2:$H$9;2;0))

Tak zapisaną funkcję CZY.TEKST wstawiamy w miejsce pierwszego argumentu funkcji JEŻELI (argument test_logiczny). Drugi argument funkcji JEŻELI to wartość_jeżeli_prawda, czyli wartość jaką chcemy otrzymać, jeśli warunek z testu logicznego jest spełniony. W tym argumencie wpisujemy znak myślnika w podwójnych cudzysłowach ("-"). Trzeci argument funkcji to wartość_jeżeli_fałsz, czyli wartość, jaką chcemy uzyskać, jezli test logiczny nie jest spełniony. W tym przypadku chcemy uzyskać wynik funkcji WYSZUKAJ.PIONOWO. Zapis całej formuły powinien wyglądać następująco:

=JEŻELI(CZY.TEKST(WYSZUKAJ.PIONOWO(A2;$G$2:$H$9;2;0));"-"; WYSZUKAJ.PIONOWO(A2;$G$2:$H$9;2;0))

Powyższą formułę zatwierdzamy i kopiujemy na wiersze poniżej. Otrzymamy wyniki funkcji JEŻELI przedstawione na rys. nr 7.

Rys. nr 7 – wyniki funkcji JEŻELI

ZEZWALAJ. Pierwszym argumentem funkcji jest nazwa1, czyli np. Cena. Drugi argument to wartość_nazwy1, czyli tutaj wklejamy wcześniej skopiowaną formułę funkcji WYSZUKAJ.PIONOWO za pomocą skrótu klawiszowego Ctrl+V. W argumencie obliczenie wpisujemy formułę funkcji JEŻELI, w której sprawdzamy, czy Cena jest tekstem za pomocą funkcji CZY.TEKST (argument funkcji JEŻELItest_logiczny). W argumencie wartość_jeżeli_prawda chcemy otrzymać "-" (myślnik), natomiast w argumencie wartość_jeżeli_fałsz chcemy otrzymać wartość Cena. Zapis całej formuły powinien wyglądać następująco:

=ZEZWALAJ(Cena; WYSZUKAJ.PIONOWO(A2;$G$2:$H$9;2;0); JEŻELI (CZY.TEKST(Cena; "-";Cena))

Powyższą formułę zatwierdzamy i kopiujemy na wiersze poniżej. Otrzymamy wyniki, lecz w formie zaokrąglonej. Musimy zmienić formatowanie ogólne danych na formatowanie walutowe za pomocą skrótu klawiszowego Ctrl+Shift+4. Otrzymamy wyniki funkcji ZEZWALAJ przedstawione na rys. nr 8.

Rys. nr 8 – wyniki funkcji ZEZWALAJ

Teraz zajmiemy się ostatnim przykładem, który przygotowałem, na wykorzystanie funkcji ZEZWALAJ. Przykładowe dane do tego przykładu zostały przedstawione na rys. nr 9.

Rys. nr 9 – przykładowe dane do zadania

W tych danych mamy wykorzystaną funkcję tablicową FILTRUJ, która wyciąga przefiltrowane dane po sprzedawcy. Wykorzystujemy tutaj również funkcję CZY.PUSTA. W tym zadaniu chodzi o to, aby puste komórki zastąpić znakiem myślnik. Sama funkcja FILTRUJ w miejsce pustych komórek zwraca wartość 0 (zero). A my nie chcemy pokazywać wartości zero, chcemy ją zastąpić.

W tym celu wykonujemy analogiczny test logiczny jak w przykładzie powyżej (za pomocą funkcji JEŻELI). W pierwszym argumencie funkcji zapisujemy test_logiczny, sprawdzający czy funkcja zwróci nam wartość 0. Jeśli warunek jest spełniony, chcemy otrzymać znak myślnik (argument wartość_jeżeli_prawda). Jeśli warunek nie jest spełniony chcemy otrzymać wyniki funkcji FILTRUJ (argument wartość_jeżeli_fałsz). Zapis formuły powinien wyglądać następująco:

=JEŻELI(CZY.PUSTA(FILTRUJ(B1:C25;A1:A25=F2));"-"; FILTRUJ(B1:C25;A1:A25=F2)) Po zatwierdzeniu formuły otrzymamy wyniki przedstawione na rys. 

Rys. nr 10 – wyniki funkcji JEŻELI z użyciem funkcji FILTRUJ

Analogicznie możemy wykonać to zadanie za pomocą funkcji ZEZWALAJ. W niej zagnieździmy funkcję FILTRUJ, w której możemy nazwać wynik funkcji – Filtr. Dzięki temu w argumencie obliczenie mamy uproszczoną formułę i będzie ona bardziej zrozumiała dla osób, które będą korzystały z naszych obliczeń. Zapis formuły powinien wyglądać następująco:

=ZEZWALAJ(Filtr; FILTRUJ(B1:C25;A1:A25=F2);JEŻELI(CZY.PUSTA(Filtr);"-";Filtr)

Po zatwierdzeniu formuły otrzymamy wyniki przedstawione na rys. nr 11.

Rys. nr 11 – wyniki funkcji ZEZWALAJ

Prawdziwa potęga funkcji ZEZWALAJ pojawia się przy bardzo skomplikowanych formułach (jak to pokazywał Bill Jelen). Dane do tego zadania zostały przedstawione na rys. nr 12.

Rys. nr 12 – przykładowe dane

Mamy tutaj do czynienia z bardzo skomplikowaną formułą, wykorzystującą wiele funkcji (rys. nr 13).

Rys. nr 13 – formuła z użyciem funkcji ZEZWALAJ

Pracując nad tą skomplikowaną formułą, skróciłem odwołanie do zakresu nazywając go tb. Zapis formuły bez wykorzystania funkcji ZEZWALAJ jest dużo dłuższy co widać na rys. nr 14.

Rys. nr 14 – zapis formuły bez użycia funkcji ZEZWALAJ.

Zapis ten ma długość 4 linijek i wykorzystuje wiele różnych funkcji. Dzięki użyciu funkcji ZEZWALAJ udało się go skrócić do trzech niepełnych linijek. Zrobiłem małe podsumowanie. Mianowicie zapis funkcji JEŻELI jest wykorzystany 6 razy, a zapis funkcji WIERSZ, która zwraca numer wiersza wykorzystana została 2 razy (rys. nr 15).

Rys. nr 15 – ilość razów wykorzystania fragmentu formuły

Podsumowując, wykorzystywanie funkcji ZEZWALAJ pozwala w znacznym stopniu skracać skomplikowane formuły.


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 — Alternatywa dla WYSZUKAJ.PIONOWO — funkcja BD.POLE — porada 356

W dzisiejszym poście poznamy funkcję BD.POLE, która jest alternatywą dla funkcji WYSZUKAJ.PIONOWO. Poznamy jej wady i zalety. Zagadnienie to omówimy na przykładowych danych z rysunku nr 1.

rys. nr 1 — Przykładowe dane

Kiedy w komórce zaczniemy pisać formułę =BD. Pojawi nam się cała rodzina funkcji bazodanowych. Wszystkie działają na podobnej zasadzie, czyli na filtrach zaawansowanych, na których podstawie budujemy kryteria dla funkcji (rys. nr 2).

rys. nr 2 — Funkcje bazodanowe

W tym poście zajmiemy się funkcją BD.POLE, dzięki której wyszukamy z bazy danych pojedynczy rekord. Zapis funkcji będzie wyglądał następująco:

=BD.POLE($A$1:$D$21;3;$G$1:$G$2)

 Pierwszym argumentem funkcji jest Baza, czyli nasza tabela z danymi, zablokowana bezwzględnie ($A$1:$D$21). Należy pamiętać, że przy tej funkcji musimy zaznaczyć dane łącznie z nagłówkami. Kolejnym argumentem jest Pole, czyli kolumna z której chcemy wyciągnąć informacje. Zakładamy że w naszym przykładzie chcemy wyciągnąć kierownika dla danej fabryki. Kolumna, w której znajdują się dane kierowników jest trzecia z kolei więc w formułę wpiszemy liczbę 3 (rys. nr 3).

rys. nr 3 — Drugi argument funkcji — Pole

Trzecim argumentem funkcji są Kryteria, które budujemy tak jak przy filtrach zaawansowanych, czyli musimy zaznaczyć nagłówek i wartość pod spodem, następnie blokujemy bezwzględnie klawiszem F4 ($G$1:$G$2). Formułę zatwierdzamy Ctrl+Enter i otrzymujemy szukany wynik dla fabryki Żuczek2 (rys. nr 4).

rys. nr 4 — Wynik działania funkcji BD.POLE

Jak wspominaliśmy na początku jest to funkcja tylko dla pojedynczych rekordów. Jeśli zmienimy nazwę fabryki na Żuczek, która w danych występuje kilka razy, to Excel zwróci nam błąd #LICZBA! (rys. nr 5).

rys. nr 5 — Błąd funkcji przy wielu rekordach

Gdybyśmy, zamiast funkcji BD.POLE, w analogicznym przypadku użyli funkcji WYSZUKAJ.PIONOWO zwróciłaby ona nazwę pierwszego kierownika.

Zaletą funkcji BD.POLE jest to że radzi sobie dużo lepiej z większą ilością kryteriów. Pokażemy teraz czym możemy sobie zastąpić cyfrę 3, jako argument Pole w formule funkcji. Nie zawsze numerowanie pól jest wygodne, bo możemy mieć bardzo dużą ilość danych. W takiej sytuacji lepszym rozwiązaniem jest odwołanie do komórki, która przechowuje nagłówek szukanej wartości  (tekst nagłówka – w naszym przykładzie komórka H1 z nazwą Kierownik). Po zatwierdzeniu otrzymujemy ten sam wynik jak wyżej. Zapis funkcji w tym przykładzie wygląda następująco:

=BD.POLE($A$1:$D$21;H1;$G$1:$G$2)

Innym sposobem jest hardkodowanie wartości, czyli wpisanie szukanej wartości na stałe ("Kierownik"). Zatwierdzamy i po raz kolejny otrzymamy ten sam wynik. Zapis funkcji będzie wyglądał następująco:

=BD.POLE($A$1:$D$21;"Kierownik";$G$1:$G$2)

Wadą funkcji BD.POLE jest to iż znajduje i działa ona tylko wtedy gdy w danych znajduje się tylko pojedynczy rekord odpowiadający ustalonym kryteriom. Zaletą natomiast jest to, że możemy zaznaczyć więcej kryteriów jednocześnie. Jako trzeci argument czyli Kryteria wpiszemy zakres $G$7:$H$8. Zapis funkcji będzie wyglądał następująco:

=BD.POLE($A$1:$D$21;I7;$G$7:$H$8)

Jako wynik otrzymamy błąd ponieważ nie wpisaliśmy kryterium Region (rys. nr 6).

rys. nr 6 — Błąd ze względu na brak podania kryterium

Kiedy wpiszemy Region np. zachód otrzymamy wynik – sprzedawca Ewa (rys. nr 7).

rys. nr 7 Wynik działania funkcji dla dwóch kryteriów

Dla każdej kombinacji nazwy Fabryki i regionu mamy tylko jednego sprzedawcę więc otrzymamy prawidłowy wynik.

Ciekawostką jest, że wszystkie funkcje bazodanowe mają tą samą strukturę. Musimy podać trzy argumenty Bazę, Pole i Kryteria.

Przykładowo dla funkcji BD.SUMA podamy takie same argumenty. Zapis będzie wyglądał następująco:

=BD.SUMA($A$1:$D$21;J7;$G$7:$H$8)

Jako Kryterium podaliśmy nazwę fabryki Motylek, wynikiem będzie natomiast suma przychodów dla tej fabryki (rys. nr 8)

rys. nr 8 — Funkcja BD.SUMA

Funkcje te spełnia swe zadanie dla jednego rekordu nawet przy bardzo rozbudowanych kryteriach. Kryteria te możemy łatwo budować bez potrzeby tworzenia skomplikowanych formuł tablicowych.


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 — Wyszukiwanie binarne, czyli wyszukiwanie przybliżone w Excelu — porada 319

W dzisiejszej poradzie omówimy wyszukiwanie binarne, czyli wyszukiwanie przybliżone w Excelu. Temat ten omówimy na podstawie przykładowych danych z rysunku nr 1. Wpis ten jest niejako kontynuacją tematu z poprzedniego postu, dotyczącego funkcji WYSZUKAJ.PIONOWO z dopasowaniem przybliżonym. Opisaliśmy wtedy obrazowo jak działa dopasowanie przybliżone.

rys. nr 1 — Przykładowe dane

Dopasowanie przybliżone jest trochę bardziej skomplikowane od dokładnego, ale działa szybciej. Musimy pamiętać, żeby zawsze mieć posortowane dane (rosnąco, od najmniejszej do największej lub od A do Z). Kiedy nasze dane nie będą posortowane to funkcja WYSZUKAJ.PIONOWO z dopasowaniem dokładnym znajdzie wynik dla Miś (szuka od góry do dołu), ale jeśli mamy tych wyników mamy bardzo dużą ilość zajmie to sporo czasu. Funkcja WYSZUKAJ.PIONOWO z dopasowaniem przybliżonym działa dużo szybciej, ale wymogiem jest, aby dane były posortowane, bo inaczej funkcja może zwrócić nam nieprawidłowy wynik.

Aby dobrze zrozumieć dlaczego może pojawić się nieprawidłowy wynik opiszemy to na konkretnym przykładzie. Wyszukiwanie binarne można powiedzieć, że dzieli na pół nasze tablice, listy danych. Załóżmy, że szukamy Misia, w dopasowaniu przybliżonym nie zaczynamy go szukać od początku tylko od środka listy danych. W naszym przykładzie na środku jest Kowboj, K jest mniejsze od M (bo w alfabecie K jest przed M), więc wszystkie wartości powyżej przestają nas interesować (rys. nr 2).

rys. nr 2 — Działanie dopasowania przybliżonego

Po pominięciu wyników powyżej zostaje nam mniejsza tabelka, dokładnie Pastereczka, Dinozaur i Lalka. Teraz na środku znajduje się Dinozaur, D jest mniejsze od M, więc po raz kolejny pomijamy wszystkie wyniki powyżej Dinozaura (czyli tego który aktualnie sprawdzamy). Zostaje nam jeden wynik – Lalka i otrzymujemy jako wynik całej funkcji cenę Lalki (rys. nr 3). 

rys. nr 3 — Sposób działania funkcji WYSZUKAJ.PIONOWO z dopasowaniem przybliżonym

Dzieląc tak listy na pół, możemy bardzo szybko znaleźć szukaną wartość, bo nie musimy sprawdzać niejako wszystkich wyników. Pamiętajmy, że funkcja WYSZUKAJ.PIONOWO znajduje tylko jedną wartość – pierwszą na którą trafi.

Podsumowując funkcja WYSZUKAJ.PIONOWO z dopasowaniem przybliżonym może zwrócić nam nieprawidłowy wynik dla nieposortowanych danych.

W drugim przykładzie mamy posortowane dane. Zaczynamy szukać od polowy listy i trafiamy akurat na szukaną nazwę, więc nie kontynuujemy tej drogi z poprzedniego przypadku, bo Miś=Miś (rys. nr 4).

rys. nr 3 — Wyszukiwanie binarne

Należy pamiętać, że Excel robi coś jeszcze przy dopasowaniu przybliżonym  nie kończy wyszukiwania gdy znajdzie wartość tylko sprawdza dane poniżej, czy nie powtórzyła się szukana wartość. Jeśli pod spodem jest więcej danych o takiej samej nazwie (Miś), to Excel zawsze jako ostateczny wynik poda nam wartość przypisaną dla ostatniego wystąpienia tej nazwy (rys. nr 5), ale takie same wartości muszą być tuż pod sobą. Jeśli nazwa Miś powtórzy się drugi raz, ale w odstępie kilku nazw to Excel już jej nie znajdzie.

rys. nr 5 — Ostatnia znaleziona wartość jako stateczny wynik

Analogicznie wygląda sytuacja z liczbami, a nawet jest dużo prostsza do zrozumienia (rys. nr 6).

rys. nr 6 — Wyszukiwanie z dopasowanie przybliżonym na wartościach liczbowych

Szukamy wartości 62, aby wystawić ocenę. Sprawdzamy wartość w połowie tabelki, otrzymujemy 70. Widzimy, iż 70>62, więc pomijamy wyniki poniżej wartości którą rozpatrywaliśmy (rys. nr 7). Skracamy nasze dane do wartości powyżej 70.

rys. nr 7 — Zasada działania wyszukiwania z dopasowaniem przybliżonym na liczbach

Rozpatrujemy teraz górną połowę wyników, sprawdzamy wartość 50 (w środku danych), wiemy że 50<60, więc pomijamy wartości powyżej 50 w tabeli. Pozostaje nam jedna wartość 60, w ten sposób otrzymujemy wynik – Przeciętnie. Myślę, że wyjaśniłem wystarczająco temat wyszukiwania binarnego. Jeśli chcesz poznać bardziej precyzyjnie zasady działania wyszukiwania przybliżonego w Excelu przeczytaj post na forum Billa Szysz https://www.excelforum.pl/topics1/formula-zwracajaca-tekst-ze-zbioru-komorek-vt51013.htm


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