SCAN函数怎么用? Excel中利用SCAN函数查找合并单元格的技巧


    合并单元格这个功能,几乎每逢数据统计,都要被拉出来批判一遍,因为它实在是太磨人了!
    
    今天的故事,就要从我那与合并单元格杠上了的同事小雯说起……
    她做了这样一份表格:
    
    希望按照「产品」这一条件求总数量。
    我只好给了她这样一个公式:
    
=SUMPRODUCT($D$3$D$11*(F3=LOOKUP(ROW($3$11)IF($B$3$B$11<>"ROW($3$11))$B$3$B$11)))

    
    这家伙却「得寸进尺」:这也太长了,有没有更简单的公式呢?
    好吧,还真的有…… 有请我们今天的主角 ——SCAN 函数
    
=SUM((SCAN(,$B$3:$B$11,LAMBDA(x,y,IF(y="",x,y)))=F3)*$D$3:$D$11)

    
    怎么样,这个公式容易多了吧?
    1、认识 SCAN 函数
    有的同学可能不太理解上面的公式,毕竟出现了两个有点陌生的函数~
    没关系,卫某这就来给大家介绍一下。
    SCAN,是 Office 365 中新出的函数,在 WPS 中也可以使用。
    它的作用是扫描:
    
    SCAN 共有三个参数,第一个是累加器的起始值,第二个是要扫描的数组,第三个是函数 LAMBDA。
    而 LAMBDA,是一个不需编程便能让我们自创函数的函数。
    有点绕?
    举个栗子:
    
=LAMBDA(x,y,x+y)

    这个公式就是一个自定义函数。
    它的意思是,设一个函数中有参数 x 和 y,对这两个参数进行 x+y 的运算,也就是求和。
    把 x+y 替换成任意复杂的公式,并在【公式】选项卡下【定义名称】:
    
    这样,下次使用这个复杂公式的步骤就大大缩减了。
    
    2、公式解析
    认识了 SCAN 函数,我们再来把前文提到的公式解析一番~
    公式回顾:
    
=SUM((SCAN($B$3$B$11,LAMBDA(x,y,IF(y="x,y)))=F3)*$D$3$D$11)

    
    ? LAMBDA(x,y,IF(y="",x,y)
    ? SCAN(,$B$3:$B$11,?)
    ? SUM((?)=F3)*$D$3:$D$11)
    ? 对参与计算的参数 x 和 y,进行 IF 判断,也即当 y 为空时,结果输出 x,否则输出 y。
    ? SCAN 函数为?提供了选区 $B$3:$B$11,将合并单元格转化为数组:
    
    ? 对数据区域 $D$3:$D$11 按照 F3 单元格中的内容筛选并求和。
    以上公式,实际就是利用 SCAN 函数将合并单元格转化为完整的数组,再用 SUM 求和。
    拖动下拉公式即可得出其他产品的结果哦~
    
    3、其它用法
    除了合并单元格求和,SCAN 还有更多强大的用法!
    ? 查找合并单元格
    
=XLOOKUP(F3&G3,SCAN($B$3$B$11LAMBDA(x,y,IF(y="x,y)))&$C$3$C$11$D$3$D$11)

    
    ? 求连续出现的次数
    
=MAX(SCAN(0$B$3$B$24,LAMBDA(x,y,IF(y=D3,x+1))))

    
    本文来自微信公众号:秋叶 Excel (ID:excel100),作者:卫星酱
    好啦,今天我们主要分享了用 SCAN 函数对合并单元格求和,顺便了解这个函数的更多用法,希望大家喜欢,请继续关注电脑手机教程网。