0
0 Produkty w koszyku

No products in the cart.

Power Query 64 — Suma ze zmiennej ilości kolumn rozwiązanie w Excelu

W tym poście omówimy sumę ze zmieniającej się ilości kolumn w danych. Będzie to rozwiązanie problemu z Power Query w Excelu.

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

Rys. nr 1 – przykładowe dane

Mamy tutaj wynik zapytania Power Query, który tworzy podsumowanie z danych z pierwszej tabeli. Mamy na razie przedstawione tylko 3 miesiące, ale pod spodem dojdą kolejne dane z dodatkowymi miesiącami (rys. nr 2).

Rys. nr 2 – dodatkowe dane

W podsumowaniu z Power Query chcemy mieć kolumnę "Suma". Można dodawać kolumny do zapytania Power Query, tylko trzeba mieć na uwadze, że ilość kolumn w Power Query może się zmienić. Tutaj standardowo chcielibyśmy otrzymać sumę. Użyjemy skrótu klawiszowego Alt + =. Excel wstawi nam automatycznie funkcję SUMA, jak widać na rys. nr 3.

Rys. nr 3 – funkcja SUMA

Możemy sobie uprościć zapis tej funkcji i wstawić w niej ręcznie odpowiedni zakres zamiast nazw tekstowych. Zapis będzie wtedy wyglądał następująco:

=SUMA(I2:K2)

Otrzymamy zsumowane dane w kolumnie L przedstawione na rys. nr 4.

Rys. nr 4 – zsumowane dane

Nasza suma przedstawia wynik z aktualnej sytuacji. Problem polega na tym, że jeśli wstawimy w dane kolejną kolumnę (Kwiecień) i dopiszemy jakieś wartości, to nie zostaną one uwzględnione w kolumnie Suma (rys. nr 5). Nasza Suma się nie rozszerzy, jej zakres się nie zmieni.

Rys. nr 5 – nieuwzględnione dane z Kwietnia w kolumnie Suma

Wróćmy do stanu sprzed dodania dodatkowej kolumny za pomocą skrótu klawiszowego Ctrl+Z. Jeśli natomiast wstawimy kolumnę między np. Lutym a Marcem i wpiszemy jakieś wartości liczbowe, to zostaną one uwzględnione w sumie (rys. nr 6). Zakres Sumy się rozszerzy.

Rys. nr 6 – uwzględnione dane w sumie

Problem pojawia się, gdy nasze dane zostaną rozszerzone o kolumnę obok zakresu uwzględnionego w formule funkcji SUMA. W takiej sytuacji funkcja się nie rozszerza automatycznie, nie dopasowuje do nowego zakresu. Najprostszym rozwiązaniem jest użycie funkcji Excela. Jest możliwe rozwiązanie tego problemu w Power Query, ale jest bardziej skomplikowane i wymaga użycia kilku funkcji. Rozwiązanie to pokażemy w kolejnym poście.

Naszym zadaniem jest dynamiczne ustalenie zakresu funkcji SUMA. Możemy użyć funkcji PRZESUNIĘCIE. Pierwszym argumentem funkcji jest odwołanie, czyli komórki z zakresu I2:L2 (obejmujemy zakresem kolumnę Suma). Musimy ograniczyć to przesunięcie do ilości kolumn minus jedna kolumna. Czyli nie przesuwamy o konkretną ilość wierszy (argument wiersze), czy kolumn (argument kolumny), ale musimy zmienić argument szerokość (czwarty argument). Trzeci argument, czyli szerokość wstawiamy wartość 1. Musimy policzyć liczbę kolumn. Możemy to zrobić za pomocą funkcji LICZBA.KOLUMN. Argumentem funkcji jest tablica, czyli zakres obejmujący nasze 4 kolumny minus jedna kolumna (I2:L2‑1). Zapis formuły powinien wyglądać następująco:

=SUMA(PRZESUNIĘCIE(I2:L2;0;0;1;LICZBA.KOLUMN(I2:L2)-1))

