请帮在Excel中写一个If语句

来源:百度知道 编辑:UC知道 时间:2024/05/23 14:53:21
请帮写一个If语句要求:
在Excel表格中有一组3位数的数据,我想把它们变成:
1、当个位数小于5时,十位数为6;
2、当个位数大于5时,十位数为5;

如123、136、187、163、148五个数套用if句后变成163、156、157、163、158;

也就是当我有一组100到200之间数据,我要这组数据变成大于155小于165的数,但个位数不能变。
1、2楼的答案我都试过了,都为正确答案,不知我该怎么给分啊?
另外能否解释下,因为本人很菜,要好好学习,学习方法最重要啊!

当个位数等于5时怎么处理?下面的公式按大于5处理。
=LEFT(A1)&IF(--RIGHT(A1)<5,6,5)&RIGHT(A1)
不过这样的结果是文本格式,若还要保持为数值格式则改为:
=--(LEFT(A1)&IF(--RIGHT(A1)<5,6,5)&RIGHT(A1))

LEFT(A1)是取字符最高位,只取1位。
IF(--RIGHT(A1)<5,6,5)是,如果最后一位小于5,就反回6,否则返回5,这个是放在中间一位的。公式中--RIGHT(A1),因RIGHT()反回的是字符,不能与数字比较,所以用“--”将其他转换为数值再比较。这里的处理方法很多。比如楼下的(呵呵,我补充回答后我自己就跑到楼下了)采用乘1的办法。也可以这样RIGHT(A1)<"5"。但字符比较有个缺点,就是有其他字符也会参与比较,所以还是转换为数值为好。
RIGHT(A1)是取最后一位数。
最后将分别得到的三个数用“&”进行连接。其实也有一个字符合并函数CONCATENATE(),但用&合并更简单些。

可以用如下公式:
=left(a1)&if(right(a1)*1<5,6,5)&right(a1)*1