打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel公式:获取列表中最大数值和对应的条目
userphoto

2022.11.10 四川

关注

excelperfect

引言:本文的练习整理自chandoo.org。多一些练习,想想自己会怎么解决这个问题,看看别人又是怎样解决的,这样能够快速提高Excel公式编写水平。

本次的练习是:给定一个包含数字和文本条目的单列列表,查找数字总和最大值对应的条目。示例数据如下图1所示,公式应该返回“c”,因为其对应的数字总和9是最大的。

1

公式应该是仅涉及Excel函数的单个公式,该公式引用一个包含值列表的命名区域x(示例中,该命名区域代表单元格区域A1:A12)。

同时,假设数字都是正的。

请写下你的公式。

解决方案

公式1数组公式。

=INDEX(x,MATCH(MAX(MMULT(TRANSPOSE(ROW(x)^0),IFERROR((LOOKUP(ROW(x),1/ISERR(-x)*ROW(x),x)=TRANSPOSE(x))*x,0))),MMULT(TRANSPOSE(ROW(x)^0),IFERROR((LOOKUP(ROW(x),1/ISERR(-x)*ROW(x),x)=TRANSPOSE(x))*x,0)),0))

公式2数组公式。

=INDEX(x,ROUND(MOD(MAX(MMULT(IFERROR((TRANSPOSE(LOOKUP(ROW(x),1/ISERR(-x)*ROW(x),x))=x)*TRANSPOSE(x),0),ROW(x)^0)+MATCH(ROW(x),ROW(x),0)%),1)*100,0))

公式3数组公式。

=INDEX(x,INDEX(SMALL(IF(ISTEXT(x),ROW(x)),ROW(INDIRECT('1:'&SUM(--ISTEXT(x))))),MATCH(MAX(SUMIF(OFFSET(x,SMALL(IF(ISTEXT(x),ROW(x)),ROW(INDIRECT('1:'&SUM(--ISTEXT(x))))),,IFERROR(SMALL(IF(ISTEXT(OFFSET(x,1,)),ROW(OFFSET(x,1,))),ROW(INDIRECT('1:'&SUM(--ISTEXT(x)))))-1,ROWS(x))-SMALL(IF(ISTEXT(x),ROW(x)),ROW(INDIRECT('1:'&SUM(--ISTEXT(x))))),),'<>0')),SUMIF(OFFSET(x,SMALL(IF(ISTEXT(x),ROW(x)),ROW(INDIRECT('1:'&SUM(--ISTEXT(x))))),,IFERROR(SMALL(IF(ISTEXT(OFFSET(x,1,)),ROW(OFFSET(x,1,))),ROW(INDIRECT('1:'&SUM(--ISTEXT(x)))))-1,ROWS(x))-SMALL(IF(ISTEXT(x),ROW(x)),ROW(INDIRECT('1:'&SUM(--ISTEXT(x))))),),'<>0'),)))

公式4数组公式。

=INDEX(x,MATCH(1,FREQUENCY(-9999,-MMULT(IFERROR((TRANSPOSE(LOOKUP(ROW(x),1/ISERR(-x)*ROW(x),x))=x)*TRANSPOSE(x),0),ROW(x)^0)),0))

公式5数组公式。

=LOOKUP(1,1/FREQUENCY(-9999,-MMULT(IFERROR((TRANSPOSE(LOOKUP(ROW(x),1/ISERR(-x)*ROW(x),x))=x)*TRANSPOSE(x),0),ROW(x)^0)),x)

或者:

=LOOKUP(1,1/FREQUENCY(-9^9,-MMULT((TRANSPOSE(LOOKUP(ROW(x),ROW(x)/ISERR(-x),x))=x)*N(TRANSPOSE(x)),ROW(x)^0)),x)

或者:

=LOOKUP(1,1/FREQUENCY(-9^9,MMULT(N(TRANSPOSE(LOOKUP(ROW(x),ROW(x)/ISERR(-x),x))=x),IFERROR(-x,0))),x)

公式6数组公式。

=LOOKUP(1,1/FREQUENCY(-9^9,MMULT(N(TRANSPOSE(LOOKUP(ROW(x),ROW(x)/ISERR(-x)))=ROW(x)),IFERROR(-x,0))),x)

公式7数组公式。

=LOOKUP(1,1/FREQUENCY(0,IFERROR(1/SUBTOTAL(9,OFFSET(x,ROW(x)-MIN(ROW(x)),,FREQUENCY(-ROW(x),-ISTEXT(x)*ROW(x)))),-1)),x)

或者:

=LOOKUP(1,1/FREQUENCY(-9^9,-IFERROR(SUMIF(OFFSET(x,ROW(x)-ROW(INDEX(x,1)),,FREQUENCY(-ROW(x),-ISTEXT(x)*ROW(x)),1),'<>'),0)),x)

……

公式并没有给出详细的解析,有兴趣的朋友可以参照前面推送的有关分析公式的文章对这些公式进行解析,相信对理解Excel函数,编写公式解决问题会有很大的帮助。

也许有人会问,为什么要编写这么复杂的公式?其实,在这里的主要目的,是通过编写公式解决复杂的Excel问题来磨练公式与函数应用技能,也让研究Excel的大脑时刻保持良好的状态。


欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel函数公式一对多查询的12种公式
【合并单元格】求哪种电器的总销量最高?
72个反向查找的公式套路,都看明白的就成精了!
19Excel数据模糊匹配查询?看这一篇就够了!
能解出这道题目的人,都有很强的函数综合运用能力!
集齐Vlookup函数 Lookup函数的全部用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服