Buscar valores en varias hojas, calcular el mínimo y traerlo a otra hoja

Estimados, nuevamente me veo en la obligación de buscar ayuda en este foro que siempre me saca las papas del fuego.

Paso a explicar mi problema.

Tengo 4 hojas con 4 listados. Una de las columnas en todas las hojas tiene el mismo código y asociado a esta un valor y una descripción.

Yo necesito buscar en las 4 hojas un mismo código, que me calcule el valor mínimo encontrado entre las 4 hojas del valor que está en la columna 4 de cada hoja y me traiga el resultado a una quinta hoja.

Hice todas las combinaciones posibles con buscarv, coincidir, eserror, etc, etc, pero no logro dar con la correcta.

Desde ya, muy agradecida por la ayuda que puedan darme.

1 Respuesta

Respuesta

Habría que crear una función para tal efecto, pero los datos deben tener las mismas características y ubicación en todas las hojas...

Si, los datos están ubicados siempre igual en todas las hojas. ¿Podrías ayudarme con la fórmula?

Tengo una función que calcula el mínimo dependiendo de un criterio especifico... pero es para una hoja no para todas a la vez, si te sirve te la doy...

Por ahí me sirve y puedo adaptarla al resto de las hojas.

Te agradecería si me la dieras.

Saludos

Option Explicit
Public Function minsi(criterio As String, rango_criterios As Range, rango_valores As Range)
Application.Volatile (False)
' recupera el maximo de una lista en funcion de su criterio de seleccion
Dim minimo As Double
Dim i As Long
Dim r As Range
Dim col As Integer
Dim fil As Integer
Dim n As Double
'4c7569735f50

If Application.WorksheetFunction.CountA(rango_criterios) = 0 Then Exit Function

For Each r In rango_criterios
    If r = criterio Then n = (n + 1)
Next
n = (n - 1)

ReDim lista(n) As Double

col = rango_criterios.Column
fil = rango_valores.Column

For Each r In rango_criterios
    If r = criterio Then lista(i) = CDbl(r.Offset(0, (fil - col))): i = (i + 1)
Next

Set rango_criterios = Nothing
Set rango_valores = Nothing
Set r = Nothing
minimo = Application.WorksheetFunction.Min(lista)
minsi = minimo

End Function

La llamada a la función es =minsi(criterio, rango criterios, rango valores)

Criterio= en este caso el nombre o id que exista en la lista de criterios en la cual se buscara

Siendo columna A los nombre de artículos ( rango criterios)

Columna B cantidades ( rango valores )

Pero esto es código VBS, yo necesito que sea una función.

Es posible?

eso "es" una función...

Presione alt+F11 cuando se abra el editor de Vba inserte un modulo... no uno de clase, solo un modulo.. dentro del moduclo copie el cod vba.

grabar y listo...

luego utilizas la función =minsi() según lo descrito anteriormente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas