Google表格十进制数,如何删除逗号并添加零

Posted

技术标签:

【中文标题】Google表格十进制数,如何删除逗号并添加零【英文标题】:Google Sheets Decimal Numbers, how to remove commas and add zero 【发布时间】:2020-07-11 11:10:21 【问题描述】:

以下问题。我从网站获得的 Google 表格中有十进制数字。

这些数字在小数点后有 3 位数字,或者其中没有逗号。我需要不带逗号的数字,并在 1,2 => 1200 或 1,22 => 1220 之后添加零,而 2 应该是 2。

如果某个数字在网站上看起来像这样:

1,200
1,220
1,222
12,220
2

我通过 Google 电子表格使用公式 =IMPORTDATA("API_LINK") 获取数据

存在我不想丢失的零被=IMPORTDATA自动删除的问题

意味着我把它复制到这样的表中:

1,2
1,22
1,222
12,22
2

我的问题是,如何让数字自动转换为另一个公式,甚至使用如下所示的脚本:

1,2 => 1200
1,22 => 1220
1,222 => 1222
12,22 => 12220
2 => 2

所以正常的数字应该是正常的,小数应该是转换的。

我试过的公式只适用于 1,222 => 1222。另一个看起来像这样 1,2 => 43862 和 1,22 => 1,22 也是 12,22 => 12,22。

=IFERROR(VALUE(SUBSTITUTE(A2;",";"."));VALUE(SUBSTITUTE(A2;".";",")))

我什至尝试更改工作表中的设置,但根本不起作用。 如果有人可以帮助我,那就太好了。

【问题讨论】:

我无法检查,因为我得到了逗号作为小数分隔符,但是 INT(SUBSTITUTE(A1,",",".")*1000) 这个公式在小数点上应该是有效的,我忘了说我也有正常的数字,比如 2 和 2 应该保持为 2。但是通过这个公式我得到 2=> 2000,这是不对的。我编辑了我的问题,感谢这个公式! 这里的问题是您的 API 和您的 Google 电子表格在数据的“区域设置”上不一致。欧洲的“小数”是逗号,而在美国,逗号仅用于“千”组之间。我建议您使用文件>电子表格设置将电子表格更改为数据源的区域设置。看看刮痕是否以这种方式更干净。如果是这样,可能有比一堆文本替换更好的解决方法。 【参考方案1】:

如果您的导入删除了最后的零,这表明您的工作表中最后的内容很可能是文本,而不是数字。

如果您共享具有完全编辑权限的示例表,则总是更容易获得帮助。但是,鉴于我从您的帖子中了解到的情况,请尝试以下操作:

=IF(A2="","",VALUE(A2&IFERROR(REPT("0",3-(LEN(A2)-FIND(",",A2))))))

这也可以作为一个稍微修改的数组公式(即,它可以用一个公式“解决”一整列,而不是向下拖动一个公式)。例如,如果您的原始数据在 A2:A 中,您可以将以下数组公式放入 B2(假设 B2 下方的 B 列完全空白):

=ArrayFormula(IF(A2:A="","",VALUE(A2:A&IFERROR(REPT("0",3-(LEN(A2:A)-FIND(",",A2:A)))))))

【讨论】:

这个解决了我的问题。谢谢。 太棒了。感谢您的反馈。【参考方案2】:

尝试:

=ARRAYFORMULA(SUBSTITUTE(TO_TEXT(IMPORTDATA("API_LINK")), ",", ))

【讨论】:

以上是关于Google表格十进制数,如何删除逗号并添加零的主要内容,如果未能解决你的问题,请参考以下文章

将逗号添加到十进制数

如何在laravel中格式化为包含逗号和点的十进制数?

十进制逗号删除并将逗号添加到javascript中的大数字

使用 .NET 2.0 将逗号添加到文本字符串中的十进制数

在 Google 表格中用逗号替换数字小键盘产生的小数点

C编程十进制到二进制 - 将前导零添加到递归方法