Microsoft ExcelでVBAを使用して一意の値を見つける
この記事では、定義された範囲から一意の値を見つけるカスタム関数を作成します。
この例の生データは、A8:A21の範囲の国名の重複エントリで構成されています。
ロジックの説明
範囲から一意の値を抽出するためのカスタム関数「UniqueItem」を作成しました。この関数は、入力として2つのパラメーターを取ります。
最初のパラメーターは重複データで構成される範囲であり、2番目のパラメーターは一意のコレクション内の一意の値のインデックス番号を定義します。
この関数は、インデックス番号に基づいて範囲から一意の値を返します。 2番目のパラメーターはオプションのパラメーターです。2番目のパラメーターが指定されていない場合、関数は定義された範囲内の一意の値の数を返します。
2番目のパラメーターに定義された値が範囲内の一意の値の数より大きい場合、最後の一意の値が関数によって返されます。
コードの説明
エラーが発生した場合は、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]までご連絡ください