Saltar al contenido principal

¿Cómo vlookup para devolver múltiples valores en una celda en Excel?

Normalmente, en Excel, cuando usa la función BUSCARV, si hay varios valores que coinciden con los criterios, solo puede obtener el primero. Pero, a veces, desea devolver todos los valores correspondientes que cumplen con los criterios en una celda como se muestra en la siguiente captura de pantalla, ¿cómo podría resolverlo?

Vlookup para devolver múltiples valores en una celda con la función TEXTJOIN (Excel 2019 y Office 365)

Vlookup para devolver múltiples valores en una celda con la función definida por el usuario

Vlookup para devolver múltiples valores en una celda con una característica útil


Vlookup para devolver múltiples valores en una celda con la función TEXTJOIN (Excel 2019 y Office 365)

Si tiene la versión superior de Excel, como Excel 2019 y Office 365, hay una nueva función: TEXTJOIN, con esta poderosa función, puede visualizar rápidamente y devolver todos los valores coincidentes en una celda.

Vlookup para devolver todos los valores coincidentes en una celda

Aplique la fórmula a continuación en una celda en blanco donde desea colocar el resultado, luego presione Ctrl + Shift + Enter teclas juntas para obtener el primer resultado, y luego arrastre el controlador de relleno hacia la celda en la que desea usar esta fórmula, y obtendrá todos los valores correspondientes como se muestra a continuación:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

Nota:  En la fórmula anterior, A2: A11 es el rango de búsqueda que contiene los datos de búsqueda, E2 es el valor de búsqueda, C2: C11 es el rango de datos del que desea devolver los valores coincidentes, ","es el separador para separar los múltiples registros.

Vlookup para devolver todos los valores coincidentes sin duplicados en una celda

Si desea devolver todos los valores coincidentes basados ​​en los datos de búsqueda sin duplicados, la siguiente fórmula puede ayudarlo.

Copie y pegue la siguiente fórmula en una celda en blanco, luego presione Ctrl + Shift + Enter claves juntas para obtener el primer resultado, y luego copie esta fórmula para llenar otras celdas, y obtendrá todos los valores correspondientes sin los dulpicates como se muestra a continuación:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))

Nota:  En la fórmula anterior, A2: A11 es el rango de búsqueda que contiene los datos de búsqueda, E2 es el valor de búsqueda, C2: C11 es el rango de datos del que desea devolver los valores coincidentes, ","es el separador para separar los múltiples registros.

Vlookup para devolver múltiples valores en una celda con la función definida por el usuario

La función TEXTJOIN anterior solo está disponible para Excel 2019 y Office 365, si tiene otras versiones inferiores de Excel, debe usar algunos códigos para finalizar esta tarea.

Vlookup para devolver todos los valores coincidentes en una celda

1. Mantenga pulsado el ALT + F11 llaves, y abre el Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.

Código de VBA: Vlookup para devolver múltiples valores en una celda

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. Luego guarde y cierre este código, regrese a la hoja de trabajo e ingrese esta fórmula: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") en una celda en blanco específica donde desea colocar el resultado, luego arrastre el controlador de relleno hacia abajo para obtener todos los valores correspondientes en una celda que desee, vea la captura de pantalla:

Nota:  En la fórmula anterior, A2: A11 es el rango de búsqueda que contiene los datos de búsqueda, E2 es el valor de búsqueda, C2: C11 es el rango de datos del que desea devolver los valores coincidentes, ","es el separador para separar los múltiples registros.

Vlookup para devolver todos los valores coincidentes sin duplicados en una celda

Para ignorar los duplicados en los valores coincidentes devueltos, hágalo con el siguiente código.

1. Mantenga pulsado el Alt + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.

