Převod textu na čísla

Ve výchozím nastavení Calc převede text v buňkách na příslušné číselné hodnoty, pokud lze provést jednoznačný převod. Pokud převod možný není, vrátí Calc chybu #VALUE!

Převáděny jsou pouze celá čísla včetně exponentů a data a časy podle ISO 8601 ve svých rozšířených formátech s oddělovači. Cokoliv jiného, například zlomky s desetinnými oddělovači nebo jiná data než podle ISO 8601, převáděno není, protože by textový řetězec závisel na národním prostředí. Bílé znaky na začátku a na konci jsou ignorovány.

Převáděny jsou následující formáty podle ISO 8601:

Kód století CC nelze vynechat. Místo oddělovače data a času T smí být použita právě jedna mezera.

Je-li zadáno datum, musí se jednat o platné datum gregoriánského kalendáře. Volitelný čas musí být v tomto případě v rozmezí 00:00 až 23:59:59.99999...

Je-li zadán pouze řetězec pro čas, hodnota hodin může být větší než 24, ale minuty a sekundy mohou dosáhnout maximálně hodnoty 59.

note

Převod se provádí pouze pro jednotlivé skalární hodnoty, nikoli v rámci rozsahů.


Převod se provádí pouze pro jednotlivé skalární hodnoty jako v =A1+A2 nebo ="1E2"+1. Netýká se argumentů oblasti buněk, proto se bude SUM(A1:A2) lišit od A1+A2, jestliže aspoň jedna z obou buněk obsahuje řetězec, který může být převeden.

Převáděny jsou také řetězce ve vzorcích, například ="1999-11-22"+42 vrátí datum následující 42 dnů po 22. prosinci 1999. Výpočet vzorce, který obsahuje řetězec s datem v místním nastavení, vrátí chybu. Pro automatický převod tak nemůže být použit například řetězec "11/22/1999" nebo "22.11.1999".

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".


Příklad

Do A1 zadejte text '1e2 (který se vnitřně převede na číslo 100).

Do A2 zadejte =A1+1 (což vede ke správnému výsledku 101).

Vzorec =SUM(A1:A2), vrátí 101 místo 201, protože se konverze neprovádí na oblast, ale na jednotlivé skalární hodnoty. Zde je '1e2 bráno jako řetězec s hodnotou 0 pro funkci SUM.

=SUM("1E2";1) vrátí #VALUE!, protože SUM() a některé další funkce, které iterují početní sekvence, výslovně kontrolují typ argumentu.

Změna výchozího nastavení převodu textu na číslo

Převod textu na čísla se nastavuje ve volbě Podrobné nastavení výpočtů.