Baza wiedzy / Excel
WARTOŚĆ w Excelu: tekst, liczby i separatory importu
Pokazuję jawną konwersję tekstu i dwa formaty tej samej liczby. Wyjaśniam, kiedy wartość powinna pozostać tekstem.

W komórce widzę 1500, ale po imporcie wartość nadal jest tekstem. Zmiana koloru, wyrównania czy formatu komórki nie rozstrzyga problemu. Gdy chcę jawnie zamienić tekstową reprezentację liczby na liczbę, używam WARTOŚĆ, czyli angielskiego VALUE.
Najpierw ustalam jednak, czy dana kolumna naprawdę powinna być liczbowa. Kwota i identyfikator klienta mogą wyglądać podobnie. Zamiana kodu „0012” na 12 usuwa zera, które mogły być częścią identyfikatora.
Co przyjmuje WARTOŚĆ
Składnia jest krótka:
=WARTOŚĆ(tekst)
Argumentem może być tekst w cudzysłowie albo odwołanie do komórki. Microsoft opisuje WARTOŚĆ jako konwersję tekstu reprezentującego liczbę. Rozpoznawane są także obsługiwane przez Excela zapisy dat i czasu. To powód, żeby sprawdzać znaczenie danych przed masową konwersją.
Jeśli tekst nie pasuje do rozpoznawanego formatu, funkcja zwraca błąd wartości, w polskim Excelu #ARG!. Nie wyciąga samodzielnie dowolnej liczby z opisu produktu ani nie zgaduje znaczenia jednostek.
Funkcja jest dokumentowana dla Microsoft 365 oraz m.in. Excel 2024, 2021, 2019 i 2016. W przykładach używam polskich nazw oraz średników w formułach wieloargumentowych. Angielskie nazwy to VALUE i NUMBERVALUE, a separatorem argumentów bywa przecinek, zależnie od ustawień regionalnych.
Pierwsza konwersja w kolumnie pomocniczej
W A2 umieszczam tekst 1500. Można poprzedzić wpis apostrofem, aby wprowadzić go jako tekst; apostrof służący do takiego wpisania nie jest częścią samej wartości komórki. W B2 wpisuję:
=WARTOŚĆ(A2)
Wynikiem jest liczba 1500. W kolumnie A zachowuję źródło, a w B wynik konwersji. Dzięki temu mogę porównać dane i wrócić do oryginalnego zapisu przy błędzie. Takie użycie kolumny pomocniczej pokazuje też instrukcja Microsoft dotycząca liczb zapisanych jako tekst.
| Tekst wejściowy | Wynik lub decyzja |
|---|---|
1500 |
liczba 1500 |
0012 |
liczba 12, jeśli konwersja jest zamierzona |
abc |
błąd wartości |
12 szt. |
najpierw osobne ustalenie i wydzielenie jednostki |
W tabeli są dane syntetyczne. Ostatni wiersz nie jest poprawną tekstową liczbą do bezpośredniego przekazania funkcji. Nie usuwam mechanicznie ostatnich czterech znaków z całego importu, bo jednostki i długość zapisu mogą się różnić.
Separator dziesiętny jest częścią interpretacji
Zapis 12,5 może być poprawną liczbą tekstową przy ustawieniach z przecinkiem dziesiętnym. Zapis 12.5 może wymagać innej interpretacji. Sama angielska albo polska nazwa funkcji nie ustanawia reguł całego pliku źródłowego.
Przy imporcie najpierw ustalam format eksportu. Nie wnioskuję o nim na podstawie jednej komórki. Szczególnie zapis 1,234 może oznaczać liczbę z trzema miejscami po przecinku albo liczbę z separatorem tysięcy. Jeżeli źródło tego nie rozstrzyga, potrzebuję wyjaśnić kontrakt danych.
Usuwanie wszystkich kropek i przecinków jest ryzykowne. Może przekształcić 12,5 w 125 i zostawić poprawny typ liczbowy z błędną wartością. Typ danych to tylko część kontroli; znaczenie separatorów trzeba zachować.
WARTOŚĆ.LICZBOWA dla znanego formatu eksportu
Gdy znam separatory w źródle, wolę podać je jawnie. Służy do tego WARTOŚĆ.LICZBOWA:
=WARTOŚĆ.LICZBOWA("1,234.56";".";",")
Tekst źródłowy używa kropki dziesiętnej i przecinka do grupowania tysięcy. Wynikiem jest liczba 1234,56, zapisana tu z polskim separatorem dziesiętnym. Cudzysłowy otaczają znaki separatorów, średniki rozdzielają argumenty formuły.
Dla odwrotnej konwencji źródła używam:
=WARTOŚĆ.LICZBOWA("1.234,56";",";".")
Wynik liczbowy jest taki sam. Dokumentacja WARTOŚĆ.LICZBOWA wyjaśnia konwersję niezależną od ustawień regionalnych, jeśli przekażę odpowiednie separatory. Gdy je pominę, używane są ustawienia bieżącego środowiska.
Nie zamieniam jednak jedną formułą mieszaniny dwóch nierozróżnialnych formatów. Jeżeli część źródeł używa przecinka dziesiętnego, a część przecinka tysięcy, potrzebuję informacji o pochodzeniu wierszy i odpowiedniej reguły dla każdej grupy.

