martes, 9 de junio de 2020

EXCEL: Sumar columnas coincidentes

Excel formula: Sum matching columns

Fórmula genérica

=SUMAPRODUCTO(data*(headers=A1))

Explicación

Para sumar valores en columnas haciendo coincidir los encabezados de columna coincidentes, puede usar una fórmula basada en la función SUMAPRODUCTO. En el ejemplo que se muestra, la fórmula en J5 es:

=SUMAPRODUCTO(data*(IZQUIERDA(headers)=J4))

donde "datos" es el rango con nombre B5: G14, y "encabezados" es el rango con nombre B4: G4.

La fórmula suma las columnas donde los encabezados comienzan con "a" y devuelve 201.

Cómo funciona esta fórmula

En esencia, esta fórmula se basa en la función SUMAPRODUCTO para sumar valores en columnas coincidentes en el rango de "datos" con nombre C5: G14. Si todos los datos se proporcionaron a SUMAPRODUCTO en un solo rango, el resultado sería la suma de todos los valores en el rango:

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

Para aplicar un filtro haciendo coincidir los encabezados de columna (columnas con encabezados que comienzan con "A"), utilizamos la función IZQUIERDA de esta manera:

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

Esta expresión devuelve VERDADERO si el encabezado de una columna comienza con "a" y FALSO si no. El resultado es una matriz:

{VERDADERO,VERDADERO,FALSO,FALSO,VERDADERO,FALSO}

Puede ver que los valores 1,2 y 5 corresponden a columnas que comienzan con "a".

Dentro de SUMAPRODUCTO, esta matriz se multiplica por "datos". Debido a la transmisión, el resultado es una 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}

Si visualizamos esta matriz en una tabla, es fácil ver que solo los valores en las columnas que comienzan con "a" han sobrevivido a la operación, todas las demás columnas son cero. En otras palabras, el filtro mantiene valores de interés y "cancela" el resto:

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

Con solo una matriz para procesar, SUMAPRODUCTO devuelve la suma de todos los valores, 201.

Suma por coincidencia exacta

El ejemplo anterior muestra cómo sumar columnas que comienzan con uno o más caracteres específicos. Para sumar una columna basada en una coincidencia exacta, puede usar una fórmula más simple como esta:

=SUMAPRODUCTO(data*(headers=J4))

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT