Можно для краткости в имена попрятать кое что, но не стал, ну и две доп ячейки тоже лучше иметь, для скорости, хотя какая тут скорость при MMULT :-)
Код
=IF((ROW()-2)*3+COLUMN(A1)>$F$1;"";INDEX(' База данных '!$A:$A;MATCH((ROW()-2)*3+COLUMN(A1)-1;MMULT(--(ROW(' База данных '!$B$2:INDEX(' База данных '!$B:$B;$E$1))>TRANSPOSE(ROW(' База данных '!$B$2:INDEX(' База данных '!$B:$B;$E$1))));' База данных '!$B$2:INDEX(' База данных '!$B:$B;$E$1)))+1))
A1 лишнее для конкретного случая.
Код
=IF((ROW()-2)*3+COLUMN()>$F$1;"";INDEX(' База данных '!$A:$A;MATCH((ROW()-2)*3+COLUMN()-1;MMULT(--(ROW(' База данных '!$B$2:INDEX(' База данных '!$B:$B;$E$1))>TRANSPOSE(ROW(' База данных '!$B$2:INDEX(' База данных '!$B:$B;$E$1))));' База данных '!$B$2:INDEX(' База данных '!$B:$B;$E$1)))+1))