根据给定的条件返回列中最大的值(和相应的标签)
所以我有一个三栏的Excel表格: 价值($ M) , 合同名称和年份 [合同奖]。
数据的图像:
我正在尝试将合同的合同名称返回为3个最大值。 我在这里find了解决办法。
=INDEX($B$2:$B$21,MATCH(1,INDEX(($A$2:$A$21=LARGE($A$2:$A$21,E2))*(COUNTIF(E2,$B$2:$B$21)=0),),))
不过,我还有一个额外的警告:我只想从2017年开始签订合同。我发现了使用CSE公式从2017年开始提供价值的解决scheme,并相应地调整了公式:
{=INDEX($B$2:$B$21,MATCH(1,INDEX(($A$2:$A$21=LARGE(IF($C$2:$C$21=2017,$A$2:$A$21),E2))*(COUNTIF(E2,$B$2:$B$21)=0),),))}
当我将其纳入公式时,它只适用于从2017年起只返回前3个值的工作,但由于2017年前3个值之一是2015年值的重复,因此从2015年开始合同名称。
结果图片:
如上图所示,它从2015年起以1亿美元的价格拉动“合约1” ,而从2017年起以1亿美元的速度拉动“合约8” 。 任何想法如何调整我的公式只从2017年拿起合同名称? 提前致谢!
尝试添加一个帮手列来获得您的结果。
我在包含公式的列A中插入一个帮助列
=IF($D2=2017,COUNTIF($B$2:$B$21,">="&$B2),"")
其中$B$2:$B$21
是价值($ M)中的全部数据列, $B2
是价值($ M)下的第一个单元格, 2017年是您要提取数据的年份,如所须。 将该公式向下拖动到帮助程序列的整个长度。
注意:如果你想要拉的年份可以改变,可以考虑增加一个专门用于持有所需年份的单元格。 这个单元格将在我build议的公式中取代2017年。
然后在$G$1
input以下公式:
=INDEX($B$2:$C$21,MATCH(SMALL($A$2:$A$21,$F2),$A$2:$A$21,0),2)
在这里, $B$2:$B$21
是价值数据的全列($ M) , $F2
是Rank下的数值1, $A$2:$A$21
是数据的完整列帮手列。 将这个公式向下拖动到Rank中的另外两行。
然后,您可以使用列H中的相同公式,但只将公式的最后2
更改为1
,如下所示:
=INDEX($B$2:$C$21,MATCH(SMALL($A$2:$A$21,$F2),$A$2:$A$21,0),1)
。
如果最后在同一年有多个合同,具有完全相同的价值($ M) ,则将按排名顺序将其排列在列表中。
您可以在单元格F2
使用此公式。 不需要帮手栏。
=INDEX($B$2:$B$21,MATCH(LARGE(IF($C$2:$C$21=2017,$A$2:$A$21,0), ROW()-1), IF($C$2:$C$21=2017,$A$2:$A$21,0), 0),1)
由于这是一个数组公式,请用CTRL + SHIFT + ENTER确认。