SM
=QUERY({Payments!A2:D\ArrayFormula(ceiling(round(YEARFRAC(offset(Payments!D2;;;counta(Payments!D2:D));offset(Payments!B2;;;counta(Payments!B2:B)));3)*12))};"Select Col1,Col2,Col3,Col4 where Col5 = "&$B$1&"")
Я получается через офсет сделал массив высчитывающий все поколения и притулил его к основному массиву и на основании его поставил условие на совпадение значений из проверки данных в которых от 0 до n значения
Ну а сами поколения выявили через разность годов с округлением и умножением на месяца