【问题标题】:Formula errors in Google SheetsGoogle 表格中的公式错误
【发布时间】:2012-07-22 12:43:52
【问题描述】:

我有一个具有以下公式的 Google 表格:

=IFERROR(IF(AA3="","",MID((LEFT(AA3,LEN(AA3)-1)),FIND("|",AA3)+1,30)))

现在返回一个数字。

奇怪的是它在 100% 的情况下都有效并返回适当的数字,但是如果我在一些奇怪的情况下尝试使用这个数字进行计算,新公式会失败,告诉我“数字”不是数字.

例子:

(-121|102)  -121    102  -->the first is a combination which I then break apart into -121 and 102

将公式复制下来,所有公式都 100% 有效。

然后我继续处理这些数字,在奇怪的情况下,公式告诉我“102”不是数字。

下面的示例输出:

 (-121|102) -121 102 76.00
    (-238|139‎) -238 139‎ #价值!
    (-297|52) -297 52 395.73
    (-127|201) -127 201 186.81
    (-186|149) -186 149 336.89
    (-141|120) -141 120 290.08
    (-106|97‎) -106 97‎ #价值!
    (-238|139‎) -238 139‎ #价值!
    (-297|52‎) -297 52‎ #价值!
    (-160|221) -160 221 290.06
    (-197|200) -197 200 294.55
    (-238|139‎) -238 139‎ #价值!
     (-19|10) -19 10 #价值!
     (-21|22) -21 22 323.83

我可以在公式中放入什么东西来强制输出为数字吗?

=IFERROR(IF(AA3="","",MID((LEFT(AA3,LEN(AA3)-1)),FIND("|",AA3)+1,30)))

【问题讨论】:

  • 我知道,例如在 Excel 中,您可以指定字段的类型。因此,如果您在字段中写“121”,您可以将其标记为文本、数字或其他任何内容。顺便说一句,“(-121 | 102)”是单元格的内容还是什么?我觉得情况不是很清楚,不过我想我最了解。

标签: google-sheets google-sheets-formula


【解决方案1】:

问题是由某些单元格中的“不可见”非数字字符引起的。如果您列出其中一个无效数字的字符代码,例如示例输出中的第 2 行,您将看到在文本末尾有第四个代码为 8206 的不可见字符。您可以使用此公式来验证这一事实(假设单元格位于位置AA2):

=CODE(MID(AA2,FIND("|",AA2)+4,1))

您应该能够使用正则表达式替换来摆脱非数字字符,如下所示:

=REGEXREPLACE(/* some text */,"[^0-9]","")

因此,根据您的原始公式从一个文本单元格中提取第二个数值的有效公式是:

=IF(AA2="","",REGEXREPLACE(MID(LEFT(AA2,LEN(AA2)-1),
                               FIND("|",AA2)+1,30),"[^0-9]",""))

但是,我建议使用更稳定的公式来识别第二个值,基于 |) 的位置:

MID(AA2,FIND("|",AA2)+1,FIND(")",AA2)-FIND("|",AA2)-1)

产生以下结果公式,以便从文本单元格中充分提取第二个数值:

=IF(AA2="","",REGEXREPLACE(MID(AA2,FIND("|",AA2)+1,
                               FIND(")",AA2)-FIND("|",AA2)-1),"[^0-9]",""))

【讨论】:

    猜你喜欢
    • 2018-04-10
    • 2014-11-11
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多