打开APP
userphoto
未登录

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

开通VIP
小题不一般,MMULT vs LOOKUP vs OFFSET,群芳齐争艳!

送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

【置顶公众号】或者【设为星标】及时接收更新不迷路



小伙伴们好,今天和大家分享一道累计求和的题目。这道题目不仅仅是累计求和,还要根据特定条件来返回对应的日期。让我们赶紧一起来看看吧。

原题是这样子的:



要求很简单,朋友们都有哪些好方法呢?


01

MMULT函数可以处理这种问题。



在单元格F2中输入公式“=INDEX(A:A,1+MATCH(1=1,MMULT(N(ROW(1:20)>=TRANSPOSE(ROW(1:20))),(C2:C21=E2)*B2:B21)>=50,))”,三键回车即可。

思路:

  • ROW(1:20)>=TRANSPOSE(ROW(1:20))部分,这个技巧是配合MMULT函数求累计和值常用技巧

  • 外层嵌套N函数,将TURE转换为1, FALSE转换为0。它们运算的结果如下。它作为MMULT函数的第一个参数



  • 下来(C2:C21=E2)*B2:B21是第二个参数,它是一个20行1列的内存数组

  • MMULT函数的运算结果就是累计求和的值

  • MMULT函数的运算结果和50作比较,返回一组内存数组

  • MATCH函数找到第一个1的位置,对应的就是第一个累计值超过50的值

  • 接下来INDEX函数返回正确答案,很简单,不再赘述


02

LOOKUP函数配合SUMIFS函数也可以返回正确答案。



在单元格F2中输入公式“=LOOKUP(1,0/FREQUENCY(1,N(SUMIFS(B:B,A:A,"<="&A2:A21,C:C,E2)>=50)),A2:A21)”,确认即可。

思路:

  • SUMIFS(B:B,A:A,"<="&A2:A21,C:C,E2)>=50部分,SUMIFS函数按条件求和,并和50作比较

  • N函数转换为1和0

  • 接下来利用LOOKUP(1,0/FREQUENCY())这个常用的技巧返回正确答案。如果对这一部分还有疑问可以参看LOOKUP函数和FREQUENCY函数相关内容


03

OFFSET函数同样也可以用在这里。



在单元格F2中输入公式“=LOOKUP(50,SUMIF(OFFSET(C$1,,,ROW($1:$20)),E2,B$1),$A2:$A21)”,确认即可。



-END-


我就知道你“在看”

推荐阅读
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
按指定的次数重复
Excel公式:获取列表中最大数值和对应的条目
按指定次数重复内容的套路合集
试用期就破格升职加薪?这位新同事做的Excel自动查询表,我服!(建议收藏)
VLOOKUP IF{1,0}好还是INDEX MATCH好,学员的行动告诉了我答案
60用Excel函数将多表数据合并到一张表中~
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服