489·左右逢源的FILTER
标签:
filtermaplambda |
分类: 公式技巧 |
旧时的查找函数要不限定了从左至右,如VLOOKUP,
要不就限定了排序,如LOOKUP\MATCH。
使我们写起公式来缩手缩脚,
不少公式技巧都是冲着突破这些限制去的。
因为痛苦,所以变革。
“M365 EXCEL”和“WPS表格”陆续更新了一批新的查找函数。
一口气解决了左右问题,前后问题,通配符问题等等。
FILTER就是个典型。
如果写公式的时候,还抱着旧的思维,很难充分体现FILTER的价值。
比如,上两篇文章都用到了FILTER函数。
但是思维仍然是从左到右的思维。
原思路是一个一个查看,先查看“军人履历”都有哪些“关键字”。
然后再用COUNTIF去查看A列数据里,有没有这些“关键字”。
这个思路,E标签列,作了FILTER的条件参数。
换个思路,先用看看F列这些“关键字”,有哪些在A列数据里出现过。
然后,将出现过“关键字”的E列“标签”留下来。
最后看看留下来的“标签”,有几个不重复值,就知道A列这个数据有过几次“履历”了。
剩下的问题就是怎么规避零次履历的计数问题。
这个公式,它的结果不是数组,不能一下子把A列所有数据都计算一遍。
只能向下复制公式,一个一个计算。
那如果我以后想知道整个A列数据里,有三种履历的有多少人。
就有必要一下子,把A列数据都计算出来,形成一个数组。
正好,“M365 EXCEL”和“WPS表格”又又又更新了新函数。
LAMBDA定义了一个新函数,这个函数没有“函数名”,
但它有计算方式,
它的计算方式就是“SUM(ISTEXT(UNIQUE(FILTER(COUNTIF”那部分。
它也有参数,它的参数就是未知数X。
这个X是谁呢?
MAP函数确定了X是A2:A35里的每一个单元格。
换句话说,MAP和LAMBDA联手,让A2:A35里的每一个单元格都做了一次繁杂的计算。
计算结果不聚合,一个一个保留了下来,形成了一个新的数组。

加载中…