当前位置: > 热文

这个合并会计科目的公式太精妙了,连我都点赞!

时间:2022-04-23 18:51:59 热文 我要投稿

与 30万 粉丝一起学Excel

活跃一下气氛,送书活动继续开始。老规则,从留言区随机抽取3位粉丝,赠送书籍《Excel效率手册 早做完,不加班(函数)》。

VIP学员的问题,1级科目不变,2级科目要在前面连接1级,3级科目要在前面连接1级、2级。详见圈住部分。

当我还没反应过来的时候, 张哥已经写出了一条精妙的公式。

=IFERROR(LOOKUP(1,0/FIND(A$1:A1,A2),C$1:C1)&"","")&B2

102是1级,10202是2级,1020201是3级。1级的肯定包含在2级里面,2级的肯定包含在3级里面,因此这里用FIND(A$1:A1,A2),找得到就用分隔符号将B列的合并连接起来。

而10201、10202属于同一级别的,用FIND的就找不到,因此显示B列本身的值。

认识 张哥10多年,见证了他从菜鸟变成高手,随机应变能力越来越强了。

卢子再从VIP群挑选几个跟LOOKUP+FIND有关的案例,进行巩固一下。

1.根据项目查找本月数。

左边是利润表,里面的项目正常都会多出一些无关紧要的字符。右边是标准的项目。

项目虽然不一样,但右边的项目包含在左边,因此可以使用LOOKUP+FIND。

=LOOKUP(1,0/FIND($E$2:$E$3,A2),$F$2:$F$3)

类似的简称、全称互相查找,也是用这个套路。

2.根据右边的补货单,查找每个店铺的补货员。

这种也是LOOKUP+FIND,不过需要处理一些细节。直接查找的时候店铺1会认为跟店铺10一样,从而导致出错。

只需做小小的改变就行,后面连接一个逗号。店铺1,和店铺10,这样就会认为是2个值。

也就是说,将原来的内容都连接上逗号就行。

=LOOKUP(1,0/FIND(A2 & ",",$D$3:$D$5 & ","),$E$3:$E$5)

最后再说下语法,字符少的,放在FIND的第一参数,参数可以是单元格和区域。

=LOOKUP(1,0/FIND(字符少的,字符多的),返回区域)

其实,很多公式都有固定的套路,难的是根据实际问题随机应变。