无法使用日期正确排列 googlefinance 公式

Cannot properly array googlefinance formula with dates

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

想法是使用 googlefinance 函数和 index 函数,以及 date 函数,它将由 rightmidleft 函数。所有这些都应该用 arrayformula 包裹起来。数字应使用 round.

四舍五入

非工作示例:

别介意 ;,在我的 google 工作表语言设置中,这不是 ,

公式: =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)))

因为我很确定这个公式应该在“正常情况下”工作,所以我复制了它,省略了 arrayformula 和完整范围(例如 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 等),但不确定为什么...

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)))