Используйте Vlookup вместо индекса:
=ARRAYFORMULA(IF(A:A,vlookup(CEILING(ROW(A:A)/3+1),A:B,2),""))
EDIT
Это не необходимо использовать ключевой столбец, вы можете использовать что-то вроде этого:
=ARRAYFORMULA(vlookup(CEILING(sequence(counta(B:B)*3)/3+1),{row(B:B),B:B},2))
при условии, что вы хотите сгенерировать три строки для каждой непустой строки в столбце B, не считая первой.
Или, если вы хотите отличаться, используйте подход конкатенации / разделения:
=ArrayFormula(flatten(split(rept(filter(B:B,B:B<>"",row(B:B)>1)&"|",3),"|")))
(все вышеперечисленное предполагает, что вы хотите игнорировать первую строку в столбце B и начинать с 22).