2

Спасибо за проверку моего вопроса.

Сегодня я находился в Excel в поисках работы и столкнулся с некоторым аномальным поведением, связанным с арифметическими и логическими тестами Excel с плавающей точкой. Вот ссылка на сделанный мной тестовый файл Excel.

Чтобы устранить неполадки и получить более глубокое понимание, я просмотрел следующие страницы: источник 1, источник 2 - статья Чипа Пирсона о точности с плавающей точкой в Excel, а третий источник - статья Википедии о точности в Excel (не может опубликовать более 2 ссылок из-за репутации. Извините, я новичок здесь).

Суть проблемы в том, что ячейки A2:A4, A10:A12, I2:I4 и I10:I12 имеют одинаковые значения в одном и том же порядке, т. Е. A2 = I2 = A10 = I10, ..., A4 = I4 = A12 = I12. Тем не менее, логические тесты для проверки, не дают ли арифметические операции с одинаковыми значениями в разных диапазонах одинаковые результаты.

Я думал, что это из-за точности с плавающей точкой, но числа в диапазонах одинаковы. Таким образом, любая ошибка с плавающей точкой должна (я думаю) проявляться одинаково во всех диапазонах.

Наконец, все ячейки отформатированы одинаково. Так что это не должно влиять на результаты.

Если бы вы знали, что вызывает такое поведение, я бы очень хотел это услышать. Эта проблема меня ошеломила!

Я обрисовал в общих чертах точные шаги, которые я предпринял, чтобы создать файл ниже (чтобы помочь с повторяемостью в случае, если мой файл Excel не ясен).

Моя проблема заключается в следующем:

  1. Я вычислил 6600/14, 4400/14, 2200/14 и скопировал результаты в виде значений в ячейки A2:A4.
  2. Я набрал формулы для булевых тестов в ячейки A7:C7.
    2а. А7 имел «А2 = А3 + А4»
    2b. B7 имел «A3 = A2 - A4»
    2с. С7 имел «А4 = А2 - А3»
  3. Я набрал текстовые версии формул (для удобства чтения) в ячейках A6:C6
  4. Я ввел следующие формулы в ячейки A8:C8
    4а. А8 имел «А3 + А4»
    4b. У B8 был 'A2 - A4'
    4c. С8 имел «А2 - А3»
  5. Я скопировал в качестве значений и перенес результаты с A8:C8 на A10:A12.
  6. Затем я повторил шаги 2-4, используя значения в A10:A12.
  7. Введите каждую ячейку A2:A4, A10:A12 и скопируйте значение, затем вставьте его в блокнот.
  8. Я вставил эти значения в ячейки I2:I4, I10:I12
  9. Выполните логические тесты из шагов 2 - 4 для диапазонов I2:I4 и I10:I12.

1 ответ1

1

Тебе это не понравится! Каким-то образом в процессе копирования / вставки вы захватили символ новой строки и вставили его в ячейку A10 и это отбросило всю математику.

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