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

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

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

Author Xiaoyang Last modified

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:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ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%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得