Поиск / Индекс / Соответствие - PullRequest
0 голосов
/ 19 сентября 2019

Критерии поиска:

  1. Период полиса различен для разных дилеров.У каждого дилера есть свой период полиса.
  2. На основе даты потери мне необходимо выяснить, к какому периоду относится эта потеря.

Набор данных:

Это файл, в котором мне нужно обновить период и год

Result Table1a

Еще один файл, в котором содержатся сведения о периоде начала и окончания политики, а также о каком году.это подпадает под.Период начала политики различен для разных OEM.На основе даты потери нам нужно выяснить, к какому периоду относится дата потери.

Data Table

Пробовал с использованием функций Index, Match и Lookup.

=INDEX(PeriodLookup[[#All],[OEM]:[Policy Year]],MATCH([@[OEM Name** Updated]],PeriodLookup[[#All],[OEM]],0),MATCH(Attach_C[[#All],[Date of Loss]],PeriodLookup[[#All],[Effective]],1))

Вот ожидаемый результат:

enter image description here

1 Ответ

0 голосов
/ 23 сентября 2019

Предположим, у вас есть следующие именованные диапазоны :

  • OEM , являющийся столбцом OEM в таблице PeriodLookup;
  • Действительный - столбец Effective в таблице PeriodLookup;
  • Policy_Period - столбец Policy Period в таблице PeriodLookup.

Подход 1: Найти Year в отсортированных данных

Если ваши данные были сгруппированы по имени и отсортированы по дате от наименьшего доНаибольший (что важно), вы можете использовать VLOOKUP , чтобы найти ближайшую дату вступления в силу в диапазоне отфильтрованный , используя функцию IF , а затем использовать YEARФункция для определения года вступления в силу.Вот формула, которую нужно поместить в ячейку D2, чтобы найти Год :

{=IFERROR(YEAR(VLOOKUP(B2,IF(OEM=C2,Effective),1,1)),"NA")}

Подход 2 : Найти Year в случайном порядкеdata

Если ваши данные упорядочены случайным образом, вы можете использовать функцию AGGREGATE , чтобы сначала отсортировать отфильтрованный диапазон дат Effective , а затем использовать INDEX+ MATCH чтобы вернуть ближайшее совпадение из диапазона.Следующая формула массива вернет NA, если совпадений нет.

{=IFERROR(YEAR(INDEX(AGGREGATE(15,6,IF(OEM=C2,Effective),ROW($A$1:INDEX($A:$A,ROWS(OEM)))),MATCH(B2,AGGREGATE(15,6,IF(OEM=C2,Effective),ROW($A$1:INDEX($A:$A,ROWS(OEM)))),1))),"NA")}

Как только Year известен, вы можете использовать INDEX + MATCH для возвратасоответствующий период политики в другом фильтрованном диапазоне.Вот формула, которую нужно поместить в ячейку E2, чтобы найти Период :

{=IFERROR(INDEX(Policy_Period,MATCH(D2,IF((OEM=C2),YEAR(Effective)),0)),"")}

Просто напоминание, все используемые формулы Формула массива поэтому вам нужно нажать Ctrl + Shift + Введите в строке формулы после ввода формулы, в противном случае она не вернет правильный результат.Затем вы можете перетащить их вниз, чтобы применить к доске.

Снимок экрана для Подход 1

Example1

Скриншот для Подход 2

Example2

Дайте мне знать, если у вас есть какие-либо вопросы.Ура:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...