メインコンテンツへスキップ

Excelで単一セルに複数の値を返すVLOOKUPの方法は?

Author: Xiaoyang Last Modified: 2025-08-06

VLOOKUPはExcelで強力な関数ですが、デフォルトでは最初に一致する値しか返しません。すべての一致する値を取得して1つのセルに結合したい場合はどうすればよいでしょうか?これはデータセットを分析したり情報を要約したりする際に一般的な要件です。このガイドでは、数式と便利な機能を使用して複数の値を単一セルに返すためのステップバイステップの方法を説明します。

TEXTJOIN関数を使用して複数の値を1つのセルに返す(Excel 2019およびOffice 365)

Kutoolsを使用して複数の値を1つのセルに返す

ユーザー定義関数を使用して複数の値を1つのセルに返す

vlookup to return multiple values in one cell


TEXTJOIN関数を使用して複数の値を1つのセルに返す(Excel 2019およびOffice 365)

Excel 2019やOffice 365のような高バージョンのExcelを使用している場合、新しい関数「TEXTJOIN」があります。この強力な関数を使用すると、すべての一致する値を迅速に検索し、1つのセルに返すことができます。

すべての一致する値を1つのセルに返す

結果を表示したい空白セルに以下の数式を適用し、「Ctrl + Shift + Enter」キーを同時に押して最初の結果を得ます。その後、フィルハンドルをドラッグして他のセルにこの数式を適用すると、以下のようにすべての対応する値が表示されます:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

注: 上記の数式において、A2:A11は検索範囲であり、E2は検索値、C2:C11は一致する値を返すデータ範囲、","は複数のレコードを区切るための区切り文字です。

重複なしですべての一致する値を1つのセルに返す

検索データに基づいて重複なしですべての一致する値を返したい場合、以下の数式が役立つかもしれません。

以下の数式をコピーして空白セルに貼り付け、「Ctrl + Shift + Enter」キーを同時に押して最初の結果を得ます。その後、この数式を他のセルにコピーすると、以下のように重複しないすべての対応する値が表示されます:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))

注: 上記の数式において、A2:A11は検索範囲であり、E2は検索値、C2:C11は一致する値を返すデータ範囲、","は複数のレコードを区切るための区切り文字です。

Kutoolsを使用して複数の値を1つのセルに返す

Kutools for Excelの「高度な行のマージ」機能を使用すると、複雑な数式を使わずに複数の一致する値を簡単に1つのセルに取得できます!手動での作業を忘れて、より効率的な方法でExcelでの検索タスクを処理しましょう。Kutools for Excelがどのようにそれを可能にするかを見てみましょう!

Kutools for Excelは、300以上の高度な機能を提供し、複雑なタスクを簡素化し、創造性と効率を向上させます。 AI機能と統合され、Kutoolsは正確にタスクを自動化し、データ管理を容易にします。Kutools for Excelの詳細情報...無料トライアル...

Kutools for Excelをインストール後、次の手順を行ってください:

1. 結合したい列に基づいたデータ範囲を選択します。

2. 「Kutools」>「統合と分割」>「高度な行のマージ」をクリックします。スクリーンショットをご覧ください:

3. 表示された「高度な行のマージ」ダイアログボックスで:

  • 結合する基準となる列名をクリックし、「プライマリキー」をクリックします。
  • 次に、キーカラムに基づいてデータを結合したい別の列をクリックし、「操作」フィールドのドロップダウンリストから結合データを区切るための区切り文字を選択します。
  • 次に、「OK」ボタンをクリックします。

specify options in the dialog box

同じ値に基づいて、もう一方の列からのすべての対応する値が1つのセルに結合されます。スクリーンショットをご覧ください:

original data arrow right all cell values are extracted into one cell based on the same data

ヒント: セルを結合する際に重複した内容を削除したい場合は、ダイアログボックス内の「重複値を削除する」オプションをチェックしてください。これにより、重複を排除した一意のエントリのみが1つのセルに結合され、データがより整理されてクリーンになります。スクリーンショットをご覧ください:

original data arrow right all cell values are extracted into one cell skip the duplicates

今すぐKutools for Excelをダウンロードして無料でお試しください!


ユーザー定義関数を使用して複数の値を1つのセルに返す

上記のTEXTJOIN関数はExcel 2019およびOffice 365でのみ利用可能です。他の古いバージョンのExcelを使用している場合は、いくつかのコードを使用してこのタスクを完了する必要があります。

すべての一致する値を1つのセルに返す

