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:
Recommended Productivity Tools for Excel
Office Tab: Bring powerful tabs to Office (include Excel), just like Chrome, Safari, Firefox and Internet Explorer. Save you half the time, and reduce thousands of mouse clicks for you. 30-day Unlimited Free Trial
Kutools for Excel: Save 71% of your time and solve 82% Excel problems for you. 300+ advanced tools designed for 1500+ work scenario, make Excel much easy and increase productivity immediately.60-day Unlimited Free Trial
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").