Excel index和match引用遇到相同数值时,如何取第二个?

表格内容如图片所示,求:1. 最多的数 以A公司为例是2(对应种类1)+2(对应种类2)=4 以B公司为例是3(对应种类1)2. 最多的数对应的种类 以A公司为例是种类1,种类4 以B公司为例是种类13. 第二多的数 以A公司为例是1(对应种类2)+1(对应种类3) 以B公司为例是2(对应种类3)4. 第二多的数对应的种类 以A公司为例是种类2,种类3 以B公司为例是种类3

问题2(最多的数对应的种类)
=INDEX($1:$1,MATCH(MAX(B2:E2),B2:E2,)+1)
问题4(第二多的数对应的种类)
=INDEX($1:$1,MATCH(LARGE(B2:E2,2),B2:E2,)+1)追问

您好,这种方法有个问题,即有多个相同数值时,只返回第一个符合的index。

以问题2的A公司为例,我想要返回的是数值均为2的种类1和种类4,而您的方法只能返回第一个数值为2的种类1。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-10

假设如图区域是A1:E3

    =SUMIF(B2:E2,MAX(B2:E2))

    =INDEX($A$1:$E$1,LARGE(IF($B2:$E2=MAX($B2:$E2),COLUMN($B2:$E2),0),COLUMN(A1)))

    数组公式,ctrl+shift+enter结束输入,右拉填充到出现0为止,次序上是后面的种类会放到前面

    =SUMIF($B2:$E2,LARGE($B2:$E2,COUNTIF($B2:$E2,MAX($B2:$E2)*1)+1))

    =INDEX($A$1:$E$1,LARGE(IF($B2:$E2=LARGE($B2:$E2,COUNTIF($B2:$E2,MAX($B2:$E2)*1)+1),COLUMN($B2:$E2),0),COLUMN(A1)))

    数组公式,ctrl+shift+enter结束输入,右拉填充到出现0为止,次序上是后面的种类会放到前面

本回答被提问者和网友采纳
第2个回答  2020-04-09
index是引用数据,它只能返回一个单元格数据。
以你的需求来说,可以用公式(因为截图没有行号和列标,所以公式就按你提问的方式同样模糊化——文字公式了):
SUMPODUECT((A公司的4个数据=MAX(A公司的4个数据))*A公司的4个数据)追问

    您上述的sumproduct公式可以解决我的问题1(最多的数),很感谢。但对于解决问题3(第二多的数)应该如何修改呢?

    问题2(最多的数对应的种类)、问题4(第二多的数对应的种类)我认为是要用match和index来完成的,但如您所说只能返回第一个单元格数据,这个问题该如何解决呢?