Есть много способов сделать это - если данные сортируются сначала MarkAsofDate, а затем по дате погашения, самым простым методом будет добавить вспомогательный столбец на вкладке исходных данных - скажем, столбец E. В столбце E, начиная с E2 и скопированного вниз, введите [Предполагая, что MarkAsofDate является столбцом A & MaturityDate - столбец E]:
=IF(MONTH(B1)-MONTH(A1)=1,A1,"")
В этой колонке будет показана MarkAsO fDate для каждого элемента, у которого есть MaturityDate через месяц после MarkAsOfDate; для всех остальных строк будет отображаться «».
На вкладке «Специальные данные» используйте функцию MATCH, чтобы найти строку в столбце E, которая соответствует MarkAsOfDate текущей строки. Мы также будем использовать функцию INDEX для возврата значения из этой строки в столбец C. Предполагая, что ваш первый лист с необработанными данными является листом1, а ваши данные специальных данных находятся на листе2, введите его в E2 на листе2 и перетащите вниз:
=INDEX(Sheet1!C:C,MATCH(A2,Sheet1!A:A,0))
Другой альтернативой (кроме рекомендованной BruceWayne Array Formula) является использование функции OFFSET. OFFSET создает новый диапазон, основанный на начальной точке, перемещая несколько ячеек вправо/влево/вверх/вниз для заданной высоты и ширины. В этом случае мы сначала используем MATCH, чтобы найти первый раз, когда MarkAsOfDate на Sheet1 соответствует Sheet2. Мы будем использовать эту информацию и OFFSET функцию, чтобы создать новый диапазон, который начинается там, и заканчивается в нижней части ваших данных, например, так:
=OFFSET(Sheet1!A1,MATCH(A2,Sheet1!A:A,0),1,COUNT(Sheet1!C:C),2)
Тогда нам просто необходимо использовать ВПР на диапазон, который мы создали выше , например, так:
=VLOOKUP(B2,OFFSET(Sheet1!A1,MATCH(A2,Sheet1!A:A,0),1,COUNT(Sheet1!C:C),2),0)
Эта вторая альтернатива избегает необходимости вспомогательного столбца, но является более сложным и может быть подвержены ошибкам, если ваши строки/столбцов изменить (потому что мы должны были жёстки пары вещей в OFFSET функции).Кроме того, OFFSET является изменчивым, то есть он пересчитывается всякий раз, когда вычисляется какая-либо ячейка, поэтому она может замедлить работу вашей книги, если у вас много ее строк. Исходя из этого, я рекомендую использовать метод вспомогательной колонки выше, или если вам удобно с формулами Array, используя ответ BruceWayne.
Будет ли когда-либо только один экземпляр MarkAsofDate ровно за 1 месяц до MaturityDate? Также - будут ли данные всегда заказываться так, как у вас есть? Сортируется сначала MarkAsofDate, а затем по дате погашения? –