2016-04-25 154 views
0

我期待获得一些帮助,我确信这是一个选项,但我很遗憾不知道如何实现。Excel函数返回最大两个值

基本上,我想要一个公式从C21:C50开始,然后查找前两个值。基于其中两个是前,它会在乙列引用的名称,并在另一个小区(式驻留在小区)填充该值

Example Image

如果看图像,在主场,我们会有史蒂夫。次要的是艾伦。

这是任何人都可以提供帮助的东西吗?我只是很失落:(

回答

1

尝试

=INDEX($B$3:$B$7,MATCH(LARGE($C$3:$C$7,ROW(A1)),$C$3:$C$7,0)) 

与鲍勃在B3单元格,在单元格C9 “主” 的公式。复制到单元格C10。

enter image description here

+0

那种作品。但是,如果一个列具有相同值的倍数,则会遇到困难。有没有办法抵消这一点? –

+2

该方案不在您的数据示例中。构建一个数据样本来显示问题并解释导致期望结果的逻辑。编辑你的问题来做到这一点。不要发表评论。当您进行编辑时发布评论,以便人们获得警报。 – teylyn

1

如果处理与整数,你可以简单地添加+1/ROW([range]),以避免双打:

=INDEX($B$3:$B$7,MATCH(LARGE($C$3:$C$7+1/ROW($C$3:$C$7),ROW(A1)),$C$3:$C$7+1/ROW($C$3:$C$7),0)) 

这是一个阵列式,并且必须以CTRL + + 输入确认!


然而,这可能会失败,像5.01或4.99的数字。对于这种情况下只是RANK.EQ使用它的组合:

=INDEX($B$3:$B$7,MATCH(LARGE(RANK.EQ($C$3:$C$7,$C$3:$C$7,1)+1/ROW($C$3:$C$7),ROW(A1)),RANK.EQ($C$3:$C$7,$C$3:$C$7,1)+1/ROW($C$3:$C$7),0)) 

这是一个阵列式,并且必须以CTRL + + 输入确认!


的步骤如下图像:

example

第一表显示了直接加入1/ROW其用于LARGEMATCH获得行是否存在双打(这样INDEX可以选择正确的一个)

第二张表显示了值是如何被他们的等级替换的与RANK.EQ然后被视为像第一个表一样。

第三个(灰色)表显示如果将第一个公式应用于第二个表(以演示排名如何混乱),会发生什么情况。


对于Excel 2007只是RANK($C$3:$C$7,$C$3:$C$7,1)更换RANK.EQ($C$3:$C$7,$C$3:$C$7,1)


如果您还有任何问题,只是问:)