Страницы: 1
RSS
Присвоение по предыдущей и будущей (или последней актуальной) датам
 
Добрый день.

Помогите, пожалуйста, не могу найти решение.

Есть файл1, который содержит:
1) номер тендерного конкурса
2) дату завершения этого конкурса
3) код товара (ТРУ SAP), который закупался.

Есть файл2, который содержит
1) Код товара (Код ТРУ SAP)
2) историю цен
3) дату этих исторических цен

Нужно:
в файл1 из файл2 по коду товара и дате завершения конкурса присвоить:
1) предыдущую цену и ее дату
2) следующую (или если ее нет, последнюю) цену и ее дату.

Приложил пример с примером файл1 и файл2, а также необходимый результат с ссылками.

Буду дико благодарен за оказанную помощь.
Изменено: adike - 27.01.2020 12:38:01
 
Вы бы выложили оба файла строк на 20-30 в реальной структуре....
 
У меня получилось реализовать подобным образом:

предыдущая дата:
=ИНДЕКС($M$3:$M$44;ПОИСКПОЗ(МАКСЕСЛИ($M$3:$M$44;$K$3:$K$44;$D20;$M$3:$M$44;"<"&$C20);$M$3:$M$44;0))

предыдущая цена:
=ИНДЕКС($L$3:$L$44;ПОИСКПОЗ(МАКСЕСЛИ($M$3:$M$44;$K$3:$K$44;$D20;$M$3:$M$44;"<"&$C20);$M$3:$M$44;0))

следующая дата(или последняя если следующей нет):
=ЕСЛИОШИБКА(ИНДЕКС($M$3:$M$44;ПОИСКПОЗ(МИНЕСЛИ($M$3:$M$44;$K$3:$K$44;$D20;$M$3:$M$44;">="&$C20);$M$3:$M$44;0));ИНДЕКС($M$3:$M$44;ПОИСКПОЗ(МАКСЕСЛИ($M$3:$M$44;$K$3:$K$44;$D20);$M$3:$M$44;0)))

следующая цена(или последняя если следующей нет):
=ЕСЛИОШИБКА(ИНДЕКС($L$3:$L$44;ПОИСКПОЗ(МИНЕСЛИ($M$3:$M$44;$K$3:$K$44;$D20;$M$3:$M$44;">="&$C20);$M$3:$M$44;0));ИНДЕКС($L$3:$L$44;ПОИСКПОЗ(МАКСЕСЛИ($M$3:$M$44;$K$3:$K$44;$D20);$M$3:$M$44;0)))


Но данный вариант будет работать только на версиях эксель 2016+
Уверен, что есть варианты проще) может гуру подскажут))
 
Большое спасибо, но у меня нет офис365, а значит нет и максесли (((.
Но офис2016 стоит.
Изменено: adike - 27.01.2020 13:26:53
 
Тогда:

предыдущая дата:
=МАКС(ЕСЛИ(($M$4:$M$44<$C20)*($K$4:$K$44=$D20);$M$4:$M$44))

предыдущая цена:
=ПРОСМОТР(2;1/(($K$4:$K$44=$D20)*($M$4:$M$44=$E20));$L$4:$L$44)

следующая дата(или последняя если следующей нет):
=ЕСЛИ(МИН(ЕСЛИ(($M$4:$M$44>C20)*($K$4:$K$44=$D20);$M$4:$M$44))=0;МАКС(ЕСЛИ(($M$4:$M$44<=C20)*($K$4:$K$44=$D20);$M$4:$M$44));МИН(ЕСЛИ(($M$4:$M$44>C20)*($K$4:$K$44=$D20);$M$4:$M$44)))

следующая цена(или последняя если следующей нет):
=ПРОСМОТР(2;1/(($K$4:$K$44=$D20)*($M$4:$M$44=$G20));$L$4:$L$44)

формулы массива (ctrl+shift+enter)

PS:

за 2 и 4 формулы спасибо
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=124972&...
Страницы: 1
Наверх