Dynamic subtraction in Google Spreadsheet

2019-09-02 05:35发布

问题:

Please have a look at my spreadsheet: https://docs.google.com/spreadsheets/d/1K5Btg5fFS590G7vZsFiepY-2VTPhzJIlkKK_o-9Ag7E/edit?usp=sharing

How do I get:

  • C2 to show Start weight (i.e. "100,0")
  • C3 to show C2 - Daily weightloss (i.e. "99,7701")
  • C4 to show C3 - Daily weightloss (i.e. "99,5402)
  • C5 to show C4 - Daily weightloss (i.e. "99,3103")
  • ...and so on.

The challenge is obviously to do this dynamically since all the user-submitted data, and consequently, all the calculated data might change.

I think this can/should be solved with ArrayFormula somehow but I don't know how.

回答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)))



回答2:

It looks as if you could do this

=ArrayFormula(if(A2:A="","",100-(row(A2:A)-row())*J5))

although it's not dynamic in the sense of calculating from the previous row.