作业帮 > 综合 > 作业

关于ISNUMBER函数的一个问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 09:19:56
关于ISNUMBER函数的一个问题
我现在有两张表定名为A表和B表,A表中A1格内容为X-059,A2格内容为X-01,现在我想在B表的A1格中只,059,A2格只写01,我编辑了一个公式如下:
=IF(ISNUMBER(MID(A表!A1,LEN(A表!A1)-2,1))),RIGHT(A表!A1,3),IF(ISNUMBER(MID(A表!A1,LEN(A表!A1)-1,1)),RIGHT(A表!A1,2),RIGHT(A表!A1,1)))
显示的结果B2表中A1为9,A2为1,请问为什么?
还有就是这种情况
比如B表的A1格子里填写了下面的函数
=SUM(C1:C10),其最终的结果是50
A2格子里填写
=ISNUMBER(A1)结果还是FALSE
我不明白为什么会是这样
A表中A1格内容为X-059,A2格内容为X-01,现在我想在B表的A1格中只,059,A2格只写01,我编辑了一个公式如下:
=IF(ISNUMBER(MID(A表!A1,LEN(A表!A1)-2,1))),RIGHT(A表!A1,3),IF(ISNUMBER(MID(A表!A1,LEN(A表!A1)-1,1)),RIGHT(A表!A1,2),RIGHT(A表!A1,1)))
显示的结果B2表中A1为9,A2为1,请问为什么?

首先公式多了一个反括号应写为
=IF(ISNUMBER(MID(A表!A1,LEN(A表!A1)-2,1)),RIGHT(A表!A1,3),IF(ISNUMBER(MID(A表!A1,LEN(A表!A1)-1,1)),RIGHT(A表!A1,2),RIGHT(A表!A1,1)))

其次用函数LEFT,RIGHT,MID等得出的值是文本型数值,不是数值
如:
MID(A表!A1,LEN(A表!A1)-2,1)=MID("X-059",5-3,1)=MID("X-059",3,1)="0"
即在"X-059"字符串中从第三位起取一位字符即得出"0",这是一个文本的0,
所以ISNUMBER("0")判定得出的不是数值是文本,所以返回IF(ISNUMBER(MID(A1,LEN(A1)-1,1)),RIGHT(A1,2),RIGHT(A1,1))

MID(A1,LEN(A1)-1,1)=MID("X-059",5-1,1)=MID("X-059",4,1)="5"
所以ISNUMBER("5")判定得出的不是数值是文本,所以返回RIGHT(A1,1),即取"X-059"最后一个字符"9"

公式应写成
=IF(ISNUMBER(--MID(A表!A1,LEN(A表!A1)-2,1)),RIGHT(A表!A1,3),IF(ISNUMBER(--MID(A表!A1,LEN(A表!A1)-1,1)),RIGHT(A表!A1,2),RIGHT(A表!A1,1)))
用两个负号将文本数值转为数值,但这样的公式太不科学了,如果字符串是"X-23456",那公式不是要写的很长,建议如下:

公式可以简写成
=RIGHT(A表!A1,LEN(A表!A1)-2)

=RIGHT(A表!A1,LEN(A表!A1)-FIND("-",A表!A1))




比如B表的A1格子里填写了下面的函数
=SUM(C1:C10),其最终的结果是50
A2格子里填写
=ISNUMBER(A1)结果还是FALSE
我不明白为什么会是这样

这样的问题是不会出现的,你检查一下A1的公式是不是 =SUM(C1:C10),或者其单元格格式是不是被设置成文本格式了,得出结果其实是:公式变成文本公式了,并不会计算出结果