这里有两个公式解决方案供您考虑。
第一个使用您当前的数据结构。但是,它使用的OFFSET
是 volatile 函数。
第二个避免使用OFFSET
,但需要“规范化”您的数据,以便 A 列中的每个单元格都有一个与 E 列对应的值。
请注意,对于这两种解决方案,您都需要相应地调整范围。
解决方案 1

I2:
=COUNTIF(A2:A10,"?*")
J2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:
=IF(ROWS(J$2:J2)<=$I$2,INDEX($A$2:$A$10,SMALL(IF(LEN($A$2:$A$10)>0,ROW($A$2:$A$10)-ROW($A$2)+1),ROWS(J$2:J2))),"")
K2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:
=IF(ROWS(K$2:K2)<=$I$2,INDEX($E$2:$E$10,MODE(IF(COUNTIF(OFFSET($A$2:$A$10,,,ROW($A$2:$A$10)-ROW($A$2)+1),"?*")=ROWS(K$2:K2),MATCH($E$2:$E$10,$E$2:$E$10,0)))),"")
解决方案 2

首先,“标准化”A列如下......
1) Select A2:A10 (adjust the range accordingly).
2) Unmerge those cells `Ribbon >> Home tab >> Alignment group >> click Merge and Center dropdown >> select Unmerge Cells`
3) Select blank cells `Ribbon >> Home tab >> Editing group >> Find and Select >> Got to Special >> select Blanks >> Click OK`
4) Press the `=` key.
5) Press the `Up Arrow` key.
6) Press the `Ctrl` key, and then while the key is pressed down, press the `Enter` key.
然后,输入以下公式...
I2,用 CONTROL+SHIFT+ENTER 确认...
=SUM(IF(FREQUENCY(MATCH(A2:A10,A2:A10,0),ROW(A2:A10)-ROW(A2)+1)>0,1))
J2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:
=IF(ROWS(J$2:J2)<=$I$2,INDEX($A$2:$A$10,SMALL(IF(FREQUENCY(MATCH($A$2:$A$10,$A$2:$A$10,0),ROW($A$2:$A$10)-ROW($A$2)+1)>0,ROW($A$2:$A$10)-ROW($A$2)+1),ROWS(J$2:J2))),"")
K2,用 CONTROL+SHIFT+ENTER 确认,并复制下来:
=IF(ROWS(K$2:K2)<=$I$2,INDEX($E$2:$E$10,MODE(IF($A$2:$A$10=J2,MATCH($E$2:$E$10,$E$2:$E$10,0)))),"")