根据不同列中的前 5 个值从 Excel 中的单元格中提取值
Pulling value from cells in Excel based on top 5 value in a different column
假设 A 列中有十个名称,B 列中有十个值。我希望 B 列值最高的五个人的姓名按顺序填充在不同的 sheet 上。我该怎么做?如果我想要最低值怎么办?
您可以使用index
match
函数来实现:
鉴于上面的例子table:
公式拉到前 5,把这个放在 C2:
=INDEX($A:$A,MATCH(1,INDEX(($B:$B=LARGE($B:$B,ROWS(C:C1)))*(COUNTIF(C:C1,$A:$A)=0),),0))
拉低 5 的公式,将其放入 D2:
=INDEX($A:$A,MATCH(1,INDEX(($B:$B=SMALL($B:$B,ROWS(D:D1)))*(COUNTIF(D:D1,$A:$A)=0),),0))
对于两者,拖动并向下填充 5 行(因为您想要 top/low 5)。你可以 drag/fill 想打多少就打多少。
您可以通过将 $A$99 和 $B$99 更改为您拥有的任意行数来调整它以适合您的列的长度。
告诉我它是否适合你。
您也可以使用 vlookup
来实现相同的目的,但是由于您的 lookup value
出现在您要查找的列之前,因此您需要使用 choose
函数来解决此问题:
总是使用相同的示例 table
把这个公式放在C2中拉前5:
=VLOOKUP(LARGE($B:$B,ROW(1:1)),CHOOSE({2},$A:$A,$B:$B),2,0)
并将其放入 D2 以拉低 5:
=VLOOKUP(SMALL($B:$B,ROW(1:1)),CHOOSE({2},$A:$A,$B:$B),2,0)
希望这也能奏效。
假设 A 列中有十个名称,B 列中有十个值。我希望 B 列值最高的五个人的姓名按顺序填充在不同的 sheet 上。我该怎么做?如果我想要最低值怎么办?
您可以使用index
match
函数来实现:
鉴于上面的例子table:
公式拉到前 5,把这个放在 C2:
=INDEX($A:$A,MATCH(1,INDEX(($B:$B=LARGE($B:$B,ROWS(C:C1)))*(COUNTIF(C:C1,$A:$A)=0),),0))
拉低 5 的公式,将其放入 D2:
=INDEX($A:$A,MATCH(1,INDEX(($B:$B=SMALL($B:$B,ROWS(D:D1)))*(COUNTIF(D:D1,$A:$A)=0),),0))
对于两者,拖动并向下填充 5 行(因为您想要 top/low 5)。你可以 drag/fill 想打多少就打多少。
您可以通过将 $A$99 和 $B$99 更改为您拥有的任意行数来调整它以适合您的列的长度。
告诉我它是否适合你。
您也可以使用 vlookup
来实现相同的目的,但是由于您的 lookup value
出现在您要查找的列之前,因此您需要使用 choose
函数来解决此问题:
总是使用相同的示例 table
把这个公式放在C2中拉前5:
=VLOOKUP(LARGE($B:$B,ROW(1:1)),CHOOSE({2},$A:$A,$B:$B),2,0)
并将其放入 D2 以拉低 5:
=VLOOKUP(SMALL($B:$B,ROW(1:1)),CHOOSE({2},$A:$A,$B:$B),2,0)
希望这也能奏效。