Google电子表格中的动态减法

时间:2019-04-04 23:13:14

标签: google-sheets array-formulas running-total

请查看我的电子表格:https://docs.google.com/spreadsheets/d/1K5Btg5fFS590G7vZsFiepY-2VTPhzJIlkKK_o-9Ag7E/edit?usp=sharing

我如何获得:

  • C2显示Start weight(即“ 100,0”)
  • C3显示C2-Daily weightloss(即“ 99,7701”)
  • C4显示C3-Daily weightloss(即“ 99,5402”)
  • C5显示C4-Daily weightloss(即“ 99,3103”)
  • ...等等。

显然,挑战在于动态地执行此操作,因为所有用户提交的数据以及所有计算出的数据都可能发生变化。

我认为可以/应该使用ArrayFormula解决此问题,但我不知道如何解决。

2 个答案:

答案 0 :(得分:1)

=ARRAYFORMULA(IF(A2:A;
 MMULT(TRANSPOSE((ROW(INDIRECT("B2:B"&COUNTA(A1:A)))<=
       TRANSPOSE( ROW(INDIRECT("B2:B"&COUNTA(A1:A)))))*
      {B2; TRANSPOSE(SPLIT(REPT(J5*-1&"♦"; COUNTA(A3:A)); "♦"))}); 
 SIGN({B2; TRANSPOSE(SPLIT(REPT(J5*-1&"♦"; COUNTA(A3:A)); "♦"))})^2); IFERROR(1/0)))

0

答案 1 :(得分:0)

看来您可以做到

npartitions <- ......
for(n in seq_len(prod(npartitions))){
  selected <- 1 + aryExpansion(n-1, sizes = npartitions)
  ......
}  

尽管从上一行计算的角度来看,它不是动态的。