Saltar al contenido principal

¿Cómo extraer valores únicos de varias columnas en Excel?

Suponiendo que tiene varias columnas con múltiples valores, algunos valores se repiten en la misma columna o en una columna diferente. Y ahora desea encontrar los valores que están presentes en cualquiera de las columnas solo una vez. ¿Hay algún truco rápido para que extraiga valores únicos de varias columnas en Excel?


Extraiga valores únicos de múltiples columnas con fórmulas

Esta sección cubrirá dos fórmulas: una que usa una fórmula matricial adecuada para todas las versiones de Excel y otra que usa una fórmula matricial dinámica específicamente para Excel 365.

Extraiga valores únicos de múltiples columnas con fórmula de matriz para todas las versiones de Excel

Para los usuarios con cualquier versión de Excel, las fórmulas matriciales pueden ser una herramienta poderosa para extraer valores únicos en varias columnas. Así es como puedes hacerlo:

1. Asumiendo sus valores en rango A2: C9, ingrese la siguiente fórmula en la celda E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""
Note: En la fórmula anterior, A2: C9 indica el rango de celdas que desea extraer los valores únicos, E1: E1 es la primera celda de la columna en la que desea colocar el resultado, $ 2: $ 9 los soportes de las filas contienen las celdas que desea usar, y $ A: $ C indica que las columnas contienen las celdas que desea utilizar. Cámbialos por los tuyos.

2. Entonces presione Mayús + Ctrl + Entrar teclas juntas y luego arrastre el controlador de relleno para extraer los valores únicos hasta que aparezcan celdas en blanco. Ver captura de pantalla:

Explicación de esta fórmula:
  1. $ A $ 2: $ C $ 9: Esto especifica el rango de datos que se verificará, que son las celdas de A2 a C9.
  2. IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0), ROW($2:$9)*100+COLUMN($A:$C), 7^8):
    • $A$2:$C$9<>"" comprueba si las celdas del rango no están vacías.
    • COUNTIF($E$1:E1,$A$2:$C$9)=0 determina si los valores de estas celdas aún no se han enumerado en el rango de celdas de E1 a E1.
    • Si se cumplen ambas condiciones (es decir, el valor no está vacío y aún no figura en la columna E), la función SI calcula un número único en función de su fila y columna (FILA($2:$9)*100+COLUMNA($A: $C)).
    • Si no se cumplen las condiciones, la función devuelve un número grande (7^8), que sirve como marcador de posición.
  3. MÍN(...): Encuentra el número más pequeño devuelto por la función SI anterior, correspondiente a la ubicación del siguiente valor único.
  4. TEXTO(...,"R0C00"): convierte este número mínimo en una dirección de estilo R1C1. El código de formato R0C00 indica la conversión del número al formato de referencia de celda de Excel.
  5. INDIRECTO(...): Utiliza la función INDIRECTA para convertir la dirección de estilo R1C1 generada en el paso anterior a una referencia de celda de estilo A1 normal. La función INDIRECTA permite hacer referencia a celdas según el contenido de una cadena de texto.
  6. &"": Agregar &"" al final de la fórmula garantiza que el resultado final se trate como texto, por lo que los números pares se mostrarán como texto.
 
Extraiga valores únicos de varias columnas con fórmula para Excel 365

Excel 365 admite matrices dinámicas, lo que facilita mucho la extracción de valores únicos de varias columnas:

Ingrese o copie la siguiente fórmula en una celda en blanco donde desea colocar el resultado y luego haga clic en Participar clave para obtener todos los valores únicos a la vez. Ver captura de pantalla:

=UNIQUE(TOCOL(A2:C9,1))


Extraiga valores únicos de varias columnas con Kutools AI Aide

Desata el poder de Asistente de IA de Kutools para extraer sin problemas valores únicos de múltiples columnas en Excel. Con solo unos pocos clics, esta herramienta inteligente examina sus datos, identifica y enumera entradas únicas en cualquier rango seleccionado. Olvídese de la molestia de fórmulas complejas o códigos vba; adopte la eficiencia de Asistente de IA de Kutools y transforme su flujo de trabajo de Excel en una experiencia más productiva y libre de errores.

