fbpx

Wielkość liter taka, jak w zdaniu (formuła)

29.08.2017 | Operacje na tekście, Triki

Czyli robimy Worda z Excela 🙂

Rety, już kolejny wpis o funkcjonalnościach Worda w Excelu. Ostatnio była korespondencja seryjna i indeks górny (np. m2), a dziś o wielkości liter.

Już wielokrotnie napotkałam sytuację, że dostałam dane, gdzie wszystko był napisane małymi literami, a ja chciałam, aby wielkość liter była taka, jak w zdaniu, czyli zamienić wielkość pierwszej litery w zdaniu na wielką, a pozostałe na małe. Sprawa pozornie prosta, wystarczy znaleźć odpowiednią funkcję, ale… nie ma takiej 🙂 W Excelu mamy 3 funkcje umiejące zmienić wielkość liter, ale żadna nie umie zmienić ich w taki właśnie sposób. W Wordzie – nie ma problemu:

Opcje dostępne w Wordzie

Opcje dostępne w Wordzie

Ale nie w Excelu… Na szczęście na spokojnie można poradzić sobie z tą sytuacją. Tylko za pomocą formuły, używającej kilku funkcji tekstowych.

Załóżmy, że teksty, w których chcemy zamienić wielkość liter są w kolumnie B takiej formatki:

Formatka

Formatka

Jak widać – mamy 3 warianty (można oczywiście stworzyć więcej konfiguracji, ale te wyczerpują temat ;)):

  1. tylko małe litery
  2. tylko wielkie litery
  3. litery różnej wielkości

Moim celem jest napisanie takiej formuły, która we wszystkich tych wariantach ustawi pierwszą literę zdania na wielką, a pozostałe na małe.

Logika formuły

Najpierw z tekstu wytniemy pierwszy znak – posłuży nam do tego cudowna funkcja tekstowa LEWY. Późnej zamienimy tę literę na wielką, za pomocą funkcji LITERY.WIELKIE.

Następnie wyodrębnimy pozostałą część zdania. Zrobimy to funkcją PRAWY, której każemy wyciąć tyle znaków od końca tekstu, ile jest w całym tekście minus jeden (ten jeden to pierwsza litera, którą zamieniamy na wielką). Do obliczenia długości tekstu posłużymy się funkcją DŁ.

Jak już to będziemy mieli – wrzucimy to w funkcję LITERY.MAŁE, aby zamienić na małe litery oczywista, i całość połączymy ze sobą. Formułą wygląda tak…

Formuła

Pierwszy krok to wycięcie pierwszej litery i zamiana jej na wielką:

LITERY.WIELKIE(LEWY(B5))

Następnie wyodrębnienie reszty zdania:

PRAWY(B5;DŁ(B5)-1)

Potem zamiana wielkości liter w tej reszcie na małe:

LITERY.MAŁE(PRAWY(B6;DŁ(B6)-1))

I sklejenie wszystkiego ze sobą, za pomocą &:

=LITERY.WIELKIE(LEWY(B5))&LITERY.MAŁE(PRAWY(B5;DŁ(B5)-1))

Efekt tego otrzymujemy taki:

Wynik

Wynik

Tadam! Cała filozofia.

Formułka działa, tylko… jak dla mnie jest strasznie upierdliwa. Za trzecim razem, kiedy okazało się, że jej potrzebuję, stwierdziłam, że nie chce mi się jej pisać od nowa, tylko napiszę sobie funkcje w VBA, która będzie dostępna w każdym otwartym arkuszu. Ale to pokażę Wam w kolejnym wpisie 😉

I film, pokazujący proces pisania tej formuły:

 

A w kolejnym wpisie to samo, tylko za pomocą funkcji VBA 🙂

 

Pomogłam Ci? Postaw mi wirtualną kawę! →

Przeczytaj podobne wpisy

Kategorie

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *