问题
某公司规定:如果员工当月过生日,补贴500元。
但在计算补贴时,却出错了,如下图:
现在是12月份,本来有几位员工生日在本月,但计算出来的补贴却是0。
此处用的公式是:
=IF(MID(B2,11,2)=MONTH(TODAY()),500,0)
分析
公式“=IF(MID(B2,11,2)=MONTH(TODAY()),500,0)”,本身的逻辑关系是没错的,但如果将条件MID(B2,11,2)=MONTH(TODAY())表达式“=”左右两侧进行运算(分别选中,按F9键),可以看到结果如下图:
条件表达式为"12"=12,左侧是用英文状态双号号引起的,是文本格式,而右侧是数值12,所以条件比较的结果是FALSE,如下图:
所以,公式返回值是0。
改正
有两种改正公式的方法:
一是将条件表达式左侧的文本用函数转换为数值;
二是将条件表达式右侧的数值用函数转换为文本;
第一种方法的公式改为:
=IF(VALUE(MID(B2,11,2))=MONTH(TODAY()),500,0)
如下图:
第二种方法的公式改为:
=IF(MID(B2,11,2)=TEXT(MONTH(TODAY()),"00"),500,0)
如下图:
本文完
相关知识推荐:
热门跟贴