【问题标题】:Cannot properly array googlefinance formula with dates无法正确排列带有日期的 googlefinance 公式
【发布时间】:2020-11-22 17:05:28
【问题描述】:

我正在尝试将美元金额转换为欧元,但由于汇率动态变化,我想根据交易日期进行转换。

想法是将googlefinance 函数与index 函数以及date 函数一起使用,这将由rightmidleft 函数组成。所有这些都应该用arrayformula 包裹起来。数字应使用round四舍五入。

无效示例:

别介意;,在我的谷歌表格语言设置中,这是,

公式: =ARRAYFORMULA(IF(B2:B="";"";ROUND(INDEX(B2:B*GOOGLEFINANCE("CURRENCY:USDEUR";"price";DATE(RIGHT(A2:A;4);MID(A2:A;4;2);LEFT(A2:A;2)));2;2);2)))

公式(用, 代替;): =ARRAYFORMULA(IF(B2:B="","",ROUND(INDEX(B2:B*GOOGLEFINANCE("CURRENCY:USDEUR","price",DATE(RIGHT(A2:A,4),MID(A2:A,4,2),LEFT(A2:A,2))),2,2),2)))

因为我很确定这个公式应该在“正常情况”下工作,所以我复制了它,省略了数组公式和完整范围(例如 B2:B 等),一旦我向下拖动公式,它就可以工作.

工作示例:

公式: =IF(F2="";"";ROUND(INDEX(F2*GOOGLEFINANCE("CURRENCY:USDEUR";"price";DATE(RIGHT(E2;4);MID(E2;4;2);LEFT(E2;2)));2;2);2))

公式(用, 代替;): =IF(F2="","",ROUND(INDEX(F2*GOOGLEFINANCE("CURRENCY:USDEUR","price",DATE(RIGHT(E2,4),MID(E2,4,2),LEFT(E2,2))),2,2),2))

有谁知道第一种情况是怎么回事,即为什么它不起作用?我相信它必须是那些全范围的东西(例如 B2:B、A2:B等),但不知道为什么......

【问题讨论】:

标签: date google-sheets google-sheets-formula array-formulas google-finance


【解决方案1】:

GOOGLEFINANCE 已经是ARRAYFORMULA 类型的公式,所以试试这样:

=ARRAYFORMULA(IF(B2:B="";;ROUND(B2:B*IFNA(VLOOKUP(A2:A+0,9986111111; 
 GOOGLEFINANCE("CURRENCY:USDEUR"; "price"; MIN(A2:A); MAX(A2:A)+1); 2; 1)); 2)))

【讨论】:

  • :) 哇,怎么样。我只得了零。你可以在这里看到:docs.google.com/spreadsheets/d/… 它还说“VLOOKUP 只需要 4 个参数,但这是参数 5”。
  • 您将数字 0,9986111111 中的分号改为逗号而不是点(应该是:0.9986111111 - 如果您使用逗号而不是分号)请查看您的工作表
  • :魔法啊。非常感谢。顺便说一句,如果你有时间,请你简要描述一下你在做什么,因为我真的不明白公式是如何做到的。例如,什么是 IFNA,什么是 0.9986111111(我用谷歌搜索,我说是 1438 分钟,差不多是一天,但为什么:D)。还有这个 vlookup 是如何工作的,它看起来不像我习惯的 vlookup... :D
  • 如果 VLOOKUP 没有找到任何值,它将产生 #N/A 错误。要从输出中删除此错误,我们在 VLOOKUP 周围使用 IFNA,因此如果找不到值,它将输出空行。 0.9986111111 确实是时间“23:58:00”。如果您只运行 GOOGLEFINANCE 公式,您会注意到第一列包括日期和时间,但您的 A 列仅包含日期。 (请记住,日期只是格式化的数字,所以日期 09.07.2020 = 44021 但 09.07.2020 23:58:00 = 44021.9986111111)所以想法是在 A 列中添加“23:58:00”到您的日期,然后通过 VLOOKUP 将其与 GOOGLEFINANCE 时间戳配对
  • 这对我来说很有意义。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2016-05-11
  • 2016-11-17
  • 2021-12-20
  • 1970-01-01
相关资源
最近更新 更多