Professional Documents
Culture Documents
Case Sensitive Vlookup in Excel Finding The 1st, 2nd, NTH or Last Occurrence of The Lookup Value
Case Sensitive Vlookup in Excel Finding The 1st, 2nd, NTH or Last Occurrence of The Lookup Value
(/excel/)
Search ...
*
E x c e l & V B A
Excel Tips (/excel/index.php?
option=com_content&view=category&id=77&Itemid=473)
Excel Functions (/excel/index.php?
option=com_content&view=category&id=78&Itemid=474)
Excel VBA (/excel/index.php?
option=com_content&view=category&id=79&Itemid=475)
Excel Pivot Tables (/excel/index.php?
option=com_content&view=category&id=81&Itemid=486)
*
V B A T u to ria l L o g in
Free! Excel VBA Online Tutorial
"
Excel Tips (/excel/index.php?option=com_content&view=category&id=77&Itemid=473)
Username
# Password
Excel Tips
Log in
Create an account (/excel/index.php?option=com_users&view=registration&Itemid=)
Case Sensitive Vlookup in Excel; Finding the 1st, 2nd, nth or last
Forgot your password? (/excel/index.php?option=com_users&view=reset&Itemid=)
occurrence of the Lookup Value
8
Vote 5 Rate
Case Sensitive Vlookup in Excel; Finding the 1st, 2nd, nth or last occurrence of the Lookup Value
Related Links:
1. Excel VLOOKP Function, with examples. (index.php?option=com_content&view=article&id=100:vlookupfunctionin
excel&catid=78&Itemid=474)
2. Left Lookup with VLookup Excel function. (index.php?option=com_content&view=article&id=79:leftlookupwith
vlookup&catid=77&Itemid=473)
3. Left Lookup, with Index, Match & Offset Excel functions. (index.php?option=com_content&view=article&id=81:leftlookupin
excel&catid=77&Itemid=473)
4. Vlookup Multiple Values Return MULTIPLE corresponding values for ONE Lookup Value. (index.php?
option=com_content&view=article&id=119:vlookupmultiplevaluesreturnmultiplecorrespondingvaluesforonelookup
value&catid=77&Itemid=473)
Case Sensitive Vlookup
VLOOKUP function searches for a value (lookup value) in the first column of a table array and returns the corresponding value in
the same row from another column in the table array. The lookup value which the function searches, is not casesensitive. There
are several methods to make the lookup value casesensitive, as shown below. Many of them use the excel EXACT function.
EXACT function Syntax: EXACT(text1,text2). Text1 is the first text string. Text2 is the second text string. EXACT compares
two text strings and returns TRUE if they are exactly the same, FALSE otherwise. It is casesensitive.
Case Sensitive Vlookup when Lookup Value of only ONE CASE is present
Example 1:
Table 1a
=IF(EXACT(D2,VLOOKUP(D2,$A$2:$B$10,1,FALSE))=TRUE,VLOOKUP(D2,$A$2:$B$10,2,FALSE), "Not Found") [Formula]
Returns 56, refer Table 1a. Formula searches for lookup value "JACK" in column A, checks whether the value found matches in
CASE, and if it does then returns the corresponding value from column B.
This formula might not work if lookup value in different cases is present. If the list contains "JACK" and "jack" it would find the
first one and only test that.
Table 1b
=IF(EXACT(D3,VLOOKUP(D3,$A$2:$B$10,1,FALSE))=TRUE,VLOOKUP(D3,$A$2:$B$10,2,FALSE), "Not Found") [Formula]
Returns "Not Found", refer Table 1b. Formula searches for lookup value "jack" in column A and matches case, but finds the first
value "JACK" whose case does not match, hence it returns "Not Found".
Case Sensitive Vlookup Find the 1st, 2nd, 3rd or nth OCCURRENCE of a Value
Example 2:
Table 2
=INDEX($B$2:$B$10,SMALL(IF(EXACT(D2,$A$2:$A$10),ROW($A$2:$A$10)ROW($A$2)+1),1)) [Formula]
Enter as an array formula (CTRL+SHIFT+ENTER). Returns the value 59, refer Table 2. The formula does a case sensitive search
for the lookup value ("jack" in cell D2) in column A and returns the corresponding value in column B, in the table array "A2:B10".
It returns the corresponding value related to the first occurrence of the lookup value. It effectively does a case sensitive Vlookup
of: =VLOOKUP(D2,A2:B10,2,FALSE).
Step 1: Determine Row Number of the First Record
Formula Part =ROW($A$2)+1 indicates the number (in ive) of rows above the first record, wherein =ROW($A$2) is the row
number of the first record in the table array. This returns the value: 2 +1 = 1. NOTE: If the table array is ("A3:B11"), then change
this formula to =ROW($A$3)+1.
Step 2: Determine Row Number of Lookup Value
Formula Part =IF(EXACT(D2,$A$2:$A$10),ROW($A$2:$A$10)) matches "jack" (case sensitive) in column A and evaluates to:
{FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,9,FALSE}, wherein the number 9 indicates the worksheet row number
containing "jack". Formula Part =IF(EXACT(D2,$A$2:$A$10),ROW($A$2:$A$10)ROW($A$2)+1) evaluates to:
{FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,8,FALSE}, wherein 8 indicates the relative row number in the table array
containing "jack".
Step 3: Determine Position of smallest Row Number containing Lookup Value
Formula Part =SMALL(IF(EXACT(D2,$A$2:$A$10),ROW($A$2:$A$10)ROW($A$2)+1),1) returns the smallest position
(indicated by the last number in the formula, which is 1) of the relative row numbers in the table array which contain the lookup
value of "jack". Computing the smallest position effectively means the first occurrence of the Lookup Value. In this example, it is
position 8 (ie. relative row number in the table array).
Step 4: Using INDEX Function to determine Corresponding Value of the Lookup Value
The INDEX function, INDEX(array,row_num,column_num), accounts for the array as "$B$2:$B$8", and row_num in the table array
as 8, and returns the intersection (column B, row number 8) value of 59.
To return the corresponding value related to the 2nd, 3rd or nth occurrence of the lookup value:
We have explained above in Step 3, that the first occurrence of the lookup value is returned by determining the smallest position
which is indicated by 1 (ie. the last number) in the formula. By changing the last number in the above formula from 1 to say 2, you
can get the second occurrence of the lookup value (in case there are multiple values "jack" in column A):
=INDEX($B$2:$B$10,SMALL(IF(EXACT(D2,$A$2:$A$10),ROW($A$2:$A$10)ROW($A$2)+1),2)). Changing the last number to 3
will give the third occurrence of the lookup value. You can in this manner toggle this last number to return the nth occurrence of
the lookup value.
Vlookup (NonCase Sensitive) Find the 1st, 2nd, 3rd or nth OCCURRENCE of a Value
In case there are multiple occurrences of the lookup value in different cases viz. JACK, Jack & jack, and you do not want
Vlookup to be case sensitive while finding the nth occurrence of the lookup value, refer Example 3 below.
Example 3:
Table 3
=INDEX($B$2:$B$10,SMALL(IF($D$2=$A$2:$A$10,ROW($A$2:$A$10)ROW($A$2)+1),2)) [Formula]
Enter as an array formula (CTRL+SHIFT+ENTER). Returns the value 32, refer Table 3. The formula does a NONcase sensitive
search for the lookup value ("JaCK" in cell D2) in column A and returns the corresponding value in column B, in the table array
"A2:B10". It returns the corresponding value related to the second occurrence of the lookup value.
By changing the last number in the above formula from 2 to say 1, you can get the first occurrence of the lookup value:
=INDEX($B$2:$B$10,SMALL(IF($D$2=$A$2:$A$10,ROW($A$2:$A$10)ROW($A$2)+1),1)). Changing the last number to 3 will
give the third occurrence of the lookup value. You can in this manner toggle this last number to return the nth occurrence of the
lookup value.
Formula explanation is similar to Example 2.
Case Sensitive Vlookup Find the FIRST OCCURRENCE of a Value
Note: The normal Vlookup excel formula searches the first occurrence of the Lookup Value.
Example 4:
Table 4
=INDEX($B$2:$B$10,MATCH(TRUE,INDEX(EXACT($D$2,$A$2:$A$10),0),0)) [Formula]
Returns the value 59, refer Table 4. The formula does a case sensitive search for the lookup value ("jack" in cell D2) in column A
and returns the corresponding value in column B, in the table array "A2:B10". It effectively does a case sensitive Vlookup of:
=VLOOKUP(D2,A2:B10,2,FALSE).
INDEX function Syntax: INDEX(array,row_num,column_num). It returns the value of an element in a table or an array selected
by the row and column number indexes. If both the row_num and column_num arguments are used, INDEX returns the value in
the cell at the intersection of row_num and column_num. If you set row_num or column_num to 0 (zero), INDEX returns the array
of values for the entire column or row, respectively.
Formula Part =EXACT($D$2,$A$2:$A$10) evaluates to:
{FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE}. Combined with INDEX furnction (with row_num set to 0 as
explained above), it returns the array.
Formula Part =MATCH(TRUE,INDEX(EXACT($D$2,$A$2:$A$10),0),0) returns the value 8, which is the relative position of
"jack" in the above array. MATCH function looks up the value "TRUE" in the above array and returns its relative position of 8.
MATCH function Syntax: MATCH(lookup_value,lookup_array,match_type). If match_type is 0, MATCH finds the first value
that is exactly equal to lookup_value. Lookup_array can be in any order.
The INDEX function, INDEX(array,row_num,column_num), accounts for the array as "$B$2:$B$8", and row_num in the table
array as 8, and returns the intersection (column B, row number 8) value of 59.
Example 5:
Table 5
=INDEX($B$2:$B$10,MATCH(TRUE,EXACT($D$2,$A$2:$A$10),0)) [Formula]
Enter as an array formula (CTRL+SHIFT+ENTER). Returns the value 59, refer Table 5. The formula does a case sensitive search
for the lookup value ("jack" in cell D2) in column A and returns the corresponding value in column B, in the table array "A2:B10".
It effectively does a case sensitive Vlookup of: =VLOOKUP(D2,A2:B10,2,FALSE).
This formula is similar to the above except that it does not combine the INDEX function with EXACT, and therefore is entered as
an array formula to return an array. This formula includes the EXACT function: EXACT($D$2,$A$2:$A$10); whereas the previous
formula had combined INDEX & EXACT: INDEX(EXACT($D$2,$A$2:$A$10),0).
Case Sensitive Vlookup Find the LAST OCCURRENCE of a Value
Example 6:
Table 6
=LOOKUP(9.99999999999999E+307,FIND($D$2,$A$2:$A$10),$B$2:$B$10) [Formula]
Returns the value 59, refer Table 6. The formula does a case sensitive search for the lookup value ("jack" in cell D2) in column A,
starting from the bottom of the range "A2:A10", and returns the first corresponding value in column B, in the table array "A2:B10".
It effectively does a case sensitive Vlookup of: =VLOOKUP(D2,A2:B10,2,FALSE), but returns the LAST OCCURRENCE of the
lookup value in cell D2.
FIND function Syntax: FIND(find_text,within_text,start_num). Find_text is the text you want to find. Within_text is the text
containing the text you want to find. Start_num specifies the character at which to start the search. The first character in
within_text is character number 1. If you omit start_num, it is assumed to be 1. FIND is case sensitive.
Formula Part =FIND($D$2,$A$2:$A$10) evaluates to:
{#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,1,#VALUE!}, because the 8th row (cell A9) in the array
A2:A10 contains "jack". It may be noted that each occurrence of the lookup value "jack" will return 1 in this array.
LOOKUP function Syntax: LOOKUP(lookup_value,lookup_vector,result_vector). A vector is a range of only one row or one
column. The vector form of LOOKUP looks in a onerow or onecolumn range (known as a vector) for a value and returns a value
from the same position in a second onerow or onecolumn range.
9.99999999999999E+307 is the Largest +ive number in Excel. If the Look_Up value is greater than the largest value in the
Look_Up Array, it will return the last number in the array, even if the Look_Up Array is not sorted in ascending order, which is
required for the LOOKUP formula. LOOKUP seemingly starts from the bottom of the LookUp Array and searches vertically up,
presuming the range is in ascending order and the last number being the largest in the LookUp Array. Hence
9.99999999999999E+307 has been arbitrarily chosen as the LookUp value, which you know will be greater than the value you are
looking for. If the range has no numeric value, the LOOKUP formula will return the #N/A error.
The LOOKUP formula in this example looks for the last numerical value in the array
{#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,1,#VALUE!}, presuming the range is in ascending order and
the last number being the largest (as explained above), and then returns the corresponding value from the result_vector "B2:B8",
which is 59. If this array has multiple occurrences of the number 1 (ie. if "jack" has multiple occuurences in the range "A2:A10"),
the LOOKUP formula will still look for the last numerical value in the array and return its corresponding value from "B2:B10".
NOTE: If cell D2 (Lookup Value) is blank, the formula will return the value in the last cell of range "B2:B10", which is 69. To avoid
this, you can modify the formula to:
=IF($D$2="" ,"Not Found" ,LOOKUP(9.99999999999999E+307,FIND($D$2,$A$2:$A$10),$B$2:$B$10)).
Case Sensitive Vlookup Find the Largest or Smallest Corresponding Value
Example 7:
Table 7
=MAX(IF(EXACT(A$2:A$10,$D$2),B$2:B$10)) [Formula]
Enter as an array formula (CTRL+SHIFT+ENTER). Returns the value 59, refer Table 7. The formula does a case sensitive search
for the lookup value ("jack" in cell D2) in column A and returns the Largest corresponding value in column B, in the table array
"A2:B10". In case of multiple occurrences of "jack" in column A, this formula returns the Largest corresponding value from
column B, irrespective of the position of occurrence of "jack".
Example 8:
Table 8
=MIN(IF(EXACT($A$2:$A$10,$D$2),$B$2:$B$10)) [Formula]
Enter as an array formula (CTRL+SHIFT+ENTER). Returns the value 32, refer Table 8. The formula does a case sensitive search
for the lookup value ("jack" in cell D2) in column A and returns the Smallest corresponding value in column B, in the table array
"A2:B10". In case of multiple occurrences of "jack" in column A, this formula returns the Smallest corresponding value from
column B, irrespective of the position of occurrence of "jack".
Alternate formula to return the Smallest corresponding value:
=SMALL(IF(EXACT(A$2:A$10,$D$2),B$2:B$10),1) [Formula]
Enter as an array formula (CTRL+SHIFT+ENTER). Returns the value 32.
In case corresponding values are not numericals, you will get a #NUM! error. You can modify the formula as below:
=IF(ISNUMBER(SMALL(IF(EXACT(A$2:A$10,$D$2),B$2:B$10),1)),SMALL(IF(EXACT(A$2:A$10,$D$2),B$2:B$10),1), "Not
Numerical") [Formula]
Enter as an array formula (CTRL+SHIFT+ENTER).
Case Sensitive Vlookup Find the FIRST OCCURRENCE of a Value, using VLOOKUP & CODE
functions
Example 9:
Consider a table array "A2:B10", with names in column A and marks in column B. Lookup name is "jack" in cell D2, for which a
case sensitive lookup is to be done.
Step 1: Create a helper column after column A, so that the helper column will become column B and the marks column will
become column C. The lookup value cell will become E2 (from D2).
Table 9a
Step 2: Enter numeric codes (using excel CODE function) in column B, for each character in the name text mentioned in column
A. Refer Table 9a.
Table 9b
Step 3: Enter numeric codes (using excel CODE function) in cell F2, for each character in the lookup name text mentioned in cell
E2. Refer Table 9b.
Table 9c
Step 4: Enter the simple Vlookup formula in cell F3: =VLOOKUP(F2,B2:C10,2,FALSE). Refer Table 9c.
Prev (/excel/index.php?option=com_content&view=article&id=119:vlookupmultiplevaluesreturnmultiplecorresponding
valuesforonelookupvalue&catid=77&Itemid=473)
Home (/excel/index.php?option=com_content&view=article&id=182&Itemid=435)
Excel Tips (/excel/index.php?option=com_content&view=category&id=77&Itemid=473)
Contact (/excel/index.php?option=com_contact&view=contact&id=10&Itemid=493)
About Us (/excel/index.php?option=com_content&view=article&id=183&Itemid=491)
Testimonials (/excel/index.php?option=com_content&view=article&id=184&Itemid=492)
Website Use Policy (/excel/index.php?option=com_content&view=article&id=359&Itemid=609)
© 2016 Globaliconnect.com (http://www.globaliconnect.com/excel_new/) All Right Reserved. Back to Top