Note: The other languages of the website are Google-translated. Back to English

¿Cómo devolver múltiples valores de búsqueda en una celda separada por comas?

En Excel, podemos aplicar la función BUSCARV para devolver el primer valor coincidente de las celdas de una tabla, pero, a veces, necesitamos extraer todos los valores coincidentes y luego separarlos por un delimitador específico, como una coma, un guión, etc ... en un solo celda como se muestra en la siguiente captura de pantalla. ¿Cómo podríamos obtener y devolver múltiples valores de búsqueda en una celda separada por comas en Excel?

doc devuelve varios valores separados por comas 1

Devuelve varios valores de búsqueda en una celda separada por comas con la función definida por el usuario

Devuelve múltiples valores de búsqueda en una celda separada por comas con Kutools para Excel


Devuelve varios valores de búsqueda en una celda separada por comas con la función definida por el usuario

Normalmente, no hay una forma directa de que extraigamos y devolvamos los múltiples valores coincidentes y separados por comas en una celda, aquí, puede crear una función definida por el usuario para resolver este trabajo, haga lo siguiente:

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 Módulo Ventana.

Código de VBA: devuelve múltiples valores de búsqueda en una celda separada por comas

Function SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Updateby Extendoffice
    Dim I As Long
    Dim xRet As String
    For I = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(I, 1) = LookupValue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(I, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellExtract = Left(xRet, Len(xRet) - 1)
End Function

3. Luego guarde este código y cierre la ventana Módulo, regrese a su hoja de trabajo e ingrese esta fórmula: = Extracto de celda única (D2, A2: B15,2, ",") en una celda en blanco que desea devolver el resultado. Y luego presione Enviar clave para obtener el resultado, vea la captura de pantalla:

doc devuelve varios valores separados por comas 2

Nota:: En la fórmula anterior:

D2: indica los valores de celda que desea buscar;

A2: B15: es el rango de datos que desea obtener;

2: el número 2 es el número de columna cuyo valor coincidente se devolverá;

,: la coma es el separador que desea separar los valores múltiples.

Puede cambiarlos según sus necesidades.


Devuelve múltiples valores de búsqueda en una celda separada por comas con Kutools para Excel

Si tiene Kutools for Excel, esta tarea ya no será un problema. los Filas combinadas avanzadas La utilidad puede ayudarlo a combinar todos los valores relativos basados ​​en una columna.

Kutools for Excel : con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días

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

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

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

3. En la Combinar filas según la columna cuadro de diálogo, haga clic en el nombre de la columna en la que desea combinar, y luego haga clic en Clave primaria botón, ver captura de pantalla:

doc devuelve varios valores separados por comas 4

4. Luego haga clic en el nombre de otra columna en la que desee combinar sus valores coincidentes y haga clic en Combinar para elegir un separador para separar los valores combinados, vea la captura de pantalla:

doc devuelve varios valores separados por comas 5

5. Luego haga clic OK botón, todas las celdas correspondientes con el mismo valor se han combinado en una celda que se separa con la coma, ver capturas de pantalla:

doc devuelve varios valores separados por comas 6 2 doc devuelve varios valores separados por comas 7

Haga clic para conocer más detalles sobre esta utilidad de combinación avanzada de filas ...

¡Descargue y pruebe Kutools para Excel ahora!


Demostración: devuelva múltiples valores de búsqueda en una celda separada por comas con Kutools para Excel

Kutools for Excel: con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días. ¡Descarga y prueba gratis ahora!

Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

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!
officetab parte inferior
Comentarios (16)
5 clasificado de 5 · 2 calificaciones
Este comentario fue minimizado por el moderador en el sitio
Mientras voy a pegar y guardar el módulo, aparece un mensaje emergente que indica una pérdida significativa de la funcionalidad del comprobador de compatibilidad.
Este comentario fue minimizado por el moderador en el sitio
Gracias por esta publicación. ¿Sabes cómo haría para manipular los dos enteros separados que esto está creando? Por ejemplo, digamos que la función '=SingleCellExtract' ahora produce (1, 2). ¿Hay alguna manera de tener una celda al lado que haga (1+.5, 2+.5)?
Este comentario fue minimizado por el moderador en el sitio
¡Esto funciona pero ralentiza mi Excel en gran medida! ¿Algún consejo para ayudar a acelerar?
Este comentario fue minimizado por el moderador en el sitio
Esto simplemente no funciona. No pude hacer que funcionara en mi propia aplicación, así que copié/pegué el vba y la fórmula y devolvía un error cada vez.
Este comentario fue minimizado por el moderador en el sitio
gracias, en primer lugar logré que esto funcionara sin la ralentización del rendimiento. Estoy usando valores en lugar de texto, así que mi pregunta es que quiero traer de vuelta a todos aquellos con menos de 19 puntos en una lista. ¿Puede el extracto de una sola celda funcionar para eso o tiene que ser un valor específico?
Este comentario fue minimizado por el moderador en el sitio
El comando VB se interrumpe cuando el rango es más largo que 154 filas (es decir: B154)....
Este comentario fue minimizado por el moderador en el sitio
Aparece un error si aumenta el tamaño de la matriz
Este comentario fue minimizado por el moderador en el sitio
Cuando 2 criterios coinciden, devuelve múltiples valores de búsqueda en una celda separada por comas
A2 = B2 Luego resultado del rango por "SingleCellExtract" - Por favor .......
Este comentario fue minimizado por el moderador en el sitio
Buenos días,

el código de VBA funcionó perfectamente con mi hoja de trabajo, bastante claro y simple, sin embargo, estaba tratando de encontrar una manera de decirle a Excel que solo devuelva los valores únicos. ¿Sería eso posible usando este mismo código?
5 clasificado de 5
Este comentario fue minimizado por el moderador en el sitio
Hola,

Quiero el código de validación exacto para múltiples valores separados por coma y espacio para cada valor.

Ejemplo:
Lucy, Tom, Nicol, Akash, Apple

Vuelva a jugar si tiene alguna sugerencia.
4.5 clasificado de 5
Este comentario fue minimizado por el moderador en el sitio
Hola, Manikanta
Para separar los valores múltiples por una coma y un espacio, solo necesita agregar un espacio detrás de la coma, cambie la fórmula de esta manera: = Extracto de celda única (D2, A2: B15,2, XNUMX, "").
Por favor, inténtalo, ¡espero que te pueda ayudar!
Este comentario fue minimizado por el moderador en el sitio
Hola Skyyang,

¡Gracias por tu respuesta!

Ya lo intenté de la misma manera, pero en el valor de la celda, la última coma adicional (,) que viene a continuación es el ejemplo.

Lucy, Tom, Nicol, Akash, Apple,

Esto no funcionará para el archivo Json, por lo que quiero valores separados por coma y espacio como se muestra a continuación.

Lucy, Tom, Nicol, Akash, Apple

¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola Manikanta
En este caso, puede aplicar la siguiente función definida por el usuario:

Function MultipleValues(work_range As Range, criteria As Variant, merge_range As Range, Optional Separator As String = ",") As Variant
Dim outcome As String
On Error Resume Next
If work_range.Count <> merge_range.Count Then
MultipleValues = CVErr(xlErrRef)
Exit Function
End If
For i = 1 To work_range.Count
If work_range.Cells(i).Value = criteria Then
outcome = outcome & Separator & merge_range.Cells(i).Value
End If
Next i
If outcome <> "" Then
outcome = VBA.Mid(outcome, VBA.Len(Separator) + 1)
End If
MultipleValues = outcome
Exit Function
End Function


Después de pegar el código, utilice esta fórmula: =MultipleValues($A$2:$A$15,D2,$B$2:$B$15,", ")

Por favor, intente, ¡espero que esto pueda ayudarlo!
Si todavía tiene algún otro problema, por favor comente aquí.
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-return-multiple-matching-1.png
Este comentario fue minimizado por el moderador en el sitio
Hola Skyyang,

Esto está funcionando ahora, gracias por su rápida respuesta.

Es muy útil para mí una vez más. Gracias por su ayuda.

Saludos,
Manikanta.
5 clasificado de 5
Este comentario fue minimizado por el moderador en el sitio
No soy programador pero necesito ayuda para que la función de abajo en lugar de devolverme esto

S-01-08-0017->Micro Poste 1R, Negro, Acero Inoxidable - Extremo,->4;S-01-08-0057->Micro Poste 2R, Negro, Acero Inoxidable -Extremo,->2

me devuelva los valores en lineas diferentes.
S-01-08-0017->Micro Poste 1R, Negro, Acero Inoxidable -Terminal,->4
S-01-08-0057->Micro Poste 2R, Negro, Acero Inoxidable -Terminal,->2

La función es:
Función SingleCellExtract(LookupValue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
'Actualizar por Extendoffice
Dim I tan largo
Atenuar xRet como cadena
For I = 1 Para LookupRange.Columns(1).Cells.Count
Si LookupRange.Cells(I, 1) = LookupValue Entonces
Si xRet = "" Entonces
xRet = LookupRange.Cells(I, ColumnNumber) & Char
otro
xRet = xRet & "" & LookupRange.Cells(I, ColumnNumber) & Char
Si terminar
Si terminar
Siguiente
SingleCellExtract = Izquierda (xRet, Len (xRet) - 1)
Función finales
Este comentario fue minimizado por el moderador en el sitio
Hola Yery,
¿Quería dividir una celda en varias filas según el carácter de punto y coma?
Si es así, el siguiente código VBA puede ayudarte:
Sub SplitAll()
    Dim xRg As Range
    Dim xRg1 As Range
    Dim xCell As Range
    Dim I As Long
    Dim xAddress As String
    Dim xUpdate As Boolean
    Dim xRet As Variant
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select a range", "Kutools for Excel", xAddress, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
        If xRg.Columns.Count > 1 Then
            MsgBox "You can't select multiple columns", , "Kutools for Excel"
            Exit Sub
            End If
            Set xRg1 = Application.InputBox("Split to (single cell):", "Kutools for Excel", , , , , , 8)
            Set xRg1 = xRg1.Range("A1")
            If xRg1 Is Nothing Then Exit Sub
                xUpdate = Application.ScreenUpdating
                Application.ScreenUpdating = False
                For Each xCell In xRg
                    xRet = Split(xCell.Value, ";")
                    xRg1.Worksheet.Range(xRg1.Offset(I, 0), xRg1.Offset(I + UBound(xRet, 1), 0)) = Application.WorksheetFunction.Transpose(xRet)
                    I = I + UBound(xRet, 1) + 1
                Next
                Application.ScreenUpdating = xUpdate
            End Sub

Por favor, inténtalo, ¡espero que te pueda ayudar!
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL