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

3

我在从网页复制表格数据到 Sheets 时遇到了一个问题,即以等号("=")开头且小数分隔符(",")与本地不符的单元格数值,例如

=+90,00

导致 Sheets 抱怨 #ERROR! - 公式分析错误。

由于我无法轻松更改数据源且数据量很大,因此我不能手动删除或更改破坏值的字符,认为它是公式。

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

例如,在名为 RawSource 的工作表单元格 A1 中,我有值(公式)

=+90,00

这会导致该单元格上出现 #ERROR! 错误。在目标工作表上,我尝试使用以下公式来修复错误,即通过删除第一个字符(等号符号):

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

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

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

2个回答

2
一旦您导入了一个 #ERROR!,它就不能通过另一个公式进行更正,因为使用的公式无法查看该错误之后的内容。解决方法如下:
  • 如果您使用 IMPORTHTML / IMPORTXML / 等导入此类数据,请将其包装在 REGEXREPLACE 或 SUBSTITUTE 中,并在某些情况下甚至与 ARRAYFORMULA 的组合中使用 TO_TEXT,以消除引起错误的情况
  • 如果它是粘贴的(如您的情况),您唯一的选择是在每个错误单元格前手动添加'(例如'=+90.00
  • 您也可以尝试将其粘贴到具有不同语言环境(法语、西班牙语、捷克语等)的工作表中,然后从那里复制粘贴到您的工作表中

1
有没有一个像CELL()这样的函数可以访问任意单元格的原始(用户输入的)内容,而不管其中是否存在错误,那不是很好吗? 由于复制粘贴了数百行代码,无法手动编辑每个单元格。所以目前似乎没有解决办法。不管怎样,还是谢谢! - undefined

0
如果这是你偶尔要做的事情,考虑以下步骤:
1. 创建一个新的电子表格。 2. 将区域设置更改为使用逗号作为小数分隔符的设置。 3. 导入你的数据,其中使用逗号作为小数分隔符。
- 这里的技巧是,Google Sheets将解释导入的公式为有效数字。 4. 将这些数值复制到使用点作为小数分隔符的电子表格中。
另一种选择是使用Google Apps Script,以便能够获取公式。内置公式只能看到公式的结果或单元格属性,而无法查看公式本身。也就是说,没有返回公式的内置函数,例如ISFORMULA,但却没有返回公式的函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接