W tym poście nauczymy się, jak wyciągnąć długość przedmiotu w centymetrach z nazwy produktu w Excelu.
Temat ten omówimy na podstawie przykładowych danych z rys. nr 1.
Rys. nr 1 – przykładowe dane
Jak widać na rysunku powyżej mamy pełne nazwy produktów i wewnątrz nich znajduje się długość poszczególnych przedmiotów (50cm, 35cm itd.), czyli mamy podaną liczbę a za nią oznaczenie cm.
Od Excela 2013 możemy tą informację wyciągnąć za pomocą FlashFill, który działa niejako w tle. Wystarczy, że w pierwszym wierszu napiszemy 50, a w drugim 35. To już powinno wystarczyć, żeby wybrać polecenie Wypełnianie błyskawiczne z karty Dane (rys. nr 2). Ewentualnie możemy skorzystać ze skrótu klawiszowego Ctrl+E.
Rys. nr 2 – polecenie Wypełnianie błyskawiczne
Excel wyciągnie odpowiednie informacje i wypełni pozostałe wiersze, co widać na rys. nr 3.
Rys. nr 3 – działanie Wypełniania błyskawicznego
Jeśli nie masz jeszcze Excela 2013 z opcją FlashFill, to mamy dla Ciebie inne rozwiązanie. Trzeba użyć formuły. Skorzystamy tutaj z tego, że nasza długość ma maksymalnie 3 cyfry, ponieważ w takiej sytuacji łatwo jest wyciągnąć takie informacje. Możemy też zauważyć, że dane które chcemy wyciągnąć poprzedza spacja lub znak -. Pierwszym krokiem będzie odnalezienie tekstu "cm". Użyjemy do tego funkcji SZUKAJ.TEKST, która nie rozróżnia wielkości liter. Pierwszym argumentem funkcji jest szukany_tekst, czyli cm w podwójnych cudzysłowach. Drugi argument funkcji to obejmujący_tekst, czyli tekst, w którym chcemy znaleźć nasze znaki (A2). Zapis formuły powinien wyglądać następująco:
=SZUKAJ.TEKST("cm";A2)
Powyższą formułę zatwierdzamy i kopiujemy w dół. Otrzymamy dane przedstawione na rys. nr 4.
Rys. nr 4 – wyniki funkcji SZUKAJ.TEKST
Otrzymaliśmy liczby, czyli pierwszą pozycję szukanego przez nas tekstu "cm" w całym ciągu znaków. My jednak nie chcemy wyciągać informacji od tego znaku, a przed tym znakiem. Chcemy się cofnąć i wyciągnąć informacje poprzedzające dwuznak cm. Wystarczy, że od tej pozycji, na której się zaczyna ciąg cm odjąć wartość 3, bo nasza liczna ma maksymalnie 3 znaki. Zapis formuły powinien wyglądać następująco:
=SZUKAJ.TEKST("cm";A2)-3
Otrzymamy nowe pozycje o 3 znaki wcześniej przedstawione na rys. nr 5.
Rys. nr 5 – nowa pozycja o 3 znaki wcześniej
Dopiero od tych zmodyfikowanych pozycji chcemy zacząć wyciągać tekst. Użyjemy do tego funkcji FRAGMENT.TEKSTU. Pierwszym argumentem funkcji jest tekst, czyli tekst z którego chcemy wyg=ciągnąć jakiś fragment (A2). Drugi argument funkcji to liczba_początkowa, czyli pozycja od jakiej chcemy zacząć wyciągać informacje (wynik poprzedniej formuły). Trzeci opcjonalny argument to liczba_znaków, czyli ile znaków chcemy wyciągnąć (3). Zapis formuły powinien wyglądać następująco:
=FRAGMENT.TEKSTU(A2;SZUKAJ.TEKST("cm";A2)-3;3)
Powyższą formułę zatwierdzamy. Otrzymamy wyciągnięte dane dotyczące długości poszczególnych produktów przedstawione na rys. nr 6.
Rys. nr 6 – wyciągnięte dane dotyczące długości produktów
Jak łatwo zauważyć na rysunku powyżej, przez to że wyciągnęliśmy 3 znaki, otrzymaliśmy część danych poprzedzonych minusem lub spacją. Musimy te dodatkowe znaki usunąć. Wystarczy dołożyć jedną funkcję. Zanim jednak to zrobimy, musimy zwrócić uwagę, że nasze dane to według Excela tekst, a nie wartości liczbowe, bo są wyrównane do lewej strony. Wynika to z użycia funkcji FRAGMENT.TEKSTU, która jest funkcją tekstową i zwraca tekst. Musimy użyć tutaj funkcji matematycznej MODUŁ.LICZBY, która konwertuje tekst na liczbę, jak również usuwa znak minus i spację sprzed liczby. Zapis formuły powinien wyglądać następująco:
W tym poście nauczymy się zliczać wszystkie litery w tekście, czy też dowolne znaki.
Najwięcej problemu może być z literami, bo mamy litery małe i wielkie, poza tym w polskim języku mamy litery takie jak ą, ę, ś, ć, ń, ź, ż, ł, ó, czyli wszystkie te litery z ogonkami i kreseczkami. Najprostszą metodą na wykonanie tego zadania jest wypisanie wszystkich możliwych znaków w postaci wielkich liter. Temat ten omówimy na podstawie przykładowych danych z rys. nr 1.
Rys. nr 1 – przykładowe dane
W pierwszym kroku musimy nasz tekst rozbić na poszczególne znaki. Do tego celu potrzebujemy ciągu liczbowego od 1 do wartości odpowiadającej długości naszego tekstu. Najpierw użyjemy funkcji DŁ, która zwraca liczbę znaków w ciągu znaków. My jednak potrzebujemy zbudować ciąg wartości. Użyjemy tutaj właściwości funkcji WIERSZ, która polega na tym, że jeśli w argumencie odwołanie zaznaczymy zakres A1:A8, to funkcja zwróci tyle wartości, ile zaznaczyliśmy wierszy w tym zakresie. Przykładowy zapis formuły to =WIERSZ(A1:A8) (rys. nr 2)
Rys. nr 2 – właściwość funkcji WIERSZ
Zaznaczyliśmy w zakresie 8 wierszy, więc funkcja WIERSZ w Excelu tablicowym rozlewa się na te właśnie wiersze. Musimy dla tej funkcji zbudować odpowiedni zakres. Potrzebujemy do tego funkcji ADR.POŚR (adres pośredni). Możemy tutaj wykluczyć kolumny, interesują nas tylko wiersze. Argumentem funkcji jest adres_tekst, czyli zaczynami od "1:", od pierwszego wiersza, a dwukropek oznacza, że będziemy szli dalej do kolejnych wierszy. Ten tekst łączymy z funkcją DŁ dla tekstu z komórki A2. Zapis formuły powinien wyglądać następująco:
=ADR.POŚR("1:"&DŁ(A2))
Jeśli podejrzymy sobie wynik formuły funkcji ADR.POŚR za pomocą skrótu klawiszowego F9 otrzymamy ilość znaków 1:11, co widać na rys. nr 3.
Rys. nr 3 – podejrzany wynik formuły
Wychodzimy z podglądu formuły za pomocą skrótu klawiszowego Ctrl+Z. Powyższą funkcję musimy włożyć do funkcji WIERSZ, bo interesuje nas liczba wierszy z tego zakresu. Zapis formuły powinien wyglądać następująco:
=WIERSZ(ADR.POŚR("1:"&DŁ(A2)))
Po zatwierdzeniu formuły otrzymamy dane przedstawione na rys. nr 4.
Rys. nr 4 – rozlane wyniki funkcji WIERSZ
W Excelu tablicowym wyniki rozlewają się automatycznie na odpowiednią ilość komórek (wierszy). W kolejnym kroku musimy dołożyć funkcję FRAGMENT.TEKSTU. Pierwszym argumentem funkcji jest tekst, czyli tekst z komórki A2. Drugi argument to liczba.początkowa, czyli tablica danych, którą zbudowaliśmy za pomocą funkcji WIERSZ (W Excelu tablicowym moglibyśmy użyć funkcji SEKWENCJA, która byłaby prostsza). Trzeci argument funkcji to liczba_znaków, czyli wartość 1, bo chcemy każdy znak wyciągnąć pojedynczo. Zapis formuły powinien wyglądać następująco:
Wyniki funkcji zostały przedstawione na rys. nr 5.
Rys. nr 5 – wyniki funkcji FRAGMENT.TEKSTU
Otrzymaliśmy tablicę, w której każdy znak z tekstu został umieszczony w osobnym wierszu. Teraz będziemy chcieli sprawdzić, czy te znaki znajdują się w przygotowanym przez nas wzorze (rys. nr 6).
Rys. nr 6 – przygotowany wzór wszystkich występujących w języku polskim znaków
Standardowo powinniśmy użyć funkcji ZNAJDŹ, jednak nie możemy tego zrobić, bo ona uwzględnia wielkość liter. Więc musimy użyć drugiej funkcji wyszukującej, czyli SZUKAJ.TEKST, która nie zwraca uwagi na wielkość liter. Pierwszym argumentem funkcji jest szukany_tekst, czyli litery uzyskane z funkcji FRAGMENT.TEKSTU. Drugi argument funkcji to obejmujący_tekst, czyli odwołanie do komórki I2 zablokowane bezwzględnie, gdzie wypisaliśmy wszystkie możliwe znaki. Zapis formuły powinien wyglądać następująco;
Po zatwierdzeniu formuły otrzymamy rozlane wartości, gdzie dana litera została znaleziona (rys. nr 7).
Rys. nr 7 – wyniki funkcji SZUKAJ.TEKST
Otrzymaliśmy liczbę 20, która odpowiada literce A, potem L ma przypisaną liczbę 28, ponownie A, czyli 20. Następnie pojawia się błąd argumentu #ARG!, który wynika z tego, że w naszych wypisanych literach nie było spacji. Żeby pozbyć się tych błędów musimy użyć funkcji CZY.LICZBA, której argumentem jest wartość, czyli wyniki z naszej poprzedniej formuły. Zapis formuły powinien wyglądać następująco:
Otrzymamy wyniki z wartościami logicznymi przedstawione na rys. nr 8.
Rys. nr 8 – wyniki funkcji CZY.LICZBA
Otrzymaliśmy wynik PRAWDA wszędzie tam, gdzie wcześniej mieliśmy liczbę, a wynik FAŁSZ, kiedy w danych był błąd argumentu. Pozostaje nam policzyć wszystkie wartości logiczne PRAWDA. Użyjemy do tego funkcji SUMA.ILOCZYNÓW, ale najpierw musimy zamienić wartości logiczne na liczby 1 i 0 (1‑PRAWDA, 0 — FAŁSZ). Możemy to zrobić za pomocą podwójnej negacji, czyli wpisujemy przed formułą dwa znaki minus. Zapis formuły powinien wyglądać następująco:
Po zatwierdzeniu formuły i skopiowaniu na wiersze poniżej otrzymamy ilość znaków w każdym wierszu, co widać na rys. nr 10.
Rys. nr 10 – ilość liter w każdym wierszu
Jeśli w formule nie chcemy mieć odwołania do komórki I2, to możemy wstawić tekst do naszej formuły w podwójnym cudzysłowie. Taka formuła też będzie działać prawidłowo. Zapis formuły powinien wtedy wyglądać następująco:
Jeśli chcielibyśmy, aby takie znaki jak pojedynczy cudzysłów, czy kropka, przecinek itp. Też się zliczały, wystarczy, że dopiszemy je do naszego ciągu znaków z komórki I2.
Podsumowując, dzięki temu, że korzystamy tutaj z funkcji SZUKAJ.TEKST wystarczy jeden raz wypisać wszystkie litery. Nie ma znaczenia, czy są to wielkie, czy małe litery.
W dzisiejszym poście nauczymy się sprawdzać dane tekstowe pod kątem tego, czy zawierają cyfry. Chodzi o to, by sprawdzić czy dany tekst (kod) zawiera cyfry. Jeśli tekst rzeczywiście zawiera cyfry, może to oznaczać, że był wydawany po określonej dacie albo dotyczy to konkretnego działu lub usługi. Zadanie to wykonamy na podstawie przykładowych danych z rys. nr 1.
Rys. nr 1 – przykładowe dane
W tym celu
możemy użyć funkcji ZNAJDŹ, która pozwala wyszukać jeden tekst w innym
lub funkcji SZUKAJ.TEKST, która działa na takiej samej zasadzie. Różnica
między funkcjami polega na tym, że funkcja SZUKAJ.TEKST nie rozróżnia
wielkości liter.
W naszym
przykładzie wykorzystamy funkcję ZNAJDŹ, która ma krótszy zapis.
Pierwszym argumentem funkcji jest szukany_tekst, czyli jakaś cyfra.
Drugi argument funkcji to w_tekście, czyli komórka w jakiej chcemy
znaleźć tą cyfrę (u nas komórka A2). Zapis funkcji powinien wyglądać
następująco:
=ZNAJDŹ(1;A2)
Powyższą
formułę zatwierdzamy i otrzymamy wynik przedstawiony na rys. nr 2.
Rys. nr 2 – wynik funkcji ZNAJDŹ
Funkcja ZNAJDŹ zwróci nam numer pozycji szukaj cyfry, oczywiście pod warunkiem, że szukana cyfra pojawia się w przeszukiwanym tekście. Nas nie interesuje pojedyncza cyfra, tylko wiele cyfr. Ponadto jeśli funkcja ZNAJDŹ nie znajdzie szukanej cyfry to zwróci nam błąd argumentu — #ARG! (rys. nr 3).
Rys. nr 3 – błąd zwrócony przez funkcję ZNAJDŹ w sytuacji kiedy nie ma w tekście szukanej cyfry
Tak jak
wspominaliśmy nie szukamy jednej cyfry, ale szukamy dowolnej cyfry, więc musimy
stworzyć tablicę wszystkich możliwych cyfr i zapisać ją jako pierwszy argument
funkcji. Ułatwieniem jest to że w funkcji wpisujemy konkretne cyfry a nie
tekst. Zapis funkcji z tablicą powinien wyglądać następująco:
=ZNAJDŹ({0,1,2,3,4,5,6,7,8,9;A2)
Kolejność
cyfr w zapisie nie ma znaczenia. Jeśli przy takim zapisie podejrzymy sobie
wyniki funkcji w trybie edycji komórki za pomocą klawisza F9 otrzymamy tablicę
wyników przedstawioną na rys. nr 4.
Rys. nr 4 – podgląd wyników funkcji ZNAJDŹ
Funkcja
ZNAJDŹ zwróci nam błędy w przypadku, kiedy danej cyfry nie znajdzie oraz pozycję
(numer miejsca w tekście), kiedy dana cyfra wystąpi w tekście. Z podglądu
wyników formuły wychodzimy za pomocą skrótu klawiszowego Ctrl+Z. Dla nas
istotne jest tylko, czy cyfry zostały znalezione, a nie potrzebujemy pozycji
danej cyfry.
Skorzystamy
tutaj z funkcji CZY.LICZBA, która zwróci nam wartości logiczne PRAWDA i
FAŁSZ. Zapis funkcji powinien wyglądać następująco:
=CZY.LICZBA(ZNAJDŹ({0,1,2,3,4,5,6,7,8,9;A2))
Kiedy podejrzymy
sobie wyniki formuły w trybie edycji komórki za pomocą klawisza F9 otrzymamy
tablicę wartości logicznych przedstawioną na rys. nr 5, gdzie w sytuacji kiedy
cyfra zostanie znaleziona funkcja zwróci nam wartość logiczną PRAWDA, natomiast
w odwrotnej sytuacji otrzymamy wartość logiczną FAŁSZ.
Rys. nr 5 – Wartości logiczne zwrócone przez funkcję CZY.LICZBA
Z podglądu
wyników formuły wychodzimy za pomocą skrótu klawiszowego Ctrl+Z. Wartości
logiczne może być ciężko zliczyć, więc za pomocą podwójnej negacji zamieniamy
tablicę wartości logicznych na tablicę wartości 0 i 1. Zapis funkcji powinien
wyglądać następująco:
=–CZY.LICZBA(ZNAJDŹ({0,1,2,3,4,5,6,7,8,9;A2))
Kiedy
podejrzymy sobie wyniki formuły w trybie edycji komórki za pomocą klawisza F9
otrzymamy tablicę wartości 0 i 1 przedstawioną na rys. nr 6.
Rys. nr 6 – tablica wartości 0 i 1 po zastosowaniu podwójnej negacji
Wartości
logiczne FAŁSZ zostają zamienione na wartość 0, natomiast wartości logiczne
PRAWDA na wartość 1. Z podglądu wyników formuły wychodzimy za pomocą skrótu
klawiszowego Ctrl+Z. Na tym etapie wystarczy zsumować te wartości, korzystając
z funkcji SUMA.ILOCZYNÓW. Używamy tej funkcji, aby nie trzeba było
pamiętać, aby zatwierdzać naszą formułę, jako tablicową (skrót klawiszowy
Ctrl+Shift+Enter). Zapis funkcji powinien wyglądać następująco:
Otrzymamy
wynik przedstawiony na rys. nr 7, czyli otrzymamy ilość znalezionych cyfr w
tekście.
Rys. nr 7 – wynik funkcji SUMA.ILOCZYNÓW (ilość znalezionych cyfr w tekście)
Po skopiowaniu formuły na wiersze poniżej otrzymamy wyniki przedstawione na rys. nr 8.
Rys. nr 8 – wyniki funkcji SUMA.ILOCZYNÓW dla całej tabeli
Co łatwo
zauważyć w wierszu 6 pojawia się nam błąd. Wynika on z tego, że funkcja ta
zwraca tylko pierwsze wystąpienie danej cyfry, więc w wierszu nr 6 mamy tylko 2
różne cyfry (0 i 1), funkcja nie bierze pod uwagę powtarzającej się cyfry 0.
Podsumowując funkcja sprawdza czy w tekście jest dany znak, a nie ile razy on
występuje.
Na koniec
musimy zrobić test logiczny, żeby sprawdzić czy wartość otrzymana z naszej
formuły jest większa od 0. Zapis powinien wyglądać następująco:
Dzięki użyciu
testu logicznego otrzymamy wartość logiczną PRAWDA dla sytuacji kiedy cyfry
występują w tekście lub wartość logiczną FALSZ, kiedy cyfry nie występują (rys.
nr 9).
Rys. nr 9 – sprawdzenie czy tekst zawiera cyfrę
Naszym zadaniem było sprawdzenie czy dany tekst zawiera jakąś cyfrę. Nie jest istotne ile jest tych cyfr oraz jaką cyfrę zawiera tekst.
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.
Chcemy wyciągnąć liczbę z początku lub końca tekstu. Najpierw zajmiemy się pisaniem formuły do wyciągnięcia liczby z końca tekstu.
Jednym ze sposobów jest zaczęcie od znalezienie pozycji kolejnych cyfr. Możemy wykorzystać funkcję SZUKAJ.TEKST lub ZNAJDŹ. Obie znajdują pozycję szukanego tekstu (w naszym przykładzie liczby) w przeszukiwanym tekście, ale funkcja SZUKAJ.TEKST nie zwraca uwagi na wielkość liter, a funkcja ZNAJDŹ zwraca uwagę na wielkość liter. Ponieważ szukamy cyfr skorzystamy z funkcji, która ma krótszą nazwę.
Dalej ważne jest, że chcemy znaleźć pierwszą pozycję każdej cyfry. Żeby to zrobić musimy wpisać wszystkie cyfry w nawiasach klamrowych oddzielone slashami
{0\1\2\3\4\5\6\7\8\9}
Można sobie ułatwić życie i stworzyć serię cyfr w wierszu, odwołać się do niej, a następnie zaznaczyć całe odwołanie do tej serii i nacisnąć klawisz F9 – wtedy Excel zamiast odwołania wstawi potrzebną tablicę.
To, że zamiast odwołania do komórek skorzystamy z tablicy wpisanej na stałe (hardkodowej) pozwoli nam zatwierdzać formułę zwyczajnie, a nie jako formułę tablicową (za pomocą kombinacji klawiszy Ctrl + Shift + Enter).
=ZNAJDŹ({0\1\2\3\4\5\6\7\8\9}; A2)
Jednak przy wyszukiwaniu poszczególnych cyfr pojawią się błędy, gdy danej cyfry nie ma w przeszukiwanym tekście.
Obsługa błędów może być kłopotliwa, dlatego skorzystamy ze sztuczki, która ułatwi nam zadanie – do oryginalnego tekstu dołożymy na koniec ciąg wszystkich cyfr.
=ZNAJDŹ({0\1\2\3\4\5\6\7\8\9}; A2&"0123456789")
Dzięki temu zawsze znajdziemy każdą cyfrę, co najwyżej poza długością przeszukiwanego tekstu.
={10\13\14\15\16\11\18\19\20\21}
Ponieważ nas interesuje pierwsze wystąpienie jakiejkolwiek cyfry dlatego naszą dotychczasową formułę wstawimy do funkcji MIN.
Teraz żeby odnaleźć ile znaków chcemy wyciągnąć z prawej strony tekstu (funkcja PRAWY) wystarczy znalezioną pozycję pierwszej cyfry odjąć od długości całego tekstu i dodać korygującą jedynkę.
Jak wyciągnęliśmy liczbę z końca tekstu to możemy teraz w łatwy sposób wyciągnąć sam tekst odejmując od długości całego tekstu długość liczby.
=LEWY(A2;DŁ(A2)-DŁ(C2))
Teraz zajmiemy się przypadkiem, gdy nasza liczba jest na początku tekstu. Musimy podejść do tego inaczej. Zaczniemy od tego, że usuniemy z tekstu po kolei każdą cyfrę za pomocą funkcji PODSTAW i pustego ciągu znaków:
=PODSTAW(I2;{0\1\2\3\4\5\6\7\8\9};"")
Uzyskamy wtedy dziesięć tekstów, w których nie będą się znajdować poszczególne cyfry, czyli w większości będzie to cały tekst, bo danej cyfry już na początku nie będzie w tekście.
Tylko, że nam nie są potrzebne same teksty, tylko ich długość, czyli naszą formułę wstawiamy do funkcji DŁ. Znowu ponieważ wpisaliśmy na stałe tablicę cyfr (hardkodowanie) nie musimy zatwierdzać naszej formuły jako formuły tablicowej.
=DŁ(PODSTAW(I2;{0\1\2\3\4\5\6\7\8\9};""))
Dzięki temu uzyskamy długość tekstu po usunięciu każdej kolejnej cyfry.
={12\13\13\13\13\12\13\13\13\13}
Czasami widać różnicę, do oryginalnej długości tekstu i właśnie tej różnicy szukamy. Wystarczy, że od długości oryginalnego tekstu odejmiemy te poszczególne długości.
=DŁ(I2)-DŁ(PODSTAW(I2;{0\1\2\3\4\5\6\7\8\9};""))
Wynikiem będzie tablica różnic
={1\0\0\0\0\1\0\0\0\0}
Zostaje nam ją tylko zsumować i mamy długość całej liczby, która znajduje się na początku tekstu.
Dziś mamy trudne zadanie ponieważ musimy znaleźć minimalną cenę produktu, na podstawie jego ID, który znajduje się w opisie i może pojawić się w różnych miejscach tego opisu i w wielu komórkach. Będziemy działać na prostej bazie przykładowej.
Przede wszystkim musimy znaleźć komórki, które zawierają w opisie szukane ID. Możemy się do tego posłużyć funkcją ZNAJDŹ lub SZUKAJ.TEKST, w zależności czy ma dla znaczenie, czy rozróżniamy małe i wielkie litery – funkcja ZNAJDŹ je rozróżnia, funkcja SZUKAJ.TEKST nie. W naszym przykładzie posłużymy się funkcją ZNAJDŹ, ponieważ w ID i opisach litery zawsze są albo wielkie, albo małe. Poza tym ta funkcja jest trochę krótsza w zapisie.
Czyli za pomocą funkcji ZNAJDŹ szukamy konkretnego ID w opisach produktów.
Jeśli funkcja ZNAJDŹ odnajdzie ID w komórce w opisie, to zwróci pozycję początkowego znaku, czyli jeśli ID jest na samym początku opisu to będzie liczba 1, bo już pierwszy znak należy do szukanego ID, jeśli ID będzie dalej w opisie to funkcja ZNAJDŹ zwróci odpowiednią inną liczbę.
Dla nas istotne jest, że jeśli ID został znaleziony mamy zwracaną liczbę, jeśli nie to błąd argumentu (#ARG!). Do dalszego kroku potrzebujemy wartości PRAWDA lub FAŁSZ, możemy je uzyskać wstawiając funkcję ZNAJDŹ do funkcji CZY.LICZBA.
Wiemy gdzie występuje nasz szukany ID, ale nie wiemy jakie są dla niego wartości. Musimy też zignorować wartości FAŁSZ. Będziemy chcieli skorzystać z funkcji AGREGUJ, więc wykorzystamy sztuczkę z podzieleniem cen przez powyższą tablicę prawd i fałszów. Wynikiem będą ceny dla wartości PRAWDA i błędy dzielenia przez zero () dla wartości FAŁSZ, ponieważ przy dowolnej operacji matematycznej Excel zamienia wartości PRAWDA na 1, a FAŁSZ na 0.
Tą tablicę możemy już wstawić do funkcji AGREGUJ z odpowiednimi parametrami. Ponieważ chcemy znaleźć minimalną wartość i pracujemy na tablicach jako pierwszy argument wpisujemy wartość 15, czyli będziemy korzystać z funkcji MIN.K (funkcja MIN w funkcji AGREGUJ nie radzi sobie z operacjami tablicowymi). Drugi argument ustawiamy na wartość 6, ponieważ chcemy zignorować wszystkie błędy. Trzeci argument to tablica, a czwarty to parametr k funkcji MIN.K, czyli numer minimalnej wartości, my chcemy uzyskać najmniejszą wartość, więc wpisujemy tu 1. Cała nasza formuła będzie wyglądać tak:
Jeśli masz wersję Excela wcześniejszą niż 2010, to nie będziesz miał jeszcze dostępu do funkcji AGREGUJ. W takiej sytuacji musisz skorzystać z formuły, którą musisz zatwierdzać jako formułę tablicową, czyli kombinacją klawiszy Ctrl + Shift + Enter
Jedną z zalet rozwiązania z funkcją AGREGUJ jest to, że możesz zatwierdzić formułę zwyczajnie, a funkcja AGREGUJ sama poradzi sobie z operacjami na tablicach.