关于excel的函数if的问题
单元格A1=221时,函数if(right(A1,2)>50,right(A1,2)-50,right(A1,2))返回的值为-29,而A1=281时,能正确返回31,为...
单元格A1=221时,函数if(right(A1,2)>50,right(A1,2)-50,right(A1,2)) 返回的值为-29,而A1=281时,能正确返回31,为什么?
展开
4个回答
展开全部
这是因为用RIGHT,LEFT或MID等函数提取出来的字符串是文本数据,而文本数字大于一切常规数字,所以公式就会出错
你的公式可以改成
=IF(--RIGHT(A1,2)>50,RIGHT(A1,2)-50,--RIGHT(A1,2))
或
=IF(RIGHT(A1,2)*1>50,RIGHT(A1,2)-50,1*RIGHT(A1,2))
或
=IF(RIGHT(A1,2)+0>50,RIGHT(A1,2)-50,0+RIGHT(A1,2))
或
=IF(RIGHT(A1,2)-0>50,RIGHT(A1,2)-50,RIGHT(A1,2)-0)
或
=IF(RIGHT(A1,2)/1>50,RIGHT(A1,2)-50,RIGHT(A1,2)/1)
等这些方法,即通过(负负运算或乘1,加0,减0,除1等)运算让文本数字转成常规数字,再进行公式运算
你的公式可以改成
=IF(--RIGHT(A1,2)>50,RIGHT(A1,2)-50,--RIGHT(A1,2))
或
=IF(RIGHT(A1,2)*1>50,RIGHT(A1,2)-50,1*RIGHT(A1,2))
或
=IF(RIGHT(A1,2)+0>50,RIGHT(A1,2)-50,0+RIGHT(A1,2))
或
=IF(RIGHT(A1,2)-0>50,RIGHT(A1,2)-50,RIGHT(A1,2)-0)
或
=IF(RIGHT(A1,2)/1>50,RIGHT(A1,2)-50,RIGHT(A1,2)/1)
等这些方法,即通过(负负运算或乘1,加0,减0,除1等)运算让文本数字转成常规数字,再进行公式运算
展开全部
公式改为:
=IF(A1="","",IF(RIGHT(A1,2)>"50",RIGHT(A1,2)-50,--RIGHT(A1,2)))
或者改为:
=IF(A1="","",IF(--RIGHT(A1,2)>50,RIGHT(A1,2)-50,--RIGHT(A1,2)))
RIGHT函数返回的结果是文本数值,任意文本的数值都比最大的数字要大,所以right(A1,2)>50永远大于50,公式也只会返回right(A1,2)-50的结果。在前面加两个减号 -- 把RIGHT返回的文本数值转换数值型数字就行了。或把 50 加个双引号,把50转化为文本的50也行。
=IF(A1="","",IF(RIGHT(A1,2)>"50",RIGHT(A1,2)-50,--RIGHT(A1,2)))
或者改为:
=IF(A1="","",IF(--RIGHT(A1,2)>50,RIGHT(A1,2)-50,--RIGHT(A1,2)))
RIGHT函数返回的结果是文本数值,任意文本的数值都比最大的数字要大,所以right(A1,2)>50永远大于50,公式也只会返回right(A1,2)-50的结果。在前面加两个减号 -- 把RIGHT返回的文本数值转换数值型数字就行了。或把 50 加个双引号,把50转化为文本的50也行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个怎么说呢,总体来说,公式本身并没有错,只有公式在运算时出了现了一些小问题
你的公式中,第1个right(A1,2) 返回的是 “221”,可以说,返回的是个文本,而文本无法与数值来作比较谁大谁小,直接就判断为文本 比 数值 在。所以就返回TRUE了。结果就是21-50,得到的结果就是-29.
当A1=281时,还是用81-50=31,虽然这个结果与你想要的相同,但实际上来说是错误的。
把以,把公式改为 =IF(--(RIGHT(A1,2))>50,RIGHT(A1,2)-50,RIGHT(A1,2))
也就是把你的公式第一个RIGHT前面加上 --
你的公式中,第1个right(A1,2) 返回的是 “221”,可以说,返回的是个文本,而文本无法与数值来作比较谁大谁小,直接就判断为文本 比 数值 在。所以就返回TRUE了。结果就是21-50,得到的结果就是-29.
当A1=281时,还是用81-50=31,虽然这个结果与你想要的相同,但实际上来说是错误的。
把以,把公式改为 =IF(--(RIGHT(A1,2))>50,RIGHT(A1,2)-50,RIGHT(A1,2))
也就是把你的公式第一个RIGHT前面加上 --
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=IF(RIGHT(A1,2)*1>50,RIGHT(A1,2)*1-50,RIGHT(A1,2)*1)
因为用right之后变文本了*1就可以了
因为用right之后变文本了*1就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询