Excelで値をルックアップして複数の対応する値を返す方法は?
このチュートリアルでは、以下のスクリーンショットに示すように、Excelで複数の対応する値を返す値を検索する方法について説明しています。
ルックアップ値は、フィルターを使用して複数の対応する値を返します
ルックアップ値は、定義された関数で複数の対応する値を返します
- 何でも再利用: 最もよく使用される、または複雑な数式、グラフなどをお気に入りに追加して、後ですぐに再利用できます。
- 20以上のテキスト機能: テキスト文字列から数値を抽出します。 テキストの一部を抽出または削除します。 数字と通貨を英語の単語に変換します。
- マージツール:複数のワークブックとシートをXNUMXつに。 データを失うことなく複数のセル/行/列をマージします。 重複する行と合計をマージします。
- 分割ツール:値に基づいてデータを複数のシートに分割します。 XNUMXつのワークブックから複数のExcel、PDF、またはCSVファイル。 XNUMX列から複数列。
- 貼り付けスキップ 非表示/フィルタリングされた行; カウントと合計 背景色別; パーソナライズされた電子メールを複数の受信者にまとめて送信します。
- スーパーフィルター: 高度なフィルタースキームを作成し、任意のシートに適用します。 並び替え 週、日、頻度など。 フィルタ 太字、数式、コメント...
- 300 以上の強力な機能。 Office 2007-2021 および 365 で動作します。 すべての言語をサポートします。 企業や組織に簡単に導入できます。
ルックアップ値は、配列数式で複数の対応する値を返します
これは、長い配列の数式で、値を検索し、対応する複数の値を返すことができます。
1.検索する値を空白のセルに入力します。 スクリーンショットを参照してください:
2.隣接するセルに、この数式を入力します =IF(ISERROR(INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$D$4,ROW($A$1:$A$7)),ROW(1:1)),2)),"",
INDEX($A$1:$B$7,SMALL(IF($A$1:$A$7=$D$4,ROW($A$1:$A$7)),ROW(1:1)),2)) それに、を押します Shift + Ctrl + Enter キーを一緒にドラッグしてから、 自動塗りつぶし 最初の空白のセルが出るまでセルを埋めます。 スクリーンショットを参照してください:
注:上記の数式で、$ A $ 1:$ B $ 7は範囲データを示し、$ A $ 1:$ A $ 7は特定の値をルックアップする列範囲を表し、$ D $ 4はルックアップを入力したセルを示します。手順1、2の値は、XNUMX番目の列で対応する値を見つけることを示します。
ルックアップ値は、フィルターを使用して複数の対応する値を返します
Excelでは、フィルター機能を使用してこの問題を解決することもできます。
1.値を検索する列範囲を選択し、をクリックします 且つ > フィルタ。 スクリーンショットを参照してください:
2.次に、選択した範囲の最初のセルにある矢印ボタンをクリックし、ドロップダウンリストでのみ検索する値を確認します。 スクリーンショットを参照してください:
3。 クリック OK、これで、ルックアップ値とそれに対応する値のみが除外されます。
ルックアップ値は、定義された関数で複数の対応する値を返します
定義関数に興味がある場合は、定義関数の問題も解決できます。
1。 押す Altキー+ F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。
2。 クリック モジュール > インセット 挿入するには モジュール ウィンドウをクリックし、以下のVBAをウィンドウにコピーします。
VBA:ルックアップ値は複数の対応する値を返します。
Function MyVlookup(pWorkRng As Range, pRng As Range, pColumnIndex As Integer, Optional pType As String = "v")
'Updateby20140827
Dim xRow As Single
Dim xCol As Single
Dim arr() As Variant
ReDim arr(0)
For i = 1 To pRng.Rows.Count
If pWorkRng = pRng.Cells(i, 1) Then
arr(UBound(arr)) = pRng.Cells(i, pColumnIndex)
ReDim Preserve arr(UBound(arr) + 1)
End If
Next
If pType = "h" Then
xCol = Range(Application.Caller.Address).Columns.Count
For i = UBound(arr) To xCol
arr(UBound(arr)) = ""
ReDim Preserve arr(UBound(arr) + 1)
Next
ReDim Preserve arr(UBound(arr) - 1)
MyVlookup = arr
Else
xRow = Range(Application.Caller.Address).Rows.Count
For i = UBound(arr) To xRow
arr(UBound(arr)) = ""
ReDim Preserve arr(UBound(arr) + 1)
Next
ReDim Preserve arr(UBound(arr) - 1)
MyVlookup = Application.WorksheetFunction.Transpose(arr)
End If
End Function
3.ウィンドウを閉じて、この数式をセルに入力します = MyVlookup(A10、$ A $ 2:$ B $ 7,2) (A10はルックアップ値を示し、$ A $ 2:$ B $ 7はデータ範囲を示し、2は列インデックス番号を示します)。 そしてを押します Shift + Ctrl + Enter キー。 次に、塗りつぶしハンドルをセルの下にドラッグし、カーソルをセルに置きます。 数式バー、プレス Shift + Ctrl + Enter 再び。
先端:水平セルに値を返したい場合は、次の数式を入力できます = MyVlookup(A10、$ A $ 2:$ B $ 7、2、 "h").
最高のオフィス生産性ツール
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
- 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