Note: Para usar esto Asistente de IA de Kutools of Kutools for Excel, Por favor descargue e instale Kutools para Excel de antemano.

Después de instalar Kutools para Excel, haga clic en Kutools IA > Asistente de IA para abrir el Asistente de IA de Kutools cristal:

  1. Escriba su requisito en el cuadro de chat y haga clic en Enviar botón o prensa Participar clave para enviar la pregunta;
    "Extraiga valores únicos del rango A2:C9, ignorando las celdas en blanco y coloque los resultados comenzando en E2:"
  2. Después de analizar, haga clic Implementación botón para ejecutar. Kutools AI Aide procesará su solicitud utilizando AI y devolverá los resultados en la celda especificada directamente en Excel.


Extraiga valores únicos de varias columnas con la tabla dinámica

Si está familiarizado con la tabla dinámica, puede extraer fácilmente los valores únicos de varias columnas con los siguientes pasos:

1. Al principio, inserte una nueva columna en blanco a la izquierda de sus datos; en este ejemplo, insertaré la columna A junto a los datos originales.

2. Haga clic en una celda de sus datos y presione Alt + D teclas, luego presione P inmediatamente para abrir el Asistente para tablas dinámicas y gráficos dinámicos, escoger Múltiples rangos de consolidación en el asistente paso 1, vea la captura de pantalla:

3. Luego haga clic Siguiente botón, verificar Crea un campo de una sola página para mí opción en el asistente paso 2, vea la captura de pantalla:

4. Sigue haciendo clic Siguiente , haga clic para seleccionar el rango de datos que incluye la nueva columna izquierda de celdas, luego haga clic en Añada para agregar el rango de datos al Todos los rangos cuadro de lista, ver captura de pantalla:

5. Después de seleccionar el rango de datos, continúe haciendo clic Siguiente, en el paso 3 del asistente, elija dónde desea colocar el informe de tabla dinámica como desee.

6. Por último, haz clic Acabado para completar el asistente, y se ha creado una tabla dinámica en la hoja de trabajo actual, luego desmarque todos los campos de la Elija campos para agregar al informe sección, ver captura de pantalla:

7. Entonces revisa el campo Valor o arrastre el Valor al filas etiqueta, ahora obtendrá los valores únicos de las múltiples columnas de la siguiente manera:


Extraiga valores únicos de varias columnas con código VBA

Con el siguiente código VBA, también puede extraer los valores únicos de varias columnas.

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

2. Hacer clic recuadro > Móduloy pegue el siguiente código en la ventana del módulo.

VBA: extrae valores únicos de varias columnas

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. Entonces presione F5 para ejecutar este código, y aparecerá un cuadro emergente para recordarle que seleccione el rango de datos que desea usar. Ver captura de pantalla:

4. Y luego haz clic OK, aparecerá otro cuadro de aviso para permitirle elegir un lugar para colocar el resultado, vea la captura de pantalla:

5. Haga Clic en OK para cerrar este diálogo, y todos los valores únicos se han extraído a la vez.


