Содержимое

# Преобразование текста в числа

Параметры Calc по умолчанию преобразуют текст внутри ячеек в соответствующие числовые значения, если однозначное преобразование возможно. Если же преобразование невозможно, Calc возвращает ошибку #ЗНАЧ!.

Преобразуются только целые числа, включая экспоненту, а также значения даты и времени по стандарту ISO 8601 в расширенных форматах с разделителями. Прочие значения, включая дробные числа с десятичными разделителями или даты не соответствующие стандарту ISO 8601, не преобразуется, поскольку текстовая строка будет зависеть от локали. Начальные и конечные пробелы игнорируются.

Преобразуются следующие форматы стандарта ISO 8601:

- CCYY-MM-DD

- CCYY-MM-DDThh:mm

- CCYY-MM-DDThh:mm:ss

- CCYY-MM-DDThh:mm:ss,s

- CCYY-MM-DDThh:mm:ss.s

- hh:mm

- hh:mm:ss

- hh:mm:ss,s

- hh:mm:ss.s

Код века (CC) можно опустить. Вместо разделителя даты и времени "Т" можно ввести один пробел.

Если дата определена, то она должна соответствовать григорианскому календарю. В этом случае время (необязательный параметр) должно указываться в диапазоне от 00:00 до 23:59:59,99999…

Если определена только строка времени, то в ней может содержаться значение часов, превышающее 24, тогда как для минут и секунд максимальным значением является 59.

Преобразование выполняется только для одиночных скалярных величин, а не для диапазонов.

Преобразование выполняется только для одиночных аргументов, например, =A1+A2 или ="1E2"+1. Аргументы диапазонов ячеек не изменяются, поэтому значение СУММ(A1:A2) отличается от A1+A2, если хотя бы в одной из двух ячеек содержится строка, которая может быть преобразована.

Строки в формулах также преобразуются, например, в формуле ="1999-11-22"+42, которая возвращает дату через 42 дня после 22 ноября 1999 года. При вычислении формул, в которых локализованные даты указываются в виде текстовой строки, возвращается ошибка. Например, для автоматического преобразования нельзя использовать локализованные строки даты: "11/22/1999" или "22.11.1999".

При использовании функций, один или несколько аргументов которых являются строками поиска с регулярными выражениями, сначала выполняется попытка преобразовать строку поиска в число. Например, «.0» будет преобразовано в число 0.0 и так далее. В случае удачного поиска, сопоставление будет производиться не по регулярному выражению, а по числовому совпадению. Однако при переключении на локаль, в которой точка не является десятичным разделителем, преобразование в регулярное выражение начинает работать. Для принудительного использования регулярного выражения вместо числового, используйте выражения, которые нельзя ошибочно принять за число, например «.[0]», «.0» или «(?i).0».

## Пример

Введите текст '1e2 в ячейку A1 (во внутреннем представлении текст преобразуется в число 100).

Введите =A1+1 в ячейку A2 (будет выведен корректный результат 101).

Формула =СУММ(A1:A2) возвращает 101 вместо 201, потому что преобразование выполняется только для единичных скалярных величин, а не для диапазонов . Здесь '1e2 рассматривается в качестве строки и игнорируется функцией СУММ.

=СУММ("1E2";1) возвращает #ЗНАЧ!, потому что СУММ() и некоторые другие функции, выполняющие итерацию с последовательностями чисел, выполняют явную проверку типа аргумента.

## Изменение параметров по умолчанию преобразования текста в число

Преобразование текста в число можно настроить с помощью параметра Подробные настройки вычислений.

См. также

Подробные настройки вычислений

Форматирование чисел как текста

Ввод числа с начальными нулями

Формат - Ячейки - Числа

Форматирование чисел со знаками после запятой

Пожалуйста, поддержите нас!