Я столкнулся с причудливой проблемой при создании простой сводной таблицы в Excel. Вот мои данные: я создал простую таблицу со столбцом C, содержащим значения в A, разделенные на значения в B. Я включил формулу в столбец D просто для ясности.

Теперь вот странная вещь - когда я строю сводную таблицу из Col C, я получаю две версии числа 6:

Это безумие! Почему Excel не объединил обе «версии» числа 6 в одну строку? Я сделал еще несколько тестов: isnumber() возвращает true для обоих 6s, и даже тест на эквивалентность (= ' 1st 6 ' = ' 2nd 6 ') также возвращает true! Почему Excel не суммирует эти идентичные значения в сводной таблице?

Я предполагаю, что это как-то связано с тем, что 1.2 / 0.2 возвращает число с плавающей запятой, а 12/2 возвращает целое число (как это может быть в python), но в Excel нет ничего, что могло бы сказать мне, с какими типами данных я имею дело. Возможно, ошибка округления? И если две шестерки не совпадают, почему мой тест эквивалентности возвращает true?

Если я преобразую две 6 в целые числа, то сводная таблица возвращает ожидаемые результаты. Тем не менее, я не верю, что мне нужно это делать, и большинство пользователей тоже не ожидают этого. Что тут происходит? Ожидаемое поведение или ошибка?

1 ответ1

1

Если вы преобразуете столбец C в целое число с помощью функции INT , то сводная таблица генерируется так, как вы ожидаете. Это проблема с плавающей запятой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .