有一部分职场老员工,为了装逼,让新人觉得自己水平很牛逼,通常会写很长很长的公式。

其实,偷偷的告诉你,这种老员工其实水平很差。

VIP学员的问题,根据单位查找审批人,如果右边的费用报销人左边没有就返回区域第5列,返回返回第4列。原始公式套了一大堆VLOOKUP函数。
=IF($K3<>IFERROR(VLOOKUP($K3,$F$3:$F$4,1,0),0),VLOOKUP($J3,$D$2:$H$4,5,0),VLOOKUP($J3,$D$2:$H$4,4,0))

其实,写这么长公式的人,水平一般都不高,逻辑性太差。来看看卢子提供的公式,是不是更加简洁易懂?
=VLOOKUP(J3,D:H,IF(COUNTIF(F:F,K3),4,5),0)

写公式的时候,可以将相同的部分合并起来,就不用写一大堆VLOOKUP。用COUNTIF判断费用报销人是否在左边出现,有就返回4,没有就返回5。

其实,公式越短,水平越高!

下面,再分享一些常用公式的简化。

1.补全8位发票号码

传统的方法是借助TEXT函数。
=TEXT(A2,"00000000")

改进:第三参数为8,就代表在前面补0凑齐8位。
=BASE(A2,10,8)

2.判断年龄区间

将年龄划分成好几个区间,绕了一圈IF,结果出错。

这种没有规律的,可以做一个对应表,然后用LOOKUP轻松解决。
=LOOKUP(A2,$D$2:$E$6)

3.电机名称混合着各种字符,现在要将第一个汉字之前的内容提取出来

传统公式,汉字都大于等于吖,因此用MID提取每一个字符跟吖比较,满足就返回TRUE,再用MATCH查找第一个TRUE的位置,再减去1,用LEFT提取汉字之前的字符。
=LEFT(A2,MATCH(TRUE,MID(A2,COLUMN(1:1),1)>="吖",0)-1)

改进后公式:
=LEFT(A2,FIND("%",ENCODEURL(A2))-1)

ENCODEURL估计99.99%的人都是第一次见到,这个是干嘛的?

输入公式后,返回一串类似于乱码的东西。
=ENCODEURL(A2)

专业名词是 URL 编码的字符串。

仔细观察,汉字前面的内容不变,后面第一个开始符号为%。因此用FIND判断%的位置,再减1,就是前面的内容的字符数。
=FIND("%",ENCODEURL(A2))-1

再嵌套LEFT,就能提取前面的内容。
=LEFT(A2,FIND("%",ENCODEURL(A2))-1)

4.提取不重复项目

传统公式:
=INDEX(A:A,SMALL(IF(MATCH($A$2:$A$72,$A$2:$A$72,0)=ROW($2:$72)-1,ROW($2:$72),4^8),ROW(A1)))&""

改进后公式:
=UNIQUE(A2:A72)

5.将符合条件的项目筛选出来

传统公式:
=IFERROR(INDEX(A:A,SMALL(IF($A$2:$A$72=$I$1,ROW($2:$72)),ROW(A1))),"")

改进后公式:
=FILTER(A2:C72,(A2:A72=I1))

教会徒弟,饿死师傅,真的是这样吗?

如果你水平足够高,根本不用担心这个问题,你在教别人的同时,你自己也每天在进步。教别人的同时,逼着自己成长。你要的是跟昨天的自己比较,而不是跟自己的徒弟比较。

上面是对那些师傅讲的,下面是对徒弟讲的。

如果你遇到一个真心教你的,好好学,错过了就永远错过了。

推荐:别找了,这7条Excel新公式,你绝对需要!

上篇:上班就只是坐了一天,为什么会那么累?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

相关文章