Fórmula do Excel: Soma das colunas correspondentes -

Fórmula genérica

=SUMPRODUCT(data*(headers=A1))

Resumo

Para somar valores em colunas combinando cabeçalhos de coluna, você pode usar uma fórmula baseada na função SUMPRODUCT. No exemplo mostrado, a fórmula em J5 é:

=SUMPRODUCT(data*(LEFT(headers)=J4))

onde "dados" é o intervalo nomeado B5: G14 e "cabeçalhos" é o intervalo nomeado B4: G4.

A fórmula soma as colunas em que os cabeçalhos começam com "a" e retorna 201.

Explicação

Basicamente, esta fórmula se baseia na função SUMPRODUCT para somar valores em colunas correspondentes no intervalo nomeado "dados" C5: G14. Se todos os dados fossem fornecidos para SUMPRODUCT em um único intervalo, o resultado seria a soma de todos os valores no intervalo:

=SUMPRODUCT(data) // all data, returns 387

Para aplicar um filtro combinando cabeçalhos de coluna - colunas com cabeçalhos que começam com "A" - usamos a função ESQUERDA desta forma:

LEFT(headers)=J4) // must begin with "a"

Esta expressão retorna TRUE se o cabeçalho de uma coluna começar com "a" e FALSE se não começar. O resultado é uma matriz:

(TRUE,TRUE,FALSE,FALSE,TRUE,FALSE)

Você pode ver que os valores 1,2 e 5 correspondem às colunas que começam com "a".

Dentro de SUMPRODUCT, esse array é multiplicado por "dados". Devido à transmissão, o resultado é uma matriz bidimensional como esta:

(8,10,0,0,7,0;9,10,0,0,10,0;8,6,0,0,6,0;7,6,0,0,6,0;8,6,0,0,6,0;10,11,0,0,7,0;7,8,0,0,8,0;2,3,0,0,3,0;3,4,0,0,4,0;7,7,0,0,4,0)

Se visualizarmos esse array em uma tabela, é fácil ver que apenas os valores nas colunas que começam com "a" sobreviveram à operação, todas as outras colunas são zero. Em outras palavras, o filtro mantém os valores de interesse e "cancela" o restante:

A001 A002 B001 B002 A003 B003
8 10 0 0 7 0
9 10 0 0 10 0
8 6 0 0 6 0
7 6 0 0 6 0
8 6 0 0 6 0
10 11 0 0 7 0
7 8 0 0 8 0
2 3 0 0 3 0
3 4 0 0 4 0
7 7 0 0 4 0

Com apenas uma única matriz para processar, SUMPRODUCT retorna a soma de todos os valores, 201.

Soma por correspondência exata

O exemplo acima mostra como somar colunas que começam com um ou mais caracteres específicos. Para somar a coluna com base em uma correspondência exata, você pode usar uma fórmula mais simples como esta:

=SUMPRODUCT(data*(headers=J4))

Artigos interessantes...