Konwertowanie tekstu do liczb

Domyślne ustawienia programu Calc konwertują tekst w komórkach na odpowiednie wartości liczbowe, jeśli możliwa jest jednoznaczna konwersja. Jeśli konwersja nie jest możliwa, program Calc zwraca błąd #VALUE!.

Konwertowane są tylko liczby całkowite, w tym wykładnik, oraz daty i godziny ISO 8601 w ich rozszerzonych formatach z separatorami. Wszystko inne, jak liczby ułamkowe z separatorami dziesiętnymi lub daty inne niż ISO 8601, nie jest konwertowane, ponieważ ciąg tekstowy byłby zależny od ustawień regionalnych. Początkowe i końcowe spacje są ignorowane.

Konwersja jest możliwa dla następujących formatów ISO 8601:

Nie można pominąć wieku, WW. Zamiast separatora daty i godziny T można użyć dokładnie jednej spacji.

Podana data musi być prawidłową datą z kalendarza gregoriańskiego. W takim przypadku opcjonalna wartość godziny musi być z zakresu od 00:00 do 23:59:59.99999...

Po podaniu tylko ciągu z datą wartość godzin może być wyższa niż 24, ale maksymalna wartość minut i sekund to 59.

note

Konwersja jest wykonywana tylko dla pojedynczych wartości skalarnych, a nie w zakresach.


Konwersja jest wykonywana dla pojedynczych wartości skalarnych, jak w przypadku =A1+A2, or ="1E2"+1. Nie ma to wpływu na argumenty zakresu komórek, więc SUM(A1:A) różni się od A1+A2, jeśli co najmniej jedna z dwóch komórek zawiera ciąg konwertowalny.

Konwersji podlegają także ciągi tekstowe wewnątrz formuł, takie jak ="1999-11-22"+42. Formuła ta zwraca datę występującą 42 dni po 22 listopada 1999 r. Obliczenia, w których wewnątrz formuły występują zlokalizowane daty zapisane jako ciąg tekstowy, zwracają błąd. Na przykład zlokalizowany ciąg z datą "11/22/1999" lub "22.11.1999" nie może być wykorzystany do automatycznej konwersji.

warning

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


Przykład

W komórce A1 wpisz tekst '1e2 (który jest wewnętrznie konwertowany na liczbę 100).

W A2 wpisz =A1+1 (co poprawnie daje 101).

Formuła =SUM(A1:A2) zwraca 101 zamiast 201, ponieważ konwersja nie zachodzi w zakresie, tylko dla pojedynczych wartości skalarnych. Tutaj '1e2 jest traktowane jako ciąg znaków, który jest ignorowany przez funkcję SUM.

=SUM("1E2";1) zwraca #VALUE! ponieważ SUM() i niektóre inne, które iterują po sekwencjach liczb, jawnie sprawdzają typ argumentu.

Zmiana domyślnych ustawień konwersji tekstu na liczby

Konwersję tekstu na liczby można dostosować w opcji Szczegółowe ustawienia obliczeń.