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.

ArrowRawData

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.

ArrowOutput

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]