Przejdź do treści
ŚredniWaga: 3-5 pkt

Funkcje Tekstowe i Daty

Wyciąganie fragmentów tekstu, sklejanie i obliczenia na datach. Zadania z przetwarzania danych tekstowych wracają w arkuszu maturalnym regularnie.

Kolumna z numerem PESEL, kodem produktu albo adresem e-mail i polecenie, żeby wyciągnąć z niej konkretny fragment — to zadanie wraca w arkuszu regularnie. Potrzebujesz do niego trzech funkcji wycinających i ZNAJDŹ, a cała trudność siedzi w liczeniu pozycji, bo znaki numerowane są od jedynki, nie od zera. Drugi stały motyw to daty, które arkusz trzyma jako liczby, więc odejmujesz je jak zwykłe wartości. To błąd, który pojawia się zawsze, więc na formatowanie komórek uczulamy już na pierwszych zajęciach. Najlepiej trafia analogia do programowania: kto pisał w C++, od razu rozumie, po co komu int, string czy bool.

1. Wycinanie fragmentów tekstu

Typowe zadanie: z kolumny z numerem PESEL, kodem produktu albo adresem e-mail wyciągnij określony fragment. Wystarczą trzy funkcje.

  • LEWY(tekst; n) — pierwsze nn znaków.
  • PRAWY(tekst; n) — ostatnie nn znaków.
  • FRAGMENT.TEKSTU(tekst; start; ile) — wycinek od wskazanej pozycji.

Z numeru PESEL rok urodzenia wyciągniesz przez LEWY(A2; 2), a miesiąc przez FRAGMENT.TEKSTU(A2; 3; 2).

Funkcje tekstowe zwracają tekst, nie liczbę. Jeśli chcesz na wyniku liczyć, opakuj go w WARTOŚĆ(). Bez tego porównania i sumowania mogą dawać dziwne rezultaty.

2. Szukanie i sklejanie

  • ZNAJDŹ(czego; gdzie) — pozycja znaku, rozróżnia wielkość liter.
  • DŁ(tekst) — długość tekstu.
  • ZŁĄCZ.TEKSTY() lub operator & — sklejanie.

Połączenie tych funkcji rozwiązuje klasyk z adresem e-mail: żeby wyciągnąć nazwę użytkownika sprzed małpy, znajdujesz jej pozycję i bierzesz tyle znaków od lewej, pomniejszone o jeden:

=LEWY(A2; ZNAJDŹ("@"; A2) - 1)

3. PESEL — kompletny rozbiór

To najczęstszy konkretny przykład w arkuszach CKE, bo w jednym ciągu siedzi data urodzenia, płeć i cyfra kontrolna. Warto znać cały rozbiór, a nie tylko wycinanie dwóch pierwszych znaków.

PESEL:    0 3   2 5   1 4   0 1 2 3   4
pozycje:  1 2   3 4   5 6   7 8 9 10   11
        rok   mc    dzien   numer     kontrolna
                                ^ cyfra plci (poz. 10)

=LEWY(A2; 2)                     rok (dwie cyfry)
=FRAGMENT.TEKSTU(A2; 3; 2)       miesiac ZAKODOWANY
=FRAGMENT.TEKSTU(A2; 5; 2)       dzien
=FRAGMENT.TEKSTU(A2; 10; 1)      cyfra plci
=PRAWY(A2; 1)                    cyfra kontrolna

Miesiąc koduje stulecie. Dla osób urodzonych w latach 1900–1999 miesiąc zapisany jest zwyczajnie (01–12). Dla urodzonych po 2000 roku do numeru miesiąca dodaje się 20, więc styczeń to 21, a grudzień 32. W przykładzie wyżej miesiąc 25 oznacza maj 2003, a nie dwudziesty piąty miesiąc.

Płeć rozstrzyga dziesiąta cyfra: parzysta oznacza kobietę, nieparzysta mężczyznę.

Plec:
=JEZELI(MOD(WARTOSC(FRAGMENT.TEKSTU(A2;10;1)); 2)=0; "K"; "M")

Rok urodzenia z uwzglednieniem stulecia:
=JEZELI(WARTOSC(FRAGMENT.TEKSTU(A2;3;2))>20;
      2000+WARTOSC(LEWY(A2;2));
      1900+WARTOSC(LEWY(A2;2)))

Pelna data urodzenia:
=DATA(rok; MOD(WARTOSC(FRAGMENT.TEKSTU(A2;3;2)); 20); WARTOSC(FRAGMENT.TEKSTU(A2;5;2)))

Zwróć uwagę na WARTOŚĆ() wokół każdego wycinka. Bez niej porównanie >20 działa na tekście i daje wyniki, które wyglądają losowo — to najczęstsza przyczyna „dziwnych” odpowiedzi w tym zadaniu.

4. Czyszczenie i przekształcanie tekstu

Dane z pliku tekstowego prawie nigdy nie są gotowe do użycia. Te funkcje doprowadzają je do porządku szybciej niż ręczne poprawianie.

