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:
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").
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!