ArrayFormula with GoogleFinance dynamic date
首先,我不是功能强大的工作表用户:)
我正在尝试使用GOOGLEFINANCE计算多种货币的金额。
我使用以下公式:
1 2 3 4 5 6 7 8 9 10 | =IF($A2; IF( $C2:C; $C2:C; IF( $D2:D; $D2:D*INDEX(GoogleFinance("CURRENCY:USDUAH";"close";$A2);2;2); $E2:E*INDEX(GoogleFinance("CURRENCY:EURUAH";"close";$A2);2;2) )); 0) |
A列包含日期,
C,D,E-以3种不同货币表示的金额。
IF只是优先考虑列:)
该公式效果很好,但是每次添加行时我都需要"扩展"它-递增
$ A2-> $ A3获取指定日期的汇率。
我尝试使用ArrayFormula,但事实证明它始终引用$ A2,因此我得到的速率与A单元中指定的日期无关。
我已经创建了样本表来说明:
https://docs.google.com/spreadsheets/d/1K2TbGIWl7JacYKiWgwwmJfelxJ-7fa9F9obp5XswW18/edit?usp=sharing
我允许任何人进行编辑,因此,如果您决定编辑-请不要删除任何内容:)也可以将用户名放在粘性行中(在建议的解决方案之上)
尝试:
1 2 3 4 5 6 7 8 9 10 | =ARRAYFORMULA(IF(A2:A<>""; IF(C2:C<>""; C2:C; IF(D2:D<>""; VLOOKUP(TO_TEXT(A2:A); TO_TEXT(QUERY(GOOGLEFINANCE("CURRENCY:USDUAH"; "close"; MIN(A:A); MAX(A:A)+1); "offset 1 format Col1'dd.mm.yy'"; 0)); 2; 0)*1; VLOOKUP(TO_TEXT(A2:A); TO_TEXT(QUERY(GOOGLEFINANCE("CURRENCY:EURUAH"; "close"; MIN(A:A); MAX(A:A)+1); "offset 1 format Col1'dd.mm.yy'"; 0)); 2; 0)*1)); )) |
尝试一下:
1 2 3 4 5 6 7 8 | =arrayformula( IF(query(arrayformula(if(A2:A="",False,True)), "Select * where Col1=True"), IF( $C2:C, $C2:C, IF( $D2:D, $D2:D*INDEX(GoogleFinance("CURRENCY:USDUAH","close",$A2),2,2), $E2:E*INDEX(GoogleFinance("CURRENCY:EURUAH","close",$A2),2,2))),0)) |