我在电子表格里有这个公式,它的工作原理和想象的一样,这个公式放在 "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")
数据是从另一个表导入的,行可以随着时间的推移而改变,并且可以增加和删除行,这些行应该在每个子总计中被考虑进去。
这就是为什么我想把公式转换为数组公式的原因--或者有其他的解决方案?
我认为可行的是。
=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来做,但我也没办法解决。
有什么好主意吗?
这里有一个文档的链接。电子表格
细胞 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)))