Sumar.si con rangos nombrados variables

Tengo un libro de excel con una lista desplegable para cada mes del año, a cada mes le corresponden al menos 3 rango nombrados que son usados dentro del mismo libro en distintas hojas con la fórmula sumar. Si (sumif)o sumar. Si. Conjunto (sumifs), es posible que las fórmulas con sumif y sumifs funcionen si obtiene el nombre de los rangos de esa lista desplegable a través de otra función como la de vlookup

Tengo algo así:

=SUMIF(RealEnePC,C$5,RealEneTotal)

Lo que quiero es que cuando de una lista desplegable yo selecciono Febrero, por ejemplo, la fórmula se actualice a:

=SUMIF(RealFebPC,C$5,RealFebTotal)

2 Respuestas

Respuesta
1

Una idea es esta

Private Sub ListBox1_Click()
mes = ListBox1.Value
celda= Range("C5")
Select Case mes
Case "Enero":
    rango1 = Range("RealEnePC")
    rango1 = Range("RealEneTotal")
Case "Febrero":
    rango1 = Range("RealFebPC")
    rango1 = Range("RealFebTotal")
Case "Marzo":
    rango1 = Range("RealMarPC")
    rango1 = Range("RealMarTotal")
Case "Abril":
    rango1 = Range("RealAbrPC")
    rango1 = Range("RealAbrTotal")
End Select
Range("H17").Value = Application.WorksheetFunction.SumIf(rango1, celda, rango2)
End Sub

pon los meses que faltan y listo.

SI te ha servido, no olvides puntuar la respuesta.

Respuesta
1

Te anexo la fórmula para que la adaptes a como tienes tus datos en las celdas.

Supongo que tienes tu lista desplegable en una celda. En mi ejemplo mi lista desplegable está en la celda B2, entonces cambia en la fórmula B2 por tu celda.

También supongo que la lista desplegable es una validación de datos y que los datos (meses de enero a diciembre) los tienes en algún rango de celdas. En mi ejemplo la lista de meses está en las celdas E1:E12, entonces cambia E1:G12 en la fórmula por las celdas en donde tienes tus meses.

Escribe a un lado de los meses, en la columna F los rangos de real y en la columna G los rangos de total.

Te muestro una imagen de cómo tengo mis datos:

La fórmula

=SUMAIF(INDIRECT(VLOOKUP(B2, E1:G12, 2,0)), C5, INDIRECT(VLOOKUP(B2, E1:G12, 3,0)))

si tienes problemas para adaptar la fórmula, envíame tu archivo.

¡Gracias! Es lo que buscaba, ya pude implementar tu idea y ha funcionado perfectamente!

Había intentado usando vlookup pero me faltaba el indirect.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas