Informacje tekstowe importowane do arkusza kalkulacyjnego często umieszczane są w pojedynczej komórce. Jeżeli kreator importu nie radzi sobie z ich podziałem na kilka części trzeba zastosować formuły arkusza. Poznaj praktyczne zastosowanie kreatora importu danych oraz funkcji przeznaczonych do wyszukiwania i wycinania tekstu.
Arkusze kalkulacyjne stosowane są nie tylko do wykonywania różnych obliczeń. Bardzo często używa się ich w roli prostych
baz danych, które umożliwiają sortowanie, przeglądanie i
analizowanie informacji. Aby usprawnić i przyspieszyć pracę, wartości komórek importuje się również z innych źródeł. Powoduje to często kłopoty z prawidłowym formatowaniem danych.
Przykładem takiej operacji może być pobieranie rekordów z pliku tekstowego. To bardzo często wykorzystywana opcja. Kreator importu, który się wtedy uruchamia pozwala odpowiednio podzielić tekstowe wpisy na fragmenty i umieścić w odpowiednich kolumnach. Jako znaków odniesienia używa on przecinków, średników, spacji czy znaków tabulacji. Czasami jednak mechanizm ten zawodzi. Dzieje się tak bardzo często wtedy, gdy nieprecyzyjnie bądź nieprawidłowo określony został
standard kodowania znaków. W takiej sytuacji pozostaje uporządkować zaimportowanie dane za pomocą odpowiednich
funkcji arkusza. Przyjrzyjmy się tym mechanizmom. Działają one podobnie w każdym arkuszu kalkulacyjnym. Ich działanie zademonstrujemy na przykładzie
Excela.
1. Podział danych za pomocą kreatora importu
Załóżmy, że z pliku tekstowego importowane są dane dotyczące różnych osób. Format rekordu uwzględnia tytuł danej osoby, jej imię i nazwisko. Aby zaimportować taki plik wystarczy przejść na kartę
Dane arkusza i wybrać polecenie
Z tekstu umieszczone w sekcji
Dane zewnętrzne. Po wskazaniu pliku pojawia się okno kreatora. Najczęściej zostawia się zaznaczoną opcję
Rozdzielany i na liście
Pochodzenie pliku wybiera rodzaj kodowania używany przy jego zapisie. Jeżeli w kolejnych krokach nie uda się prawidłowo podzielić danych być może przyczyną jest źle dobrany format. Wybierz znak rozdzielający, na przykład
spacja, a potem określ formatowanie docelowe. Podgląd podziału widoczny jest u dołu okna. Zakończ pracę kreatora przyciskiem
Zakończ i wskaż, gdzie mają znaleźć się importowane dane.

Kreator ułatwia formatowanie importowanych danych. Nie zawsze jednak zdaje egzamin 2. Użycie funkcji LEWY do wycinania tekstu
Co jednak zrobić, gdy nie uda się prawidłowo podzielić elementów rekordu na poszczególne komórki? W takiej sytuacji cały rekord umieszczony zostaje w pojedynczej komórce i trzeba go rozdzielić za pomocą odpowiednich formuł. Na ratunek przychodzą takie funkcje arkusza, jak
LEWY,
PRAWY i
FRAGMENT.TEKSTU. Polecenie
LEWY wyświetla określoną liczbę znaków, liczoną od lewej strony tekstu podanego jako parametr. Składnia wygląda następująco:
LEWY(tekst_źródłowy;liczba_znaków).
tekst_źródłowy określa się w prosty sposób, wystarczy przecież wpisać adres komórki zawierającej informacje o osobie. Argument
liczba_znaków wyznaczymy za pomocą innej funkcji.

