关于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,为什么? 展开
 我来答
1975qjm
高粉答主

2014-02-09 · 关注我不会让你失望
知道大有可为答主
回答量:2万
采纳率:74%
帮助的人:7510万
展开全部
这是因为用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等)运算让文本数字转成常规数字,再进行公式运算
succeedfa0
2014-02-08 · TA获得超过774个赞
知道小有建树答主
回答量:688
采纳率:0%
帮助的人:499万
展开全部
公式改为:
=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也行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
琴俊贺楼Rl
2014-02-09 · TA获得超过4721个赞
知道小有建树答主
回答量:1174
采纳率:57%
帮助的人:371万
展开全部
这个怎么说呢,总体来说,公式本身并没有错,只有公式在运算时出了现了一些小问题

你的公式中,第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前面加上 --
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
99863815
2014-02-08 · TA获得超过1551个赞
知道答主
回答量:210
采纳率:0%
帮助的人:82.5万
展开全部
=IF(RIGHT(A1,2)*1>50,RIGHT(A1,2)*1-50,RIGHT(A1,2)*1)
因为用right之后变文本了*1就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式