动态转换货币

时间:2014-10-01 18:41:04

标签: google-sheets currency

我有一系列不同货币的价值观。我想创建一个自动检测给定值货币的列,并将其转换为GPB(或任何其他给定货币)。

我有以下用于查询汇率的公式:

=INDEX(GoogleFinance("eurgbp","price",date(2014,9,15)),2,2)

但是,这需要您指定要转换的货币。我希望这是动态的,因为我的货币列表各不相同。

3 个答案:

答案 0 :(得分:3)

您可以使用以下命令返回格式化值的文本字符串表示形式:

=TO_TEXT(A1)

因此,如果您将值35格式化为British Pound Sterling,则公式将返回字符串:

£35.00

现在,您可以将该字符串与查找表(可能使用REGEXMATCH)匹配,以返回GoogleFinance()所需的字符串。问题在于,例如美元的本地格式与澳元完全相同。但是,您可以设置自己的自定义数字格式(例如附加USD或AUD),这些格式将传递到TO_TEXT函数。

因此,您可能需要描述所有可能的货币格式,以获得更具体的解决方案。

答案 1 :(得分:3)

听起来你需要为货币列值提供某种编码。例如:

Currency
----------
USD, 10254  # $102.54
RMB, 1010   # ¥101.0

然后,您需要以某种方式解析该列值以确定货币类型。或者你可以有两列。一个用于货币类型,另一个用于货币值:

Type Currency
---- --------
USD  10254    # $102.54
RMB  1010     # ¥101.0

顺便说一下,货币栏是整数,所以你不必使用浮点数学,这在我的经验中是一件好事。

答案 2 :(得分:1)

正如AdamL所提到的,您需要检查数据列表中是否存在具有相同符号的货币。

如果没有,您可以执行以下操作:

Amt     Text         Amt Symbol
=========================================
(data)  =TO_TEXT(A2) =left(B2,FIND(REGEXEXTRACT(B2,"[0-9\.\,]"),B2)-1)

这将从A列中获取您的货币符号。公式是找到第一次出现的数字(包括。和),然后您只需取其左侧的内容即可获得货币。

然后,您需要为每个符号提供一个表格,以符合其ISO 3字母代码,这样您就可以使用Google财经获取FX,例如:

Symbol    ISO Ccy
======================================
$         USD
£         GBP
€         EUR

然后你可以通过使用VLOOKUP获得ISO ccy并继续上面的公式,在这里我为GBP做了FX

Amt Symbol        FX                                                                      Convert Amt
===================================================================================================
(formula above)   =IF(D2="GBP",1,INDEX(GoogleFinance(D2&"GBP","price",<SOMEDATE>),2,2))   =E2*A2

我保存了一个示例here