Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Найти значение из одной таблицы в другой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Найти значение из одной таблицы в другой
bagraart Дата: Вторник, 21.01.2025, 20:30 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем привет

На странице в прикрепленном файле две таблицы. Одна - А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 - хотя формально это дата ближайшая, но в меньшую сторону.
В общем получиться должно так на выходе:

Дата отгрузки Номер клиента Дата доставки ближайшая к дате отгрузки

29.12.2024 IL534496 03.01.2025
01.01.2025 l5u79684 03.01.2025
07.01.2025 IL534496 08.01.2025
09.01.2024 IL534496 10.01.2025

Как это сделать средствами формулы эксель? Можно? Буду благодарен за любую обратную связь. Хорошего вечера и заранее спасибо
К сообщению приложен файл: 2518840.xlsx (263.4 Kb)
 
Ответить
СообщениеВсем привет

На странице в прикрепленном файле две таблицы. Одна - А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 - хотя формально это дата ближайшая, но в меньшую сторону.
В общем получиться должно так на выходе:

Дата отгрузки Номер клиента Дата доставки ближайшая к дате отгрузки

29.12.2024 IL534496 03.01.2025
01.01.2025 l5u79684 03.01.2025
07.01.2025 IL534496 08.01.2025
09.01.2024 IL534496 10.01.2025

Как это сделать средствами формулы эксель? Можно? Буду благодарен за любую обратную связь. Хорошего вечера и заранее спасибо

Автор - bagraart
Дата добавления - 21.01.2025 в 20:30
Hugo Дата: Вторник, 21.01.2025, 21:11 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3714
Репутация: 795 ±
Замечаний: 0% ±

365
ИНДЕКС и ПОИСКПОЗ в зубы и вперед, все просто.
- если даты доставки отсортированы в порядке возрастания, и нет наложений доставок то всё так и есть, просто.
ПОИСКПОЗ() найдёт строку где совпадает клиент, и дата доставки больше или равна дате отгрузки. И в ИНДЕКС её.
P.S. ан не, вот как раз есть накладка, последнему тянет то, что уже использовано выше, но тут я бы и поспорил что именно привезли 03.01.2025 - отправленное в январе или декабре? Хорошо что в примере перепутали год ))

Код
=ИНДЕКС($E$2:$E$10521;ПОИСКПОЗ(1;($F$2:$F$10521=B2)*($E$2:$E$10521>=A2);0);1)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Вторник, 21.01.2025, 21:21
 
Ответить
Сообщение
ИНДЕКС и ПОИСКПОЗ в зубы и вперед, все просто.
- если даты доставки отсортированы в порядке возрастания, и нет наложений доставок то всё так и есть, просто.
ПОИСКПОЗ() найдёт строку где совпадает клиент, и дата доставки больше или равна дате отгрузки. И в ИНДЕКС её.
P.S. ан не, вот как раз есть накладка, последнему тянет то, что уже использовано выше, но тут я бы и поспорил что именно привезли 03.01.2025 - отправленное в январе или декабре? Хорошо что в примере перепутали год ))

Код
=ИНДЕКС($E$2:$E$10521;ПОИСКПОЗ(1;($F$2:$F$10521=B2)*($E$2:$E$10521>=A2);0);1)

Автор - Hugo
Дата добавления - 21.01.2025 в 21:11
bagraart Дата: Вторник, 21.01.2025, 21:45 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Hugo, Благодарю вас. Почти. В последней строке только выдает не то, что мне нужно. Почему, не подскажите?
К сообщению приложен файл: kopija_primer.xlsx (263.9 Kb)
 
Ответить
СообщениеHugo, Благодарю вас. Почти. В последней строке только выдает не то, что мне нужно. Почему, не подскажите?

Автор - bagraart
Дата добавления - 21.01.2025 в 21:45
bagraart Дата: Вторник, 21.01.2025, 21:48 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
аааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?
 
Ответить
Сообщениеаааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?

Автор - bagraart
Дата добавления - 21.01.2025 в 21:48
bagraart Дата: Вторник, 21.01.2025, 21:48 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
аааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?
 
Ответить
Сообщениеаааа, год перепутал. Простите, не дочитал комментарий до конца. Год поправил и все получилось. А что будет, если даты будут не отсортированы а хаотично разбросаны?

Автор - bagraart
Дата добавления - 21.01.2025 в 21:48
Hugo Дата: Вторник, 21.01.2025, 23:29 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3714
Репутация: 795 ±
Замечаний: 0% ±

