Excel. Funkcje w przykładach
Transkrypt
Excel. Funkcje w przykładach
IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREœCI KATALOG KSI¥¯EK KATALOG ONLINE Excel. Funkcje w przyk³adach Autor: Krzysztof Mas³owski ISBN: 83-246-0026-4 Format: B5, stron: 416 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOœCIACH ZAMÓW CENNIK CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: [email protected] Arkusz kalkulacyjny Excel to jedno z najczêœciej wykorzystywanych narzêdzi informatycznych. Z jego mo¿liwoœci korzystaj¹ nie tylko ksiêgowi, finansiœci i handlowcy, ale tak¿e naukowcy, którzy stosuj¹ go do przeprowadzania z³o¿onych obliczeñ i symulacji. Swoj¹ potêgê Excel pokazuje dopiero wtedy, gdy u¿ytkownik siêgnie po funkcje — gotowe mechanizmy obliczeniowe pozwalaj¹ce na wykonanie niemal dowolnych dzia³añ i operacji obliczeniowych. £¹cz¹c pojedyncze funkcje w formu³y, mo¿na szybciej zrealizowaæ praktycznie ka¿de zadanie. „Excel. Funkcje w przyk³adach” to ksi¹¿ka przedstawiaj¹ca zasady stosowania funkcji w obliczeniach wykonywanych za pomoc¹ arkusza kalkulacyjnego Excel. Czytaj¹c j¹, poznasz podstawy tworzenia w³asnych formu³ oraz nauczysz siê regu³ adresowania komórek i odwo³ywania siê do nich w formu³ach. Dowiesz siê równie¿, jak przypisywaæ nazwy komórkom i zakresom oraz jak korzystaæ z nich podczas obliczeñ. Znajdziesz tu tak¿e szczegó³owe omówienie poszczególnych funkcji Excela. • Kolejnoœæ operacji w formu³ach • Wpisywanie i edycja formu³ w komórkach • Tworzenie i u¿ywanie nazw • Funkcje logiczne • Funkcje daty i czasu • Funkcje informacyjne • Funkcje wyszukiwania • Funkcje matematyczne • Funkcje bazy danych • Funkcje statystyczne • Funkcje finansowe Kalkulatory ju¿ dawno sta³y siê prze¿ytkiem. Dziœ najdoskonalszym narzêdziem obliczeniowym jest Excel Spis treści 5 Spis treści Wstęp ............................................................................................ 13 Część I Budowanie warsztatu ................................................... 15 Rozdział 1. Podstawy ....................................................................................... 17 Domyślna interpretacja wpisu do komórki ...................................................................... 17 Operatory i kolejność operacji w formułach ................................................................... 21 Operatory odwołania ................................................................................................. 21 Operatory arytmetyczne ............................................................................................ 22 Operator konkatenacji ............................................................................................... 23 Operatory porównania ............................................................................................... 23 Porównanie priorytetów operatorów używanych w formułach ................................ 25 Sprawdzanie kolejności wykonywania operacji w formułach .................................. 25 Dlaczego i do czego używamy funkcji? — przykłady .................................................... 27 Obliczenia w komórkach arkusza ............................................................................. 27 Formatowanie warunkowe ........................................................................................ 29 Sprawdzanie poprawności ......................................................................................... 31 Wprowadzanie formuł do komórek arkusza .................................................................... 32 Wpisywanie formuły z klawiatury ............................................................................ 33 Wprowadzanie formuły przez wskazywanie adresów .............................................. 33 Wprowadzanie funkcji do formuły ........................................................................... 34 Edytowanie formuł .......................................................................................................... 38 Wyświetlanie i znajdowanie formuł ................................................................................ 39 Znajdowanie formuł po ich wyświetleniu ................................................................. 39 Znajdowanie formuł za pomocą okna dialogowego Przejdź do ............................... 39 Obliczenia automatyczne i ręczne ................................................................................... 41 Odwołania do komórek w formułach .............................................................................. 42 Odwołania względne ................................................................................................. 42 Odwołania bezwzględne ........................................................................................... 43 Adresy mieszane ....................................................................................................... 44 Klawisz F4 ................................................................................................................. 45 Adresowanie w trzecim wymiarze ............................................................................ 45 Błędy sygnalizowane przez formuły i funkcje ................................................................ 47 Rozdział 2. Nazwy ............................................................................................ 49 Zasady tworzenia nazw ................................................................................................... 50 Nazwy z odwołaniem bezwzględnym ............................................................................. 50 Standardowe tworzenie nazw .................................................................................... 50 Przypisywanie nazw do istniejących odwołań .......................................................... 51 6 Excel. Funkcje w przykładach Tworzenie nazw za pomocą paska formuły .............................................................. 52 Tworzenie nazw za pomocą tekstu wpisanego do sąsiednich komórek arkusza ...... 52 Nazwy z odwołaniem względnym ................................................................................... 53 Nazwy formuł .................................................................................................................. 54 Nazwy stałych .................................................................................................................. 55 Modyfikowanie i usuwanie nazw .................................................................................... 56 Modyfikowanie nazwy .............................................................................................. 56 Usuwanie nazw ......................................................................................................... 56 Nazwy na poziomie skoroszytu i nazwy na poziomie arkusza ....................................... 57 Nadawanie nazw na poziomie arkusza ...................................................................... 58 Analiza zależności między nazwami na poziomie arkusza i na poziomie skoroszytu ........................................................................................ 59 Praktyczny sposób budowania skoroszytów z nazwami na poziomie arkuszy ......... 60 Znajdowanie nazw ........................................................................................................... 60 Wyszukiwanie na liście nazw definiowanych ........................................................... 61 Wyszukiwanie nazw za pomocą paska formuły ....................................................... 61 Znajdowanie nazw przez zmniejszanie skali wyświetlania ...................................... 62 Wklejanie listy nazw ................................................................................................. 62 Znajdowanie nazwanych zakresów za pomocą okna Przechodzenie do ................... 63 Menadżer nazw ................................................................................................................ 64 Rzadko używany operator części wspólnej zakresów ..................................................... 65 Wskazówki kończące część I .......................................................................................... 66 Część II Funkcje ........................................................................ 67 Rozdział 3. Funkcje logiczne ............................................................................ 71 PRAWDA — TRUE ....................................................................................................... 71 FAŁSZ — FALSE ........................................................................................................... 72 NIE — NOT .................................................................................................................... 72 JEŻELI — IF ................................................................................................................... 75 ORAZ — AND ................................................................................................................ 76 LUB — OR ...................................................................................................................... 78 Rozdział 4. Funkcje daty i czasu ....................................................................... 83 CZAS — TIME ............................................................................................................... 85 CZAS.WARTOŚĆ — TIMEVALUE ............................................................................. 87 DATA — DATE ............................................................................................................. 88 DATA.RÓŻNICA — DATEDIF .................................................................................... 89 DATA.WARTOŚĆ — DATEVALUE ........................................................................... 91 DNI.360 — DAYS360 .................................................................................................... 92 DZIEŃ — DAY ............................................................................................................... 94 DZIEŃ.TYG — WEEKDAY .......................................................................................... 95 DZIŚ — TODAY ............................................................................................................ 97 EDATE ............................................................................................................................ 98 EOMONTH ................................................................................................................... 101 GODZINA — HOUR .................................................................................................... 102 MIESIĄC — MONTH .................................................................................................. 105 MINUTA — MINUTE .................................................................................................. 106 NETWORKDAYS ........................................................................................................ 107 ROK — YEAR .............................................................................................................. 109 SEKUNDA — SECOND .............................................................................................. 110 TERAZ — NOW ........................................................................................................... 111 WEEKNUM .................................................................................................................. 113 WORKDAY .................................................................................................................. 115 YEARFRAC .................................................................................................................. 116 Spis treści 7 Rozdział 5. Funkcje informacyjne ................................................................... 117 BRAK — NA ................................................................................................................ 117 CZY.ADR — ISREF ..................................................................................................... 119 CZY.BŁ — ISERR ........................................................................................................ 120 CZY.BŁĄD — ISERROR ............................................................................................ 122 CZY.BRAK — ISNA .................................................................................................... 123 CZY.LICZBA — ISNUMBER ..................................................................................... 124 CZY.LOGICZNA — ISLOGICAL ............................................................................... 126 CZY.NIE.TEKST — ISNONTEXT .............................................................................. 127 CZY.PUSTA — ISBLANK .......................................................................................... 128 CZY.TEKST — ISTEXT .............................................................................................. 129 INFO .............................................................................................................................. 131 ISEVEN ......................................................................................................................... 133 ISODD — ISODD ......................................................................................................... 134 KOMÓRKA — CELL ................................................................................................... 135 L — N ............................................................................................................................ 139 NR.BŁĘDU — ERROR.TYPE ..................................................................................... 140 TYP — TYPE ................................................................................................................ 141 Rozdział 6. Funkcje tekstowe ........................................................................ 143 ASC ............................................................................................................................... 143 BAHTTEXT .................................................................................................................. 144 DŁ — LEN .................................................................................................................... 145 FRAGMENT.TEKSTU — MID ................................................................................... 146 KOD — CODE .............................................................................................................. 148 KWOTA — DOLLAR .................................................................................................. 149 LEWY — LEFT ............................................................................................................ 150 LITERY.MAŁE — LOWER ........................................................................................ 151 LITERY.WIELKIE — UPPER ..................................................................................... 152 OCZYŚĆ — CLEAN .................................................................................................... 153 PODSTAW — SUBSTITUTE ...................................................................................... 153 PORÓWNAJ — EXACT .............................................................................................. 155 POWT — REPT ............................................................................................................ 156 PRAWY — RIGHT ....................................................................................................... 157 SZUKAJ.TEKST — SEARCH ..................................................................................... 157 T — T ............................................................................................................................ 159 TEKST — TEXT ........................................................................................................... 160 USUŃ.ZBĘDNE.ODSTĘPY — TRIM ......................................................................... 162 WARTOŚĆ — VALUE ................................................................................................ 163 Z.WIELKIEJ.LITERY — PROPER ............................................................................. 164 ZAOKR.DO.TEKST — FIXED ................................................................................... 164 ZASTĄP — REPLACE ................................................................................................ 166 ZŁĄCZ.TEKSTY — CONCATENATE ...................................................................... 168 ZNAJDŹ — FIND ......................................................................................................... 168 ZNAK — CHAR ........................................................................................................... 170 Rozdział 7. Funkcje wyszukiwania i adresu ..................................................... 171 ADR.POŚR — INDIRECT ........................................................................................... 171 ADRES — ADDRESS .................................................................................................. 174 HIPERŁĄCZE — HYPERLINK .................................................................................. 176 ILE.WIERSZY — ROWS ............................................................................................. 178 INDEKS — INDEX ...................................................................................................... 179 LICZBA.KOLUMN — COLUMNS ............................................................................. 182 8 Excel. Funkcje w przykładach NR.KOLUMNY — COLUMN ..................................................................................... 184 OBSZARY — AREAS ................................................................................................. 185 PODAJ.POZYCJĘ — MATCH .................................................................................... 185 PRZESUNIĘCIE — OFFSET ....................................................................................... 191 TRANSPONUJ — TRANSPOSE ................................................................................. 195 WIERSZ — ROW ......................................................................................................... 196 WYBIERZ — CHOOSE ............................................................................................... 197 WYSZUKAJ — LOOKUP ........................................................................................... 199 WYSZUKAJ.PIONOWO — VLOOKUP ..................................................................... 201 WYSZUKAJ.POZIOMO — HLOOKUP ..................................................................... 202 Rozdział 8. Funkcje matematyczne ................................................................. 205 ACOS — ACOS ............................................................................................................ 205 ACOSH — ACOSH ...................................................................................................... 206 ASIN — ASIN ............................................................................................................... 206 ASINH — ASINH ......................................................................................................... 207 ATAN — ATAN ........................................................................................................... 207 ATAN2 — ATAN2 ....................................................................................................... 207 ATANH — ATANH ..................................................................................................... 208 COS — COS .................................................................................................................. 209 COSH — COSH ............................................................................................................ 210 EXP — EXP .................................................................................................................. 211 FACTDOUBLE — FACTDOUBLE ............................................................................ 211 GCD — GCD ................................................................................................................ 212 ILOCZYN — PRODUKT ............................................................................................. 212 KOMBINACJE — COMBIN ....................................................................................... 213 LCM — LCM ................................................................................................................ 213 LICZBA.CAŁK — TRUNC ......................................................................................... 214 LN — LN ....................................................................................................................... 216 LOG — LOG ................................................................................................................. 217 LOG10 — LOG10 ......................................................................................................... 218 LOS — RAND .............................................................................................................. 218 MACIERZ.ILOCZYN — MMULT .............................................................................. 219 MACIERZ.ODW — MINVERSE ................................................................................ 220 MOD — MOD ............................................................................................................... 222 MODUŁ.LICZBY — ABS ........................................................................................... 226 MROUND — MROUND .............................................................................................. 227 MULTINOMIAL — MULTINOMIAL ........................................................................ 228 PI — PI .......................................................................................................................... 229 PIERWIASTEK — SQRT ............................................................................................ 233 POTĘGA — POWER ................................................................................................... 234 QUOTIENT — QUOTIENT ......................................................................................... 235 RADIANY — RADIANS ............................................................................................. 236 RANDBETWEEN — RANDBETWEEN .................................................................... 236 RZYMSKIE — ROMAN .............................................................................................. 238 SERIESSUM — SERIESSUM ..................................................................................... 239 SILNIA — FACT .......................................................................................................... 240 SIN — SIN .................................................................................................................... 240 SINH — SINH ............................................................................................................... 241 SQRTPI — SQRTPI ...................................................................................................... 241 STOPNIE — DEGREES ............................................................................................... 241 SUMA — SUM ............................................................................................................. 242 Spis treści 9 SUMA.ILOCZYNÓW — SUMPRODUCT ................................................................. 244 SUMA.JEŻELI — SUMIF ............................................................................................ 246 SUMA.KWADRATÓW — SUMSQ ............................................................................ 248 SUMA.X2.M.Y2 — SUMX2MY2 ............................................................................... 249 SUMA.X2.P.Y2 — SUMX2PY2 .................................................................................. 250 SUMA.XMY.2 — SUMXMY2 .................................................................................... 251 SUMY.POŚREDNIE — SUBTOTAL .......................................................................... 252 TAN — TAN ................................................................................................................. 260 TANH — TANH ........................................................................................................... 260 WYZNACZNIK.MACIERZY — MDETERM ............................................................ 261 ZAOKR — ROUND ..................................................................................................... 263 ZAOKR.DO.CAŁK — INT .......................................................................................... 264 ZAOKR.DO.NPARZ — ODD ...................................................................................... 265 ZAOKR.DO.PARZ — EVEN ....................................................................................... 265 ZAOKR.DÓŁ — ROUNDDOWN ................................................................................ 266 ZAOKR.GÓRA — ROUNDUP .................................................................................... 267 ZAOKR.W.DÓŁ — FLOOR ........................................................................................ 267 ZAOKR.W.GÓRĘ — CEILING ................................................................................... 268 ZNAK.LICZBY — SIGN ............................................................................................. 269 Rozdział 9. Funkcje bazy danych .................................................................... 273 Kryteria .......................................................................................................................... 274 Ogólne zasady tworzenia kryteriów ........................................................................ 274 Koniunkcja i alternatywa warunków ....................................................................... 275 Warunek w postaci formuły .................................................................................... 278 Równa się czy zaczyna się od? ............................................................................... 279 Znaki globalne ......................................................................................................... 280 BD.ILE.REKORDÓW — DCOUNT ............................................................................ 281 BD.ILE.REKORDÓW.A — DCOUNTA ..................................................................... 282 BD.ILOCZYN — DPRODUCT .................................................................................... 284 BD.MAX — DMAX ..................................................................................................... 286 BD.MIN — DMIN ........................................................................................................ 287 BD.ODCH.STANDARD — DSTDEV ......................................................................... 288 BD.ODCH.STANDARD.POPUL — DSTDEVP ......................................................... 289 BD.POLE — DGET ...................................................................................................... 289 BD.SUMA — DSUM .................................................................................................... 290 BD.ŚREDNIA — DAVERAGE ................................................................................... 291 BD.WARIANCJA — DVAR ........................................................................................ 293 BD.WARIANCJA.POPUL — DVARP ........................................................................ 294 Rozdział 10. Funkcje statystyczne .................................................................... 295 CZĘSTOŚĆ — FREQUENCY ..................................................................................... 296 ILE.LICZB — COUNT ................................................................................................. 299 ILE.NIEPUSTYCH — COUNTA ................................................................................ 301 KOWARIANCJA — COVAR ...................................................................................... 303 KURTOZA — KURT ................................................................................................... 306 KWARTYL — QUARTILE ......................................................................................... 307 LICZ.JEŻELI — COUNTIF ......................................................................................... 308 LICZ.PUSTE — COUNTBLANK ................................................................................ 312 MAX — MAX ............................................................................................................... 313 MAX.A — MAXA ........................................................................................................ 315 MAX.K — LARGE ....................................................................................................... 315 10 Excel. Funkcje w przykładach MEDIANA — MEDIAN .............................................................................................. 317 MIN — MIN .................................................................................................................. 319 MIN.A — MINA ........................................................................................................... 320 MIN.K — SMALL ........................................................................................................ 320 NACHYLENIE — SLOPE ........................................................................................... 322 NORMALIZUJ — STANDARDIZE ............................................................................ 323 ODCH.KWADRATOWE — DEVSQ .......................................................................... 326 ODCH.STANDARD.POPUL — STDEVP .................................................................. 327 ODCH.STANDARD.POPUL.A — STDEVPA ............................................................ 328 ODCH.STANDARDOWE — STDEV ......................................................................... 329 ODCH.STANDARDOWE.A — STDEVA .................................................................. 330 ODCH.ŚREDNIE — AVEDEV .................................................................................... 330 ODCIĘTA — INTERCEPT .......................................................................................... 331 PEARSON — PEARSON ............................................................................................. 332 PERCENTYL — PERCENTILE .................................................................................. 333 Trochę teorii ............................................................................................................ 334 PERMUTACJE — PERMUT ....................................................................................... 335 Trochę teorii ............................................................................................................ 336 POZYCJA — RANK .................................................................................................... 338 PRAWDP — PROB ...................................................................................................... 340 PROCENT.POZYCJA — PERCENTRANK ............................................................... 341 PRÓG.ROZKŁAD.DWUM — CRITBINOM .............................................................. 343 R.KWADRAT — RSQ ................................................................................................. 344 Informacje ogólne o regresji. Funkcje regresji nieliniowej ........................................... 345 REGLINP — LINEST ................................................................................................... 345 REGLINW — TREND ................................................................................................. 347 REGLINX — FORECAST ........................................................................................... 349 ROZKŁAD.NORMALNY — NORMDIST ................................................................. 353 SKOŚNOŚĆ — SKEW ................................................................................................. 356 ŚREDNIA — AVERAGE ............................................................................................. 359 ŚREDNIA.A — AVERAGEA ...................................................................................... 360 ŚREDNIA.GEOMETRYCZNA — GEOMEAN .......................................................... 360 ŚREDNIA.HARMONICZNA — HARMEAN ............................................................. 361 ŚREDNIA.WEWN — TRIMMEAN ............................................................................ 363 TEST.CHI — CHITEST ............................................................................................... 363 TEST.F — FTEST ......................................................................................................... 364 TEST.T — TTEST ........................................................................................................ 364 TEST.Z — ZTEST ........................................................................................................ 365 UFNOŚĆ — CONFIDENCE ........................................................................................ 365 WARIANCJA — VAR ................................................................................................. 366 WARIANCJA.A — VARA .......................................................................................... 366 WARIANCJA.POPUL — VARP ................................................................................. 367 WARIANCJA.POPUL.A — VARPA ........................................................................... 367 WSP.KORELACJI — CORREL .................................................................................. 368 WYST.NAJCZĘŚCIEJ — MODE ................................................................................ 369 Rozdział 11. Funkcje finansowe ....................................................................... 371 Wbudowane funkcje finansowe ..................................................................................... 372 DB ........................................................................................................................... 372 DDB ........................................................................................................................ 374 FV ............................................................................................................................ 374 IPMT ....................................................................................................................... 376 IRR .......................................................................................................................... 378 Spis treści 11 ISPMT ..................................................................................................................... 379 MIRR ....................................................................................................................... 380 NPER ....................................................................................................................... 381 NPV ......................................................................................................................... 382 PMT ......................................................................................................................... 384 PPMT ...................................................................................................................... 385 PV ............................................................................................................................ 385 RATE ...................................................................................................................... 386 SLN ......................................................................................................................... 388 SYD ......................................................................................................................... 389 VDB ........................................................................................................................ 389 Funkcje finansowe z pakietu ATP ................................................................................. 390 Rozdział 12. Funkcje inżynierskie ..................................................................... 395 Skorowidz .................................................................................... 399 Rozdział 6. Funkcje tekstowe Funkcje tekstowe służą w zasadzie do działań na tekstach, ale Excel jest tu tolerancyjny i często argumentami mogą być także liczby. Przekonamy się o tym, analizując podane w tym rozdziale przykłady. Dzięki funkcjom tekstowym można łatwo między innymi: wyszukiwać w tekście wybrane znaki, zamieniać je na inne, pozbywać się zbędnych spacji lub zamieniać małe litery na wielkie bądź odwrotnie. Nie wszystkie funkcje działające na tekstach lub tekstów dotyczące zostały włączone do tej kategorii. Na przykład, opisana w poprzednim rozdziale, funkcja CZY.TEKST została zaliczona do funkcji informacyjnych. Również w innych kategoriach znajdują się funkcje działające na tekstach, lecz o nich, zgodnie z porządkiem tej książki, będzie mowa w innych rozdziałach. Podstawowe funkcje tekstowe obsługują teksty, w których znaki są pojedynczymi bajtami. Funkcje te mają swoje odpowiedniki przeznaczone do obsługi tekstów pisanych znakami dwubajtowymi (znakami pełnej szerokości), co ma miejsce w takich językach jak tajski. Ich nazwy są rozszerzone o kropkę oddzielającą i literę B. Na przykład odpowiednikiem funkcji DŁ jest funkcja DŁ.B. Pierwsza zwraca liczbę znaków jednobajtowych w tekście, a druga liczbę bajtów w tekstach zapisanych znakami dwubajtowymi. Ponieważ przydatność funkcji obsługujących teksty zapisane znakami dwubajtowymi jest w Polsce niewielka, nie będę ich opisywał. Opiszę jedynie kilka funkcji napisanych specjalnie dla języków ze znakami dwubajtowymi i nie mających odpowiedników obsługujących zwykłe teksty. Przykładem takiej funkcji jest np. BAHTTEXT. ASC Funkcja wbudowana, dostępna w VBA. W językach z dwubajtowym zestawem znaków (DBCS) zmienia znaki o pełnej szerokości (dwubajtowe) na znaki o połówkowej szerokości (jednobajtowe). Część II ♦ Funkcje 144 Składnia: tekst — to tekst lub odwołanie do komórki zawierającej tekst. Tekst jest zmieniany tylko wtedy, gdy zawiera znaki dwubajtowe — patrz rysunek 6.1 W przykładzie podanym w systemie pomocy Excel, słowo „EXCEL”, nie zawierające znaków dwubajtowych, nie zostało zmienione. Rysunek 6.1. Działanie funkcji ASC W VBA istnieje funkcja Asc zwracająca kod ASCII pierwszego znaku tekstu. Funkcja VBA jest używana przez bezpośrednie użycie w procedurze; wywołanie arkuszowej funkcji ASC musi być zgodne z metodą wywoływania funkcji arkuszowych, opisaną we wstępie do części II. BAHTTEXT Funkcja wbudowana, dostępna w VBA. Zamienia liczbę na tekst w języku tajskim, dodaje przyrostek „Baht”. Składnia: liczba — to liczba lub odwołanie do komórki zawierającej liczbę, co pokazuje przykład z systemu pomocy Excela pokazany na rysunku 6.2. Rysunek 6.2. Działanie funkcji BAHTTEXT Ciekawe, że odpowiedniej funkcji nie ma dla żadnego innego języka, nawet dla angielskiego. John Walkenbach, jeden z najlepszych znawców Excela, przypuszcza, że w grupie programistów tworzących ten program jest wielu miłośników kuchni tajskiej, którzy w ten sposób wyrazili swą wdzięczność. Rozdział 6. ♦ Funkcje tekstowe 145 DŁ — LEN Funkcja wbudowana, niedostępna w VBA. Oblicza liczbę znaków ciągu tekstowego. Składnia: tekst — tekst lub odwołanie do komórki zawierającej tekst. Przykład 6.1. Wyróżnianie zbędnych spacji Plagą wielu list, zwłaszcza otrzymywanych ze źródeł zewnętrznych, są dodatkowe spacje; utrudniają np. sortowanie i grupowanie wyników, tworzenie sum pośrednich itd., bowiem dla Excela Jan Kowalski z jedną spacją między imieniem i nazwiskiem to całkiem inna osoba niż Jan Kowalski z dwiema spacjami. Najtrudniejsze do wyszukania są komórki zawierające dodatkowe spacje na końcu tekstu, gdyż takich spacji nie widzimy przy przeglądaniu arkusza (np. w komórce A5 na rysunku 6.3)1. Ale wyszukanie nawet widocznych spacji nadmiarowych nie jest możliwe, jeżeli danych są tysiące. Należy pamiętać, że programy baz danych nie tolerują takich niedokładności i przed eksportem przygotowanej listy do pliku, który ma być czytany przez inne oprogramowanie, należy dane bezwzględnie oczyścić ze wszystkich śmieci, w tym z dodatkowych spacji. Łatwiej to zrobić, jeżeli komórki z dodatkowymi spacjami wyróżnimy za pomocą formatowania warunkowego, tak jak na rysunku 6.3. Rysunek 6.3. Użycie formatowania warunkowego pozwala wyróżnić komórki, w których tekst zawiera dodatkowe spacje 1 Excel takie końcowe spacje traktuje dość tolerancyjnie i pomija np. przy automatycznym tworzeniu sum pośrednich, ale dla spacji w środku tekstu nie jest wyrozumiały. Część II ♦ Funkcje 146 Zauważ, że w formule warunku formatowania zostały użyte adresy względne. W komórce A5 tekst Anna Giza został wyróżniony z powodu dodatkowej spacji na końcu, widocznej po ustawieniu kursora po przejściu do edycji zawartości komórki. Tekst jest wyróżniany, jeżeli jego długość po usunięciu zbędnych spacji (w wyniku działania funkcji USUŃ.ZBĘDNE.ODSTĘPY) jest różna od pierwotnej. FRAGMENT.TEKSTU — MID Funkcja wbudowana, niedostępna w VBA. Zwraca fragment ciągu tekstowego — określoną liczbę znaków, począwszy od podanej pozycji. Składnia: tekst — tekst lub odwołanie do komórki z tekstem zawierającym znaki, które należy wyodrębnić. Excel zezwala tu na użycie liczby jako pierwszego argumentu funkcji, ale zawsze uwzględnia jedynie jej rzeczywistą wartość, a nie postać wynikającą z formatowania (patrz rysunek 6.4). Rysunek 6.4. Funkcja FRAGMENT.TEKSTU zawsze używa rzeczywistej wartości liczby, nie uwzględniając formatowania liczba_początkowa — określa pozycję pierwszego znaku, który należy wyodrębnić (numeracja rozpoczyna się od 1). liczba_znaków — liczba znaków, które należy wyodrębnić. Jeżeli: funkcja zwraca liczba_początkowa jest > od długości tekstu wartość "" (tekst pusty) liczba_początkowa jest < od długości tekstu, ale liczba_początkowa plus liczba_znaków jest ≥ od długości tekstu znaki do końca tekstu liczba_początkowa jest < niż 1 wartość błędu #ARG! liczba_znaków jest < 0 wartość błędu #ARG! Przykład 6.2. Wybieranie cyfr z liczby Jako pierwszego argumentu funkcji FRAGMENT.TEKSTU można użyć liczby lub odwołania do komórki zawierającej liczbę, jednakże otrzymany wówczas wynik może czasem zdziwić niedoświadczonego użytkownika Excela. Przykład został pokazany na rysunku 6.4. Rozdział 6. ♦ Funkcje tekstowe 147 W obu komórkach B1 i B2 jest zapisana ta sama liczba, którą w komórce B2 pozostawiono w formacie ogólnym, zaś w komórce B1 nadano jej format daty. Widać, że funkcja FRAGMENT.TEKSTU tego nie uwzględnia, zwracając w obu przypadkach ciąg tekstowy (zauważ wyrównanie do lewej) złożony z 4. i 5. cyfry pobranej z zapisu ogólnego. Przykład 6.3. Konwersja nietypowego formatu daty Często Excela używamy do obróbki danych otrzymywanych z zewnętrznych źródeł, np. z systemów komputerowych typu mainframe. Daty w takich plikach mogą być zapisane w różnych formatach niezrozumiałych dla Excela, co wymusza stosowanie konwersji. Przykładem mogą być: data i czas zapisane w formacie rrrrdddggmm, gdzie rrrr oznacza rok, ddd kolejny dzień roku od 001 do 366, a gg i mm odpowiednio godziny i minuty w formacie 24-godzinnym. Rysunek 6.5 pokazuje sposób poradzenia sobie z tym problemem. Rysunek 6.5. Użycie funkcji FRAGMENT.TEKSTU do konwersji daty i czasu zapisanych w niestandardowym formacie Jak widać na rysunku 6.5, całkowita formuła konwersji ma w komórce B2 postać: =DATA(LEWY(A2;4);1;1) +FRAGMENT.TEKSTU(A2;5;3) +CZAS(FRAGMENT.TEKSTU(A2;8;2);PRAWY(A2;2);0) gdzie: LEWY(A2;4) pobiera cztery pierwsze cyfry (1999), co DATA(LEWY(A2;4);1;1) zamienia na 36161, czyli numer kolejny daty 1 stycznia 1999 roku; FRAGMENT.TEKSTU(A2;5;3) wycina z liczby zapisanej w A2 trzy kolejne cyfry, począwszy od piątej, tworząc tekst "245"; dzięki „domyślności” Excela dodanie liczby i tekstu 36161+"245" daje liczbę 36 406; FRAGMENT.TEKSTU(A2;8;2) daje tekst "01" złożony z 8. i 9. cyfry, a PRAWY(A2;2) tekst "12" złożony z cyfr 10. i 11., zaś CZAS("01";"12";0)=CZAS(1;12;0) daje kolejną liczbę czasu 0,05; 36 406+0,05=36 406,05 to kolejna liczba daty i czasu, która przez nadanie formatu dd-mm-rrrr gg:mm jest widoczna w postaci 03-09-1999 01:12, podając w zrozumiały sposób datę i godzinę. Część II ♦ Funkcje 148 KOD — CODE Funkcja wbudowana, niedostępna w VBA. Zwraca kod numeryczny pierwszego znaku ciągu tekstowego. Składnia: tekst — tekst lub odwołanie do komórki zawierającej tekst. Przykład 6.4. Użycie funkcji KOD do sprawdzania poprawności wpisywanych danych Często dane wpisywane do tabeli muszą spełniać określone warunki, być liczbami z odpowiedniego zakresu albo określonymi ciągami znaków. Załóżmy, że tworzymy tabelę: w pierwszej kolumnie znajduje się nazwa towaru, a w drugiej jej trzyznakowy kod, rozpoczynający się od cyfry 5, z wielką literą na drugim miejscu (bez liter polskich) i dowolną cyfrą na trzecim (np. 5A3 jest kodem prawidłowym, zaś 5ac, 6A3 i 5A33 nie spełniają założeń). Należy zabezpieczyć się przed wpisywaniem błędnych kodów, co zrobimy za pomocą wbudowanej w Excela procedury sprawdzania poprawności. Funkcji KOD użyjemy do sprawdzenia, czy na drugim miejscu w ciągu znakowym znajduje się wielka litera. Dozwolone litery to A, B…Z. Ich kody to odpowiednio: 65, 66…90 — łatwo to sprawdzić, wpisując np. do B1 formułę =KOD(A1), a następnie do A1 litery, których kod chcemy odczytać. Polskie litery Ą, Ć itd. mają kody spoza tego zakresu i ich uwzględnienie wymagałoby rozbudowania, a więc wydłużenia formuły, a przy tym nie wniosłoby nic w istotę rozumienia działania funkcji KOD. 1. Zaznacz zakres, który ma być objęty sprawdzaniem — na rysunku 6.6 został on wyróżniony innym kolorem — i wydaj polecenie Dane/Sprawdzanie poprawności. Rysunek 6.6. Wpisywanie formuły sprawdzania poprawności kodu wpisywanego do kolumny B Rozdział 6. ♦ Funkcje tekstowe 149 2. Na karcie Ustawienia wybierz Dozwolone/Niestandardowe, a w polu Formuła wpisz formułę: =ORAZ( DŁ(B2)=3; LEWY(B2;1)="5"; KOD(FRAGMENT.TEKSTU(B2;2;1))>64;KOD(FRAGMENT.TEKSTU(B2;2;1))<91; CZY.LICZBA(WARTOŚĆ(FRAGMENT.TEKSTU(B2;3;1))) ) 3. Na kartach Komunikat wejściowy i Alert o błędzie możesz dodatkowo wpisać komunikaty objaśniające, np. takie jak na rysunku 6.7. Rysunek 6.7. Próba wpisania błędnego kodu została oprotestowana Elementy formuły sprawdzające poszczególne znaki kodu zostały w punkcie 2. zapisane w oddzielnych wierszach, aby ułatwić zrozumienie ich działania. Każdy pojedynczy element formuły jest prosty, więc pomijam szczegółowe objaśnienia. KWOTA — DOLLAR Funkcja wbudowana, dostępna w VBA. Zmienia liczbę na tekst i dodaje symbol waluty, przy czym następuje zaokrąglenie do liczby miejsc dziesiętnych zgodnie z drugim argumentem funkcji. Stosowany format to # ##0,00 zł. Składnia: liczba — liczba lub odwołanie do komórki zawierającej liczbę (ew. formułę zwracającą liczbę), miejsca_dziesiętne — liczba cyfr po przecinku dziesiętnym; pominięcie oznacza wartość 2. Dopuszczalne jest podawanie wartości ujemnych, których znaczenie pokazuje rysunek 6.8. Część II ♦ Funkcje 150 Rysunek 6.8. Zaokrąglenia sterowane drugim argumentem funkcji KWOTA są wykonywane zgodnie z zasadami arytmetyki Należy zwrócić uwagę na różnicę między działaniem funkcji KWOTA a nadawaniem liczbie formatu walutowego. Liczba, której nadano format walutowy, pozostaje liczbą (na rysunku 6.8 w komórce A7 — wyrównanie do prawej), zaś funkcja KWOTA zamienia liczbę na tekst (w komórkach A2:A6 — wyrównanie do lewej). Przykład 6.5. Łączenie kwot walutowych z tekstem Często musimy drukować rożnego rodzaju zestawienia, w których tekst łączymy z sumami pieniężnymi. Nadanie liczbie formatu walutowego zmienia jedynie sposób jej wyświetlania, pozostawiając samą liczbę bez zmiany. Dlatego po połączeniu z tekstem znak waluty nie jest widoczny, jak w komórce C2 w górnej części rysunku 6.9. Potrzebne jest dołączenie dodatkowego członu tekstowego " zł", jak w komórce C3 na tym samym rysunku (formuły użyte w komórkach C2 i C3 są pokazane obok w kolumnie E). Rysunek 6.9. Porównanie rysunków górnego i dolnego pokazuje, że funkcja KWOTA ułatwia łączenie tekstu z sumami pieniężnymi Dołączania dodatkowego członu, złożonego ze spacji i symbolu waluty, można uniknąć, jeżeli użyjemy funkcji KWOTA, jak w dolnej części rysunku 6.9 w komórkach C2 i C3 (użyta formuła jest widoczna w komórce E2). LEWY — LEFT Funkcja wbudowana, niedostępna w VBA. Zwraca pierwszy znak lub pierwsze znaki ciągu tekstowego. Składnia: tekst — tekst (ciąg tekstowy lub odwołanie do komórki zawierającej ciąg tekstowy) zawierający znaki, które należy wyodrębnić. Rozdział 6. ♦ Funkcje tekstowe 151 liczba_znaków — określa, ile znaków ma zwrócić funkcja LEWY. Liczba ta musi być większa lub równa zeru. Jeśli liczba_znaków jest większa niż długość tekstu, wynikiem funkcji LEWY jest cały tekst. Pominięcie argumentu liczba_znaków jest równoznaczne z podaniem wartości 1. Możliwości użycia funkcji LEWY zostały zaprezentowane w przykładach 6.3, 6.4, 6.6, 6.7 i 6.26. Jest często stosowana razem z funkcjami FRAGMENT.TEKSTU i ZNAJDŹ. LITERY.MAŁE — LOWER Funkcja wbudowana, niedostępna w VBA. Zmienia w tekście litery wielkie na małe. Innych znaków nie zmienia. Składnia: tekst — tekst (ciąg tekstowy lub odwołanie do komórki zawierającej ciąg tekstowy). Przykład 6.6. Tworzenie inicjałów pisanych małymi literami Excel jest często używany jako narzędzie przygotowywania danych eksportowanych później do baz danych, systemów księgowych itd. Niektóre takie systemy odróżniają litery wielkie i małe i dla nich Kowalski i kowalski to dwie różne osoby, a e1JK i e1jk to różne symbole. Dlatego w danych eksportowanych używanie liter wielkich bądź małych powinno być ściśle kontrolowane. Na podstawie listy pracowników i działów, w których pracują, należy utworzyć kody pracowników. Każdy kod ma być pisany małymi literami i składać się z dwuznakowego oznaczenia działu, pierwszej litery imienia i trzech pierwszych liter nazwiska. Rozwiązanie zostało pokazane na rysunku 6.10. Rysunek 6.10. Tworzenie kodów pracowniczych pisanych małymi literami Działanie formuły pokazanej na pasku edycji na rysunku 6.10 jest tak proste, że nie będę go objaśniał. Część II ♦ Funkcje 152 W kodach użyto trzech liter nazwiska, aby uniknąć powtarzania się kodów. Używanie jedynie pierwszych liter imienia i nazwiska zwykle prowadzi do konfliktów, gdyż często w jednej firmie, a nawet w jednym dziale pracują osoby, mające te same inicjały, np. Jan Kowalski i Joanna Kącka. LITERY.WIELKIE — UPPER Funkcja wbudowana, niedostępna w VBA. Zmienia w tekście litery małe na wielkie. Innych znaków nie zmienia. Składnia: tekst — tekst (ciąg tekstowy lub odwołanie do komórki zawierającej ciąg tekstowy). Przykład 6.7. Sprawdzanie wprowadzonych danych. Modyfikacja przykładu 6.4 W przykładzie 6.4 tworzyliśmy tabelę, której pierwsza kolumna zawierała nazwę towaru, a drugiej — jej trzyznakowy kod, rozpoczynający się od cyfry 5, z wielką literą na drugim miejscu (bez polskich liter) i dowolną cyfrą na trzecim (np. 5A3 jest kodem prawidłowym, zaś 5ac, 6A3 i 5A33 nie spełniają założeń). Teraz chcemy zezwolić, aby drugim znakiem kodu była po prostu litera, obojętnie, czy wielka, czy mała. Wymaga to zmiany formuły sprawdzającej dane na następującą: =ORAZ( DŁ(B2)=3;LEWY(B2;1)="5"; KOD(LITERY.WIELKIE(FRAGMENT.TEKSTU(B2;2;1)))>64;KOD(LITERY.WIELKIE (FRAGMENT.TEKSTU(B2;2;1)))<91; CZY.LICZBA(WARTOŚĆ(FRAGMENT.TEKSTU(B2;3;1))) ) Formuła FRAGMENT.TEKSTU(B2;2;1) „wykroi” z komórki drugi wpisany znak. Może to być litera mała lub jakiś inny znak (w tym litera wielka). W pierwszym przypadku funkcja LITERY.WIELKIE zamieni małą literę na wielką, w drugim nie nastąpi żadna zmiana. Kody liter wielkich należą do przedziału od 65 (kod A) do 90 (kod Z), więc sprawdzenie, czy kod znaku zwróconego przez funkcję LITERY.WIELKIE jest > 64 oraz < 91, jest równoznaczne ze sprawdzeniem, czy znakiem wpisanym na drugim miejscu jest litera (niezależnie od tego, czy jest mała, czy wielka). Oczywiście, jak zwykle w Excelu, ta formuła mogła być napisana w inny sposób, ale to pozostawiam domyślności czytelników. Rozdział 6. ♦ Funkcje tekstowe 153 OCZYŚĆ — CLEAN Funkcja wbudowana, dostępna w VBA. Usuwa z tekstu wszystkie znaki niedrukowane. Składnia: tekst — tekst (ciąg tekstowy lub odwołanie do komórki zawierającej ciąg tekstowy). Przykład 6.8. Oczyszczanie importowanych danych W danych importowanych ze źródeł zewnętrznych, np. z systemów mainframe lub z Internetu, trafiają się znaki niedrukowalne (nierozpoznawalne), np. znaki o kodach z zakresu 1 – 31 oraz 129, 141, 143, 144 i 157. Często kilka takich różnych znaków Excel wyświetla w arkuszu tak samo — np. znaki o kodach 11 i 129 są pokazywane jako kwadraciki, widoczne na rysunku 6.11. Rysunek 6.11. Funkcja OCZYŚĆ usuwa znaki o „złych” kodach, tworząc zbitki, czasem wymagające rozdzielenia, jak na prawej części tego rysunku PODSTAW — SUBSTITUTE Funkcja wbudowana, dostępna w VBA. Zamienia w ciągu tekstowym stary_tekst na nowy_tekst. Składnia: tekst — tekst (ciąg tekstowy lub odwołanie do komórki zawierającej ciąg tekstowy), stary_tekst — to tekst lub odwołanie do komórki zawierającej tekst, którego część znaków należy zastąpić, nowy_tekst — to tekst, który ma zastąpić stary_tekst, Część II ♦ Funkcje 154 wystapienie_liczba — jeżeli stary_tekst występuje w tekst kilkakrotnie, wystapienie_liczba określa, przy którym wystąpieniu dojdzie do zamiany. Jeżeli ten argument jest pominięty, każdy znaleziony stary_tekst zostanie zamieniony na nowy_tekst. Funkcji PODSTAW należy używać, gdy określony ciąg znaków ma być zamieniony na inny, np. formuła =PODSTAW("mama";"m";"t") zamienia m na t i daje tekst tata, przy czym miejsce wystąpienia m nie ma znaczenia. Funkcja ZASTĄP służy do zamiany na inny dowolnego tekstu występującego w określonym miejscu ciągu tekstowego, np. formuła =ZASTĄP("mama";3;2;"terac") dwa znaki tekstu, zaczynając od trzeciego, zamienia na nowy tekst terac, przy czym istotne jest miejsce rozpoczęcia zmiany i liczba zmienianych znaków, a nie ma znaczenia to, jakie to są znaki. Przykład 6.9. Zliczanie wystąpień wybranego znaku Czasami chcemy sprawdzić, ilokrotnie wybrany znak występuje w tekście zapisanym w komórce. Rysunek 6.12 przedstawia rozwiązanie. Rysunek 6.12. Zliczanie wystąpień liter w tekście Funkcja PODSTAW zamienia wybrany znak na tekst pusty, czyli praktycznie go usuwa i zwraca tekst skrócony o tyle, ile wystąpień danego znaku zostało znalezionych. Odjęcie długości tekstu skróconego od długości tekstu pełnego informuje, ile razy dany znak został w tekście znaleziony. Ponieważ funkcja podstaw odróżnia litery wielkie i małe, formuła w komórce A2 zliczyła jedynie wystąpienia wielkiej litery Z, a formuła w A3 jedynie wystąpienia małej litery z. W zmienionej formule w komórce A4 =DŁ($A$1)-DŁ(PODSTAW(LITERY.WIELKIE($A$1);"Z";"")) najpierw funkcja LITERY.WIELKIE zamienia wszystkie litery na wielkie, po czym wyszukuje w tekście wielką literę Z. W tak zmienionym tekście wielkie litery Z są zamieniane na pusty tekst. Różnica długości tekstu pierwotnego i skróconego odpowiada liczbie znalezionych liter z (razem wielkich i małych). Formuła w A5 działa analogicznie; również zlicza wszystkie litery z (wielkie i małe), dokonując przed podstawieniem tekstu pustego zamiany wszystkich liter na małe. Rozdział 6. ♦ Funkcje tekstowe 155 PORÓWNAJ — EXACT Funkcja wbudowana, niedostępna w VBA. Porównuje dwa teksty i zwraca wartość PRAWDA, jeśli są takie same, lub FAŁSZ, gdy są różne. Uwzględnia wielkość liter, ale ignoruje różnice w formatowaniu (patrz rysunek 6.13). Rysunek 6.13. Porównanie bezpośrednie komórek a użycie funkcji PORÓWNAJ Składnia: tekst1, tekst2 — porównywane teksty lub odwołania do komórek zawierających teksty (ciągi tekstowe). Przykład 6.10. Zliczanie tekstów pisanych małymi (wielkimi literami) W kolumnie A mamy zapisane kody jakichś operacji. Są to ciągi tekstowe złożone z liter i cyfr. W kodach operacji przedpołudniowych użyto liter małych, a w kodach operacji popołudniowych — liter wielkich. Naszym zadaniem jest policzenie operacji przedpołudniowych i popołudniowych. Rozwiązanie zostało pokazane na rysunku 6.14. Rysunek 6.14. Użycie funkcji PORÓWNAJ do zliczania tekstów pisanych małymi bądź wielkimi literami Formuła użyta w kolumnie B (pokazana na rysunku 6.14 na pasku edycji) =JEŻELI(PORÓWNAJ(LITERY.MAŁE(A2);A2);1;0) daje 1, gdy wszystkie litery występujące w tekście są małe. Jeżeli w tekście w komórce A2: nie ma liter wielkich, oba teksty LITERY.MAŁE(A2) i A2 będą identyczne, więc formuła PORÓWNAJ(LITERY.MAŁE(A2);A2) zwróci wartość PRAWDA — wówczas funkcja JEŻELI zwróci wartość drugiego argumentu, czyli 1; Część II ♦ Funkcje 156 są litery wielkie, to teksty LITERY.MAŁE(A2) i A2 będą różne i formuła PORÓWNAJ(LITERY.MAŁE(A2);A2) zwróci wartość FAŁSZ, a funkcja JEŻELI wartość trzeciego argumentu, czyli 0. W analogiczny sposób można przeanalizować działanie formuły =JEŻELI(PORÓWNAJ(LITERY.WIELKIE(A2);A2);1;0) użytej w kolumnie C do zliczania tekstów zapisanych wielkimi literami. POWT — REPT Funkcja wbudowana, dostępna w VBA. Tworzy ciąg tekstowy, powtarzając podany tekst określoną liczbę razy. Składnia: tekst — tekst, który ma być powtarzany, ile_razy — liczba dodatnia określająca liczbę powtórzeń tekstu. Jeśli argument ile_razy ma wartość 0, funkcja POWT zwraca "" (pusty tekst), nie jest liczbą całkowitą, jest do takiej liczby obcinany2. Wynik funkcji POWT nie może być dłuższy niż 32 767 znaków. W przeciwnym wypadku funkcja zwróci wartość błędu #ARG!. Przykład 6.11. Tworzenie prostego histogramu Funkcji POWT można użyć do prostej graficznej prezentacji danych, co zostało pokazane na rysunku 6.15. Rysunek 6.15. Użycie funkcji POWT do prostej graficznej prezentacji danych 2 Obcinany, a nie zaokrąglany zgodnie z regułami arytmetyki, np. ile_razy = 3,7 spowoduje trzykrotne powtórzenie tekstu (przy zaokrągleniu byłyby to 4 powtórzenia). Rozdział 6. ♦ Funkcje tekstowe 157 PRAWY — RIGHT Funkcja wbudowana, niedostępna w VBA. Zwraca ostatni znak lub znaki wyodrębnione z ciągu tekstowego. Składnia: tekst — ciąg tekstowy lub odwołanie do komórki zawierającej ciąg tekstowy, zawierający znaki, które mają być wyodrębnione. liczba_znaków — liczba znaków, jakie ma zwrócić funkcja PRAWY. Argument liczba_znaków musi być większy lub równy zeru. Argument opcjonalny domyślnie równy 1. Jeśli argument liczba_znaków jest większy od długości tekstu, to funkcja PRAWY zwraca cały tekst. O zastosowaniu funkcji PRAWY była już mowa w przykładzie 4.3. SZUKAJ.TEKST — SEARCH Funkcja wbudowana, dostępna w VBA. Zwraca pozycję (numer znaku, licząc od lewej), na której po raz pierwszy szukany znak lub ciąg znakowy (szukany_tekst) wystąpił w tekście przeszukiwanym (obejmujący_tekst). Od funkcji ZNAJDŹ różni się nieodróżnianiem liczb wielkich i małych oraz dopuszczeniem do stosowania znaków zastępczych. Składnia: szukany_tekst — tekst, którego szukamy, lub odwołanie do komórki zawierającej tekst szukany, obejmujący_tekst — tekst (odwołanie do komórki zawierającej tekst), w którym szukany_tekst jest szukany, liczba_początkowa — numer znaku w argumencie obejmujący_tekst, od którego ma się zacząć przeszukiwanie. Pominiecie oznacza użycie domyślnej wartości 1. Część II ♦ Funkcje 158 Należy pamiętać, że funkcja SZUKAJ.TEKST: 1. Przeszukuje tekst, nie odróżniając liter wielkich od małych. 2. Pozwala na stosowanie w argumencie szukany_tekst znaków zastępczych: znaku zapytania (?) i gwiazdki (*). Znak zapytania zastępuje dowolny pojedynczy znak, a gwiazdka dowolną sekwencję znaków. Aby znaleźć rzeczywisty znak zastępczy, należy przed nim wpisać znak tyldy (~). 3. Zwraca błąd #ARG!, jeżeli argument szukany_tekst nie zostanie znaleziony. 4. Zwraca błąd #ARG!, jeśli argument liczba_początkowa nie jest większy niż 0 lub jest większy niż długość argumentu obejmujący_tekst. 5. Przy szukaniu tekstu pustego ("") w: dowolnym tekście niepustym zwraca wartość 1, tekście pustym — zwraca błąd #ARG!. Przykład 6.12. Wyróżnianie komórek zawierających szukany tekst Mając długą listę nazw miejscowości lub towarów, tytułów filmów lub książek itp., często chcemy szybko wyróżnić komórki zawierające jakiś fragment tekstu. Wystarczy użyć odpowiedniego formatowania warunkowego, co zostało pokazane na rysunku 6.16. Rysunek 6.16. Mechanizm wyróżniania komórek zawierających poszukiwany tekst — tekst „ar” jest zawarty w nazwach Warszawa i Karpacz. Komórki zawierające te nazwy zostały wyróżnione Po zaznaczeniu formatowanego zakresu (przeciągając myszą od A1 w dół, aby A1 było komórką bieżącą)3, czyli tego, w którym potem ma być wyszukiwany tekst, wydaj polecenie Format/Formatowanie warunkowe i w polu Warunek 1 wybierz opcję Formuła jest. W polu tego warunku wpisz formułę: =ORAZ(NIE(CZY.BŁĄD(SZUKAJ.TEKST($C$1;A1)));$C$1<>"") Komórką, w której wpisujemy szukany tekst, jest C1. Formuła włączająca formatowanie warunkowe musi spełniać dwa warunki: 3 Przy innym zaznaczeniu tego zakresu lub zaznaczeniu w ogóle innego zakresu musisz podany tu adres A1 odpowiednio zmodyfikować. Rozdział 6. ♦ Funkcje tekstowe zwracać wartość PRAWDA, gdy tekst w komórce formatowanej warunkowo zawiera tekst wpisany do C1 — co jest sprawdzane przez pierwszy argument funkcji ORAZ: NIE(CZY.BŁĄD(SZUKAJ.TEKST($C$1;A1))), zwracać wartość FAŁSZ (niezależnie od zawartości komórki formatowanej warunkowo), jeżeli komórka C1 jest pusta, co jest sprawdzane przez drugi argument funkcji ORAZ: $C$1<>"". Jeżeli komórka C1: jest pusta, warunek $C$1<>"" nie jest spełniony i zwraca wartość FAŁSZ — wówczas niezależnie od wartości pierwszego argumentu funkcja ORAZ zwraca wartość FAŁSZ i formatowanie warunkowe nie jest włączane, nie jest pusta, warunek $C$1<>"" jest spełniony i zwraca wartość PRAWDA — wówczas funkcja ORAZ zwraca wartość pierwszego argumentu, czyli wyrażenia NIE(CZY.BŁĄD(SZUKAJ.TEKST($C$1;A1))). Przyjrzyjmy się teraz wyrażeniu NIE(CZY.BŁĄD(SZUKAJ.TEKST($C$1;A1))). Gdy: tekst w A1 zawiera tekst wpisany do C1, to SZUKAJ.TEKST($C$1;A1) zwraca pozycję szukanego tekstu (nie zwraca błędu), wtedy funkcja CZY.BŁĄD daje wartość FAŁSZ, co zaprzeczenie NIE zamienia na PRAWDA — formatowanie warunkowe zostaje włączone, tekst w A1 nie zawiera teksu wpisanego do C1, to SZUKAJ.TEKST($C$1;A1) zwraca błąd #ARG!, a funkcja CZY.BŁĄD daje wartość PRAWDA, co zaprzeczenie NIE zamienia na FAŁSZ — formatowanie warunkowe nie zostaje włączone, komórka C1 jest pusta, SZUKAJ.TEKST($C$1;A1) zwraca wartość 1, czyli nie zwraca błędu, a funkcja CZY.BŁĄD daje wartość FAŁSZ, co zaprzeczenie NIE zamienia na PRAWDA — formatowanie warunkowe zostałoby włączone, gdybyśmy się przed tym nie zabezpieczyli za pomocą funkcji ORAZ i jej drugiego argumentu. T—T Funkcja wbudowana, niedostępna w VBA. Jeżeli: argument jest tekstem, zwraca jego wartość, tekstem nie jest, zwraca tekst pusty. Składnia: wartość — wartość testowana. 159 Część II ♦ Funkcje 160 Przykład 6.13. Wyróżnianie komórek nie zawierających liczb Jeżeli otrzymujemy dane ze źródeł zewnętrznych, zwłaszcza gdy były wpisywane ręcznie, zwykle pełno w nich błędów, tzw. literówek, wynikających z błędnego naciśnięcia klawiszy. Jeżeli do kolumny wpisywano liczby, zwłaszcza z przecinkiem dziesiętnym, zapewne część będzie błędna — zamiast przecinków zostaną wpisane kropki lub inne znaki. Pół biedy, jeżeli kolumna (jak A na rysunku 6.17) jest szeroka i nie została wyrównana, np. do prawej; wtedy teksty wyrównane do lewej wyraźnie odróżniają się od liczb wyrównanych do prawej4. Jeżeli kolumna została wyrównana do jednej strony, np. prawej, jak B na rysunku 6.17, odróżnienie liczb od tekstów może sprawić niemałe kłopoty. Sprawę ułatwia proste formatowanie warunkowe, w którym użyto funkcji T. Rysunek 6.17. Zastosowanie funkcji T w formatowaniu warunkowym, wyróżniającym teksty Sposób wprowadzenia formatowania warunkowego został opisany w poprzednim przykładzie 6.12, więc pozostaje jedynie zrozumieć działanie formuły włączającej formatowanie warunkowe. Gdy komórka B2: zawiera tekst, T(B2) zwróci go, a zatem zwracana wartość będzie różna od tekstu pustego; warunek =T(B2)<>”” zwróci wartość FAŁSZ i formatowanie warunkowe nie zostanie włączone; nie zawiera tekstu, T(B2) zwróci tekst pusty; warunek =T(B2)<>"" zwróci wartość PRAWDA i formatowanie warunkowe zostanie włączone. TEKST — TEXT Funkcja wbudowana, dostępna w VBA. Przekształca wartość na tekst zgodnie z podanym formatem liczbowym. 4 Ważny argument za tym, aby bez rzeczywistej potrzeby nie zmieniać domyślnego wyrównywania zawartości komórek, czemu w zapamiętaniu oddają się początkujący użytkownicy arkusza, lubiący „ładne i porządne” tabelki. Rozdział 6. ♦ Funkcje tekstowe 161 Składnia: wartość — liczba lub formuła, zwracająca liczbę, albo odwołanie do komórki zawierającej liczbę, format_tekst — format postaci tekstowej liczby. Argument format_tekst nie powinien zawierać znaku gwiazdki (*). Funkcja TEKST zamienia liczbę na sformatowany tekst, którego już nie będzie można używać w obliczeniach. Przykład 6.14. Łączenie tekstu z liczbami zamienionymi na tekst sformatowany Na rysunku 6.18 widać, w jaki sposób zadanie z przykładu 6.5 zostało rozwiązane za pomocą funkcji TEKST (a nie jak poprzednio przez użycie funkcji KWOTA). Rysunek 6.18. Przekształcanie liczb w tekst sformatowany za pomocą funkcji TEKST Jak już wspominałem w ćwiczeniu 6.5, w komórce jest przechowywana wartość liczby, nie zmieniana pomimo narzucenia formatu walutowego (bądź jakiegokolwiek innego). Dlatego zwykłe połączenie tekstów wykonane w komórce C2 wyświetla liczbę bez formatu waluty. Funkcja TEKST zamienia liczbę na tekst, formatując ją zgodnie z formatem podanym jako drugi argument. Nie ma tu znaczenia sposób sformatowania liczby w komórce źródłowej. W komórkach B3 i B4 mamy liczby w dwóch różnych formatach (odpowiednio walutowym i ogólnym). Niezależnie od formatu źródłowego w komórkach C3 i C4 na końcu tekstu zostały dołączone liczby w formacie walutowym, gdyż w obu przypadkach został on użyty jako drugi argument funkcji TEKST (patrz postacie formuł pokazane w kolumnie E). W tym przypadku zamiast funkcji TEKST mogliśmy zastosować funkcję KWOTA (patrz przykład 6.5), ale funkcja TEKST ma większe możliwości, gdyż pozwala na stosowanie wszelkich dozwolonych w Excelu formatów liczbowych, co zostało pokazane na rysunku 6.19. Aby wpisać użyty w formacie znak stopnia (°), należy włączyć klawiaturę numeryczną, po czym, trzymając wciśnięty lewy klawisz Alt, wpisać kod 0176. Część II ♦ Funkcje 162 Rysunek 6.19. Użycie funkcji TEKST z formatem niestandardowym Funkcja KWOTA to funkcja TEKST z wpisanym na stałe formatem walutowym. Dlatego w tekstach finansowych używanie funkcji KWOTA jest prostsze i wygodniejsze, ale jeżeli przy zamianie liczby na tekst chcemy użyć innego formatowania, musimy zastosować funkcję TEKST. USUŃ.ZBĘDNE.ODSTĘPY — TRIM Funkcja wbudowana, dostępna w VBA. Usuwa z tekstu wszystkie spacje poza pojedynczymi spacjami między wyrazami. Składnia: tekst — tekst lub odwołanie do komórki zawierającej tekst, z którego należy usunąć zbędne spacje. Przykład 6.15. Porównanie nie uwzględniające dodatkowych spacji i nie odróżniające liter wielkich od małych Mamy porównać teksty w kolumnach A i B, ale interesują nas jedynie zasadnicze różnice; utożsamiamy litery wielkie i małe i nie interesują nas dodatkowe spacje przed lub za tekstem, albo między słowami. Rysunek 6.20 przedstawia rozwiązanie. Rysunek 6.20. Trzy różne sposoby porównywania tekstów Wpis do komórki B3 to "Anna " (dodatkowa spacja za imieniem). Porównanie proste w kolumnie C nie odróżnia liter wielkich od małych (PRAWDA w komórce C4), ale odróżnia tekst z dodatkową spacją (FAŁSZ w komórce C3). Funkcja PORÓWNAJ w kolumnie E odróżnia litery wielkie od małych, a także uwzględnia dodatkową spację. Rozdział 6. ♦ Funkcje tekstowe 163 Właściwym rozwiązaniem jest proste porównanie wyników funkcji USUŃ.ZBĘDNE.ODSTĘPY wykonane w kolumnie G. W tym przypadku są porównywane teksty po usunięciu zbędnych spacji, a porównanie bezpośrednie ze swej natury nie odróżnia liter wielkich od małych. Dlatego w kolumnie G wynik FAŁSZ otrzymujemy tylko w komórce G5, gdzie porównywane są teksty Anna i Anna M. różniące się od siebie w sposób istotny. WARTOŚĆ — VALUE Funkcja wbudowana, niedostępna w VBA. Tekst reprezentujący liczbę zamienia na liczbę. Składnia: tekst — tekst zamknięty znakami cudzysłowu lub odwołanie do komórki zawierającej tekst. Przykład 6.16. Zamiana tekstu na liczby Rysunek 6.21 pokazuje, jak funkcja wartość zamienia na liczby teksty odpowiadające uznawanym przez Excela formatom liczbowym. Rysunek 6.21. Funkcja WARTOŚĆ zamienia na liczby teksty odpowiadające akceptowanym przez Excela formatom liczbowym W komórce B5 funkcja wartość zwraca błąd, gdyż zapisany w komórce A5 tekst 21 lipca 2006, choć zgodny z normą języka polskiego, nie odpowiada żadnemu uznanemu formatowi Excela. Natomiast w komórce B2 jest zwracana kolejna liczba daty, gdyż zapis 21 lipiec 2006 w komórce A2, choć niezgodny z normą językową, jest uznawany przez Excela. W komórce B9 mamy błąd, gdyż zapisany w komórce A9 tekst 13:21 am nie odpowiada żadnej rzeczywistej godzinie (nie istnieje godzina 13:21 rano). Część II ♦ Funkcje 164 Z.WIELKIEJ.LITERY — PROPER Funkcja wbudowana, niedostępna w VBA. Zamienia na wielką pierwszą literę tekstu i wszystkie inne litery tekstu występujące po znaku innym niż litera. Składnia: tekst — tekst ujęty w znaki cudzysłowu, odwołanie do komórki zawierającej tekst lub wynik formuły zwracającej tekst. Funkcja ta stanowi komplet z funkcjami LITERY.WIELKIE i LITERY.MAŁE. Wszystkie trzy służą do zamiany liter wielkich na małe lub odwrotnie. Wybór zależy od potrzeby. Przykład 6.17. Poprawianie imion i nazwisk pobieranych z bazy danych W danych wpisywanych ręcznie, a także otrzymywanych z niepewnych źródeł zewnętrznych, często roi się od literówek. Jednymi z nich są przekłamania polegające na wpisywaniu liter wielkich zamiast małych lub odwrotnie. Jeżeli są to imiona i nazwiska lub nazwy (np. geograficzne), w których słowa powinny rozpoczynać się od wielkiej litery, do ich uporządkowania możemy użyć funkcji Z.WIELKEJ.LITERY, np. w sposób pokazany na rysunku 6.22. Rysunek 6.22. Porządkowanie zapisu imion i nazwisk za pomocą funkcji Z.WIELKIEJ.LITERY Wyrażenie A1&" "&B1 łączy w jeden tekst imię i nazwisko wraz z rozdzielającą spacją. Funkcja Z.WIELKEJ.LITERY, działając na wynik tego połączenia, powoduje rozpoczęcie imienia i nazwiska od wielkiej litery i zapisanie wszystkich pozostałych liter jako małych. ZAOKR.DO.TEKST — FIXED Funkcja wbudowana, dostępna w VBA. Składnia: Rozdział 6. ♦ Funkcje tekstowe 165 liczba — liczba, która ma zostać zaokrąglona i zamieniona na tekst; miejsca_dziesiętne — liczba cyfr po prawej stronie przecinka dziesiętnego: domyślną wartością jest 2, wartość ujemna oznacza zaokrąglanie po lewej stronie przecinka dziesiętnego (1 — do dziesiątek, 2 — do setek itd.); bez_przecinka — opcjonalna wartość logiczna: PRAWDA, zapobiega oddzielaniu tysięcy spacją, FAŁSZ lub pominięta powoduje oddzielanie tysięcy spacją. W standardzie anglosaskim tysiące są oddzielane przecinkiem, w standardzie polskim — spacją. Przetłumaczono dosłownie angielską nazwę argumentu, nie dbając o przystosowanie do polskich realiów. Liczby w programie Microsoft Excel nie mogą nigdy mieć więcej niż 15 cyfr znaczących, ale cyfr dziesiętnych może być aż 127. Główna różnica między standardowym formatowaniem komórki zawierającej liczbę za pomocą polecenia Format/Komórki/Liczby a formatowaniem za pomocą funkcji ZAOKR. DO.TEKST jest taka, że funkcja ZAOKR.DO.TEKST konwertuje liczbę na tekst nieprzydatny do obliczeń, a po sformatowaniu standardowym liczba sformatowana pozostaje liczbą, przydatną w obliczeniach. Przykład 6.18. Wyświetlanie liczb ze stałą liczbą cyfr znaczących Naszym celem jest wyświetlanie liczb ze stałą liczbą cyfr znaczących, niezależnie od położenia przecinka dziesiętnego. W Excelu nie ma formatu liczbowego, pozwalającego zrealizować to zadanie. Powiedzmy, że mamy wyświetlać zawsze 7 cyfr znaczących. Rozwiązanie jest widoczne na rysunku 6.23. Rysunek 6.23. Użycie funkcji ZAOKR.DO.TEKST do wyświetlania stałej liczby cyfr znaczących Wystarczy przeanalizować działanie formuły w komórce B2 — ta sama formuła z adresami względnymi została skopiowana w dół kolumny, więc działanie formuł w komórkach położonych poniżej jest analogiczne do działania formuły w B2. Formuła wpisana do B2 ma postać: =ZAOKR.DO.TEKST(A1; JEŻELI(MODUŁ.LICZBY(A1)<1; Część II ♦ Funkcje 166 6; 6-(ZAOKR.DO.CAŁK(LOG(A1)))); PRAWDA) Funkcja ZAOKR.DO.TEKST pobiera wartość z A1 i zamienia ją na tekst z liczbą przecinków wyznaczoną przez drugi argument, czyli wyrażenie JEŻELI(MODUŁ.LICZBY(A1)<1;6;6-(ZAOKR.DO.CAŁK(LOG(A1)))) Ponieważ trzecim argumentem jest PRAWDA, tysiące w części całkowitej nie będą oddzielane spacją. Jak widać, jedyny kłopot sprawia zrozumienie działania wyrażenia, będącego drugim argumentem funkcji ZAOKR.DO.TEKST. Gdy MODUŁ.LICZBY(A2)<1 (wartość jest ułamkiem), funkcja JEŻELI zwraca drugi argument, czyli 6, i ułamek jest wyświetlany z zerem przed przecinkiem dziesiętnym i sześcioma miejscami dziesiętnymi po przecinku, jak w komórkach B2 i B5 na rysunku 6.23. Jeśli MODUŁ.LICZBY(A2) nie jest mniejszy od 1, funkcja JEŻELI zwraca wynik obliczony przez wyrażenie 6-(ZAOKR.DO.CAŁK(LOG(A1))). Kolejne etapy jego działania pokazuje rysunek 6.24. Dla obeznanych z matematyką wyjaśnienie to jest zbędne, ale książka jest również dla tych, którzy dawno zapomnieli, czym jest logarytm. Rysunek 6.24. Kolejne etapy wyliczania liczby miejsc po przecinku dziesiętnym Funkcje logarytm dziesiętny (LOG) i moduł liczby (MODUŁ.LICZBY) zostały opisane w dalszej części książki w rozdziale o funkcjach matematycznych. Logarytm dziesiętny to wykładnik potęgi, do której należy podnieść podstawę, aby otrzymać liczbę logarytmowaną, co dla „niematematyków” brzmi strasznie, ale jest w istocie proste, np. LOG(0,1)= -1, gdyż 10-1 =100, LOG(10 000)=4, gdyż 104 =10 000 itd. Należy pamiętać, że wyniki funkcji ZAOKR.DO.TEKST, pokazane na rys. 6.24 w kolumnie B i na rysunku 6.24 w kolumnie E, są tekstami, a nie liczbami nie przeznaczonymi do obliczeń5. ZASTĄP — REPLACE Funkcja wbudowana, dostępna w VBA. 5 Czasami Excel traktuje w obliczeniach postać tekstową liczby jak liczbę, co niekiedy powoduje błędy. Używanie tekstów w obliczeniach wymaga ostrożności i doświadczenia. Rozdział 6. ♦ Funkcje tekstowe 167 Zastępuje część ciągu tekstowego innym ciągiem tekstowym, zaczynając od wyznaczonego znaku zamienia określoną liczbę znaków. Składnia: stary_tekst — tekst, w którym należy zastąpić niektóre znaki, liczba_początkowa — pozycja znaku w tekście stary_tekst, od której należy rozpocząć wstawianie nowego tekstu, liczba_znaków — liczba znaków w tekście stary_teks, które mają być zastąpione, nowy_tekst — tekst, który zastąpi wyznaczoną część tekstu stary_tekst. Przykład 6.19. Wpisywanie czasu bez dwukropka oddzielającego minuty i sekundy Osoby wpisujące wiele danych liczbowych, np. numerów kont bankowych, sum pieniężnych, czasu (godzin i minut) itp., używają zwykle klawiatury numerycznej. Wpisywanie dwukropka oddzielającego godziny i minuty jest wtedy niewygodne z powodu pozycji jego klawisza na klawiaturze i konieczności dodatkowego naciśnięcia klawisza Shift. W znacznym stopniu spowalnia to pracę. Przy wpisywaniu czasu dwukropek można pomijać, po czym jednym ruchem wstawić go w całym zakresie, np. w całej kolumnie. Potrzebna procedura została opisana poniżej i pokazana na rysunku 6.25. Rysunek 6.25. Wstawianie dwukropka oddzielającego godziny i minuty w celu otrzymania standardowego czasu 1. Kolumnie A, do której będzie wpisywany tekst, nadaj format tekstowy, po czym wpisz dane, nie pomijając zer wiodących6. 2. W kolumnie B wpisz formułę pokazaną na rysunku 6.25 na pasku edycji. 3. Ponieważ formuła w kolumnie B zwraca kolejną liczbę czasu (ułamek doby), nadaj komórkom tej kolumny format czasu. Formuła ZASTĄP(A1;3;0;":") do tekstu pobranego z A1 wstawia na trzecim miejscu znak dwukropka (”:”). Właściwie nie jest to zastępowanie, lecz wstawienie, gdyż zgodnie z argumentem trzecim liczba zastępowanych znaków wynosi 0. 6 Gdyby nie został użyty format tekstowy, zera wiodące byłyby pomijane i po wpisaniu do komórki np. 0512 zobaczylibyśmy w niej liczbę 512. Część II ♦ Funkcje 168 Wynikiem jest tekst ( B1 jest to ”12:03”), który funkcja CZAS.WARTOŚĆ zamienia na kolejną liczbę czasu (ułamek doby). Po nadaniu kolumnie B formatu czasowego widzimy wynik pokazany na rysunku 6.25. ZŁĄCZ.TEKSTY — CONCATENATE Funkcja wbudowana, niedostępna w VBA. Ciągi tekstowe, podane jako argumenty, łączy w jeden ciąg tekstowy. Składnia: tekst1; tekst2;...tekst30 — kolejne elementy tekstowe do połączenia w jeden ciąg tekstowy. Wszystkie, poza pierwszym, są opcjonalne; maksymalnie może ich być 30. Elementami tekstowymi mogą być ciągi tekstowe, liczby lub odwołania do pojedynczych komórek. Zamiast funkcji ZŁĄCZ.TEKSTY można stosować operator łączenia tekstów &, opisany w rozdziale 1. w podrozdziale „Operator konkatenacji”. Stosowanie operatora & jest wygodniejsze — tworzone za jego pomocą formuły są krótsze od tworzonych z użyciem funkcji ZŁĄCZ.TEKSTY. Operatora łączenia tekstów używaliśmy już w przykładach 4.19 i 6.17. W obu przypadkach można go zastąpić funkcją ZŁĄCZ.TEKSTY. ZNAJDŹ — FIND Funkcja wbudowana, dostępna w VBA. Zwraca pozycję (numer znaku, licząc od lewej), na której po raz pierwszy szukany znak lub ciąg znakowy (szukany_tekst) wystąpił w tekście przeszukiwanym (obejmujący_tekst). Od funkcji SZUKAJ TEKST różni się odróżnianiem liczb wielkich od małych oraz niedopuszczaniem do stosowania znaków zastępczych. Składnia: Rozdział 6. ♦ Funkcje tekstowe 169 szukany_tekst — tekst, którego szukamy, lub odwołanie do komórki zawierającej tekst szukany, w_tekście — tekst (odwołanie do komórki zawierającej tekst), w którym szukany_tekst jest szukany, liczba_początkowa — numer znaku w argumencie w_tekście, od którego ma się zacząć przeszukiwanie. Pominięcie oznacza użycie domyślnej wartości 1. Należy pamiętać, że funkcja ZNAJDŹ: przeszukując tekst, odróżnia litery wielkie od małych, gdy argument szukany_tekst ma wartość "" (pusty tekst), odszukuje w przeszukiwanym tekście znak, którego pozycję określa liczba_początkowa (lub domyślnie 1), czyli po prostu zwraca wartość argumentu liczba_początkowa (podaną lub domyślną), nie pozwala na stosowanie w argumencie szukany_tekst znaków zastępczych: znaku zapytania (?) i gwiazdki (*), zwraca błąd #ARG!, jeżeli argument szukany_tekst nie zostanie znaleziony, zwraca błąd #ARG!, jeśli argument liczba_początkowa nie jest większy niż 0 lub jest większy niż długość argumentu w_tekście, zwraca błąd #ARG! przy szukaniu w tekście pustym (gdy w_tekście jest pusty). Przykład 6.20. Rozdzielanie imion i nazwisk na oddzielne kolumny Otrzymaliśmy zapisaną w jednej kolumnie listę nazwisk i imion wielu osób. Naszym zadaniem jest oddzielenie imion od nazwisk i zapisanie ich w oddzielnych kolumnach. Rozwiązanie zostało pokazane na rysunku 6.26. Rysunek 6.26. Funkcja ZNAJDŹ pozwala na ustalanie liczby imienia i nazwiska Przyjrzyjmy się formule pobierającej imię, zapisanej w komórce B2: =PRAWY(A2;DŁ(A2)-ZNAJDŹ(" ";A2)) ZNAJDŹ(" ";A2)=9 określa pozycję spacji oddzielającej w A2 nazwisko od imienia (ponieważ trzeci argument jest pominięty, wyszukiwanie rozpoczyna się domyślnie od pierwszego znaku), DŁ(A2)-ZNAJDŹ(" ";A2)=12-9=3 decyduje, ile znaków z tekstu w A2 ma pobrać funkcja PRAWY, na końcu PRAWY(A2;DŁ(A2)-ZNAJDŹ(" ";A2))=PRAWY(A2;3)="Jan" pobiera imię z komórki A2. Część II ♦ Funkcje 170 W analogiczny sposób można zanalizować działanie, wpisanej do C2, formuły =LEWY(A2; ZNAJDŹ(" ";A2)-1). ZNAK — CHAR Funkcja wbudowana, niedostępna w VBA. Zwraca znak odpowiadający kodowi określonemu przez podaną liczbę. Składnia: liczba — liczba od 1 do 255 będąca kodem znaku w używanym na danym komputerze zestawie znaków. W przypadku podania liczby spoza dopuszczalnego zakresu funkcja ZNAK zwraca wartość błędu #ARG!. Przykład 6.21. Każde słowo w nowej linii W kolumnie A mamy teksty złożone z kilku słów. Chcemy tak zmienić tekst i (lub) formatowanie, aby każde słowo znalazło się w nowej linii. Można to zrobić ręcznie, kasując spację znajdującą się po każdym słowie i używając kombinacji klawiszy Alt+Enter. Nie stanowi to problemu, jeżeli takich tekstów mamy pięć; gorzej, gdy jest ich 5 tysięcy. Należy użyć formuły pokazanej na rysunku 6.27 na pasku edycji, która zamienia spacje na znaki nowej linii. Rysunek 6.27. Zamiana spacji na znaki nowej linii Jak widać, znaki nowej linii są widoczne w postaci kwadracików, ale nie powodują zawinięcia tekstu. Należy zaznaczyć komórki zawierające te znaki (kolumnę B na rysunkach 6.27 i 6.28) i włączyć zawijanie tekstu w komórkach przez uaktywnienie opcji Format/Komórki/Wyrównanie/Sterowanie tekstem: Zawijaj tekst. Rysunek 6.28 przedstawia wynik tych działań. Rysunek 6.28. Każde słowo w nowej linii, czyli zadanie zostało wykonane