Powyższą formułę zatwierdzamy. Sprawdzimy teraz, czy działa prawidłowo. Zaznaczamy kolumnę L i za pomocą skrótu klawiszowego Ctrl + Shift + Add wstawiamy nową kolumnę przed tą zaznaczoną. Następnie ręcznie wpisujemy dowolną wartość w tej kolumnie. Wynik w kolumnie Suma automatycznie ulegnie zmianie co widać na rys. nr 7.

Rys. nr 7 – uwzględnione dane z nowej kolumny w Sumie

Teraz musimy usunąć dodaną kolumnę ręcznie za pomocą skrótu klawiszowego Ctrl+Shift+Subtract. Teraz sprawdzimy, czy jeśli dodamy dużą ilość danych, zakres kolumn i sumy rozszerzy i przeliczy się prawidłowo. Dodatkowe dane z rysunku nr 2 zaznaczamy i przesuwamy w górę, czyli doklejamy do naszych danych źródłowych. Następnie odświeżamy dane z zapytania, czyli klikamy prawym przyciskiem myszy w dowolnym punkcie tabeli i z podręcznego menu wybieramy polecenie Odśwież (rys. nr 8).

Rys. nr 8 – polecenie Odśwież w podręcznym menu

Otrzymamy odświeżone (zaktualizowane) dane przedstawione na rys. nr 9.

Rys. nr 9 – odświeżone dane

Jak widać na rysunku powyżej nasze dane się przeliczyły, zakres Sumy odpowiednio się rozszerzył i otrzymaliśmy prawidłowe wyniki.

Excel — Podsumowanie sprzedaży po dniu tygodnia na podstawie daty — porada 423

W tym poście omówimy podsumowanie sprzedaży według dni tygodnia.

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

Rys. nr 1 – przykładowe dane

Mamy niezbędne dla nas dane, czyli datę i wartość sprzedaży. Na tej podstawie chcemy uzyskać podsumowanie, ile transakcji odbyło się w każdym dniu tygodnia i jaka to była wartość sprzedaży. Na konkretny dzień tygodnia możemy patrzeć po jego nazwie lub po numerze (rys. nr 2).

Rys. nr 2 – podsumowanie, jakie chcemy uzyskać

Możemy tutaj użyć funkcji DZIEŃ.TYG, która na podstawie daty podaje dzień tygodnia. Pierwszym argumentem funkcji jest liczba_kolejna, czyli data, z której chcemy wyciągnąć dzień tygodnia. Drugi argument funkcji to [zwracany_typ], gdzie musimy zwrócić uwagę, jak są numerowane dni tygodnia. Standardowa numeracja jest tutaj określana liczbą 2, co widać na rys. nr 3.

Rys. nr 3 – typy numeracji dni tygodnia dla funkcji DZIEŃ.TYG

Zapis funkcji powinien wyglądać następująco:

=DZIEŃ.TYG(A2;2)

Powyższą formułę zatwierdzamy i kopiujemy na komórki poniżej. Otrzymamy numery dni tygodnia dla poszczególnych dat przedstawione na rys. nr 4.

Rys. nr 4 – numery dni tygodnia dla poszczególnych dat

Jeśli będziemy mieli numerację dni tygodnia, to możemy wykorzystać dane z kolumny G. Możemy również wykorzystać funkcję TEKST i odpowiednio sformatować datę. Pierwszym argumentem funkcji TEKST jest wartość, czyli nasza data. Drugi argument to format_tekst, czyli oznaczenie formatu "dddd", które powoduje wyświetlanie pełnej nazwy tekstowej dnia tygodnia. Zapis formuły powinien wyglądać następująco:

=TEKST(A2;"dddd")

Powyższą formułę zatwierdzamy i kopiujemy na komórki poniżej. Podsumowując, jeśli datę z kolumny A, sformatujemy jako "dddd", to otrzymamy pełną nazwę dnia tygodnia (rys. nr 5).

Rys. nr 5 – pełna nazwa dnia tygodnia dzięki funkcji TEKST

Jak widać w danych powyżej wartości z kolumn C i D ze sobą korespondują, tzn. jeśli mamy np. wartość 3 w kolumnie C, to w kolumnie D mamy dzień o nazwie Środa itd.

Jeśli możemy sobie pozwolić na zbudowanie w danych dodatkowych kolumn (pomocniczych), to możemy użyć funkcji SUMA.WARUNKÓW lub  SUMA.JEŻELI. My jednak założymy, że nie mamy możliwości zbudowania takich kolumn pomocniczych, dlatego takie obliczenia musimy wykonać wewnątrz jednej formuły. A funkcja SUMA.WARUNKÓW nie pozwala na obliczenia w jej wnętrzu.

W pierwszej kolejności musimy sprawdzić dzień tygodnia, ale dla całej kolumny A. Użyjemy do tego funkcji DZIEŃ.TYG. Zaznaczamy komórkę A2 i za pomocą skrótu klawiszowego Ctrl+Shift+Strzałka w dół zaznaczamy całą kolumnę. Podany zakres blokujemy bezwzględnie za pomocą klawisza F4. W argumencie zwracany_typ wybieramy wartość 2 (dla numeracji poniedziałek — 1, niedziela – 7). Zapis formuły powinien wyglądać następująco:

=DZIEŃ.TYG($A$2:$A$1998;2)

Ze względu na to, że pracujemy na Excelu tablicowym, po zatwierdzeniu formuły, wyniki rozleją się na odpowiednią ilość komórek (rys. nr 6).

Rys. nr 6 – rozlana formuła funkcji DZIEŃ.TYG

Interesuje nas, kiedy wartości z kolumny H są równe wartością z kolumny G. Zapis formuły powinien wyglądać następująco:

=DZIEŃ.TYG($A$2:$A$1998;2)=G2

Po zatwierdzeniu formuły otrzymamy wartości logiczne PRAWDA i FAŁSZ przedstawione na rys. nr 7.

Rys. nr 7 – wartości logiczne PRAWDAFAŁSZ

Nie ma znaczenia, jeśli nie posiadasz Excela tablicowego, to tylko ułatwia pokazywania rozlewających się formuł. Teraz musimy zamienić nasze wartości logiczne na wartości 1 i 0. Możemy to zrobić za pomocą podwójnej negacji, czyli wstawiamy dwa znaki minus przed funkcję. Zapis powinien wyglądać następująco:

=–(DZIEŃ.TYG($A$2:$A$1998;2)=G2)

Po zatwierdzeniu formuły otrzymamy wartości 0 i 1. Wartość logiczna PRAWDA zostanie zamieniona na 1, a FAŁSZ na 0 (rys. nr 8).

Rys. nr 8 – wartości logiczne zamieniona na 1 i 0

Teraz możemy łatwo zsumować nasze wyniki. Żebyśmy nie musieli tej formuły zatwierdzać w klasycznym Excelu kombinacją klawiszy Ctrl+Shift+Enter, korzystamy z funkcji SUMA.ILOCZYNÓW. Argumentem funkcji jest tablica1, czyli tablica uzyskana z poprzedniej formuły. Zapis powinien wyglądać następująco:

=SUMA.ILOCZYNÓW(–(DZIEŃ.TYG($A$2:$A$1998;2)=G2))

Po zatwierdzeniu formuły skrótem klawiszowym Ctrl+Enter otrzymamy ilość wszystkich transakcji przypadających na poniedziałek. Po skopiowaniu formuły w dół, otrzymamy dane dla pozostałych dni tygodnia (rys. nr 9).

Rys. nr 9 – ilość wszystkich transakcji dla poszczególnych dni tygodnia

Żeby obliczyć wartość sprzedaży postępujemy bardzo podobnie. Możemy skopiować poprzednią formułę. Zamiast podwójnej negacji (dwa minusy) zrobimy operację mnożenia przez kolumnę Sprzedaż, czyli zakres $B$2:$B$1998. Na chwilę usuniemy też funkcję SUMA.ILOCZYNÓW. Zapis formuły powinien wyglądać następująco:

