На странице в прикрепленном файле две таблицы. Одна - А1:С5, другая - Е1:F10521 В первой указаны даты отгрузки клиентам и их номер, но отсутствует дата доставки. Во второй есть дата доставки и номер клиента. Нужно подтянуть дату доставки из столбца "Е" в столбец "С" имея общим одинаковым значением НОМЕР клиента Казалось бы ВПР или ИНДЕКС и ПОИСКПОЗ в зубы и вперед, все просто. Сложность в том, что нужна дата доставки именно ближайшая к дате отгрузки, а не первая попавшаяся в массиве F. Имею ввиду следующее: клиент с номером IL534496, например, имел доставку 03/01, 08/01 и 10/01. В ячейке С2 мне нужно значение именно - 03/01 поскольку это ближайшая дата. В ячейке С4 должно вернуться значение 08/01, а в С5 = 10/01. Причем дата ближайшая именно в большую сторону. Например клиент с номером l5u79684 имел доставку 31/12, 03/01 и 08/01. В ячейку С3 должно вернуться значение 03/01, а не 31/12 - хотя формально это дата ближайшая, но в меньшую сторону. В общем получиться должно так на выходе:
Дата отгрузки Номер клиента Дата доставки ближайшая к дате отгрузки
Как это сделать средствами формулы эксель? Можно? Буду благодарен за любую обратную связь. Хорошего вечера и заранее спасибо
Всем привет
На странице в прикрепленном файле две таблицы. Одна - А1:С5, другая - Е1:F10521 В первой указаны даты отгрузки клиентам и их номер, но отсутствует дата доставки. Во второй есть дата доставки и номер клиента. Нужно подтянуть дату доставки из столбца "Е" в столбец "С" имея общим одинаковым значением НОМЕР клиента Казалось бы ВПР или ИНДЕКС и ПОИСКПОЗ в зубы и вперед, все просто. Сложность в том, что нужна дата доставки именно ближайшая к дате отгрузки, а не первая попавшаяся в массиве F. Имею ввиду следующее: клиент с номером IL534496, например, имел доставку 03/01, 08/01 и 10/01. В ячейке С2 мне нужно значение именно - 03/01 поскольку это ближайшая дата. В ячейке С4 должно вернуться значение 08/01, а в С5 = 10/01. Причем дата ближайшая именно в большую сторону. Например клиент с номером l5u79684 имел доставку 31/12, 03/01 и 08/01. В ячейку С3 должно вернуться значение 03/01, а не 31/12 - хотя формально это дата ближайшая, но в меньшую сторону. В общем получиться должно так на выходе:
Дата отгрузки Номер клиента Дата доставки ближайшая к дате отгрузки
- если даты доставки отсортированы в порядке возрастания, и нет наложений доставок то всё так и есть, просто. ПОИСКПОЗ() найдёт строку где совпадает клиент, и дата доставки больше или равна дате отгрузки. И в ИНДЕКС её. P.S. ан не, вот как раз есть накладка, последнему тянет то, что уже использовано выше, но тут я бы и поспорил что именно привезли 03.01.2025 - отправленное в январе или декабре? Хорошо что в примере перепутали год ))
- если даты доставки отсортированы в порядке возрастания, и нет наложений доставок то всё так и есть, просто. ПОИСКПОЗ() найдёт строку где совпадает клиент, и дата доставки больше или равна дате отгрузки. И в ИНДЕКС её. P.S. ан не, вот как раз есть накладка, последнему тянет то, что уже использовано выше, но тут я бы и поспорил что именно привезли 03.01.2025 - отправленное в январе или декабре? Хорошо что в примере перепутали год ))
аааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?
аааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?bagraart
аааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?
аааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?bagraart
А что будет, если даты будут не отсортированы а хаотично разбросаны?
- эта формула возьмёт то что подойдёт первым под условия. Если обновиться до последних версий - то можно прямо в формуле отсортировать по датам по взрастанию, и тогда будет ОК. Почти. Потому что как побороть эту накладку что один номер заказал вчера и сегодня, и оно всё пока ещё едет - не знаю. В макросе/UDF можно делать. Но UDF проще сделать массивную, одну сразу на все данные, а это удобнее применять в версиях с динамическими диапазонами, так что для Вас оптимальнее макрос. Если будет бардак с датами и отгрузками.
А что будет, если даты будут не отсортированы а хаотично разбросаны?
- эта формула возьмёт то что подойдёт первым под условия. Если обновиться до последних версий - то можно прямо в формуле отсортировать по датам по взрастанию, и тогда будет ОК. Почти. Потому что как побороть эту накладку что один номер заказал вчера и сегодня, и оно всё пока ещё едет - не знаю. В макросе/UDF можно делать. Но UDF проще сделать массивную, одну сразу на все данные, а это удобнее применять в версиях с динамическими диапазонами, так что для Вас оптимальнее макрос. Если будет бардак с датами и отгрузками.Hugo
bagraart, подскажу. Берёте клавиатуру, и пишите. Но сперва нужно научиться. Советую сразу читать про работу с массивами и словарями. А пока сортируйте данные и используйте что есть. Для подстраховки и выявления случаев накладки отгрузок можно рядом протянуть счётесли() или УФ настроить чтоб повторы подсвечивались, и их уже глазом проверите всё ли верно подтянулось. Воообще в этой задаче беда данных - по нормальному у каждого кейса должен быть ID, и тогда тут и вопроса бы не было, банально решалось с ВПР()
bagraart, подскажу. Берёте клавиатуру, и пишите. Но сперва нужно научиться. Советую сразу читать про работу с массивами и словарями. А пока сортируйте данные и используйте что есть. Для подстраховки и выявления случаев накладки отгрузок можно рядом протянуть счётесли() или УФ настроить чтоб повторы подсвечивались, и их уже глазом проверите всё ли верно подтянулось. Воообще в этой задаче беда данных - по нормальному у каждого кейса должен быть ID, и тогда тут и вопроса бы не было, банально решалось с ВПР()Hugo
bagraart, правильно ли я понимаю, что если для клиента IL534496 (доставка 31/12, 03/01 и 08/01) есть 4 запроса с датами отгрузки, например, 29/12, 05/01, 31/12, 30/12 (обратите внимание, даты отгрузки не по порядку), то ответ в столбце С должен быть 31/12, 08/01, пусто, 03/01? Или как-то еще?
Еще вопросы: Может ли у одного клиента быть несколько доставок в один день? Может ли у одного клиента быть несколько отгрузок в один день?
bagraart, правильно ли я понимаю, что если для клиента IL534496 (доставка 31/12, 03/01 и 08/01) есть 4 запроса с датами отгрузки, например, 29/12, 05/01, 31/12, 30/12 (обратите внимание, даты отгрузки не по порядку), то ответ в столбце С должен быть 31/12, 08/01, пусто, 03/01? Или как-то еще?
Еще вопросы: Может ли у одного клиента быть несколько доставок в один день? Может ли у одного клиента быть несколько отгрузок в один день? _Boroda_