大家帮我看看这个EXCEL函数编的对不对,为什么会没有反应

IF(RIGHT((H3+22),1)=0,16,RIGHT((H3+22),1))
用意是H列数值+22后的值,取个位,以X表示,如果X=0则等于16,如果X≠0则等于X

是不是我编的不对,该数值没反应,还是会显示0

RIGHT是文本函数,取出来的值默认为文本不是数字,所以使用IF函数的判断条件RIGHT((H3+22),1)=0,结果永远不会为TRUE,因为文本0永远不等于数字0,因此16这个TRUE的返回值不会出现。
公式可改为:
=IF(RIGHT((H3+22),1)="0","16",RIGHT((H3+22),1))
此公式结果值格式均为文本
或者
=IF(--RIGHT((H3+22),1)=0,16,--RIGHT((H3+22),1))
此公式结果值格式为数字
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-10
之所以不对,可能是因为RIGHT函数返回的是文本。
改成IF(MOD(H3+22,10),MOD(H3+22,10),16)
第2个回答  2019-06-10
使用如下公式就可以了:
=IF(NUMBERVALUE(RIGHT((H3+22),1))=0,16,NUMBERVALUE(RIGHT((H3+22),1)))