=DZIEŃ.TYG($A$2:$A$1998;2)=G2)*$B$2:$B$1998

Po zatwierdzeniu formuły otrzymamy rozlane wartości sprzedaży z podaną wartością dla poniedziałku przedstawione na rys. nr 10.

Rys. nr 10 – rozlane wartości sprzedaży dla każdego poniedziałku

Aby otrzymać wyniki dla wszystkich dni tygodnia musimy otoczyć poprzednią formułę funkcją SUMA.ILOCZYNÓW. Zapis formuły powinien wyglądać następująco:

=SUMA.ILOCZYNÓW((DZIEŃ.TYG($A$2:$A$1998;2)=G2)*$B$2:$B$1998)

Po zatwierdzeniu formuły skrótem klawiszowym Ctrl+Enter i skopiowaniu w dół otrzymamy wartości sprzedaży dla poszczególnych dni tygodnia przedstawione na rys. nr 11.

Rys. nr 11 — wartości sprzedaży dla poszczególnych dni tygodnia

Excel — Tłumacz funkcji w Excelu — porada 422

W tym poście poznamy działanie tłumacza funkcji w Excelu.

Chodzi o takie dodatkowe okienko, które najczęściej znajduje się z boku ekranu po prawej stronie (rys. nr 1).

Rys. nr 1 – Tłumacz funkcji

Od kiedy w Excelu na karcie Wstawianie pojawiła się grupa poleceń Dodatki (rys. nr 2), czyli niejako sklep, możemy sobie pobierać dostępne dodatki. Jednym z takich dodatków jest właśnie Tłumacz funkcji.

Rys. nr 2 – grupa poleceń Dodatki

Wybieramy polecenie Pobierz dodatki z karty Wstawianie (jak na rys. nr 2). Otworzy nam się okno Dodatki pakietu Office, gdzie w polu Wyszukaj wpisujemy nazwę dodatku, jakiego szukamy (rys. nr 3). Istotne jest, że sklep Office działa w języku angielskim, więc nazwę dodatku musimy podać w tym właśnie języku.

Rys. nr 3 – okno Dodatków pakietu Office

Po znalezieniu dodatku, jaki nas interesuje, klikamy przycisk Dodaj. Pojawi nam się komunikat Excela dotyczący postanowień licencyjnych i ochrony prywatności, który musimy zatwierdzić przyciskiem Kontynuuj (rys. nr 4).

Rys. nr 4 – komunikat Excela o licencji i ochronie prywatności

Dodatek zostanie zainstalowany i zaraz po instalacji pojawi się na końcu karty Narzędzia główne, co widać na rys. nr 5 (Translator).

Rys. nr 5 – dodatek Translator na karcie Narzędzia główne

Zadaniem tego dodatku jest tłumaczenie nazw funkcji Excela. W oknie Functions Translator w zakładce Dictionary możemy zacząć pisać nazwę funkcji np. ZAOKR.W.GÓRĘ, pod spodem pojawi nam się angielska nazwa tej funkcji, czyli CEILING (rys. nr 6).

Rys. nr 6 – działanie dodatku Functions Translator

Analogicznie dodatek zadziała, jeśli wpiszemy angielską nazwę funkcji np. SUMPRODUCT, mianowicie zostanie ona przetłumaczona na polską funkcję SUMA.ILOCZYNÓW. Oczywiście nie jesteśmy ograniczeni do tych dwóch języków, możemy kliknąć ikonkę koła zębatego w prawym dolnym rogu okna Functions Translator. Pojawią się nam ustawienia tłumacza, gdzie w grupie Usage languages możemy ustawić dowolny język, jaki jest obsługiwany przez Excela (rys. nr 7).

Rys. nr 7 – ustawienia preferowanych języków

W tym dodatku mamy również zakładkę Reference, czyli bibliotekę funkcji Excela. Możemy sobie wybrać kategorię funkcji, której szukamy (rys. nr 8).