Formuła oparta na funkcji LEWY, wydzielająca pierwszy człon rekordu 3. Wyszukiwanie znaków w tekście
Aby wydzielić z całego rekordu jego pierwszą część czyli tytuł, należy pobrać z rekordu wszystkie znaki aż do pierwszej spacji. Policzy je funkcja
ZNAJDŹ. Działa ona z dwoma lub trzema parametrami i zwraca miejsce poszukiwanego znaku, w określonym tekście, począwszy od danej pozycji. Jeżeli nie podasz pozycji, od której mają być prowadzone poszukiwania funkcja domyślnie rozpocznie je od początku tekstu źródłowego. Składnia polecenia wygląda następująco:
ZNAJDŹ(szukany_znak;tekst_źródłowy;opcjonalna_pozycja_startowa). Szukasz pierwszej spacji, w tekście z komórek źródłowych, licząc od jego początku. Jeżeli założymy, że pierwszy rekord umieszczony został w komórce
A10 to wyszukiwanie będzie wyglądało następująco:
ZNAJDŹ(" ";A10), a funkcja wyświetlająca pierwszy fragment tak:
LEWY(A10;ZNAJDŹ(" ";A10)-1). Spacja ujęta jest znakiem cudzysłowu. Ustaw kursor w komórce
B2, wpisz znak równości i wprowadź powyższą formułę. Skopiuj ją do pozostałych komórek poniżej.

Kombinacja formuł FRAGMENT.TEKSTU i ZNAJDŹ wycinająca środkową część rekordu 4. Wyszukiwanie tekstu wewnątrz łańcucha znaków
Do wyodrębnienia imienia można zastosować kilka różnych metod. W naszej wskazówce posłużymy się funkcją
FRAGMENT.TEKSTU. Jej składnia jest następująca:
FRAGMENT.TEKSTU(tekst_źródłowy;pozycja_startowa;liczba_zwróconych_znaków). Parametr zawierający tekst źródłowy to oczywiście adres komórki
A10. Pierwszy znak, który należy pobrać z tekstu źródłowego to zawsze pierwszy znak po pierwszej spacji. Pozycję spacji, tak jak poprzednio zwraca formuła
ZNAJDŹ(" ";A10). Wystarczy dodać do niej liczbę
1. Aby uzyskać liczbę znaków, którą należy wyświetlić wystarczy obliczyć położenie drugiej spacji i odjąć od uzyskanej wartości położenie pierwszej spacji. Do wyszukania drugiej spacji możesz ponownie użyć funkcji
ZNAJDŹ ale tym razem z trzema parametrami. Jako trzeci parametr umieść numer znaku, od którego należy rozpocząć poszukiwania czyli numer pierwszej spacji powiększony o jeden:
ZNAJDŹ(" ";A10;ZNAJDŹ(" ";A10)+1)). Po dodaniu wszystkich argumentów do funkcji głównej, przybierze ona następującą postać:
FRAGMENT.TEKSTU(A10;ZNAJDŹ(" ";A10)+1; ZNAJDŹ(" ";A10;ZNAJDŹ(" ";A10)+1)- ZNAJDŹ(" ";A10)). Wprowadź formułę do komórki
C10

Formuła odczytująca z rekordu tekstowego informacje o nazwisku 5. Zliczanie znaków łańcucha i funkcja PRAWY
Do pobrania informacji o nazwisku skorzystaj z funkcji
PRAWY. Tak, jak poprzednio musisz jej podać w postaci parametru adres tekstu źródłowego oraz liczbę znaków, które ma ona wyświetlić ale liczonych od jego końca. Długość nazwiska można uzyskać zliczając wszystkie znaki rekordu i odejmując od uzyskanej liczby pozycję drugiej spacji. Formułę podającą tę drugą liczbę skonstruowałeś w poprzednim punkcie:
ZNAJDŹ(" ";A10;ZNAJDŹ(" ";A10)+1)). Długość całego rekordu uzyskasz za pomocą funkcji
DŁ. Wystarczy podać jej adres tekstu do zliczania. Formuła wyświetlająca nazwisko, uzupełniona o wszystkie parametry będzie więc wyglądała następująco:
PRAWY(A10;DŁ(A10)-ZNAJDŹ(" ";A10;ZNAJDŹ(" ";A10)+1))