365
А что будет, если даты будут не отсортированы а хаотично разбросаны?
- эта формула возьмёт то что подойдёт первым под условия.
Если обновиться до последних версий - то можно прямо в формуле отсортировать по датам по взрастанию, и тогда будет ОК.
Почти. Потому что как побороть эту накладку что один номер заказал вчера и сегодня, и оно всё пока ещё едет - не знаю.
В макросе/UDF можно делать. Но UDF проще сделать массивную, одну сразу на все данные, а это удобнее применять в версиях с динамическими диапазонами, так что для Вас оптимальнее макрос. Если будет бардак с датами и отгрузками.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Вторник, 21.01.2025, 23:50
 
Ответить
Сообщение
А что будет, если даты будут не отсортированы а хаотично разбросаны?
- эта формула возьмёт то что подойдёт первым под условия.
Если обновиться до последних версий - то можно прямо в формуле отсортировать по датам по взрастанию, и тогда будет ОК.
Почти. Потому что как побороть эту накладку что один номер заказал вчера и сегодня, и оно всё пока ещё едет - не знаю.
В макросе/UDF можно делать. Но UDF проще сделать массивную, одну сразу на все данные, а это удобнее применять в версиях с динамическими диапазонами, так что для Вас оптимальнее макрос. Если будет бардак с датами и отгрузками.

Автор - Hugo
Дата добавления - 21.01.2025 в 23:29
bagraart Дата: Среда, 22.01.2025, 06:48 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 31
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Hugo, понял. Спасибо. А не подскажите, как этот макрос написать?
 
Ответить
СообщениеHugo, понял. Спасибо. А не подскажите, как этот макрос написать?

Автор - bagraart
Дата добавления - 22.01.2025 в 06:48
Hugo Дата: Среда, 22.01.2025, 09:54 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3714
Репутация: 795 ±
Замечаний: 0% ±

365
bagraart, подскажу.
Берёте клавиатуру, и пишите.
Но сперва нужно научиться.
Советую сразу читать про работу с массивами и словарями.
А пока сортируйте данные и используйте что есть.
Для подстраховки и выявления случаев накладки отгрузок можно рядом протянуть счётесли() или УФ настроить чтоб повторы подсвечивались, и их уже глазом проверите всё ли верно подтянулось.
Воообще в этой задаче беда данных - по нормальному у каждого кейса должен быть ID, и тогда тут и вопроса бы не было, банально решалось с ВПР()


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщениеbagraart, подскажу.
Берёте клавиатуру, и пишите.
Но сперва нужно научиться.
Советую сразу читать про работу с массивами и словарями.
А пока сортируйте данные и используйте что есть.
Для подстраховки и выявления случаев накладки отгрузок можно рядом протянуть счётесли() или УФ настроить чтоб повторы подсвечивались, и их уже глазом проверите всё ли верно подтянулось.
Воообще в этой задаче беда данных - по нормальному у каждого кейса должен быть ID, и тогда тут и вопроса бы не было, банально решалось с ВПР()

Автор - Hugo
Дата добавления - 22.01.2025 в 09:54
_Boroda_ Дата: Среда, 22.01.2025, 09:57 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16768
Репутация: 6551 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
bagraart, правильно ли я понимаю, что если для клиента IL534496 (доставка 31/12, 03/01 и 08/01) есть 4 запроса с датами отгрузки, например, 29/12, 05/01, 31/12, 30/12 (обратите внимание, даты отгрузки не по порядку), то ответ в столбце С должен быть 31/12, 08/01, пусто, 03/01? Или как-то еще?

Еще вопросы:
Может ли у одного клиента быть несколько доставок в один день? Может ли у одного клиента быть несколько отгрузок в один день?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеbagraart, правильно ли я понимаю, что если для клиента IL534496 (доставка 31/12, 03/01 и 08/01) есть 4 запроса с датами отгрузки, например, 29/12, 05/01, 31/12, 30/12 (обратите внимание, даты отгрузки не по порядку), то ответ в столбце С должен быть 31/12, 08/01, пусто, 03/01? Или как-то еще?

Еще вопросы:
Может ли у одного клиента быть несколько доставок в один день? Может ли у одного клиента быть несколько отгрузок в один день?

Автор - _Boroda_
Дата добавления - 22.01.2025 в 09:57
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!