问题

某公司规定:如果员工当月过生日,补贴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)

如下图:

本文完

相关知识推荐: