[VBA] Como hacer un buscarV que retorne multiples valores en una celda

Me topé con la problematica de hacer una busqueda que devolviera todos los casos detectados en base a 1 celda. El problema de BuscarV (Vlookup en ingles) es que solo devuelve el ultimo caso (o primer caso dependiendo de si uno coloca Verdadero o Falso). Cosa que no siempre sirve.

Para evitar este problema encontré la siguiente macro en internet que devuelve lo necesario.

Lookupval: celda con el valor a buscar

Lookuprange : 1 columna donde buscar el lookupval

Indexcol: numero de columna de donde sacar los datos. Ejemplo: lookuprange es F:F y si indexcol = 4 busca en la columna i

Function MYVLOOKUP(lookupval, lookuprange As Range, indexcol As Long) Dim r As Range Dim
    result As String result = ""
        For Each r In lookuprange
            If r = lookupval Then
                 result = result & " " & r.Offset(0, indexcol - 1)
            End If
        Next r
    MYVLOOKUP = result 
End Function

 

Como nota, si se tiene una fuente de datos grande a buscar, se demora harto! En ese caso quizas sea mejor ocupar una celda de apoyo que contenga ambos campos a buscar como la “llave” del buscarv.

Fuente: mrexcel


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *