ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Complex Lookup Question - Clarification????? (https://www.excelbanter.com/excel-worksheet-functions/159145-complex-lookup-question-clarification.html)

bevpike

Complex Lookup Question - Clarification?????
 
I understand most of the formula from the response to my original posting
(see orig posting and response below) except for the following:

MATCH(B4,OFFSET(Table2,1,1,,1),TRUE)+1

How does this find the row where the age in Table 1 is between Age_lower and
Age_upper in Table2? What does +1 do?

Thanks, Attila


Original Posting*****************************

I have to do a complex lookup. Here are the excel tables involved:

Table 1

Name Age Status
Jim 25 MNS
Mary 38 FS


Table 2

Band Age_lower Age_upper MS MNS FS FNS
1 0 18 0.25 0.2 0.18 0.14
2 19 29 1.25 1.2 1.18 1.14
3 30 39 2.25 2.2 2.18 2.14
4 40 49 3.25 3.2 3.18 3.14
5 50 59 4.25 4.2 4.18 4.14

Here is what I have to do:

1) Based on the age of the individual in Table 1 I need to determine the
Band in Table 2 - this is determined by looking at their age and finding
which row their age is between Age_lower and Age_upper.

2) Once I found the Band I then look at their Status in Table 1 and then
find select the appropriate value from the Band row in table 2

For example, for Jim in Table 1 he would fall in Band 2 and based on his
status of MNS the value selected would be 1.2 (from row2,col5 in Table 2).
Mary would be band 3 and value of 2.14.

Is this possible with one formula? Please let me know.

Thanks, Attila


Response*******************************


One way:

=INDEX(Table2, MATCH(B2,OFFSET(Table2,1,1,,1),TRUE)+1,
MATCH(C2,OFFSET(Table2,,,1,),FALSE))


This assumes that table 2 is named Table2 (including the header row and
band column), that B2 refers to the Age in Table 1, and C2 is the Status.

Note that it will give a bad result if Age is the maximum Age_Upper.








Teethless mama

Complex Lookup Question - Clarification?????
 
Try this:
This formula probably much easier for you to understand

Table 1 Criteria:
B2: holds Age
C2: holds Status

Create defined name ranges for table 2

=SUMPRODUCT((Age_lower<=B2)*(Age_upper=B2),INDIRE CT(C2))


"bevpike" wrote:

I understand most of the formula from the response to my original posting
(see orig posting and response below) except for the following:

MATCH(B4,OFFSET(Table2,1,1,,1),TRUE)+1

How does this find the row where the age in Table 1 is between Age_lower and
Age_upper in Table2? What does +1 do?

Thanks, Attila


Original Posting*****************************

I have to do a complex lookup. Here are the excel tables involved:

Table 1

Name Age Status
Jim 25 MNS
Mary 38 FS


Table 2

Band Age_lower Age_upper MS MNS FS FNS
1 0 18 0.25 0.2 0.18 0.14
2 19 29 1.25 1.2 1.18 1.14
3 30 39 2.25 2.2 2.18 2.14
4 40 49 3.25 3.2 3.18 3.14
5 50 59 4.25 4.2 4.18 4.14

Here is what I have to do:

1) Based on the age of the individual in Table 1 I need to determine the
Band in Table 2 - this is determined by looking at their age and finding
which row their age is between Age_lower and Age_upper.

2) Once I found the Band I then look at their Status in Table 1 and then
find select the appropriate value from the Band row in table 2

For example, for Jim in Table 1 he would fall in Band 2 and based on his
status of MNS the value selected would be 1.2 (from row2,col5 in Table 2).
Mary would be band 3 and value of 2.14.

Is this possible with one formula? Please let me know.

Thanks, Attila


Response*******************************


One way:

=INDEX(Table2, MATCH(B2,OFFSET(Table2,1,1,,1),TRUE)+1,
MATCH(C2,OFFSET(Table2,,,1,),FALSE))


This assumes that table 2 is named Table2 (including the header row and
band column), that B2 refers to the Age in Table 1, and C2 is the Status.

Note that it will give a bad result if Age is the maximum Age_Upper.








JE McGimpsey

Complex Lookup Question - Clarification?????
 
This uses an approximate match (hence the TRUE) on the rows starting
below the header row in the second column of Table2 (in the OFFSET()
function, the first 1 offsets the rows by 1, and the second 1 offsets
the columns by 1). The last 1 in the OFFSET() limits the Match to 1
column.

The +1 at the end is to account for having offset the lookup column in
the MATCH by one (the header) row when indexing the original table.





In article ,
bevpike wrote:

I understand most of the formula from the response to my original posting
(see orig posting and response below) except for the following:

MATCH(B4,OFFSET(Table2,1,1,,1),TRUE)+1

How does this find the row where the age in Table 1 is between Age_lower and
Age_upper in Table2? What does +1 do?



All times are GMT +1. The time now is 09:00 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com