【问题标题】:Google Sheets Formula to Extract and Convert Currency from EUR or GBP to USD谷歌表格公式提取货币从欧元或英镑转换为美元
【发布时间】:2016-10-17 01:59:28
【问题描述】:

我正在尝试获取将一系列货币字符串转换为美元的公式,以便我有一些相同的货币。

目前我只针对欧元、英镑和美元进行此操作,但稍后我会将其扩展到更多货币。


我有一个目前能够执行以下操作的公式:

正常

  • -> (空白到空白)
  • 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 行只会转换第一个值,我需要它将两个值都转换为 USD。

  • 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),
          "$###,###"
        )
      )
  )))))
,"")
 )

Formulas Original Source

【问题讨论】:

  • 这个问题没有显示任何关于特定问题的研究工作,无论如何,我发布并回答了一些可以给你一些方向的建议。
  • 我的浏览器历史显示不然,我浏览了谷歌的电子表格函数列表并查看了每一个函数,我用谷歌搜索了很多东西,我搜索了堆栈溢出。您的建议确实有帮助,我目前正在寻找通过谷歌应用脚​​本来代替
  • 我没有说你没有研究,我说问题没有显示。网站指南 (How to Ask) 要求跟踪研究工作,我认为包括摘要甚至亮点就足够了。

标签: regex google-sheets formulas array-formulas


【解决方案1】:

简答

拆分值,对每个部分进行转换,然后加入这些部分。

建议

SPLIT 和 JOIN 内置函数

使用SPLIT分隔“-”,对每个部分进行转换,然后使用JOIN部分。对于这种方法,我认为您应该在转换前后使用辅助列。

试试 REGEX 内置函数

REGEX 函数允许使用数组作为参数

示例 A3:Yes £600 - £700

=ArrayFormula(REGEXEXTRACT(A3, {"[\£|\€]\d+","- ([\£|\€]\d+)$"}))

结果

B3:£600
C3:£700

试用 Google Apps 脚本

拥有一个包含复杂公式的电子表格可能会使一方难以主控,因为不可能在公式的每个部分都包含 cmets,并且很容易进行不需要的更改,另一方面,脚本允许描述性 cmets 的插入,意外更改的可能性较小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多