![Sumar varias filas en una sola condición](https://rvso.com/image/1606683/Sumar%20varias%20filas%20en%20una%20sola%20condici%C3%B3n.png)
Supongamos que tengo la siguiente tabla en la hojames:
Y la siguiente tabla en hoja__datos:
en hoja__datosMe gustaría sumar todos los valores de las columnas P,R,T,V y X, para el nombre de categoría dado.
Para una sola fila, sé que puedo usar la siguiente fórmula: (cat6 por ejemplo)
=IF(
SUMIF(month!$O$5:$O$34;__data!$A7;month!$P$5:$P$34)<>0;
SUMIF(month!$O$5:$O$34;__data!$A7;month!$P$5:$P$34);
"")
Ahora, creo que esto debería ser posible con SUMPRODUCT
. Pero no puedo entender cómo se debe codificar esto.
Tengo esta fórmula SUMPRODUCT, pero genera un #VALUE!
error;
=SUMPRODUCT(
--(month!$O$5:month!$O$34=__data!$A7);
(
month!$P$5:month!$P$34 +
month!$R$5:month!$R$34 +
month!$T$5:month!$T$34 +
month!$V$5:month!$V$34 +
month!$X$5:month!$X$34)
)
Creo que esto tiene algo que ver con la forma en que se completan los valores en P,R,T,V y X. Esto se hace con la siguiente fórmula;
=IF(SUMIF($B$5:$B$123;O8;$D$5:$D$123)<>0;SUMIF($B$5:$B$123;O8;$D$5:$D$123);"")
Respuesta1
Puedes hacer esto fácilmente con una fórmula. Pero es necesario tener un método para devolver columnas discontinuas.
- Nombré la tabla de datos
catTbl
para que fuera más fácil consultarla. - Encuentra la fila usando la
MATCH
función:=MATCH(A2,INDEX(catTbl,0,1),0)
- La categoría está en A2 y la
INDEX
función devuelve todas las filas de la primera columna.
- La categoría está en A2 y la
- La
N(IF(1,{2,4,6,8,10})) will return the relevant columns to the
función de construcción INDEX`. - Entonces solo
SUM
la matriz
Entonces toda la fórmula:
=SUM(INDEX(catTbl,MATCH(A2,INDEX(catTbl,0,1),0),N(IF(1,{2,4,6,8,10}))))