根据不同列中的前5个值从Excel中的单元格中提取值

时间:2015-04-23 23:44:16

标签: excel sorting excel-formula

让我们说A列中有10个名字,B列有10个值。我希望按顺序将具有五个最高B列值的人的姓名填充到不同的工作表上。我该怎么做?如果我想要最低值怎么办?

2 个答案:

答案 0 :(得分:1)

您可以使用index match功能来实现此目的:

enter image description here

鉴于以上示例表:

拉至前5名的公式,将其放入 C2

=INDEX($A$2:$A$99,MATCH(1,INDEX(($B$2:$B$99=LARGE($B$2:$B$99,ROWS(C$1:C1)))*(COUNTIF(C$1:C1,$A$2:$A$99)=0),),0))

拉低5的公式,将其放入 D2

=INDEX($A$2:$A$99,MATCH(1,INDEX(($B$2:$B$99=SMALL($B$2:$B$99,ROWS(D$1:D1)))*(COUNTIF(D$1:D1,$A$2:$A$99)=0),),0))


对于两者,拖动和填充5行(因为你想要top / low 5)。您可以根据需要拖动/填充 您可以通过将$ A $ 99和$ B $ 99更改为任意数量的行来调整它以适应列的长度。
告诉我它是否适合你。

答案 1 :(得分:1)

您也可以使用vlookup来实现相同目标,但由于您的lookup value位于您正在查看的列之前,因此您需要使用choose函数来解决此问题:
始终使用相同的示例表

enter image description here
将此公式放在 C2 中以拉出前5:

=VLOOKUP(LARGE($B$2:$B$99,ROW(1:1)),CHOOSE({2\1},$A$2:$A$99,$B$2:$B$99),2,0)

并将其放入 D2 以拉低5:

=VLOOKUP(SMALL($B$2:$B$99,ROW(1:1)),CHOOSE({2\1},$A$2:$A$99,$B$2:$B$99),2,0)

希望这也有效。