Extraiga valores únicos en Excel usando una función

Anonim

En nuestros artículos anteriores, hemos aprendido cómo extraer valores únicos de un rango usando una combinación de diferentes funciones de Excel. Aunque funcionan fantásticamente, pero también son complejos, no se puede negar esto. Si realiza la extracción de valores únicos con frecuencia, esas fórmulas pueden cansarlo. También hacen que el archivo sea pesado y lento.

Entonces, en este artículo, aprenderemos cómo crear una función definida por el usuario que toma un rango como argumento y devuelve solo valores únicos de ese rango. Puede copiar directamente el código a su archivo y comenzar a usarlo de inmediato.

Código VBA para función única:

Función UNIQUES (rng As Range) As Variant () Dim list As New Collection Dim Ulist () As Variant 'Añadiendo cada valor de rng a la colección. En caso de error, reanude el siguiente para cada valor en rng 'aquí el valor y la clave son los mismos. La colección no permite claves duplicadas, por lo que solo quedarán valores únicos. list.Add CStr (Value), CStr (Value) Next On Error GoTo 0 'Definiendo la longitud de la matriz al número de valores únicos. Dado que la matriz comienza en 0, restamos 1. ReDim Ulist (list.Count - 1, 0) 'Añadiendo un valor único a la matriz. For i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Next 'Imprimiendo la matriz UNIQUES = Ulist End Function 

Copie el código en el editor VB de Excel.

Usando la función ÚNICA

La función anterior es una función de matriz multicelda definida por el usuario. Significa que debe seleccionar el rango donde desea que se imprima la lista única, luego escribir la fórmula y presionar la combinación de teclas CTRL + MAYÚS + ENTRAR.

En el gif de arriba, tenemos una lista de países. Ahora hay muchos países duplicados en la lista. Queremos obtener la lista de países únicos únicamente.

Para hacerlo, seleccione un rango donde desee la lista única. Ahora escribe esta fórmula:

= ÚNICO (A2: B7)

Presione CTRL + MAYÚS + ENTRAR combinación de teclas. Y esta hecho. Todos los valores únicos se enumeran en el rango seleccionado.

Nota:Si el rango que ha seleccionado es mayor que el valor único, entonces mostrarán el error # N / A. Puede usarlo como una indicación de finalizar valores únicos. Si no ve # N / A al final de la lista, significa que puede haber más valores únicos.

Explicación del código

He usado dos conceptos principales de VBA en esta función de UD. Colecciones y función de matriz definida por el usuario. Primero, hemos utilizado una colección para obtener los valores únicos del rango proporcionado.

para cada valor en la lista rng.Agregue CStr (Valor), CStr (Valor) Siguiente siguiente 

Como no podemos imprimir una colección en la hoja, la transferimos a otra matriz UList.

for i = 0 To list.Count - 1 Ulist (i, 0) = list (i + 1) Siguiente siguiente 

Nota:La indexación de matrices de VBA comienza desde 0 y la indexación de colecciones comienza desde 1. Es por eso que hemos restado 1 para matriz en bucle for y agregado 1 a la indexación de la colección de listas.

Al final, hemos impreso esa matriz en la hoja.

Hay una función ÚNICA que no está disponible para Excel 2016 que hace lo mismo. Esa función está disponible en Excel 2019. Solo los miembros del programa de información privilegiada tienen acceso a esa función. Al utilizar esta técnica, puede presumir en la oficina de estar por delante de la EM.

Así que sí, chicos, así es como pueden crear una función que extraiga valores únicos simplemente. Espero haber sido lo suficientemente explicativo para hacerles entender esto. Si tiene alguna pregunta específica con respecto a esta o cualquier otra pregunta relacionada con Excel VBA, pregúntela en la sección de comentarios a continuación.

Haga clic en el enlace de abajo para descargar el archivo de trabajo:

Función ÚNICA

Cómo utilizar las colecciones de VBA en Excel | Aprenda el uso de la colección que puede ayudarlo a obtener valores únicos.

Crear función VBA para devolver matriz | Aprenda a crear una función de matriz definida por el usuario que devuelva una matriz.

Matrices en Excel Formul | Aprenda qué son las matrices en Excel.

Cómo crear una función definida por el usuario a través de VBA »Wiki Ùtil Aprenda a crear funciones definidas por el usuario en Excel

Usando una función definida por el usuario (UDF) de otro libro usando VBA en Microsoft Excel | Utilice la función definida por el usuario en otro libro de Excel

Devolver valores de error de funciones definidas por el usuario usando VBA en Microsoft Excel | Descubra cómo puede devolver valores de error desde una función definida por el usuario