1. 「ALT + F11」キーを押すと、「Microsoft Visual Basic for Applications」ウィンドウが開きます。

2. 「挿入」>「モジュール」をクリックし、モジュールウィンドウに次のコードを貼り付けます。

VBAコード: 複数の値を1つのセルに返すVlookup

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. その後、コードを保存して閉じ、ワークシートに戻り、この数式を入力します: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") を結果を配置したい特定の空白セルに入力し、フィルハンドルを下にドラッグして、1つのセルにすべての対応する値を取得します。スクリーンショットをご覧ください:

Vlookup to return all matching values into one cell with user defined function

: 上記の数式において、A2:A11は検索範囲であり、E2は検索値、C2:C11は一致する値を返すデータ範囲、","は複数のレコードを区切るための区切り文字です。

重複なしですべての一致する値を1つのセルに返す

返される一致する値から重複を無視するには、以下のコードを使用してください。

1. 「Alt + F11」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。

2. 「挿入」>「モジュール」をクリックし、モジュールウィンドウに次のコードを貼り付けます。

VBAコード: 重複しない複数の一致する値を1つのセルに返すVlookup

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
'Updateby Extendoffice
    Dim xDic As New Dictionary
    Dim xRows As Long
    Dim xStr As String
    Dim i As Long
    On Error Resume Next
    xRows = LookupRange.Rows.Count
    For i = 1 To xRows
        If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
            xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
        End If
    Next
    xStr = ""
    MultipleLookupNoRept = xStr
    If xDic.Count > 0 Then
        For i = 0 To xDic.Count - 1
            xStr = xStr & xDic.Keys(i) & ","
        Next
        MultipleLookupNoRept = Left(xStr, Len(xStr) - 1)
    End If
End Function

3. コードを挿入後、「ツール」>「参照設定」をクリックし、開かれた「Microsoft Visual Basic for Applications」ウィンドウで、表示された「参照設定 – VBAProject」ダイアログボックスの「使用可能な参照」リストボックスで「Microsoft Scripting Runtime」オプションをチェックします。スクリーンショットをご覧ください:

click Tools > References arrow right check Microsoft Scripting Runtime option

4. ダイアログボックスを閉じ、コードウィンドウを保存して閉じ、ワークシートに戻り、この数式を入力します: =MultipleLookupNoRept(E2,$A$2:$C$11,3) を結果を出力したい空白セルに入力し、フィルハンドルを下にドラッグしてすべての一致する値を取得します。スクリーンショットをご覧ください:

Vlookup to return all matching values without duplicates into one cell by user defined function

: 上記の数式において、A2:C11は使用したいデータ範囲、E2は検索値、数字の3は返される値を含む列番号です。

TEXTJOIN関数と配列関数を組み合わせた数式を使用するか、Kutools for Excelやユーザー定義関数などのツールを利用するかどうかに関わらず、すべてのアプローチは複雑な検索タスクを簡素化します。ニーズに最適な方法を選んでください。さらに多くのExcelのヒントやコツに興味がある場合、当社のウェブサイトには数千ものチュートリアルが用意されています


関連記事:

  • VLOOKUP関数の基本的および高度な例
  • Excelでは、VLOOKUP関数はほとんどのExcelユーザーにとって強力な関数であり、データ範囲の左端にある値を探して、指定した列から同じ行の一致する値を返します。このチュートリアルでは、ExcelでVLOOKUP関数を基本的および高度な例とともに使用する方法について説明します。
  • 1つまたは複数の条件に基づいて複数の一致する値を返す
  • 通常、特定の値を検索して一致する項目を返すのは、VLOOKUP関数を使用することで私たちの多くにとって簡単です。しかし、1つまたは複数の条件に基づいて複数の一致する値を返そうとしたことはありますか?この記事では、Excelでこの複雑なタスクを解決するためのいくつかの数式を紹介します。
  • Vlookupで複数の値を垂直に返す
  • 通常、Vlookup関数を使用して最初の対応する値を取得できますが、時には特定の基準に基づいてすべての一致するレコードを返したい場合もあります。この記事では、Vlookupを使用してすべての一致する値を垂直、水平、または1つのセルに返す方法について説明します。
  • ドロップダウンリストから複数の値をVlookupして返す
  • Excelで、ドロップダウンリストから複数の対応する値をVlookupして返す方法は?つまり、ドロップダウンリストからアイテムを選択すると、そのすべての相対的な値が一度に表示されます。この記事では、ステップバイステップでその解決策を紹介します。

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!