Zdarza się, że dostajemy listę wygenerowaną przez użytkowników. Np. imion i nazwisk. Nie wiedzieć czemu, niektórzy ludzie używają cały czas CAPS LOCKA i wszystko piszą wielkimi literami. Inni w ogóle nie zauważają o co chodzi i mieszają litery lub czasem zdarza im się, że zamiast pierwszej dużej, pojawiają się dwie duże. Pokażę Wam jak to szybko ogarnąć.
Do lektury przyda się plik roboczy, który zawiera opisywane przykłady.
Zmiana wszystkich liter na wielkie
Służy do tego funkcja UPPER (LITERY.WIELKIE).
Składnia:
=Upper(tekst lub odwołanie)
Zmiana wszystkich liter na małe
Służy do tego funkcja LOWER (LITERY.MAŁE).
Składnia:
=Lower(tekst lub odwołanie)
Zmiana wielkości liter, żeby zaczynać z wielkiej
Służy do tego funkcja PROPER (Z.WIELKIEJ.LITERY).
Składnia:
=Proper(tekst lub odwołanie)
Poniżej przykład zastosowania. W kolumnie B i C są zabałaganione dane, a w kolumnach E i F potraktowane funkcją PROPER.
Zmiana, żeby pisać z wielkiej, ale tylko pierwszy wyraz w komórce
Zdarza się, że w komórce jest kilka wyrazów, ale chcemy jednak by tylko pierwszy był z wielkiej litery. Np. na liście produktów. Żeby to zrobić w jednym zapisie, musimy trochę zaczarować.
Sposób 1
=UPPER(LEFT(B10;1))&lower(right(B10;len(B10)-1))
gdzie B10 zawiera przerabiany ciąg.
Wyjaśnienie krok po kroku całego zapisu.
Zmieńmy całość na małe litery:
Zmieńmy pierwszą literę od lewej na wielką
Wywalmy nadmiarową małą literę n. Czyli usuwamy pierwszą literę z ciągu. W praktyce oznacza to zmierzenie długości ciągu i wzięcia od prawej strony wszystkich znaków prócz jednego.
Sklejamy wszystkie 3 operacje w jedną formułę.
Voila! Teraz już wszystkie wyrazy prócz pierwszego są pisane z małej litery.
Sposób 2
W drugim sposobie operujemy na całych wyrazach, a nie na pojedynczych znakach.
=proper(split(B10;" "))&" "&join(" ";query(transpose(split(lower(B10);" "));"select * offset 1"))
gdzie B10 zawiera obsługiwany ciąg.
Wyjaśnienie krok po kroku całego zapisu.
Zmieńmy całość na małe litery:
Pokrójmy ciąg na kawałki, używając spacji jako separatora
Pokrójmy ciąg składający się z małych liter
Zmieńmy pierwszy wyraz na pisany z wielkiej litery
Usuńmy pierwszy wyraz z pokrojonego ciągu. Czyli przeróbmy tabelę na pionową, obetnijmy wiersz z góry.
Niestety nie wiem jak obciąć pierwszą kolumnę z poziomej tabeli. Zaangażowanie zwykłej funkcji OFFSET tu nie pomagało. Stąd ten “fikołek” z użyciem QUERY.
Sklejmy ze sobą pierwszy wyraz z wielkiej litery z pozostałymi pisanymi małymi i upakujmy to w jednej komórce.
&” “& umieszczony w środku służy do sklejenia dwóch funkcji i umieszczenia między ich wynikami spacji, czyli ” “. Funkcja join() skleja tabelę utworzoną w poprzednim etapie. Między każdy z elementów tabeli wprowadza spację.
Dwa sposoby wzięły się z tego, że zrobiłem “Czelendż” koledze – Michałowi i zapytałem się czy potrafi poradzić sobie z takim przerobieniem ciągu. Podał swój sposób, który był zbliżoną (nieco zagmatwaną) wersją sposobu pierwszego. Udało mi się go trochę uprościć. Mój pomysł to pomysł drugi – teraz widać, że mniej intuicyjny (a pierwotnie był jeszcze bardziej pognieciony).
Przerabianie ciągu wielu wyrazów, tak żeby uzyskać wielką literę tylko w pierwszym wyrazie, nie zawsze sprawi, że uzyskamy poprawne zdanie. Przecież są jeszcze imiona, nazwy geograficzne, etc…. więc nie należy używać tego narzędzia do korekty językowej.