Rys. nr 8 – kategorie funkcji Excela

Jeśli wybierzemy sobie np. kategorię Logical, to wyświetli się nam lista wszystkich dostępnych funkcji logicznych z nazwami w obu wybranych językach, czyli w naszym przypadku po polsku i angielsku (rys. nr 9).

Rys. nr 9 – lista funkcji Excela z kategorii Logical

Moim zdaniem najciekawszą funkcjonalnością tego tłumacza jest zakładka Translator, w którym możemy tłumaczyć całe formuły. Możemy skopiować sobie dowolną formułę np. =ZAOKR(B2,0), następnie wklejamy ją do pierwszego okienka. Klikamy ikonkę ze Strzalką w dół, aby Excel przetłumaczył nam formułę. W okienku poniżej pojawi nam się przetłumaczona formuła =ROUND(B2,0) (rys. nr 10). Istotne tutaj jest, aby zawracać uwagę, jakie znaki rozdzielają część całkowitą od dziesiętnej czy poszczególne argumenty.

Rys. nr 10 – tłumaczenie formuł w zakładce Translator

Na dole okna jest dodatkowa opcja – Instantly translate  selected sell (English > Polish). Zaznaczenie tego checkbopxa powinno sprawić, że po kliknięciu dowolnej komórki z formułą, otrzymamy w oknie Functions Translator przetłumaczoną jej wersję (rys. nr 11).

Rys. nr 11 – automatyczne tłumaczenie funkcji w klikanych komórkach

Zauważyłem jednak, że przy bardzo skomplikowanych i długich formułach mogą pojawić się błędy, czasem formuły przekraczają możliwości tłumacza. Funkcjonalność ta przydaje się, jeśli potrzebujesz przetłumaczyć funkcje w Excelu w dowolnych językach.

Excel — Dni tygodnia w innym języku — porada 421

W tym poście pokażemy, w jaki sposób podać dni tygodnia i miesiące w innych językach.

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

Rys. nr 1 – przykładowe dane

W przykładowych danych mamy podane daty. Po naciśnięciu skrótu klawiszowego Ctrl+1 otworzy nam się okno Formatowania komórek, gdzie w różny sposób możemy sformatować nasze dane. W polu Typ możemy wybrać sposób pokazywania danych, np. żeby pokazywał się tylko dzień, najpierw miesiąc, rok itp. W polu Ustawienia regionalne (lokalizacja) możemy ustawić sobie język dla danego formatowania. Przykładowo, ustawmy sobie Stany zjednoczone (punkt 1 na rys. nr 2), a następnie ustawmy typ formatowania ze skróconą nazwą miesiąca (punkt 2).

Rys. nr 2 – okno Formatowania komórek

Teraz po przejściu w polu Kategoria na formatowanie Niestandardowe (punkt 1 na rys. nr 3), to w polu Typ oprócz standardowych oznaczeń dnia, miesiąca i roku pokazuje się jakiś dziwny kod (punkt 2).

Rys. nr 3 – kategoria formatowania – Niestandardowe

Te niestandardowe zapisy są związane z językiem tłumaczenia. Łatwo się domyślić, że chodzi o język angielski Stanów Zjednoczonych, bo mamy znak dolara ($), język en i oznaczenie US, czyli United States. Takie ustawienia potwierdzamy przyciskiem OK. Otrzymamy dane w pierwszej kolumnie sformatowane według naszych ustawień przedstawione na rys. nr 4.

Rys. nr 4 – dane sformatowane dla Stanów Zjednoczonych

Za pomocą skrótu klawiszowego Ctrl+Z wracamy do poprzednich ustawień, żeby pokazane były daty za pomocą liczb. Mimo, że korzystamy z polskiego Excela, możemy uzyskać dane pokazane w innych językach. Pełną listę tych kodów można znaleźć na stronie Microsoftu https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c?redirectedfrom=MSDN

Jest możliwość różnych zapisów tych samych kodów w zależności od języka i lokalizacji, co widać na rys. nr 5.

