SCAN ,Excel365新增的函数( WPS也已增加 ),一个超冷门的函数。但它却是一个自带扫描功能的超级函数。
语法:
注:这个函数会配合lambda函数遍历数组中的每个值,通过判断等运算把处理后的每一次结果储备在初始值中。
来个简单的例子
A列日期,B列是销量,现要求在C列计算销量大于5的累计销量,可以用Countif函数统计:
=COUNTIF(B$2:B2,">5")
如果用Scan函数,公式则为:
=SCAN( 0 ,B2:B16,LAMBDA( X , Y ,IF( Y >5, X +1, X )))
注: 0 是初始值, X 是每一步初始值变化后的值, Y 是区域(B2:B16)中的每个值。 F( Y >5, X +1, X ) 根据Y值判断,改变X值每一个步的值。
估计很多同学迷糊了,有简单的Countif公式,还要Scan这么复杂的公式?
当然有用,它生成的是一个内存数组。哇,越来越晕了?好吧,还是看一个示例
估计很多人都被
合并单元格
的问题困扰过,如下面的含合并单元格的多条件查找,因为B列是合并单元格,什么xlookup,Lookup都无法查找出结果。
而SCAN则可以完成合并单元格的批量填充值,
=SCAN(,B$2:B$19,LAMBDA(X,Y,IF(Y="",X,Y)))
注:初始值为空白,利用Y对B列值进行逐个判断,如果为空则该次结果还是上次的初始值X,否则为Y值。
有了这样的结果,就可以利用Xlookup进行多条件查找了。
=XLOOKUP(K2&L2, SCAN(,B$2:B$19,LAMBDA(X,Y,IF(Y="",X,Y))) &C$2:C$19,E$2:E$19)
兰色说 :除了SCAN,新增函数中还有MAP、 REDUCE有遍历功能,这以前只有VBA中才可以实现的效果,可以让公式变得无法强大。
兰色根据多年经验,录制了一全套适合新手和初中级阶段用户学习的Excel教程。包括 Excel表格88个函数用法( 即将更新几十个新函数 )、119个使用技巧、透视表从入门到精通50集、图表从入门到精通186集 。( 绿卡会员 有效期内 免费 )详情点击下方链接