Puste wpisy, spacje i błędy
Pusty zapis trzeba obsłużyć świadomie. Microsoft podaje, że WARTOŚĆ.LICZBOWA("") daje zero. W raporcie brak podanej kwoty może mieć inne znaczenie niż rzeczywista kwota zero. Dlatego przed konwersją rozdzielam brak danych od poprawnej wartości zerowej.
Spacje z importu też nie zawsze są tym samym znakiem. Zwykła spacja i spacja nierozdzielająca potrafią wyglądać podobnie. Dokumentacja TRIM, czyli USUŃ.ZBĘDNE.ODSTĘPY, ostrzega, że ta funkcja sama nie usuwa spacji nierozdzielającej. Nie obiecuję więc, że jeden krok czyszczenia naprawi każdy eksport z przeglądarki.
Przy błędach zachowuję źródło i oznaczam wiersze do wyjaśnienia. Automatyczne zastąpienie błędu zerem mogłoby zaniżyć sumę i ukryć problem. Gdy przyczyna jest znana, dokumentuję regułę czyszczenia, zamiast poprawiać przypadkowe komórki ręcznie bez śladu.
Daty i identyfikatory wymagają ostrożności
WARTOŚĆ może zamienić rozpoznawany tekst daty na liczbę seryjną. Jej wygląd po obliczeniu zależy od formatu komórki, a interpretacja tekstu i system dat wpływają na znaczenie wyniku. Nie używam losowego numeru seryjnego jako dowodu, że import dat się udał.
Do dat z osobnymi polami roku, miesiąca i dnia wolę jawne składanie przez DATA. Gdy źródło daje jedną kolumnę tekstową, najpierw ustalam jej format. Zapis 01/02 nie mówi sam z siebie, czy chodzi o styczeń, czy luty.
Identyfikatory zachowuję jako tekst, jeżeli ich zapis ma znaczenie. Numer rachunku, kod pocztowy czy kod klienta nie stają się wielkościami do sumowania tylko dlatego, że zawierają cyfry. Utrata zer wiodących może utrudnić późniejsze dopasowanie rekordów.
Jak kończę konwersję
Przeglądam kilka wierszy o różnych cechach: dodatnią liczbę całkowitą, ułamek, zero, brak i błędny tekst. Sprawdzam również liczbę odrzuconych wierszy oraz to, czy wartości mieszczą się w oczekiwanej skali. Wynik 125 zamiast 12,5 łatwo przeoczyć w gęstej tabeli.
Dopiero po tej kontroli decyduję, czy zachować kolumnę pomocniczą, czy skopiować wyniki jako wartości. Do regularnego importu potrzebuję powtarzalnej reguły, razem z informacją o formacie źródła. Szerszy proces opisuję w poradniku czyszczenia danych.
Na ćwiczenie przygotuj teksty 1500, 0012 i abc. Zdecyduj, które z nich w Twoim scenariuszu powinny stać się liczbą. Potem dodaj dwa zapisy 1234,56 z różnymi separatorami grup i porównaj jawne reguły WARTOŚĆ.LICZBOWA. Najważniejszą częścią ćwiczenia jest uzasadnienie decyzji, zanim zniknie oryginalny tekst.
Najważniejsze w pigułce
Czy WARTOŚĆ wyciągnie liczbę z dowolnego opisu?
Nie. Tekst musi mieć format rozpoznawany przez Excel. Opisy z jednostkami wymagają osobnej reguły przygotowania.
Jak jawnie ustawić separatory importu?
Użyj WARTOŚĆ.LICZBOWA z separatorem dziesiętnym i separatorem grup zgodnymi z formatem źródła.
Czy kody z zerami wiodącymi konwertować na liczby?
Zachowaj je jako tekst, jeśli zera są częścią identyfikatora. Konwersja może usunąć istotny zapis.
Przy pracy nad artykułem użyto w zautomatyzowany sposób sztucznej inteligencji. Jeśli też chcesz tak umieć, sprawdź ten projekt.
