Sumar elementos en matriz en Excel

id  a   b   c

1   0   0   0
1   0   0   0
2   0   0   0
2   0   0   0
3   1   2   3
3   0   0   1

Dada la matriz anterior, quiero crear una nueva matriz, que sume los números dentro de la primera matriz para una identificación determinada en un año determinado (a, b o c). Entonces, para lo anterior, debería verse así:

    1   2   3
a   0   0   1
b   0   0   2
c   0   0   4

¿Alguien puede ver qué hacer?

preguntado el 12 de junio de 12 a las 20:06

¿Ha considerado usar una declaración IF (estoy un poco oxidado en mi Excel, pero creo que hay un ADDIF o COUNTIF, o tal vez VLOOKUP) que haría lo que quiere? Solo usa IF != 0 y suma. -

Intenté SUMAR.SI.CONJUNTO (rango de suma, rango de criterio1, criterio1, ...) En relación con la matriz superior en mi pregunta anterior, creo una nueva matriz que se parece a la inferior de mi pregunta y escribo la siguiente fórmula en el primer elemento de la matriz inferior: =SUMAR.SI.CONJUNTO(B2:D7,B1:D1,a,A2:A7,1) El problema puede ser que el rango de suma tiene que ser una sola columna o fila, pero no sé cómo solucionar ese problema en mi caso. -

¿Tiene alguna razón para no usar una tabla dinámica? Me parece ideal para eso! -

No tengo ninguna razón para no usar una tabla dinámica, aparte de que no tengo experiencia en el uso de tablas dinámicas y no parece funcionar simplemente marcando el área de la tabla y haciendo clic en el botón de la tabla dinámica. Pero voy a echar un vistazo a eso. -

estoy de acuerdo, @idevlop si cree que las tablas dinámicas son la solución, proporcione su método:

3 Respuestas

Intente usar SUMPRODUCT en lugar de SUMIFS, por ejemplo

=SUMPRODUCT(B2:D7,(B1:D1="a")*(A2:A7=1))

Respondido el 12 de junio de 12 a las 21:06

+1 - el camino a seguir. Finalmente más simple que un pivote en este caso. - patricio honorez

La fórmula de solución proporcionada en las otras respuestas funcionará bien cuando los encabezados de datos ya estén en su lugar y el rango de datos no sea demasiado grande.

Una tabla dinámica crea los encabezados de fila y columna por usted y se actualizará a medida que se agreguen nuevos datos cuando haga clic en el botón Actualizar, también es significativamente más rápido cuando el rango de datos es grande.

enter image description here

Proceso

A) Elija Insert | Table para su rango de datos y asígnele un nombre adecuado, el valor predeterminado es Table1

B) Acceda al asistente de tabla dinámica a través del acceso directo Alt+D+P (esto no está en los menús predeterminados).

1)  Multiple Consolidation Ranges 
2a) I will Create the Page Fields
2b) Range: Table1[#All]  Page Fields: 0
2c) Existing Worksheet: $A$7

C) Haga clic en Finalizar, cambie los campos de fila y columna y desactive los totales y el formato automático

Respondido el 13 de junio de 12 a las 11:06

Le sugiero que intente resolver ese problema con tablas dinámicas.
Aquí hay 2 enlaces que puede usar para aprender esa función:
http://www.cpearson.com/excel/pivots.htm
http://www.youtube.com/watch?v=7zHLnUCtfUk

El único inconveniente con Pivots es que si cambia el tamaño del rango fuente, Pivot no se ajustará automáticamente. Entonces, una vez que logró resolver su problema inicial y comprender el poder de las tablas dinámicas, le sugiero que use un Rango dinámico con nombre como la fuente de su pivote.


Edito: siento que solución de barry houdini es más simple Lo reproduzco a continuación (¡con todo el crédito de él!) enter image description here

contestado el 08 de mayo de 18 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.