Excel函数与公式——Match函数的用法—特殊编号
我们在工作的时候经常有这种需求:如下图所示
我们应该怎么做呢?首先我们会想到用函数完成,具体用什么函数呢?我把结果直接告诉各位小伙伴,在C2中输入如下函数:
=COUNT(0/(MATCH(TRUE&A$1:A2,(B$1:B2=B2)&A$1:A2,)=ROW($1:2)))并用shift ctrl Enter三键结束,因为该公式是数组公式。
有的时候能看懂别人写的函数与公式也是一种能力,我来为大家剖析一下这个公式的结构,
1、我们可以看到关键函数是match函数,match函数的作用是匹配相关值,并返回在数列里的位置,比如在match函数里的第一个参数我们用F9来查看一下中间过程(选中TRUE&A$1:A2后按F9):
我们可以看到{"TRUE日期";"TRUE40815"}是一个数组,有两个值TRUE日期,TRUE40815,给出的是A1和A2的值并且和TRUE进行连接得到的表示我们要匹配的值是这个数组;
2、在match的第二个参数(B$1:B2=B2)&A$1:A2也是为了构造类似match第一个参数的形式,但我们是有条件的,即:b列的值“客户名”要相同就是(B$1:B2=B2)要实现的功能,至此我们实现了对相同客户的计数;后面的Row很简单就是构造一个1到2 的序列数组然后和match函数比较确定出匹配值的位置;
3、接下来我们看一下Match实现了什么作用:
这一步在构造的字符串数组中进行匹配,匹配结果如下:
TRUE日期先和match的第二个参数数组FALSE日期匹配,没有匹配上,继续和TRUE40815匹配(40815日期的另一种数值形式),也没匹配上;接着第二个查找值TRUE40815和match的第二个参数数组的第一个值FALSE日期没匹配上,再和第二个值TRUE40815匹配上了,而且在第二个参数的数组里的第二位,所以返回“2”;接下来和构造的数列1,2进行比较,结果如下:
4、接着我们用0除以数组目的是将逻辑值TRUE变为数值(TRUE为1,0/1=0),得到结果如下:
5、最后我们用函数count算出该数组中有多少是数值,即同时为符合条件的值进行了编号。
总结:这里我们要掌握F9显示公式中间计算结果的用法和match函数结合数组的用法,这里主要用到逻辑值连接日期及逻辑值比较的方法计算出编号值。
评论 (0)