Search code examples
google-sheetsarray-formulascumulative-sum

Dynamic subtraction in Google Spreadsheet


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.


Solution

  • =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