Existen diferentes métodos para extraer valores únicos en Excel, ya sea utilizando comandos de la herramienta o a través de una fórmula. Pero si quieres automatizar por completo este proceso será necesario crear una macro.
A continuación revisaremos varias alternativas que tenemos en Excel para extraer los elementos únicos de un rango. Te recomiendo leer cada una de ellas y elegir la opción que mejor se adapte a tus necesidades.
Extraer valores únicos con comandos
Si en tus labores cotidianas la tarea de extraer valores únicos es poco frecuente, entonces será suficiente con utilizar el comando Quitar duplicados. Antes de utilizar este comando te recomiendo hacer una copia de la columna que contiene los datos originales ya que dicho comando modificará el valor de las celdas.
Una vez que hayas hecho la copia, deberás seleccionar una celda de dicho rango e ir a Datos > Herramientas de datos > Quitar duplicados, lo cual mostrará el cuadro de diálogo Quitar duplicados.
Si has colocado un encabezado a la copia de datos realizada deberás asegurarte de marcar la caja de selección Mis datos tienen encabezados. Al pulsar el botón Aceptar se mostrará un mensaje indicando la cantidad de valores duplicados encontrados y de valores únicos que permanecen después de realizar la operación. Como resultado obtendremos una lista de valores únicos:
Además del comando Quitar duplicados existe otro comando para extraer valores únicos en Excel y me refiero al Filtro Avanzado. A través de este comando podemos indicar a Excel que deseamos copiar los registros únicos de nuestra lista:
Si quieres conocer más sobre el Filtro Avanzado te recomiendo consultar el artículo Crear una lista de valores únicos en Excel donde encontrarás un ejemplo detallado.
Extraer valores únicos con una fórmula
Los comandos mencionados anteriormente requieren que tú hagas algunas cosas, como seleccionar los rangos y pulsar ciertos botones. Si quieres utilizar un método que no requiera tanta intervención de tu parte, entonces puedes utilizar una fórmula de Excel para extraer los valores únicos. La fórmula que utilizaremos será la siguiente:
=SI.ERROR(INDICE($C$2:$C$31, COINCIDIR(0, INDICE(CONTAR.SI($F$1:F1, $C$2:$C$31), 0, 0), 0)), "")
En esta fórmula existen solo dos rangos de celdas que explicaré a continuación. El primer rango es $C$2:$C$31 que se refiere a la ubicación donde se encuentran los datos originales. El segundo rango es $F$1:F1, que es el primer argumento de la función CONTAR.SI, se refiere a la primera celda de la columna donde se colocarán los valores únicos. Observa que la primera referencia de este rango es absoluta y la segunda es relativa y deberás mantenerla de esa manera.
Otra condición necesaria para que la fórmula funcione correctamente, es que la columna que contendrá los valores únicos deberá tener una celda de encabezado. Esto es necesario porque la fórmula será colocada en la celda F2 haciendo referencia al rango $F$1:F1 y si no tuviéramos la celda con el encabezado se crearía una referencia circular.
Una vez que hayas adecuado ambos rangos a tus datos y la columna de resultados tenga un encabezado, deberás colocar la fórmula en la segunda fila y copiarla hacia abajo tantas veces como sea necesario para contener todos los valores únicos que serán extraídos. En la siguiente imagen puedes observar el resultado de esta fórmula:
La función más importante de esta fórmula es CONTAR.SI ya que para cada fila se toma en cuenta el resultado de las filas superiores, de manera que podamos saber si un valor ya ha aparecido previamente. Por esta razón, el primer argumento de la función COINCIDIR es el valor cero, que nos asegura que cada valor analizado ha aparecido cero veces en la columna de resultados.
La función INDICE se encarga de copiar el valor de los datos originales y además utilizamos la función SI.ERROR para evitar desplegar el error #N/A que se mostrará en las celdas inferiores una vez que se ha terminado el listado de valores únicos.
Extraer valores únicos con una macro
Una manera más directa y automática de extraer valores únicos en Excel es utilizando una macro. El código VBA que nos ayudará a realizar dicha extracción es el siguiente:
Sub ValoresUnicos() Dim listaOrigen As Range On Error Resume Next Set listaOrigen = Application.InputBox _ (Prompt:="Rango de datos origen:", Title:="Seleccionar rango", Type:=8) listaOrigen.AdvancedFilter _ Action:=xlFilterCopy, CopyToRange:=ActiveCell, Unique:=True Canceled: End Sub
La línea 5 se encarga de mostrar un cuadro de diálogo para preguntarnos el rango que contiene la lista con los datos de origen. La línea 8 ejecuta el método AdvancedFilter que nos ayuda a obtener los valores únicos y colocarlos en la celda activa.
Para utilizar esta macro comienzo por seleccionar la celda donde se colocarán los valores únicos y posteriormente ir a Vista > Macros y elegir la macro a ejecutar. De inmediato se mostrará el cuadro de diálogo que solicitará el rango de datos origen donde colocaré la referencia a la columna completa de la siguiente manera:
Como resultado obtendremos la lista de valores únicos a partir de la celda activa:
De esta manera hemos revisado diferentes alternativas para obtener una lista de valores únicos ya sea utilizando comandos, fórmulas o una macro. Descarga el libro de trabajo utilizado en este artículo y sigue experimentando con la extracción de valores únicos en Excel.