Динамическое вычитание в Google Spreadsheet - PullRequest
0 голосов
/ 05 апреля 2019

Пожалуйста, посмотрите на мою таблицу: 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 ]

1 голос
/ 05 апреля 2019
=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

0 голосов
/ 05 апреля 2019

Похоже, что вы могли бы сделать это

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

хотя это не динамично в смысле вычисления из предыдущей строки.

...