excel 怎么显示前三名的名称

2025-03-29 14:10:00
推荐回答(5个)
回答(1):

考虑到价格可能有相同的(这是极有可能的),如图,可解决

G3=INDEX($A$3:$A$12,MATCH(LARGE(OFFSET($A$3:$A$12,,MATCH(G$2,$B$2:$E$2))*100-ROW($3:$12),ROW(1:1)),OFFSET($A$3:$A$12,,MATCH(G$2,$B$2:$E$2))*100-ROW($3:$12),))

同时按Ctrl+Shift+Enter三键输入数组公式,下拉到两行,右拉。

2月4日有两个7元的——甲和庚,公式按先后顺序分别取得了菜名。

本公式取单日最高菜价无需按顺序,只要上面输入任意一个日期,就能得到这一天最高的三个品种名称。

PS:自己根据数据区域修改公式。

回答(2):

B14公式:
=INDEX($A:$A,MATCH(LARGE(B$3:B$11,ROW(A1)),B$1:B$11,))
下拉三行,然后右拉;
K3公式:
=IFERROR(INDEX($B$13:$I$13,SMALL(IF($B$14:$I$14=$J3,COLUMN($A:$H)),COLUMN(A1)))&"","")
数组公式,需要按CTRL+SHIFT+回车,完成公式,右拉三列,下拉。

回答(3):

增加一个辅助表格,把行列值加入到价格中,这样排序就简单了

如图

B9=B2+0.00001*(ROW(B2)+COLUMN(B2))

J2=INDEX(B1:H1,1,MATCH(LARGE(B9:H9,1),B9:H9,0))

B15=INDEX(A2:A6,MATCH(LARGE(B9:B13,1),B9:B13,0))

回答(4):

B14单元格输入公式:
=IFERROR(IF(ROW(A1)>3,"",INDEX($A$3:$A$11,MATCH(LARGE(B$3:B$11,ROW(A1)),B$3:B$11,0))),"")
复制并下拉、右拉至H20单元格。
K3单元格输入公式:

=IFERROR(TEXT(INDEX($B$13:$H$13,IF(COUNTIF(B$14:B$20,$J3),COLUMN(A1),"")),"m月d日"),"")
复制并下拉、右拉至N11单元格。
有一个小巧门,就是当前三个菜价有相同价格时,排序就会很难操作,只要把其中的一个价格后面加一个0.00001(例如:3元有2个,可以把其中的一个改为:3.00001),价格应该不有受影响,但显示的效果且完整完美了

回答(5):

K2=INDEX($B$2:$H$2,MATCH(LARGE(OFFSET($B$2,MATCH($J3,$A$3:$A$11,0),,,7)-COLUMN($A:$G)%%,COLUMN(A$1)),OFFSET($B$2,MATCH($J3,$A$3:$A$11,0),,,7)-COLUMN($A:$G)%%,0))

B14=INDEX($A$3:$A$11,MATCH(SMALL(RANK(B$3:B$11,OFFSET($B$2,ROW($1:$9),,,7))+ROW($1:$9)%%,ROW($A1)),RANK(B$3:B$11,OFFSET($B$2,ROW($1:$9),,,7))+ROW($1:$9)%%,0))

数组公式

公式右拉,下拉复制几列(行)就提取到第几个排名

关于排名,可以设置条件格式显示,如第一用红色等

条件格式=RANK(OFFSET($B$2,MATCH(B14,$A$3:$A$11,0),COLUMN(A1)-1,,),OFFSET($B$2,MATCH(B14,$A$3:$A$11,0),,,7))=1

=1改成2和3,分别设置不同格式