2015-10-30 4 views
2

У меня есть данные из двух источников, которые я пытаюсь совместить по дате/времени. Проблема в том, что я не получаю матч. Поэтому я преобразовал дату/время в Джулиана и столкнулся с чем-то странным.Excel date - 8/11/2015 6: 50: 22.000 = 8/11/2015 6: 50: 22.000 = FALSE? Что здесь происходит?

8/11/2015 6:50:22.000 42227.2849768518 
8/11/2015 6:50:22.000 42227.2849768519 

Я никогда не видел этого раньше, и я не знаю, как это происходит. Единственное, что я могу думать, это то, что дата/время, как изначально созданное и введенное в исходные файлы excel, было точной до этой цифры? Если это так, как мне заставить excel действовать, как два значения одинаковы? Нужно ли мне преобразовать все значения Date/Time в Number и удалить эту десятую цифру вправо и ограничить значения до девяти цифр справа? Сколько цифр мне нужно хранить, чтобы поддерживать точность во втором?

+1

Вы забыли о миллисекундах. –

+0

Шесть D.P. должно быть достаточно. – pnuts

+1

* Конвертация * на номер не требуется, BTW. Значения DateTime в Excel фактически представляют собой числа с плавающей запятой с примененным форматированием. Целочисленная часть числа - дни с 1/1900, а десятичная часть - дробные части дня (1 секунда = 1 день/24 * 60 * 60 или 1/86400). Таким образом, вы можете просто использовать их в качестве чисел уже без преобразования и проверить разницу между ними, чтобы убедиться, что она находится в пределах приемлемой разницы, чтобы определить равенство. –

ответ

0

Третье число после запятой соответствует точности 1,15741e-8 дней, поэтому, если АБСОЛЮТНАЯ ЗНАЧЕНИЕ разницы между ним и сравниваемой стоимостью меньше 5.78705e-9, то это соответствует вашим требованиям точности.

что-то вроде

=ABS(time1 - time2) < 5.78705e-9 

должен сделать трюк, возвращая TRUE, если два значения считаются «достаточно близко, чтобы быть классифицирован как то же самое для моих целей» и FALSE, если они достаточно различны.

 Смежные вопросы

  • Нет связанных вопросов^_^