Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果函数在Excel中返回文本而不是数字?_Excel_Excel Formula - Fatal编程技术网

如果函数在Excel中返回文本而不是数字?

如果函数在Excel中返回文本而不是数字?,excel,excel-formula,Excel,Excel Formula,我有一个非常简单的公式,但它给出了不想要的结果 =IF(A1>=0,A1,0) 如果if语句因某种原因为假,则上述公式1给出的0为TEXT。我做了IsNumber(),它返回False。这怎么可能 =IF(A1>0,0,A1) 如果if语句引用相同的单元格A1,则该语句在单元格中给出0作为实数 A1 =IF(ISERROR(INDEX('$G$2:$G$80,MATCH($BQ$6,'$B$2:$B$80,0))), "0.000",INDEX('$G$2:$G$80,MAT

我有一个非常简单的公式,但它给出了不想要的结果

=IF(A1>=0,A1,0) 
如果if语句因某种原因为假,则上述公式1给出的0为TEXT。我做了IsNumber(),它返回False。这怎么可能

=IF(A1>0,0,A1) 
如果if语句引用相同的单元格A1,则该语句在单元格中给出0作为实数

A1 =IF(ISERROR(INDEX('$G$2:$G$80,MATCH($BQ$6,'$B$2:$B$80,0))), "0.000",INDEX('$G$2:$G$80,MATCH($BQ$6,'$B$2:$B$80,0)))

非常感谢您的帮助。

您的问题不是将单元格A1格式化为文本,因为您有一个计算结果的公式。问题在于单元格A1中的公式

=IF(ISERROR(INDEX($G$2:$G$80,MATCH($BQ$6,$B$2:$B$80,0))), "0.000",INDEX($G$2:$G$80,MATCH($BQ$6,$B$2:$B$80,0)))
(这是在清理了剩余的
字符之后,可能是从其中删除了对其他工作簿的引用)

在您的公式中,
TRUE
返回值是
“0.000”
,因为它在引号中,所以它被解释为文本而不是数字。如果要删除引号,公式将仅自动更正为
0
,返回实际数值0


如果希望将其格式化为0.000,请不要返回
“0.000”
,而是返回
0
,并使用小数点后3位的数字格式格式化单元格。

是否愿意共享单元格
A1
的小屏幕截图?告诉我们它是如何格式化的。作为文本?如果
A1
是数值(未格式化为文本或前面有
),则不应返回字符串值。第二个公式也引用A1并返回数字。A1的公式已在上面更新。A1的格式为数字。第二个公式在引用时没有任何问题。对我来说,它正确地返回为数字。您可以将单元格类型更改为手动编号并进行检查吗?当我手动更改或在其中粘贴格式时,它不会更改。这很奇怪,因为另一个公式有效,而这个公式无效。我不明白为什么。粘贴格式是不够的。你需要将format设置为General,然后重新计算公式。你明白了。这就解决了问题。我不应该把“”放在那里,因为它将作为文本而不是数字。谢谢!