¿Como sumar valores de diferentes hojas, pero la suma depende del valor de una celda?

Tengo un libro de excel, en este libro, tengo varias hojas, en cada hoja tengo un listado de productos, cada producto tiene un código, y cada producto también tiene un dato que es el que quiero sumar. Por ejemplo, el producto 151515 en la hoja1 tiene un valor de 25, en la hoja2 tiene un valor de 35, en la hoja 3 tiene un valor de 50, lo que quiero es sumar estos valores, y poner la suma total en otra hoja. Por hoja tengo más o menos unos 100 productos, muchos se repiten entre hojas, pero otros no, entonces no puedo seleccionar la celda manualmente. ¿De qué forma puedo operarlo?

2 Respuestas

Respuesta
1

Usa la función sumar. Si
En tu caso quedaría algo así:

=SUMAR.SI(Hoja1!A2:A100,"producto 20",Hoja1!B2:B100)+SUMAR.SI(Hoja2!A2:A100,"producto",Hoja2!B2:B100)+=SUMAR.SI(Hoja1!A2:A100,"producto",Hoja1!B2:B100)+SUMAR.SI(Hoja3!A2:A100,"producto",Hoja3!B2:B100)

Te suma las cantidades de todas las veces que encuentre "producto" en el rango A1:A100 de las hojas 1, 2 y 3.
Eso suponiendo que tus productos están el la columna A y las cantidades en la B.

En lugar de producto pones el nombre de tu producto que quieres sumar.

Suerte

Perdón es esta, es que estoy en el celular ja ja

=SUMAR.SI(Hoja1!A2:A100,"producto",Hoja1!B2:B100)+SUMAR.SI(Hoja2!A2:A100,"producto",Hoja2!B2:B100)+SUMAR.SI(Hoja3!A2:A100,"producto",Hoja3!B2:B100)
Respuesta
1

Si tienes una gran cantidad de hojas haciéndolo por fórmula te vas a tardar y más si agregas o quitas hojas, esta macro te coloca en la ultima hoja el total de los productos de que se encuentren en cada hoja validando primero que existan en la misma de no encontrarlos simplemente pasa a otra hoja, si los encuentra va sumándolos poniendo el total en la ultima hoja.

Sub sumar()
x = 1
CODIGO = Val(InputBox("Teclee el codigo a sumar"))
If CODIGO = Empty Then End
For Each hojas In Worksheets
    Sheets(hojas.Name).Select
    With Range("a1").CurrentRegion
        f = .Rows.Count:        c = .Columns.Count
    End With
    Set datos = Range("a2").Resize(f, c)
With datos
    cuenta = WorksheetFunction.CountIf(.Columns(1), CODIGO)
    If cuenta > 0 Then
        fila = WorksheetFunction.Match(CODIGO, .Columns(1), 0)
        If x = 1 Then suma = .Cells(fila, 3)
        If x > 1 Then suma = suma + .Cells(fila, 3)
        x = x + 1
    End If
End With
Next hojas
Range("d2") = "CODIGO"
Range("E2") = "TOTAL"
Range("d3") = CODIGO
Range("e3") = suma
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas