Почему Excel обрабатывает запятую как число?

#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