Como usar ARRAYFORMULA e SUM juntos para obter uma coluna com a soma das colunas anteriores?

11

No Planilhas Google, tenho os seguintes dados:

    |   A |  B  |  C  |  ...  | N  | TOTALS       |
  1 |  123|  425|  324|  ...  | 234| =SUM(A1:N1)  |
  2 |  123|  425|  324|  ...  | 234| =SUM(A2:N2)  |
  3 |  123|  425|  324|  ...  | 234| =SUM(A3:N3)  |

Como posso criar a TOTALScoluna usando ARRAYFORMULA?

ARRAYFORMULA(SUM(A1:C99)) dará um único número, a soma de todas as células - não é isso que eu quero.

Yisrael Dov
fonte

Respostas:

8

Use a seguinte fórmula para fazer isso.

Fórmula

=MMULT(B2:E4,TRANSPOSE(ARRAYFORMULA(COLUMN(B2:E4)^0)))

Explicado

O ARRAYFORMULAobjetivo é retornar o intervalo completo, conforme definido pela COLUMNfórmula. O ^0 (power of zero)sempre retornará 1. Portanto, cada resultado é multiplicado por 1 (produzindo o mesmo valor) e somado.

Exemplo

Criei um arquivo de exemplo para você: SUM OVER ROWS

Jacob Jan Tuinstra
fonte
2
@YisraelDov, lembre-se de marcar a resposta como aceita se fosse o que você estava procurando.
Alex
Esta é uma resposta notável.
Michael Litvin
Alguma idéia de como fazê-lo funcionar com células em branco? (para ser tratado como 0)
Michael Litvin
2
@MichaelLitvin: tente o seguinte: =ARRAYFORMULA(SUMIF(IF(COLUMN(B1:E1),ROW(B2:E4)),ROW(B2:E4),B2:E4)). ht para @AdamL.
Jacob Jan Tuinstra
Para lidar com o vazio, uma opção é usar em indirectvez do intervalo. No meu caso, eu usei issoindirect("e3:y"&max(arrayformula((index(E3:Y,0,0)<>"")*row(E3:Y))))
BrunoLM
2

Que tal somar manualmente as colunas:

=arrayformula(A:A + B:B + C:C)
skube
fonte
Não é possível garantir que o pôster Nseja um espaço reservado para um número desconhecido de colunas ou se o pôster realmente significa a coluna N. Se o número de colunas não puder ser determinado com antecedência, nomear explicitamente todas as colunas das fórmulas não será uma opção.
Kevin Li