如何获取和修复具有#ERROR 的单元格的原始值

How to get and fix raw value of a cell that has #ERROR

我在将 table 数据从网页复制粘贴到表格时遇到问题,以等号(“=”)开头的单元格值有错误的小数点分隔符(“,” ) 对于语言环境,例如

=+90,00

导致 Sheets 抱怨 #ERROR! - Formula parse error.

因为我无法轻易更改数据源而且数据量很大,所以我无法手动删除或更改破坏值的字符,认为它是一个公式。

因此,我一直在寻找方法,在删除多余字符的同时将单元格内容原始转换为另一个 sheet 单元格。

例如在 sheet 名为 RawSource 的单元格 A1 上,我有值(公式)

=+90,00

导致#ERROR!在那个细胞上。在目标 sheet 上,我尝试使用此公式通过删除第一个字符(等号)来修复错误:

=RIGHT(CELL("contents", RawSource!A1), LEN(CELL("contents", RawSource!A1))-1)

但到目前为止运气不好,因为我认为 ERROR 值甚至通过 CELL 函数而不是单元格的原始内容传播。

有没有办法在不手动更改源数据的情况下解决这个问题?

一旦你导入了一个 #ERROR! 它就不能被另一个公式纠正,因为那个使用过的公式无法看到那个错误背后的原因。解决方法是:

  • 如果您使用 IMPORTHTML / IMPORTXML / 等导入此类数据,将其包装到 REGEXREPLACESUBSTITUTE 中,在某些情况下甚至在 TO_TEXT 中使用 ARRAYFORMULA 的组合来消除导致案例
  • 的错误
  • 如果粘贴(如您的情况),您唯一的选择是在每个错误单元格的前面手动添加 '(例如 '=+90,00)
  • 您也可以随时尝试将其粘贴到具有不同语言环境(法语、西班牙、捷克语等)的 sheet,然后从那里将其复制粘贴到您的 sheet

如果这是您偶尔要做的事情,请考虑以下过程

  1. 创建新电子表格
  2. 将区域设置更改为使用逗号作为小数点分隔符
  3. 导入使用逗号作为小数点分隔符的数据
    • 这里的技巧是 Google Sheets 会将导入的公式解释为具有有效数字
  4. 将值复制到使用点作为小数点分隔符的电子表格

另一种方法是使用 Google Apps 脚本来获取公式,因为内置公式看不到公式,只能看到它们的结果或单元格属性,即内置-在检查单元格是否有公式 ISFORMULA 的函数中,但没有 return 公式。