Encontrar valores únicos utilizando VBA en Microsoft Excel
En este artículo, crearemos una función personalizada para encontrar valores únicos del rango definido.
Los datos sin procesar para este ejemplo consisten en entradas duplicadas del nombre del país en el rango A8: A21.
Explicación lógica
Hemos creado una función personalizada «UniqueItem» para extraer los valores únicos del rango. Esta función toma dos parámetros como entrada.
El primer parámetro es el rango que consta de los datos duplicados y el segundo parámetro define el número de índice de un valor único en la colección única.
Esta función devuelve el valor único del rango basado en el número de índice. El segundo parámetro es un parámetro opcional, si no se especifica el segundo parámetro, la función devuelve el número de valor único en el rango definido.
Si el valor definido para el segundo parámetro es mayor que el número de valores únicos en el rango, la función devuelve el último valor único.
Explicación del código
En caso de error, reanude el siguiente para cada CellValue en InputRange CUnique.Add CellValue.Value, CStr (CellValue.Value)
[_GoBack] # Siguiente en caso de error Ir a 0 El código anterior se usa para crear un objeto de colección que contendrá un valor único del rango definido. Las declaraciones «On Error» se utilizan para manejar errores, ya que cuando el código intenta colocar valores duplicados en la colección, la colección generará un error.
Siga a continuación el código
Option Explicit Function UniqueItem(InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Adding unique items to collection from defined range For Each CellValue In InputRange CUnique.Add CellValue.Value, CStr(CellValue.Value) Next On Error GoTo 0 'Getting count of unique item in the collection UCount = CUnique.Count If ItemNo = 0 Then 'Returning count of unique item UniqueItem = UCount ElseIf ItemNo <= UCount Then 'Returning unique value based on item number UniqueItem = CUnique(ItemNo) Else 'Returning last unique value UniqueItem = CUnique(UCount) End If End Function
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]