Google 表格:将以百万/十亿为单位的价值转换为数字

问题描述 投票:0回答:3

我已将网站上的一些数据复制到一张显示美元价值(以百万或数十亿为单位)的表格中,例如 2.39 亿美元、1.23 美元等。

如何将这些转换为数值?

[编辑]找到了一个Excel示例,但是当我尝试转换为工作表时,结果始终为零:

=IFS( RIGHT(B4,1)="M", N(SUBSTITUTE(B4," M","")),  RIGHT(B4,1)="B", N(SUBSTITUTE(B4," B","")) *1000 )

regex if-statement google-sheets match number-formatting
3个回答
4
投票

用途:

=INDEX(IF(REGEXMATCH(A1:A4&"", "M"),
 REGEXEXTRACT(A1:A4, "\d+.\d+|\d+")*1000000, 
 IF(REGEXMATCH(A1:A4&"", "k"),
 REGEXEXTRACT(A1:A4, "\d+.\d+|\d+")*1000,
 IF(REGEXMATCH(A1:A4&"", "B"),
 REGEXEXTRACT(A1:A4, "\d+.\d+|\d+")*1000000000, A1:A4))))


0
投票

对于复杂的转换,您可以在Apps-Script中创建用户定义的Javascript函数并在工作表中使用它。

优点:

  1. 使用 JavaScript 编写复杂的函数很容易。
  2. 您可以添加测试来验证您的代码。

0
投票

根据@player0,更好的公式是

=LET(c,C6, INDEX(IF(REGEXMATCH(c&"", "M"), REGEXEXTRACT(c, "[-+]?(?:\d*\.*\d+)")*10000000, 
 IF(REGEXMATCH(c&"", "k"), REGEXEXTRACT(c, "[-+]?(?:\d*\.*\d+)")*10000,
 IF(REGEXMATCH(c&"", "B"), REGEXEXTRACT(c, "[-+]?(?:\d*\.*\d+)")*10000000000, c)))))

此外,您还可以使用 Google 表格中的命名函数来实现此目的。

© www.soinside.com 2019 - 2024. All rights reserved.