4

Я создаю столбец проверки для рабочего листа. Я приложил изображение того, что происходит.

  • Столбец А содержит функцию индексации и работает правильно. Формула появляется в нижней части изображения.
  • Столбец B жестко запрограммирован со значениями индекса - без функций - вырезан и вставлен из внешнего файла # 2. Этот столбец будет использоваться в качестве справочного столбца для внесения дополнительных данных в исходный документ.
  • Столбец C сравнивает значения в A/B и условно форматирует ячейку. В случае, если строка может отсутствовать в одном из двух файлов, у нас есть краткая визуальная справка о том, где списки не синхронизируются, поэтому мы можем исправить ошибку.
  • Столбец D возвращает неожиданные результаты, как вы можете видеть на прикрепленном изображении.

Вот вещи, которые я проверил:

  • Рабочий лист содержит около 3000 строк и 40 столбцов. Я работал с гораздо большими файлами раньше, без происшествий.
  • COL ABDF форматируются Number>Special>0000.00
  • Col Col, отмеченный в формуле для AB, содержит число 2 или число 3. Я попытался пересчитать после изменения формата номера с general на Number>Special>0000.00
  • Cols ABDF были расширены примерно до 20 знаков после запятой, и я не заметил ни одного .000000000001 ни в одном из значений.
  • Я обновил свои данные, поэтому все пересчитывается как текущее.
  • Cols D & F были созданы как тесты только для того, чтобы посмотреть, смогут ли они взять значения, сравнить их и получить разные результаты. Я не получил другие результаты; мой тест появляется на загруженном изображении.
  • И да, я сделал холодную перезагрузку и снова запустил Excel. :)

Есть идеи или намеки на то, что происходит или где искать, как это исправить?

1 ответ1

5

Вы можете попробовать сравнить значения в виде текстовых строк:

=IF(TEXT(E364,"0000.00")=TEXT(F364,"0000.00"),"OK","Danger Will Robinson!")

В качестве альтернативы может возникнуть проблема с точностью импортированных данных из внешнего файла. В этом случае вы можете изменить свой тест:

=IF(Abs(E364-F364)<0.00001,"OK","Danger Will Robinson!")

Второй вариант предполагает, что вы можете безопасно рассматривать числа с разницей 0,00001 как "равные". Если нет, просто увеличьте десятичные разряды в этом уравнении до макс. Я думаю, 15 цифр.

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