Rys. nr 5 – przykładowe kody według języków i lokalizacji

Powyższe kody możemy wykorzystać w funkcji TEKST, która formatuje wartośćCtr z komórki. Pierwszym argumentem funkcji jest wartość, czyli data z pierwszej kolumny. Drugi argument to format_tekst, czyli znak $, następnie kod ze strony Microsoftu zapisany w nawiasach kwadratowych.

Jeśli w zapisie funkcji TEKST w drugim argumencie podamy tylko dddd, to otrzymamy dane z podanymi nazwami dni tygodnia w domyślnym języku, w jakim korzystamy z programu Excel. Zapis formuły powinien wyglądać następująco:

=TEKST(A2;"dddd")

Rys. nr 6 – nazwy dni tygodnia otrzymane za pomocą funkcji TEKST w domyślnym języku

Możemy używać kodu liczbowego albo literowego. Otrzymamy nazwy dni tygodnia w różnych językach przedstawione na rys. nr 7.

Zapis formuły dla języka polskiego powinien wyglądać następująco:

=TEKST(A2;"[$-415]dddd")

Zapis formuły dla języka angielskiego i Stanów Zjednoczonych powinien wyglądać następująco:

=TEKST(A2;"[$-409]dddd")

Zapis formuły dla języka angielskiego i Wielkiej Brytanii powinien wyglądać następująco:

=TEKST(A2;"[$-en-GB]dddd")

Zapis formuły dla języka francuskiego i Francji powinien wyglądać następująco:

=TEKST(A2;"[$-fr]dddd")

Rys. nr 7 – dni tygodnia w różnych językach

Możemy szybko zamienić dni tygodnia na miesiące. Zaznaczamy zakres B2:H13, następnie za pomocą skrótu klawiszowego Ctrl+H otwieramy okno Znajdowania i zamieniania. Przechodzimy na zakładkę Zamień (punkt 1 na rys. nr 8), następnie w polu Znajdź wpisujemy dddd (punkt 2), a w polu Zamień na wpisujemy mmm (punkt 3). Takie ustawienia zatwierdzamy przyciskiem Zamień wszystko (punkt 4).

Rys. nr 8 – okno Znajdowania i zamieniania

Wyświetli nam się komunikat o ilości zamienionych danych przedstawiony na rys. nr 9, który zatwierdzamy przyciskiem OK.

Rys. nr 9 – komunikat Excela

Otrzymamy dane ze zamienionymi nazwami dni tygodnia na nazwy miesięcy w wybranych językach przedstawione na rys. nr 10.

Rys. nr 10 – nazwy dni tygodnia zamienione na nazwy miesięcy

Podsumowując wystarczy odpowiednie formatowanie, aby za pomocą funkcji TEKST pokazać nazwy dni tygodnia czy miesięcy w różnych językach.

Excel — Ile liter w tekście — porada 420

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 , 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ą dla tekstu z komórki A2. Zapis formuły powinien wyglądać następująco:

