Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Поиск и подстановка значения даты по нескольким параметрам при условии неточного совпадения искомой даты с датой в диапазоне поиска, За сложным названием кроется еще более сложная задача
 
Доброго времени суток уважаемые Форумчане!!!

Много лет читаю форум, являюсь пользователем PLEX и вот, наконец то, столкнулся с задачей, которую не могу решить самостоятельно. На работе столкнулся с нетипичной задачей. Для упрощения опишу ее понятными всем терминами, чтобы не вдаваться в специфику работы (см. примечание):

Вводные данные:
  1. Есть агенты за которыми закреплены магазины в определенных городах и странах (вкладка "Агенты")
  2. Зоны ответственности агентов не пересекаются (т.е. каждый агент отвечает за свои магазины в своей стране)
  3. Агенты периодически посещают свой магазин (вкладка "визиты агентов")
  4. Данные по визитам записываются, но в таблице виден лишь первый день визита агента и продолжительность визита
  5. Визит может быть 1 или 2-х дневный
  6. Во время любого из дней визита агент должен подтвердить (верифицировать) данные по магазину в базе данных
  7. В базе автоматически фиксируется дата действия агента, имя агента, название магазина по которому верифицируется данные ("вкладка результаты визитов")
  8. Некоторые агенты не успевают сделать верификацию во время визита в магазин и делают ее позже (например от 3 до 25 дней)
  9. У меня есть три таблицы с этими данными
  10. Нужно в таблице "результаты визитов" установить дату визита агента в данный магазин
Файл с примером во вложении. Я его создавал по образу реальной задачи, но в настоящей списке около 100 000 строк с документальным следом. Там около 30% агентов делали верификацию не в срок и мне нужно понять какая была дата визита в каждом конкретном магазине. Учитывая, что я создавал файл сам и задавал интервалы для ошибок, то в файле есть лист с ответами для того, чтобы вам можно было ориентироваться на предмет правильности ответа. Это при условии если кто-то дочитал до этого места и не потерял желание посмотреть и решить задачу :D.

Мои действия по решению задачи.
Даты визитов с верификацией в день однодневного визита срок вычислялись легко и быстро. Я вставил дополнительный столбец "помощник" и функцию СЦЕПИТЬ для имени агента и дату верификации. А также сделал это в таблице визитов. Функция ВПР сделала работу для точных совпадений. Остался список где есть верфикация не в первый день визита или не в срок и вот тут я "въехал в пень". Не могу сообразить как реализовать поиск по сложному условию (дата по которой ведется поиск плавающая). Частично решил задачу для 2 дневных визитов, но с ошибками и решил идти к вам за помощью.

Примечание: Если сильно любопытно, то я могу в e-mail рассказать реальные вводные задачи тому кто мне поможет с таблицей. Магазинами в реальности и не пахнет да и коммерческого интереса в этой задаче нет. Просто это одна из нетипичных задач с которыми я сталкиваюсь довольно часто. Задача возникла впервые и не факт, что будет повторяться. Именно поэтому выкладываю ее сюда, а не в предложение работы.

Спасибо вам за терпение (даже если вы просто прочитали этот текст) ну и отдельное спасибо за любую помощь. Мне, честно говоря, достаточно будет общего направления для понимания решения...Хотелось бы обойтись без макросов (если это конечно возможно)

С уважением,
Олег
Страницы: 1
Наверх