【问题标题】:Google Sheets Array Function over Google Finance Currencies谷歌金融货币上的谷歌表格数组函数
【发布时间】:2020-08-29 22:24:08
【问题描述】:

我希望通过谷歌财务功能为货币兑换率分配一个数组。我复制了上面的这个公式并将其调整到我的电子表格中,但我不断收到以下错误消息:

“错误:在 VLOOKUP 评估中未找到值 '4/8/2020'。”

'4/8/2020' 是日期。我对 VLOOKUP 了解不足,无法理解问题。

=ARRAYFORMULA(IF(B2:B<>"", IF(G2:G=H1, C2:C, C2:C*VLOOKUP(TO_TEXT(B2:B), TO_TEXT(QUERY(GOOGLEFINANCE("CURRENCY:"&G2:G&H1, "price", MIN(B:B), MAX(B:B)+1), "offset 1 format Col1'mm/dd/yyyy'", 0)), 2, 0)),""))

我正在查看我在 C 列中记录的费用。如果它是我正在转换的相同货币,那么我返回原始费用,否则我将费用乘以转换率得到一个结果。

https://docs.google.com/spreadsheets/d/1HNZvza9jR8gYk3QlVMgx2nfN4B40oDhyOYVthwQ4HzE/edit?usp=sharing

这里是带有公式的电子表格的链接,因此更容易理解。感谢您的任何帮助!

最好的,加莱亚诺

【问题讨论】:

    标签: arrays google-apps-script google-sheets google-finance


    【解决方案1】:

    您的公式不起作用的原因是,当您在 VLOOKUP 的搜索键中使用 TO_TEXT 时,它会将日期原样转换为文本,然后无法在 @987654324 的输出中找到@ 因为格式不同。例如,TO_TEXT 中的日期 4/9/2020 变为文本 4/9/2020,但 QUERY 将输出与 04/09/2020 相同的日期,因此 VLOOKUP 会引发错误。

    试试这个对我有用的公式的修改。

    =ARRAYFORMULA(IF(B2:B&lt;&gt;"", IF(G2:G=H1, C2:C, C2:C*VLOOKUP(TO_TEXT(TEXT(B2:B, "MM/DD/YYYY")), TO_TEXT(QUERY(GOOGLEFINANCE("CURRENCY:"&amp;G2:G&amp;H1, "price", MIN(B:B), MAX(B:B)+1), "offset 1 format Col1'mm/dd/yyyy'", 0)), 2, 0)),""))

    【讨论】:

    • 非常感谢,Broly,修复了它。看来我现在在使用 Google 财经时遇到了另一个错误。我正在使用您提供的公式,并且使用不同货币的前几个实例效果很好。再往下,它不再检查特定货币。我收到此错误“在评估 GOOGLEFINANCE 时,对符号的查询:'CURRENCY:EUREUR' 未返回任何数据。”唯一的问题是,我没有在那个单元格中使用 EUR。我实际上使用的是瑞士法郎,但似乎货币并不重要。美元也不起作用。任何想法为什么这可能会在结果的后面发生而不是一开始?
    • 你能分享一个发生这种情况的样本表吗?
    • 例如行号 276、284、285
    • 很抱歉再次因这个问题打扰您。您认为您有时间可以查看我发送的链接吗?一切顺利!!我感觉我的语法又出了点问题,但这个想法在理论上应该可行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多