在数组公式中不使用间接的动态范围?

问题描述 投票:0回答:1

我在电子表格里有这个公式,它的工作原理和想象的一样,这个公式放在 "O:O "里(这个公式来自O10)。这个公式放在 "O:O "中(这个公式来自O10)。

=IFERROR(IF(I10<>"";sum(INDIRECT("L"&MATCH(LEFT(B10;LEN(B10)-6);B:B;0)):INDIRECT("L"&ROW()-1));"");"Fejl/Mangler reference")

结果是这样的enter image description here

数据是从另一个表导入的,行可以随着时间的推移而改变,并且可以增加和删除行,这些行应该在每个子总计中被考虑进去。

这就是为什么我想把公式转换为数组公式的原因--或者有其他的解决方案?

我认为可行的是。

=Arrayformula(IF(ROW(R:R)=5;"Balance";IF(ROW(R:R)<7;"";IF(ROW(R:R)=7;"Sub Total";IF($I:$I<>"";sum(INDIRECT("L"&MATCH(LEFT(B:B;LEN(B:B)-6);B:B;0))&":"&INDIRECT("L"&ROW()-1));"")))))

我猜是间接法,所以我也试过用vlookup来做,但我也没办法解决。

有什么好主意吗?

这里有一个文档的链接。电子表格

google-sheets google-sheets-formula array-formulas
1个回答
2
投票

细胞 P8:

=ARRAYFORMULA(IF(J8:J="";; SUMIF(ROW(O8:O); "<="&ROW(O8:O); O8:O)))

细胞 O8:

=ARRAYFORMULA(IF(I8:I="";;
 SUMIF(ROW(B8:B); "<="&ROW(B8:B); L8:L)-SUMIF(ROW(B8:B); "<"&VLOOKUP(
 VLOOKUP(ROW(B8:B); IF(B8:B<>""; {ROW(B8:B)\ SUBSTITUTE(B8:B; " i alt"; )}); 2; 1); {
 VLOOKUP(ROW(B8:B); IF(B8:B<>""; {ROW(B8:B)\ SUBSTITUTE(B8:B; " i alt"; )}); 2; 1)\
 ROW(B8:B)}; 2; 0); L8:L)))

0

© www.soinside.com 2019 - 2024. All rights reserved.