この記事では、定義された範囲から一意の値を見つけるカスタム関数を作成します。

この例の生データは、A8:A21の範囲の国名の重複エントリで構成されています。

ArrowRawData

ロジックの説明

範囲から一意の値を抽出するためのカスタム関数「UniqueItem」を作成しました。この関数は、入力として2つのパラメーターを取ります。

最初のパラメーターは重複データで構成される範囲であり、2番目のパラメーターは一意のコレクション内の一意の値のインデックス番号を定義します。

この関数は、インデックス番号に基づいて範囲から一意の値を返します。 2番目のパラメーターはオプションのパラメーターです。2番目のパラメーターが指定されていない場合、関数は定義された範囲内の一意の値の数を返します。

2番目のパラメーターに定義された値が範囲内の一意の値の数より大きい場合、最後の一意の値が関数によって返されます。

ArrowOutput

コードの説明

エラーが発生した場合は、InputRange CUnique.Add CellValue.Value、CStr(CellValue.Value)の各CellValueに対して次に再開します

[_GoBack] # Next On Error GoTo 0上記のコードは、定義された範囲からの一意の値を含むコレクションオブジェクトを作成するために使用されます。 「OnError」ステートメントはエラーの処理に使用されます。コードがコレクションに重複する値を入れようとすると、コレクションがエラーを生成するためです。

コードについては以下に従ってください

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

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください