我正在尝试使用一个公式将一系列货币字符串转换为美元,以便我有一些相同的货币。
目前我只针对欧元,英镑和美元这样做,但稍后我会将其扩展到更多货币。
我有一个目前能够执行以下操作的公式:
- >
(空白为空白)Yes
- > Yes
No
- > No
Alt
- > Alt
N/A
- > N/A
Yes €100
- > Yes $110
Yes €200 (Current)
- > Yes $219 (Current)
Yes €300 NA
- > Yes $329 NA
Yes €400 Next
- > Week Yes $439 Next Week
Yes €500 5 RE
- > Yes $549 5 RE
Yes £100
- > Yes $122
Yes £200 (Current)
- > Yes $243 (Current)
Yes £300 NA
- > Yes $365 NA
Yes £400 Next Week
- > Yes $486 Next Week
Yes £500 5 RE
- > Yes $608 5 RE
Yes $100
- > Yes $100
Yes $200 (Current)
- > Yes $200 (Current)
Yes $300 NA
- > Yes $329 NA
Yes $400 Next Week
- > Yes $400 Next Week
Yes $500 5 RE
- > Yes $500 5 RE
然而,它无法应对以下情况:
Yes £600 - £700
- > Yes $730 - $851
Yes €600 - €700
- > Yes $658 - $768
Yes $600 - $700
- > Yes $600 - $700
目前,€
EUR版本和£
GBP行只会转换第一个值,我需要将它们转换为美元。
Yes £600 - £700
- > Yes $729 - £700
(请注意输出中第一种货币的$和输出中第二种货币的£)Yes €600 - €700
- > Yes $658 - €700
(请注意输出中第一种货币的$和输出中第二种货币的€)=ArrayFormula(
IF(NOT(ISBLANK(A2)),
IF(IFERROR(SEARCH("$",A2),0),A2,IF(A2="N/A","N/A",IF(A2="No","No",
IF(A2="Unknown","Unknown",IF(A2="Yes","Yes",
SUBSTITUTE(
A2,
REGEXEXTRACT(A2, "[\£|\€]\d+"),
TEXT(
REGEXEXTRACT(A2, "[\£|\€](\d+)")
*
VLOOKUP(
REGEXEXTRACT(A2, "([\£|\€])\d+"),
{
{"£";"€"},
{GoogleFinance("CURRENCY:GBPUSD");GoogleFinance("CURRENCY:EURUSD")}
},
2,0),
"$###,###"
)
)
)))))
,"")
)
答案 0 :(得分:0)
拆分值,对每个零件进行转换,然后加入零件。
使用SPLIT分隔“ - ”,对每个部分进行转换,然后使用JOIN部分。对于这种方法,我认为您应该在转换之前和之后使用辅助列。
REGEX函数允许使用数组作为参数
实施例
A3:Yes £600 - £700
=ArrayFormula(REGEXEXTRACT(A3, {"[\£|\€]\d+","- ([\£|\€]\d+)$"}))
结果
B3:£600
C3:£700
拥有一个包含复杂公式的电子表格可能会使一方难以为主,因为不可能在公式的每个部分都包含注释,并且可能很容易进行不必要的更改,另一方面,脚本允许插入描述性评论,并且意外更改的机会较少。