Código de VBA: Vlookup y devuelve múltiples valores coincidentes únicos en una celda

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
'Updateby Extendoffice
    Dim xDic As New Dictionary
    Dim xRows As Long
    Dim xStr As String
    Dim i As Long
    On Error Resume Next
    xRows = LookupRange.Rows.Count
    For i = 1 To xRows
        If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
            xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
        End If
    Next
    xStr = ""
    MultipleLookupNoRept = xStr
    If xDic.Count > 0 Then
        For i = 0 To xDic.Count - 1
            xStr = xStr & xDic.Keys(i) & ","
        Next
        MultipleLookupNoRept = Left(xStr, Len(xStr) - 1)
    End If
End Function

3. Después de insertar el código, haga clic en Herramientas > Referencias en el abierto Microsoft Visual Basic para aplicaciones ventana, y luego, en la ventana emergente Referencias - VBAProject cuadro de diálogo, comprobar Tiempo de ejecución de secuencias de comandos de Microsoft opción en el Referencias disponibles cuadro de lista, ver capturas de pantalla:

4. Luego haga clic OK para cerrar el cuadro de diálogo, guarde y cierre la ventana de código, vuelva a la hoja de trabajo e ingrese esta fórmula: =MultipleLookupNoRept(E2,$A$2:$C$11,3) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values, see screenshot:

Nota:  En la fórmula anterior, A2: C11 es el rango de datos que desea usar, E2 es el valor de búsqueda, el número 3 es el número de columna que contiene los valores devueltos.

Vlookup para devolver múltiples valores en una celda con una característica útil

 Si tienes nuestro Kutools for Excel, Con su Filas combinadas avanzadas función, puede fusionar o combinar rápidamente las filas en función del mismo valor y hacer algunos cálculos que necesite.

Nota: Para aplicar esto Filas combinadas avanzadas, en primer lugar, debe descargar el Kutools for Excely, a continuación, aplique la función de forma rápida y sencilla.

Después de instalar Kutools for Excel, haga lo siguiente:

1. Seleccione el rango de datos en el que desea combinar los datos de una columna en función de otra columna.

2. Hacer clic Kutools > Fusionar y dividir > Filas combinadas avanzadas, ver captura de pantalla:

3. En el estalló Filas combinadas avanzadas caja de diálogo:

  • Haga clic en el nombre de la columna de clave que se combinará en función y luego haga clic Clave primaria
  • Luego haga clic en otra columna en la que desee combinar sus datos según la columna clave y haga clic en Combinar para elegir un separador para separar los datos combinados.

4. A continuación, haga clic en OK botón, y obtendrá los siguientes resultados:

¡Descargue y pruebe Kutools para Excel ahora!


Artículos más relativos:

  • Función VLOOKUP con algunos ejemplos básicos y avanzados
  • En Excel, la función BUSCARV es una función poderosa para la mayoría de los usuarios de Excel, que se usa para buscar un valor en el extremo izquierdo del rango de datos y devolver un valor coincidente en la misma fila de una columna que especificó. Este tutorial habla sobre cómo usar la función VLOOKUP con algunos ejemplos básicos y avanzados en Excel.
  • Devuelve varios valores coincidentes según uno o varios criterios
  • Normalmente, buscar un valor específico y devolver el elemento coincidente es fácil para la mayoría de nosotros usando la función BUSCARV. Pero, ¿alguna vez ha intentado devolver varios valores coincidentes en función de uno o más criterios? En este artículo, presentaré algunas fórmulas para resolver esta compleja tarea en Excel.
  • Vlookup y devuelve múltiples valores verticalmente
  • Normalmente, puede usar la función Vlookup para obtener el primer valor correspondiente, pero, a veces, desea devolver todos los registros coincidentes según un criterio específico. En este artículo, hablaré sobre cómo visualizar y devolver todos los valores coincidentes verticalmente, horizontalmente o en una sola celda.
  • Vlookup y devuelve varios valores de la lista desplegable
  • En Excel, ¿cómo podría visualizar y devolver múltiples valores correspondientes de una lista desplegable, lo que significa que cuando elige un elemento de la lista desplegable, todos sus valores relativos se muestran a la vez? En este artículo, presentaré la solución paso a paso.

Las mejores herramientas de productividad de oficina

🤖 Asistente de IA de Kutools: Revolucionar el análisis de datos basado en: Ejecución inteligente   |  Generar codigo  |  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos  |  Invocar funciones de Kutools...
Características populares: Buscar, resaltar o identificar duplicados   |  Eliminar filas en blanco   |  Combine columnas o celdas sin perder datos   |   Ronda sin fórmula ...
Super búsqueda: Búsqueda virtual de criterios múltiples    Búsqueda V de valores múltiples  |   VLookup en varias hojas   |   Búsqueda difusa ....
Lista desplegable avanzada: Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple ....
Administrador de columnas: Agregar un número específico de columnas  |  Mover columnas  |  Toggle Estado de visibilidad de columnas ocultas  |  Comparar rangos y columnas ...
Características destacadas: Enfoque de cuadrícula   |  Vista de diseño   |   Gran barra de fórmulas    Administrador de hojas y libros de trabajo   |  Biblioteca de Recursos (Texto automático)   |  Selector de fechas   |  Combinar hojas de trabajo   |  Cifrar/descifrar celdas    Enviar correos electrónicos por lista   |  Súper filtro   |   Filtro especial (filtro negrita/cursiva/tachado...) ...
Los 15 mejores conjuntos de herramientas12 Texto Herramientas (Añadir texto, Quitar caracteres, ...)   |   50+ Tabla Tipos (Diagrama de Gantt, ...)   |   40+ Práctico Fórmulas (Calcular la edad según el cumpleaños, ...)   |   19 Inserción Herramientas (Insertar código QR, Insertar imagen desde la ruta, ...)   |   12 Conversión Herramientas (Números a palabras, Conversión de Moneda, ...)   |   7 Fusionar y dividir Herramientas (Filas combinadas avanzadas, Células partidas, ...)   |   ... y más

Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo.  Haga clic aquí para obtener la función que más necesita...

Descripción


Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
Comments (43)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have created a problem.
"I" have combined a "Textjoin" end "Vlookup" to return multiple values in to one single cell.
My problem is that the formula have to have an exact value to look for and I want it to lookup an "almost" match or Partial match.

Example: I have made a schedule how we ate going to work and a D1 is working from 07:30-16:00. And to lookup D1 is not the problem, the problem is that my boss sometimes puts other stuff togeather with the D1... Like "D1 +" or "D1 meeting".
Since my formula only lookup "D1" it misses for example the "D1 +".

My formula (that I have gotten from the web) =TEXTJOIN(" och ";SANT;OM($B$3:$B$15=$C$22:$F$22;$A$3:$A$15;""))It´s in swedish so "SANT" is "TRUE" and "OM" is "IF".

How can I make the formula lookup all the cells that have some form of "D1" in it and return all those to the same cell?
No matter if it says "D1 +" or "D1 meeting" or whatever.
The reson I want this, is because the boss always leave "D1" but can add other text behind the "D1"... and just because of that, my boss messes up my formula.
This comment was minimized by the moderator on the site
Hi!
This is a great VBA-Code which could help me a lot.But when I start the Function MultipleLookupNoRept Excel crashs...I´ve got a Dataset with about 6.000 Rows (Excel 2013).... is this too much for the VBA Function?

Thanks!
This comment was minimized by the moderator on the site
Hello Mr.XXL,Sorry to hear that. The row limit for Excel 2013 is 1048576. Therefore, maybe the VBA code is the reason for the crash.
Anyway, I would love to offer you another VBA code for Vlookup To Return All Matching Values Without Duplicates Into One Cell. Please use the VBA code below:
Option Explicit

Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)

Dim i As Long
Dim temp() As Variant
Dim result As String
ReDim temp(0)

For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string Then
temp(UBound(temp)) = Return_val_col.Cells(i, 1).Value
ReDim Preserve temp(UBound(temp) + 1)
End If
Next

If temp(0) <> "" Then
ReDim Preserve temp(UBound(temp) - 1)
Unique temp
For i = LBound(temp) To UBound(temp)
result = result & " " & temp(i)
Next i
Lookup_concat = Trim(result)
Else
Lookup_concat = ""
End If

