无法使用日期正确排列 googlefinance 公式
Cannot properly array googlefinance formula with dates
我正在尝试将美元金额转换为欧元,但由于动态汇率,我想根据交易发生日期进行转换。
想法是使用 googlefinance
函数和 index
函数,以及 date
函数,它将由 right
、mid
和left
函数。所有这些都应该用 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)))
我正在尝试将美元金额转换为欧元,但由于动态汇率,我想根据交易发生日期进行转换。
想法是使用 googlefinance
函数和 index
函数,以及 date
函数,它将由 right
、mid
和left
函数。所有这些都应该用 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)))