#excel
#excel
Вопрос:
Если я ввожу = числовое значение (4), я получаю неудивительный результат «4», если я ввожу = числовое значение («m»), я получаю неудивительный результат «#value!», если я ввожу = числовое значение («.»), я получаю неудивительный результат «#value!» если я введу =numbervalue(«,»), я получу очень неожиданный результат «0». Почему это так и есть ли другие символы, которые это делают?
Комментарии:
1. Я предполагаю, что это потому, что запятая в ваших региональных настройках является разделителем групп. Они игнорируются
NUMBERVALUE
(если они не отображаются после десятичного символа).2. ^^^ как описано в документации
3. Вашим регионом может быть Испания или некоторые европейские страны измените это на Индию или США
4. Мои региональные настройки — обычные для США, но это все равно не объясняет, почему оно преобразуется в число. Пример в документации не преобразует запятую в арабскую цифру с нулевым символом. Как оказалось, функция double dash выполняет по существу то же самое, что и numbervalue , но правильно распознает запятую как не-число. Чтобы было понятно, функция numbervalue в моем примере обрабатывает запятую не как разделитель, а как число ноль (0).
5. Да, но поскольку он игнорирует разделитель, остальная часть ячейки вычисляется как нулевая строка
""
. Согласно документации, a""
будет равно нулю.
Ответ №1:
Из документов
Если аргументы Decimal_separator и Group_separator не указаны, используются разделители из текущей локали.
Вы заявляете, что используете настройки США. Поэтому ваш разделитель групп ,
Если разделитель групп встречается перед десятичным разделителем в текстовом аргументе, разделитель групп игнорируется.
Поэтому, как единственный символ в строке, ,
он игнорируется. Это оставляет вас с пустой строкой
Если в качестве текстового аргумента указана пустая строка («»), результат равен 0.
Итак, как и ожидалось =numbervalue(",")
, возвращает 0