Итоговая сумма массива с несколькими столбцами - PullRequest
1 голос
/ 19 января 2020

Мне нужно решить следующую задачу, но я не могу ее обернуть.

Есть несколько чисел за разные годы. Я хотел бы иметь промежуточную общую сумму всех столбцов (= диапазон C: I) в столбце J. Я могу сделать это с формулой в каждой ячейке J - однако мне нужно добиться этого с помощью одной формулы массива в J2 .

Arrayformula Running Total with multiple columns

То, что я понял после большого количества исследований, состоит из 2 шагов:

  1. заменить пустые ячейки нулями, так как У формул массива очевидно есть некоторые проблемы с пустыми ячейками *

    temporary array

    Поскольку это массив 15x7, мне нужно что-то вроде массива 7x1 для умножения, чтобы получить массив 15x1.

    Эта формула будет выглядеть следующим образом: =ARRAYFORMULA(TRANSPOSE(COLUMN(C1:I1)^0))

    helper arry

    В итоге моя формула выглядит так: =ARRAYFORMULA(MMULT(IF(ISBLANK(C2:I15),0,C2:I15),TRANSPOSE(COLUMN(C1:I1)^0)))

    И это приводит к массиву 15x1, который дает мне сумму для каждой строки, но не общую промежуточную сумму всех строк.

    enter image description here

    Это где Я застрял - любая помощь и идеи очень ценятся.

    РЕДАКТИРОВАТЬ: добавил общую версию для вас, чтобы скрипка: https://docs.google.com/spreadsheets/d/1cqNEsWHqBaHdDrMY8x4DUKpEkYprRZ8AibEe7d0knPY/edit?usp=sharing

Ответы [ 2 ]

2 голосов
/ 19 января 2020

Я думаю, это тоже будет работать:

=ARRAYFORMULA(IF(B2:B="";;SUMIF(SEQUENCE(ROWS(C2:I);COLUMNS(C2:I));"<="&SEQUENCE(ROWS(C2:I);1;COLUMNS(C2:I);COLUMNS(C2:I));C2:I)))
1 голос
/ 19 января 2020

попробовать:

=ARRAYFORMULA(IF(B2:B="";;MMULT(TRANSPOSE((ROW(M2:M)<=TRANSPOSE(ROW(M2:M)))*
 MMULT(C2:I*1; ROW(A1:A7)^0)); SIGN(MMULT(C2:I*1; ROW(A1:A7)^0))^0)))

0

...