=USUN.ZBEDNE.ODSTEPY(A2)          usuwa spacje z przodu, z tylu i podwojne w srodku
=PODSTAW(A2; "-"; "")             usuwa wszystkie myslniki (np. z numeru telefonu)
=ZASTAP(A2; 1; 3; "048")          podmienia 3 znaki od pozycji 1
=LITERY.WIELKIE(A2)               ABC
=LITERY.MALE(A2)                  abc
=Z.WIELKIEJ.LITERY(A2)            Jan Kowalski
=DL(A2)                           dlugosc - sprawdzenie, czy PESEL ma 11 znakow
ZNAJDŹ czy SZUKAJ.TEKST? Obie zwracają pozycję znaku, ale ZNAJDŹ rozróżnia wielkość liter i nie przyjmuje symboli wieloznacznych, a SZUKAJ.TEKST ignoruje wielkość liter i rozumie ? oraz *. Gdy polecenie mówi „niezależnie od wielkości liter”, to sygnał do użycia tej drugiej.
Domena z adresu e-mail — lustrzane odbicie przykładu z nazwą użytkownika:
=PRAWY(A2; DŁ(A2) - ZNAJDŹ("@"; A2))
Gdy trzeba rozbić tekst na wiele kolumn naraz — imię, nazwisko, miasto oddzielone przecinkami — szybsze od formuł bywa narzędzie Dane → Tekst jako kolumny. Pamiętaj tylko, żeby obok była pusta przestrzeń, bo operacja nadpisuje sąsiednie kolumny.

5. Daty to liczby

Arkusz przechowuje daty jako kolejne liczby, dlatego można je od siebie odejmować. Różnica dwóch dat to po prostu liczba dni.

  • DZIŚ() — dzisiejsza data, odświeża się sama.
  • ROK(), MIESIĄC(), DZIEŃ() — wyciągają część daty.
  • =B2 - A2 — liczba dni między datami.
  • DZIEŃ.TYG() — numer dnia tygodnia, przydatny przy filtrowaniu weekendów.

Po odjęciu dat komórka często sama przyjmuje format daty i pokazuje coś w rodzaju „1900-01-15" zamiast liczby 15. Trzeba wtedy ręcznie ustawić format liczbowy — to nie błąd formuły, tylko formatowania, ale na egzaminie wygląda jak zły wynik.

=DATA(2026; 5; 12)                    buduje date z trzech liczb
=DATA.WARTOSC("2026-05-12")           zamienia tekst na prawdziwa date
=DNI.ROBOCZE(A2; B2)                  dni robocze miedzy datami (bez weekendow)
=NR.SER.OST.DN.MIES(A2; 0)            ostatni dzien tego miesiaca
=TEKST(A2; "RRRR-MM")                 data jako tekst w zadanym formacie
Wieku nie liczy się odejmowaniem lat. Zapis ROK(DZIŚ()) - ROK(A2) daje rok za dużo każdemu, kto nie miał jeszcze w tym roku urodzin. Poprawny wynik daje =ZAOKR.DO.CAŁK((DZIŚ() - A2) / 365,25) albo funkcja DATA.RÓŻNICA(A2; DZIŚ(); "Y").
Godzina to ułamek doby. 12:00 to liczba 0,5, a różnica dwóch godzin pomnożona przez 24 daje liczbę godzin. Stąd biorą się wyniki typu 0,25 tam, gdzie spodziewasz się „6 godzin”.
Data po imporcie bywa tekstem. Jeśli wyrównuje się do lewej i nie da się jej odjąć, to nie data. Ratuje DATA.WARTOŚĆ albo ponowny import z poprawnie ustawionym typem kolumny.

6. O czym pamiętać

  • Numeracja znaków zaczyna się od 1, nie od zera jak w programowaniu.
  • Separator argumentów zależy od ustawień — w polskiej wersji zwykle średnik.
  • Spacje w danych psują porównania; warto oczyścić je funkcją USUŃ.ZBĘDNE.ODSTĘPY().
  • Wynik funkcji tekstowej wyrównuje się do lewej — to szybki sygnał, że masz tekst, a nie liczbę.
Przeczytaj też
Zadania praktyczne na maturze — jak się przygotować

Plan pracy na 210 minut, kolejność rozwiązywania i format plików wynikowych, na którym najłatwiej stracić punkty.

Korepetycje z informatyki

Zdajesz maturę rozszerzoną z informatyki?

Prowadzimy indywidualne przygotowanie do matury z informatyki — algorytmy, Python i C++, bazy danych i arkusz kalkulacyjny. Zajęcia online, na arkuszach CKE. Zobacz program i cennik.

Zobacz korepetycje z informatyki

Uczysz się w technikum informatycznym? Prowadzimy też przygotowanie do kwalifikacji INF.02, INF.03 i INF.04. Zobacz egzaminy zawodowe →

Nadal czujesz się niepewnie?

To tylko jeden z pewniaków. Na kursie przechodzimy przez nie wszystkie, krok po kroku, aż poczujesz ten spokój.

Pomóżcie mi zdać maturę!