ArrayFormula 与 GoogleFinance 动态日期

2024-01-01

首先,我不是一个强大的表格用户:)

我正在尝试使用 GOOGLEFINANCE 计算多种货币的金额。 我用这个公式:

=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 https://docs.google.com/spreadsheets/d/1K2TbGIWl7JacYKiWgwwmJfelxJ-7fa9F9obp5XswW18/edit?usp=sharing

我允许任何人进行编辑,所以如果您决定编辑 - 请不要删除任何内容:)您也可以将您的用户名放在粘滞行中(在您建议的解决方案上方)

  1. 有没有办法将 ArrayFormula 应用于此以使其工作?
  2. 也许您可以为嵌套 IF 提供更具可读性的解决方案。

try:

=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)); ))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ArrayFormula 与 GoogleFinance 动态日期 的相关文章

随机推荐