获取单元格值大于的前三行


1

在根据行内的值获取一行数据时苦苦挣扎。我的数据结构如下:

ID  Name   Score  Owner
1   Item1  94%    MD
2   Item2  24%    OM
3   Item3  55%    TM
4   Item4  76%    MD
5   Item5  12%    OM

我想要实现的是能够提取名称和所有者,其中得分超过65%(或任何其他数字)。

我目前使用列引用,我的表被称为“table2”,例如。表2 [名称],等等。

尝试使用INDEX和MATCH,但似乎并不想为我工作,也试过VLOOKUP,但再次只是似乎没有工作。

一些公式我一直在尝试并调整以尝试实现我想要的:

=INDEX(Table2,MATCH(0.32,Table2[Score],-1),0)

=IF(K5="","",INDEX(Table2[Name],Table2[Score]=L5))
$K = 1 to 3 (5=1 in the above), L5 = the score I am looking for.

任何指导都会非常有用,我在互联网上的例子中发现的挑战是他们使用范围“$ A $ 1:$ A $ 19”等等,当我用这些替换命名范围时,公式不起作用。


1
好的......所以当我写出我的回答时,我回到上面的一个例子来尝试破解它。似乎用新鲜的眼睛看着这一点,这一切都有所不同。
copyandpaster

1
如何将您的解决方案作为答案发布。这将有助于其他人遇到类似的问题。
fixer1234

正在写它:)答案现已发布。
copyandpaster

Answers:


2

在此输入图像描述

这个怎么运作:

  • 在单元格中写入此数组公式A10,完成Ctrl+Shift+Enter,填充右,然后向下

      {=IFERROR(INDEX($B$2:$D$6, SMALL(IF((INDEX($B$2:$D$6, , $B$8)>$A$8), MATCH(ROW($B$2:$D$6), ROW($B$2:$D$6)), ""), ROWS(B2:$B$2)), COLUMNS($A$1:A1)),"")}
    

注意:

  • 这将只提取2条记录,因为得分大于65%。

  • 单元格A8具有65%的标准并B8具有列位置2(分数列)。

  • 根据需要调整公式中的单元格引用。

编辑:

INDEX($B$2:$D$6, , $B$8)变成了

INDEX($B$2:$D$6, , 2)

并返回C2:C6

C2:C6 比较8美元(在这个例子中是65%)。

MATCH(ROW($B$2:$D$6), ROW($B$2:$D$6)), "")

成为,, {1;2;3;4;5}, "")

与在IF测试结合C2:C6进行>$A$8,返回行,

{1;"";"";"";4;""}来自Name Column

最后拖动Formula Right然后Down完成数据提取。


@ fixer1234,现在我编辑了帖子并描述了搜索背后的机制。
Rajesh S

@ fixer1234,{1; 2; 3; 4; 5},“”是行号,公式从名称列返回,它在得分列C2中匹配:C6为> A8(65%),返回为匹配行{1 ;“”;“”,4,“”}表示仅从第1行和第4行返回值,因为只有两者的得分> 65%。
Rajesh S

1

我似乎回答了我自己的问题,在我写完我的问题之后,我回头看了一下我从https://people.highline.edu/mgirvin/excelisfun.htm获得的公式,特别是EMT967.xlsx,这里解释了https: //www.youtube.com/watch?v=rKDI-kdBsjYhttp://www.get-digital-help.com/2009/09/28/extract-all-rows-from-a-range-那个 - 符合标准的一列in in excel /。使用这两个例子,我设法使用INDEX和MATCH的组合创建所需的公式。

为清楚起见,这是我目前在某些单元格中的内容:

W4

=LARGE(Table2[Score],3)

W5

3

K5(将3个细胞复制到K8)

=IF(ROWS(K$5:K5)>$W$5,"",ROWS(K$5:K5))

L5(将3个单元格复制到L8)

=IF(K5="","",LARGE(Table2[Score],K5))

M5(将3个细胞复制到M8)

=IF(K5="","",INDEX(Table2[Name],MATCH(L5,Table2[Score],0)))

如果我将单元格W5更改为其他内容,例如1,则工作表仅显示我的数据集中得分最高的项目,2将显示2,依此类推。如果您想要多于3个副本K5,L5和M5向下更多单元格,然后更改W5中的数字以填充公式所在的行数。

我希望这可以帮助别人,我尴尬地花了大约6个小时试图学习这个并让它工作!但是,我让它工作,所以这是一些东西。

更新:此“有效”,但无法处理唯一值,因为它只返回与给定分数匹配的名字。

Update2:使用之前提供的示例之一进行修复。Cell M5现在包含:

=IF(K5="","",INDEX(Table2[Name],AGGREGATE(15,6,(ROW(Table2[Score])

-CELL("row",Table2[Score])+1)/(Table2[Score]=L5),COUNTIF($L$5:L5,L5))))

现在看来能够处理重复值。


1
您没有显示所有者。我们可以假设它等同于名字吗?您能否添加一个有关update2公式如何工作的说明,以及它如何处理重复的分数?谢谢。
fixer1234

我希望我能告诉你它究竟是如何运作的,但我不诚实。我知道不是很好,我唯一的建议是观看上面发布的youtube视频,解释使用AGGREGATE功能。
copyandpaster
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.