Поместите это в D2 и копируйте, пока не получите пробелы:
=IF(ROW(A1)<=SUM(B:B),INDEX($A$2:$A$4,MATCH(ROW(A1)-1,SUMIF(OFFSET($B$1,0,0,ROW($B$2:$B$4)-MIN(ROW($B$2:$B$4))+1,),">0"))),"")
В зависимости от версии, это может потребовать подтверждения формулы с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.
Затем поместите это в E2 и скопируйте:
=IF(D2<>"",COUNTIFS($D$2:D2,D2),"")
Если у вас есть Dynami c Array Formula SEQUENCE()
, тогда первая формула может быть заменена на:
=INDEX($A$2:$A$4,MATCH(SEQUENCE(SUM(B:B),,0),SUMIF(OFFSET($B$1,0,0,SEQUENCE(COUNT(B:B)),),">0")))
Поместите это в D2, и Excel выведет результаты вниз.
Вторая формула будет выглядеть так:
=COUNTIFS(OFFSET($G$1,1,0,SEQUENCE(COUNTA(D2#)),),D2#)
Снова поместите это в E2, и Excel выльется в результаты.