複数範囲の重複を除外してカンマ区切りで結合するユーザー定義関数の紹介

Excelで複数範囲の重複を除外して結合するユーザー定義関数の紹介

Excelでデータを扱う際、複数の範囲から重複データを除外して結合する場面がしばしばあります。今回は、そのような場面で便利なユーザー定義関数を紹介します。

セットするユーザー定義関数の概要

ここでは作成する関数名を「CombineUnique関数」とします。

「CombineUnique」関数は、複数の範囲を指定して、重複データを除外した上で、結合するためのExcelのユーザー定義関数です。複数のリストを統合し、一意のデータを抽出することが簡単にできます。

Function CombineUnique(ParamArray Ranges() As Variant) As String
    Dim i As Long
    Dim cell As Range
    Dim uniqueValues As Collection
    Set uniqueValues = New Collection

    On Error Resume Next
    For i = LBound(Ranges) To UBound(Ranges)
        If TypeName(Ranges(i)) = "Range" Then
            For Each cell In Ranges(i)
                If Not IsEmpty(cell.Value) Then
                    uniqueValues.Add cell.Value, CStr(cell.Value)
                End If
            Next cell
        End If
    Next i
    On Error GoTo 0

    Dim result As String
    For i = 1 To uniqueValues.Count
        result = result & uniqueValues(i) & ","
    Next i

    If Len(result) > 0 Then
        result = Left(result, Len(result) - 1)
    End If

    CombineUnique = result
End Function

「CombineUnique」関数の使い方

a. 関数のインストール方法

最初に、Visual Basic for Applications (VBA) エディタを開き、新しいモジュールを追加して、上記の「CombineUnique」関数のコードを貼り付けます。これで、「CombineUnique」関数が使えるようになります。

b. 基本的な使い方

「CombineUnique」関数は、以下のように使用します。

=CombineUnique(Range1, Range2, ..., RangeN)

ここで、Range1からRangeNまでの範囲を指定して、重複データを除外した結果を得られます。

c. 複数範囲から重複データを除外する方法

例えば、A1:A5とB1:B5にそれぞれ異なるリストがあり、両方のリストから重複を除外して結合したい場合、次のように式を入力します。

=CombineUnique(A1:A5, B1:B5)

この式により、A1:A5とB1:B5の範囲から重複を除外したデータが結合された結果が得られます。

実用的な応用例

a. 重複したリストを一元化する

例えば、2つの部門からの売上データがそれぞれA列とB列に記載されている場合、重複した顧客データを除外して一元化したいとします。その場合、次のように「CombineUnique」関数を使うことができます。

=CombineUnique(A1:A10, B1:B10)

これにより、A1:A10とB1:B10から重複を除外した顧客データが結合され、一元化されたリストが得られます。

b. 複数シートからのデータ統合

複数のシートからデータを統合する際にも、「CombineUnique」関数は役立ちます。例えば、Sheet1のA1:A10とSheet2のB1:B10から重複を除外して結合したい場合、次のように式を入力します。

=CombineUnique(Sheet1!A1:A10, Sheet2!B1:B10)

この式により、Sheet1とSheet2から重複データを除外し、結合したデータが得られます。

まとめ

「CombineUnique」関数は、複数の範囲から重複データを除外して結合する場面で大変便利なユーザー定義関数です。Excelでデータ処理を行う際に、繰り返しデータの削除や結合が必要な場合に、この関数を活用することで効率的に作業が進められます。ぜひ、「CombineUnique」関数を試してみてください。

コメント