End Function

Function Unique(tempArray As Variant)

Dim coll As New Collection
Dim Value As Variant

On Error Resume Next
For Each Value In tempArray
If Len(Value) > 0 Then coll.Add Value, CStr(Value)
Next Value
On Error GoTo 0

ReDim tempArray(0)

For Each Value In coll
tempArray(UBound(tempArray)) = Value
ReDim Preserve tempArray(UBound(tempArray) + 1)
Next Value

End Function

After you insert this VBA code in the Module, please type the formula =Lookup_concat(E2,$A$2:$A$14,$C$2:$C$14) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values. Please see the file I uploaded in this comment. Hope it solves your problem. 
Sincerely,Mandy

This comment was minimized by the moderator on the site
Hi, Thanks so much this worked!I used it to pull dates, that populated in the serial number format (<span style="letter-spacing: 0.2px; color: inherit; font-family: inherit; font-style: inherit; font-variant-ligatures: inherit; font-variant-caps: inherit; font-weight: inherit;">Changing the format to short date format using =TEXT(A2,”mm/dd/yy”) OR =DATEVALUE(A2) are not working. Do you have any solutions?</span>
This comment was minimized by the moderator on the site
Thank you for the explanations, however the function 'MultipleLookupNoRept' does not work on my file, could you tell me if an error exists.
This comment was minimized by the moderator on the site
Hi, Hasnae,Please check if you miss the third step -  check Microsoft Scripting Runtime option in the Available References list box.

This comment was minimized by the moderator on the site
Thank you so much for the code. Is there a way I can use the code to look up multiple values from multiple sheets? I tried to combine your function with IFERROR function but it doesn't seem to work.
This comment was minimized by the moderator on the site
Can this be modified to place the sum of those values? Instead of (400 400 400 400 400 400), can it sum them to show (2400)?
This comment was minimized by the moderator on the site
How with HLookUp function?
This comment was minimized by the moderator on the site
thanks for the code. I have modified it to allow you to optionally specify your own separator, Default is " ", if you specify the separator as"#cr" it will insert a CR/LF so the values will be on a separate line in the cell. It only applies the separator if there are multiple values

Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long, Optional ByVal pSep As Variant)

' ### Returns multiple values from a table into 1 cell ###

' pValue is the key value to lookup

' WorkRng is the Table you want to look up

' pIndex is the column # for the values to be returned from the pWorkRng

' pSep (optional) is the separator to be used. if omitted then default is a space (it doesn't apply the separator for the 1st entry)

' if the separtor = "#cr" it will separate the values on different line in the cell

Dim rng As Range

Dim sSep As String

Dim xResult As String

Dim Item1 As Boolean

Item1 = True



If IsMissing(pSep) = True Then

sSep = vbCr

Else

If pSep = "#cr" Then

sSep = vbCrLf

Else

sSep = pSep

End If

End If



xResult = ""

For Each rng In pWorkRng

If rng = pValue Then

If Item1 Then

xResult = xResult & rng.Offset(0, pIndex - 1)

Item1 = False

Else

xResult = xResult & sSep & rng.Offset(0, pIndex - 1)

End If

End If

Next

MYVLOOKUP = xResult

End Function
This comment was minimized by the moderator on the site
Thank you for this, the line breaks are what i needed to top this formula off! Question, is there a way to modify the code so that two values are compared? For example, similar to what we see with index and match, can i look for Product and Quantity columns, and based on those parameters it outputs results from the Region Column?
This comment was minimized by the moderator on the site
Thanks a lot for this code, it is very helpful. Does anyone know away to sum the values in the cell to just have at total of them.
Cheers
This comment was minimized by the moderator on the site
Hello, James, to sum values based on the corresponding items, the following article may help you, please chek it:
https://www.extendoffice.com/documents/excel/1268-excel-combine-duplicate-rows-and-sum.html
This comment was minimized by the moderator on the site
I have a server, it has connected with multiple applications. I want to compare compare two column and get the related applications details for that server.

What is the command for that.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations