分享

十八般武艺样样精通,AGGREGATE函数小试初露锋芒!

 EXCEL应用之家 2023-06-18 发布于上海


小伙伴们好,今天来和大家分享一道关于按条件求和的题目。不过这道题目和我们平常所见的题目不太一样,一起来看看吧!

题目是这样子的:



题目要求汇总字符“文本”之间的数值。如果有多个“文本”,则取大值;如果只有一个“文本”,则汇总后面所有的数值。

朋友们有什么好办法吗?


01

这道题目还是有一定难度的。我们先取个巧。观察一下源数据,发现K列中的值除了第2行以外,都是后两个“文本”件的数值总和。第2行则是所有数据的总和。



在单元格M2中输入公式“=IFERROR(SUM(--OFFSET(A2,,LARGE(IF(A2:J2="文本",COLUMN($A:$J),0),2),,SUM(AGGREGATE(14,1,IF(A2:J2="文本",COLUMN($A:$J),0),{1,2})*{1,-1})-1)),SUM(A2:J2))”,三键回车并向下拖曳即可。

思路:

  • IF(A2:J2="文本",COLUMN($A:$J),0)部分,返回“文本”所在列的列号,其余的返回0

  • LARGE(IF(A2:J2="文本",COLUMN($A:$J),0),2)部分,找到第2个大值,也就是求和区域的左端单元格。这个作为OFFSET函数的第2个参数

  • AGGREGATE(14,1,IF(A2:J2="文本",COLUMN($A:$J),0),{1,2})部分,利用AGGREGATE函数返回前两位的大值。它的第四参数{1,2}含义就是取最大值的前两位

  • AGGREGATE()*{1,-1}部分,求两个“文本”之间的间隔

  • SUM(AGGREGATE()*{1,-1})-1部分,就是需要求和的数值的数量,同时也是OFFSET函数的第5个参数,表示向右偏移多少列

  • --OFFSET返回需要求和的单元格区域,减负运算后将文本转变为错误值,SUM函数求和得到答案

  • 最后,外侧嵌套IFERROR函数,解决第2行的求和问题


-END-

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多