Страницы: 1
RSS
Почему после вычислений не совпадает Дата + Время
 
Добрый день! Коллеги, столкнулся с непонятной для меня проблемой. Пример во вложении.

В столбце B московское дата+время из столбца A переводится в уральское с округлением вниз до получаса. По получившемуся времени в столбце C происходит поиск показателя в другой таблице через ИНДЕКС + ПОИСКПОЗ, но в некоторых индервалах появляется ошибка #Н/Д. Однако, если мы из таблицы с показателем с помощью ВПР с интервальным просмотром подтянем дату + время, а затем по этой дате время через ИНДЕКС + ПОИСКПОЗ точно также выполним поиск показателя, то ошибок не будет. Можно предположить, что ошибка может быть в преобразовании московского времени в уральское, но время в столбцах B и D одинаковое.

Не понимаю почему так происходит.
 
я не знаю, на каком моменте возникает неточность измерений в Вашей формуле, но вот такой вариант с округлением у меня сработал:
Код
=ОКРУГЛВНИЗ([@[Время МСК]]*48;0)*(0,5/24)+2/24
Изменено: Vladimir Chebykin - 22.11.2019 09:41:26
 
Murderface_, может есть смысл округлить до шести знаков
типа так(массивная):
Код
=ИНДЕКС(Таблица1[Показатель];ПОИСКПОЗ(ОКРУГЛ([@[Время Уральское]];6);ОКРУГЛ(Таблица1[Дата + время];6);0))
 
artyrH, Vladimir Chebykin,спасибо вам, работает. Но я по прежнему не могу понять, почему Excel при сравнении 2х дат в столбцах B и D выдает ИСТИНА в столбце E.
 
Murderface_, может дело в интервальном просмотре
так, например, тоже работает
Код
=ИНДЕКС(Таблица1[Показатель];ПОИСКПОЗ([@[Время Уральское]];Таблица1[Дата + время];1))

а впр так не работает
Код
=ВПР([@[Время Уральское]];Таблица1[Дата + время];1;0)
 
 
artyrH, так если даты одинаковы и при их сравнении ИСТИНА, то почему по одной дате ПОИСКПОЗ работает, а по другой нет?)
 
Я уверен, это типичная проблема округления в эксель с плавающей запятой. Вот в этой  теме в сообщении №7 очень уважаемый ZVI точно описал проблематику, пересекающейся с Вашим вопросом. Кстати в XML первоначальное число с округлением из ячейки B2 записано как: 43783.604166666672, а значение из таблицы "показатель" оно же: 43783.604166666664. В каком же моменте возникает эта неточность при расчетах? Вот в этом моменте: когда вы произвели округление на этой стадии:
Код
=ОКРУГЛВНИЗ([@[Время МСК]]*48;0)

у Вас на выходе получается четное либо нечетное число. Далее вы делите результат на 48, сократив выражение (0,5/24) - оно в моей формуле тоже присутствует и именно в таком виде. Так вот, когда нечетное (округленное число) делим на 48 - получаем один результат, а когда нечетное * на 0,5/24 - получаем другой. А дальше уже возникает проблема с плавающей запятой в экселе
Изменено: Vladimir Chebykin - 22.11.2019 11:24:50
 
Vladimir Chebykin, спасибо за объяснение.
Страницы: 1
Наверх