今天给大家分享一组常用的函数公式,遇到类似问题时直接拿来套用即可。
从身份证号码中提取性别
=IF(MOD(MID(A2,15,3),2),"男","女")
根据出生年月计算年龄
=DATEDIF(A2,TODAY(),"y")"周岁"
某个日期是星期几
=TEXT(A2,"aaaa")
某个日期所在月有几天
=DAY(EOMONTH(A2,0))
下一个工作日是哪天
=WORKDAY(A2,1,A5:A7)
区分指定日期是上中下旬
=LOOKUP(DAY(A2),{0,11,21},{"上旬","中旬","下旬"})
根据身份证号计算出生年月
=--TEXT(MID(A2,7,8),"0-00-00")
查找最后一条符合条件的记录
公式的模式化写法为:
=LOOKUP(1,0/(条件区域=条件),查询区域)
查询符合多个条件的记录
公式的模式化写法为:
=LOOKUP(1,0/((条件区域1=条件1)*(条件区域2=条件2)),查询区域)
逆向查询
LOOKUP函数最后的查询区域可以灵活写成任意一列,从右至左、自下而上查询,统统没问题。
如下图所示,要查询原料类别为"A3"的采购员姓名。
C13单元格公式为:
=LOOKUP(1,0/(B4:B11="A3"),A4:A11)
查询最后一笔业务日期
如下图所示,要查询不同业务员最后一笔业务的日期。
公式的模式化写法为:
=LOOKUP(1,0/(条件区域""),查询区域)
模糊查询考核等级
如下图所示,要根据E:F列的等级对照表,判断B列的考核成绩。
C2单元格公式为:
=LOOKUP(B4,E$5:F$8)
这种方法可以取代IF函数完成多个区间的判断查询,前提是对照表的首列,必须是升序处理。
提取单元格内的数字
如下图所示,要从A列的混合内容中提取出数值。
A2公式为
=-LOOKUP(1,-LEFT(A2,ROW($1:$99)))
首先用LEFT函数从A2单元格左起第一个字符开始,依次返回长度为ROW($1:$99)也就是1至99的字符串,添加负号后,数值转换为负数,含有文本字符的字符串则变成错误值。
LOOKUP函数使用1作为查询值,在由负数、0和错误值构成的数组中,忽略错误值提取最后一个等于或小于1的数值。
最后再使用负号,将提取出的负数转为正数。
图文制作:祝洪忠
长按下面