Artículos más relativos:

  • Cuente el número de valores únicos y distintos de una lista
  • Supongamos que tiene una lista larga de valores con algunos elementos duplicados, ahora desea contar el número de valores únicos (los valores que aparecen en la lista solo una vez) o valores distintos (todos los valores diferentes en la lista, significa únicos valores + 1er valor duplicado) en una columna como se muestra en la captura de pantalla de la izquierda. En este artículo, hablaré sobre cómo lidiar con este trabajo en Excel.
  • Extraiga valores únicos basados ​​en criterios en Excel
  • Supongamos que tiene el siguiente rango de datos en el que desea enumerar solo los nombres únicos de la columna B según un criterio específico de la columna A para obtener el resultado como se muestra a continuación. ¿Cómo podría hacer frente a esta tarea en Excel de forma rápida y sencilla?
  • Permitir solo valores únicos en Excel
  • Si desea mantener solo valores únicos ingresando en una columna de la hoja de trabajo y evitar los duplicados, este artículo presentará algunos trucos rápidos para que pueda manejar esta tarea.
  • Sumar valores únicos basados ​​en criterios en Excel
  • Por ejemplo, tengo un rango de datos que contiene las columnas Nombre y Orden, ahora, para sumar solo valores únicos en la columna Orden según la columna Nombre como se muestra en la siguiente captura de pantalla. ¿Cómo solucionar esta tarea de forma rápida y sencilla en Excel?

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 (31)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Thank you for this solution, however what if the columns are in separate excel sheet? or is in separate columns instead of a table?
This comment was minimized by the moderator on the site
Hello, Jon,
The methods in this article ar only works well for a range of data, if your data in separate columns, you should copy and paste them into one range first, and then apply the formula or VBA code.
Thank you!
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello, Michael H.
Thanks for your kindly explanation.
Hope this can help others in the future.😄
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello Sir! The VBA worked wonders, thank you very much for that! I was wondering, If I change the original data, is it possible to refresh the column with the unique values automatically?
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello Ioannis,

Glad to help. After you change the original data, the VBA can not refresh the result automatically. And the easiest way I can think of is to press Ctrl + Alt + F9 to refresh all results in worksheets in all open workbooks. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
The array formula at the top is working great when used with data in the same sheet, however when I try to use it to reference the same exact data from another sheet the formula returns nothing. I'm unable to figure out why. Is there a limitation with array functions that prevents you from referencing ranges in a different sheet?

Thanks for any insight you can provide.
This comment was minimized by the moderator on the site
Hello Erin,

Glad to help. The INDIRECT function in this formula is more complicated to use when referencing data in other worksheets. It is not recommended to use this feature when referencing ranges in different worksheets.

For example: Now the data is in Sheet1, I want to reference the content of cell C2 of Sheet1 in Sheet2. First, in any two cells in Sheet2, such as D1 and D2, enter Sheet1 and C2, respectively. At this point, enter the formula in the empty cell of Sheet2:
=INDIRECT("'"&D1&"'!"&D2), then the content of cell C2 in Sheet1 can be returned.

As you can see, it make things way more complex. Hope my explanation can help. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Czy to żart?
This comment was minimized by the moderator on the site
can we create uniqdata function instead of macro?
This comment was minimized by the moderator on the site
Hi, İlhan,If you like a User Defined Function to create a formula for solving this problem, the below code may help you:After inserting the code, select a list of cells where you want to put the results. Then type this formula:=Uniques(A1:C4)  in the formula bar.Press Ctrl+Shift+Enter keys together. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
This comment was minimized by the moderator on the site
Thanks for the code. I'm using the VBA code of this page. Is there a way to add a sorting code after the unique values are extracted so it sorts it automatically?
This comment was minimized by the moderator on the site
Regarding the formula version, could you explain in more detail what this portion is doing? *100+COLUMN($A:$C),7^8)),"R0C00") Specifically, what are the *100, 7^8, and "R0C000" doing? I'm understanding everything else, but I can't figure out what these are for.
This comment was minimized by the moderator on the site
Little late for my response here but...
ROW($2:$9)*100 - this is multiplying the row number *100, so if it's in row 5, now the number is 500
COLUMN($A:$C) - this gets added to the row*100 number, so if it's row 5 col 2, then the number is 502.
7^8)), - this (I think) is to have a max value for the min statement from earlier.
"R0C00") - this formats the text based on the number. In the example, we had 502 so this gives R5C02 (row 5, col 02).

If you have a lot of columns but not many rows, then you could change it to ROW($2:$9)*1000+COLUMN($A:$C),7^8)),"R0C000")
This comment was minimized by the moderator on the site
i've adjusted to my sheet but am only returning the first value in the defined array... what am i missing?
This comment was minimized by the moderator on the site
Hello, Cody,
The above formula works well in my worksheet, could you give a screenshot of your data problem here?
Thank you!
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