=ADR.POŚR("1:"&(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:"&(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:

=FRAGMENT.TEKSTU(A2; WIERSZ(ADR.POŚR("1:"&(A2)));1)

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;

=SZUKAJ.TEKST(FRAGMENT.TEKSTU(A2; WIERSZ(ADR.POŚR("1:"&(A2)));1);$I$2)

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:

=CZY.LICZBA(SZUKAJ.TEKST(FRAGMENT.TEKSTU(A2; WIERSZ(ADR.POŚR("1:"&(A2)));1); $I$2))

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:

=–CZY.LICZBA(SZUKAJ.TEKST(FRAGMENT.TEKSTU(A2; WIERSZ(ADR.POŚR("1:"&(A2)));1); $I$2))

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

Rys. nr 9 – wartości logiczne zamienione na liczbowe

Teraz wkładamy naszą formułę do funkcji SUMA.ILOCZYNÓW. Zapis formuły powinien wyglądać następująco:

=SUMA.ILOCZYNÓW(–CZY.LICZBA(SZUKAJ.TEKST(FRAGMENT.TEKSTU(A2; WIERSZ(ADR.POŚR("1:"&(A2)));1); $I$2)))

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:

=SUMA.ILOCZYNÓW(–CZY.LICZBA(SZUKAJ.TEKST(FRAGMENT.TEKSTU(A2; WIERSZ(ADR.POŚR("1:"&(A2)));1);"ĄĘÓŚŁŻŹĆŃQWERTYUIOPASDFGHJKLZXCVBNM")))

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.

Excel — Zaznaczanie różnic w wierszach i kolumnach danych — porada 419

W tym poście poznamy dwa sposoby na zaznaczanie różnic w wierszach i kolumnach.

Temat ten omówimy na podstawie przykładowych danych z rys. nr 1.

Rys. nr 1 – przykładowe dane

Pierwszy sposób będzie wykorzystywał zaznaczanie specjalne, a drugi formatowanie warunkowe.

Będziemy chcieli sprawdzić, które komórki z pozostałych kolumn różnią się od pierwszej kolumny. Podsumowując w zaznaczaniu specjalnym zawsze patrzymy na pierwszą kolumnę. Zaznaczamy zakres A1:C12, rozwijamy polecenie Znajdź i zaznacz (punkt 2 na rys. nr 2) z karty Narzędzia główne (punkt 1), następnie wybieramy polecenie Przejdź do – specjalnie… (punkt 3).

Rys. nr 3 – polecenie Przejdź do – specjalnie…

Otworzy nam się okno Przechodzenia do – specjalnie, w którym ponieważ interesują nas różnice między kolumnami, to musimy zaznaczyć opcję Różnice w wierszach. Według mnie jest to mało intuicyjne, ale trzeba to zapamiętać. Zatwierdzamy przyciskiem OK (rys. nr 3).

Rys. nr 3 – okno Przechodzenia do – specjalnie…

Otrzymamy dane, w których Excel zaznaczył komórki różniące się od pierwszej kolumny, przedstawione na rys. nr 4.

Rys. nr 4 – zaznaczone komórki różniące się od pierwszej kolumny

Analogicznie wykonamy zadanie, w którym będziemy chcieli znaleźć dane różniące się od pierwszego wiersza. Zaznaczamy zakres A16:C27 i wykorzystamy tutaj skrót klawiszowy Ctrl+G, który otworzy nam okno Przechodzenia do, w którym klikamy przycisk Specjalnie… (rys. nr 5).

Rys. nr 5 – okno Przechodzenia do

Otworzy nam się okno Przechodzenia do – specjalnie, w którym ponieważ interesują nas różnice między wierszami, to musimy zaznaczyć opcję Różnice w kolumnach. Zatwierdzamy przyciskiem OK (rys. nr 6).

Rys. nr 6 – okno Przechodzenia do – specjalnie…

Ponownie otrzymamy sprawdzone dane, w których na żółto zostały zaznaczone komórki różniące się od pierwszego wiersza.

Rys. nr 7 – dane z zaznaczonymi różnicami w wierszach

Analogicznie możemy użyć tej opcji Excela przy liczbach, np. w bazach danych. Tutaj dodatkowo musimy uwzględnić zaokrąglenie, ponieważ mimo, że wartości wyglądają na takie same, może to być mylące. Wystarczy, że np. zostanie nałożone formatowanie z liczbami całkowitymi. Zaznaczamy zakres G1:H21 i ponownie rozwijamy polecenie Znajdź i zaznacz (jak na rys. nr 2) z karty Narzędzia główne, następnie wybieramy polecenie Przejdź do – specjalnie…

Otworzy nam się okno Przechodzenia do – specjalnie, w którym ponieważ interesują nas różnice między kolumnami, to musimy zaznaczyć opcję Różnice w wierszach. Zatwierdzamy przyciskiem OK (jak na rys. nr 3).

Otrzymamy dane przedstawione na rys. nr 8.

Rys. nr 8 – pokolorowane dane różniące się od pierwszej kolumny

Jak widać w pierwszym wierszu, mimo iż na pierwszy rzut oka dane wyglądają identycznie, są one inne. Mają inne wartości po przecinku, co widać na rys. nr 9, po odpowiednim sformatowaniu danych.

Rys. nr 9 – różnice w cyfrach po przecinku

Drugi sposób polega na użyciu Formatowania warunkowego. Zaznaczamy dane A1:C12, rozwijamy polecenie Formatowanie warunkowe (punkt 2 na rys. nr 10) z karty Narzędzia główne (punkt 1), następnie wybieramy polecenie Nowa reguła (punkt 3).

Rys. nr 10 – polecenie Nowa reguła

Otworzy nam się okno Nowa reguła formatowania, gdzie w polu Wybierz typ reguły (punkt 1 na rys. nr 11) wybieramy Użyj formuły do określenia komórek, które należy sformatować (punkt 2). Następnie w polu Edytuj opis reguły (punkt 3) wpisujemy formułę =$A1<>A1 (porównujemy wartość z komórki A1 tak, żeby była różna od pozostałych wartości). Naszą wartość będziemy chcieli przeciągać w dół danych a nie w bok, ponieważ chcemy sprawdzić każdą kolumnę niejako "osobno". Dlatego musimy użyć odpowiedniego odwołania mieszanego, czyli znak $ powinien pojawić się tylko przed nazwą kolumny (przed literą A). Klikamy przycisk Formatuj (punkt 4), który spowoduje otwarcie okna Formatowania komórek.

Rys. nr 11 – okno Nowej reguły formatowania

W oknie Formatowania komórek w zakładce Czcionka (punkt 1 na rys. nr 12), w polu Kolor (punkt 2) wybieramy czerwony, a w polu Styl czcionki (punkt 3) zaznaczamy Pogrubiony. Powyższe ustawienia zatwierdzamy przyciskiem OK.

Rys. nr 12 – okno Formatowania komórek

Excel wróci do okna Nowej reguły formatowania, którą pozostaje nam zatwierdzić przyciskiem OK. Otrzymamy dane przedstawione na rys. nr 13.

Rys. nr 13 – dane różniące się od pierwszego wiersza zaznaczone czerwoną pogrubioną czcionką

Teraz analogiczna sytuacja na podstawie danych z zakresu A16:C27, dla których będziemy chcieli otrzymać zaznaczone dane różniące się od pierwszego wiersza. Zaznaczamy odpowiedni zakres, rozwijamy polecenie Formatowanie warunkowe (jak na rys. nr 10) z karty Narzędzia główne, następnie wybieramy polecenie Nowa reguła.

Otworzy nam się okno Nowa reguła formatowania, gdzie w polu Wybierz typ reguły (jak na rys. nr 11) wybieramy Użyj formuły do określenia komórek, które należy sformatować. Następnie w polu Edytuj opis reguły wpisujemy formułę =A$16<>A17 (porównujemy wartość z komórki A16 tak, żeby była różna od pozostałych wartości). Naszą wartość będziemy chcieli przeciągać w bok danych a nie w dół, ponieważ chcemy sprawdzić każdy wiersz niejako "osobno". Dlatego musimy użyć odpowiedniego odwołania mieszanego, czyli znak $ powinien pojawić się tylko przed numerem wiersza (przed liczbą 16). Klikamy przycisk Formatuj, który spowoduje otwarcie okna Formatowania komórek.

W oknie Formatowania komórek w zakładce Czcionka (jak na rys. nr 12), w polu Kolor wybieramy czerwony, a w polu Styl czcionki zaznaczamy Pogrubiony. Powyższe ustawienia zatwierdzamy przyciskiem OK.

Excel wróci do okna Nowej reguły formatowania, którą pozostaje nam zatwierdzić przyciskiem OK. Otrzymamy dane przedstawione na rys. nr 14.

Rys. nr 14 – dane po nałożeniu formatowania warunkowego

Poznaliśmy dwa sposoby jak można w Excelu zaznaczać różnice w wierszach i kolumnach danych.