Сравнение данных в двух столбцах с «<>» возвращает расхождение, в то время как значения фактически равны. Форматирование? - PullRequest
0 голосов
/ 03 августа 2020

Это не основной c вопрос .

Есть два файла Excel, созданные из двух разных систем (я не могу поделиться ими здесь).

Я сравниваю два столбца, которые содержат десятичные значения от 0,001 до 0,1.

Данные загружаются в массивы и сравниваются от ввода к записи с:

 If arrayA(row, col) <> arrayB(row, col) then
    ' we know it's a discrepancy
 End If

Это, однако, возвращает это для пример 0,035 не равно 0,035.

Я тестировал несколько вещей:

  1. Я создал две НОВЫЕ РАБОЧИЕ ТНИКИ, скопировал каждый набор данных и вставил в качестве значений в новые книги. Это не помогло, снова равные значения распознаются как несоответствия.

  2. Я попытался выбрать набор данных и использовать «Очистить> Все форматирование», однако это также не сработало.

  3. Я также попытался выбрать оба столбца и изменить тип данных на тот же в обоих столбцах «Число, Общие, Текст» - происходило то же самое.

Теперь удивительно, что сработало :

Если бы я создал «вспомогательный столбец» и просто умножил значения на 100, а затем скопировал их, вставил как значения для удаления формул. Затем я разделил их в другом вспомогательном столбце на 100, скопировал и вставил как значения для удаления формул. Затем вставил эти значения обратно в исходный столбец, который сравнивался - НА ЭТОЙ РАЗ КОД определил, что 0,035 было равно 0,035, а 0,3 было равно 0,3 et c. Итак, это сработало.

Я понимаю, что использование просто «<>» непосредственно для двух записей сравнивает их с использованием двоичного метода (наиболее точного), однако у меня не было идей, почему это

Можно подумать, что если вы скопируете и вставите как значения ИЛИ очистите форматирование из обоих наборов данных, он должен работать, но это не так.

Я был бы признателен за любые идеи.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...