How to lookup value return multiple corresponding values in Excel?
This tutorial is talking about looking up a value return multiple corresponding values in Excel as shown as below screenshots:
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
Here is a long array formula can give a hand in looking up a value and return multiple corresponding values.
1. Enter the value you want to look up in a blank cell. See screenshot:
2. In the adjacent cell, type this formula =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)) into it, and press Shift + Ctrl + Enter keys together, then drag the Auto Fill to fill down the cells until the first blank cell comes out. See screenshot:
Note: In the above formula, $A$1:$B$7 indicates the range data, $A$1:$A$7 stands for the column range which your lookup the certain value in, $D$4 indicates the cell you type look-up value in step 1, 2 indicates finding the corresponding values in second column.
In Excel, you also can use Filter feature to solve this problem.
1. Select the column range you want to look up value, and click Data > Filter. See screenshot:
2. Then click the arrow button in the first cell of you selected range, and check the value you want to look up only in the drop-down list. See screenshot:
3. Click OK, now you see only the look-up value and its corresponding values are filtered out.
If you are interested in Defined Function, you can solve the problem with Defined Function, too.
1. Press Alt + F11 keys to open the Microsoft Visual Basic For Applications window.
2. Click Module > Insert to insert a Module window, and copy the below VBA into the window.
VBA: Lookup value return multiple corresponding values.
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. Close the window, and type this formula into a cell =MyVlookup(A10,$A$2:$B$7,2) ( A10 indicates lookup value, $A$2:$B$7 indicates the data range, 2 indicates the column index number). And press Shift + Ctrl + Enter keys. Then drag the fill handle down the cells, put the cursor into the Formula Bar, and press Shift + Ctrl + Enter again.
Tip: If you want to return the values in horizontal cells, you can type this formula =MyVlookup(A10, $A$2:$B$7, 2, "h").