Sumar varias filas en una sola condición

Sumar varias filas en una sola condición

Supongamos que tengo la siguiente tabla en la hojames:

Ejemplo de tabla

Y la siguiente tabla en hoja__datos:

Ejemplo de tabla 2

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 catTblpara que fuera más fácil consultarla.
  • Encuentra la fila usando la MATCHfunción:
    • =MATCH(A2,INDEX(catTbl,0,1),0)
      • La categoría está en A2 y la INDEXfunción devuelve todas las filas de la primera columna.
    • La N(IF(1,{2,4,6,8,10})) will return the relevant columns to thefunción de construcción INDEX`.
    • Entonces solo SUMla matriz

Entonces toda la fórmula:

=SUM(INDEX(catTbl,MATCH(A2,INDEX(catTbl,0,1),0),N(IF(1,{2,4,6,8,10}))))

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Respuesta2

Generalmente es difícil trabajar con fórmulas de Excel no continuas.

Sugiero agregar una fila auxiliar donde indique qué columnas desea resumir, luego puede usar esta fórmula relativamente simple:

=SUMIF($Q$4:$Y$4,1, INDEX($Q$6:$Y$19,MATCH(M6,$P$6:$P$19,0),0))

ingrese la descripción de la imagen aquí

información relacionada