我在为“探路者”广告系列的外部战利品电子表格中实现“兑现”功能时遇到问题。我一直遇到循环引用。这个想法是,党的每个成员都应获得其在党的流动资产中所占的比例,除非他们对党负有债务。我正在使用ARRAYFORMULA和MMULT进行这些计算,但是我无法弄清楚如何从B列到G列引用H到M列的上一行。如果我使用OFFSET或VLOOKUP,则会出现循环引用错误。我只想取所有正数的负值并将它们放在B到G的单元格中,那么其他所有内容都应该起作用。
这是文件的副本。如有需要,请随意摆弄。
https://docs.google.com/spreadsheets/d/1PPkZWR4HP3jbWyWDJMskbo3K1Px4CHCurgNZh3MTS-M/edit?usp=sharing
感谢您提供的任何帮助。
在您问之前,我无法弄清楚该答案如何适应我的目的:How to use ARRAYFORMULA with OFFSET to previous row without getting circular reference error
答案 0 :(得分:1)
我知道了。只是需要我已经尝试过的东西的正确组合。最终公式是:
=ARRAY_CONSTRAIN(ARRAYFORMULA(SWITCH($T$2:$T,B$1,-($R$2:$R),"Cash Out",
IF(INDEX(MMULT(transpose(if(transpose(row($A$2:$A))>=row($A$2:$A),N(IF($T$2:$T = B$1,-($R$2:$R),$R$2:$R/6)), 0)),--(NOT(ISBLANK($R$2:$R)))),$A$2:$A-1)<0,0,
-(INDEX(MMULT(transpose(if(transpose(row($A$2:$A))>=row($A$2:$A),N(IF($T$2:$T = B$1,-($R$2:$R),$R$2:$R/6)), 0)),--(NOT(ISBLANK($R$2:$R)))),$A$2:$A-1))),
$R$2:$R/6)),COUNTA($R$2:$R),1)
诀窍是使用MMULT方法在我想切换的单元上方生成运行总计数组,然后使用INDEX和A列指定我想要的值。使用ROW()无法正常工作。我已经用更改更新了示例文件。