Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 79
Default Find a second value in a table with VLOOKUP


My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.

I need to find the second person belonging to a team, which will not
be necessarily just below the first person.

Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.

Thank you

  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 15,768
Default Find a second value in a table with VLOOKUP

Does that mean the team code appears twice?

A1:A20 = team codes
B1:B20 = team members

D1 = team code to lookup

First team member:

=VLOOKUP(D1,A1:B20,2,0)

Second team member:

=LOOKUP(2,1/(A1:A20=D1),B1:B20)

Biff

"vsoler" wrote in message
ups.com...

My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.

I need to find the second person belonging to a team, which will not
be necessarily just below the first person.

Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.

Thank you



  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 79
Default Find a second value in a table with VLOOKUP

On 21 mayo, 09:32, "T. Valko" wrote:
Does that mean the team code appears twice?

A1:A20 = team codes
B1:B20 = team members

D1 = team code to lookup

First team member:

=VLOOKUP(D1,A1:B20,2,0)

Second team member:

=LOOKUP(2,1/(A1:A20=D1),B1:B20)

Biff

"vsoler" wrote in message

ups.com...





My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.


I need to find the second person belonging to a team, which will not
be necessarily just below the first person.


Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.


Thank you- Ocultar texto de la cita -


- Mostrar texto de la cita -


T. Valko,

Your formula is great, really excellent, I like it.

However, I have tested it in another worksheet that solves another
problem, and it has a peculiar behaviour.

1. No matter what the first argument of the LOOKUP function is, it
always returns the last appearance of the searched value.

2. If I use 3 instead of 2, it also works in the example given to you,
even though the team is made of only 2 people.

I wish I could understand a little more how your formula works.

Thank you very much indeed.

  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 79
Default Find a second value in a table with VLOOKUP

On 21 mayo, 10:10, vsoler wrote:
On 21 mayo, 09:32, "T. Valko" wrote:





Does that mean the team code appears twice?


A1:A20 = team codes
B1:B20 = team members


D1 = team code to lookup


First team member:


=VLOOKUP(D1,A1:B20,2,0)


Second team member:


=LOOKUP(2,1/(A1:A20=D1),B1:B20)


Biff


"vsoler" wrote in message


oups.com...


My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.


I need to find the second person belonging to a team, which will not
be necessarily just below the first person.


Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.


Thank you- Ocultar texto de la cita -


- Mostrar texto de la cita -


T. Valko,

Your formula is great, really excellent, I like it.

However, I have tested it in another worksheet that solves another
problem, and it has a peculiar behaviour.

1. No matter what the first argument of the LOOKUP function is, it
always returns the last appearance of the searched value.

2. If I use 3 instead of 2, it also works in the example given to you,
even though the team is made of only 2 people.

I wish I could understand a little more how your formula works.

Thank you very much indeed.- Ocultar texto de la cita -

- Mostrar texto de la cita -


Just another comment:

Range A1:A20 may not be sorted. What happens then?

  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 15,768
Default Find a second value in a table with VLOOKUP


"vsoler" wrote in message
oups.com...
On 21 mayo, 10:10, vsoler wrote:
On 21 mayo, 09:32, "T. Valko" wrote:





Does that mean the team code appears twice?


A1:A20 = team codes
B1:B20 = team members


D1 = team code to lookup


First team member:


=VLOOKUP(D1,A1:B20,2,0)


Second team member:


=LOOKUP(2,1/(A1:A20=D1),B1:B20)


Biff


"vsoler" wrote in message


oups.com...


My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.


I need to find the second person belonging to a team, which will not
be necessarily just below the first person.


Is there a way to find this second person. I do not mind using
VLOOKUP
or any other function.


Thank you- Ocultar texto de la cita -


- Mostrar texto de la cita -


T. Valko,

Your formula is great, really excellent, I like it.

However, I have tested it in another worksheet that solves another
problem, and it has a peculiar behaviour.

1. No matter what the first argument of the LOOKUP function is, it
always returns the last appearance of the searched value.

2. If I use 3 instead of 2, it also works in the example given to you,
even though the team is made of only 2 people.

I wish I could understand a little more how your formula works.

Thank you very much indeed.- Ocultar texto de la cita -

- Mostrar texto de la cita -


Just another comment:

Range A1:A20 may not be sorted. What happens then?


Nothing, it doesn't matter. See my detailed explanation in the other branch
of this thread.

Biff




  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 15,768
Default Find a second value in a table with VLOOKUP


"vsoler" wrote in message
ups.com...
On 21 mayo, 09:32, "T. Valko" wrote:
Does that mean the team code appears twice?

A1:A20 = team codes
B1:B20 = team members

D1 = team code to lookup

First team member:

=VLOOKUP(D1,A1:B20,2,0)

Second team member:

=LOOKUP(2,1/(A1:A20=D1),B1:B20)

Biff

"vsoler" wrote in message

ups.com...





My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.


I need to find the second person belonging to a team, which will not
be necessarily just below the first person.


Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.


Thank you- Ocultar texto de la cita -


- Mostrar texto de la cita -


T. Valko,

Your formula is great, really excellent, I like it.

However, I have tested it in another worksheet that solves another
problem, and it has a peculiar behaviour.

1. No matter what the first argument of the LOOKUP function is, it
always returns the last appearance of the searched value.

2. If I use 3 instead of 2, it also works in the example given to you,
even though the team is made of only 2 people.

I wish I could understand a little more how your formula works.

Thank you very much indeed.


=LOOKUP(2,1/(A1:A20=D1),B1:B20)

The first argument doesn't mean to find the 2nd instance of a particular
value. The formula will find the *LAST* instance of the value be it the 2nd
instance or the 20th instance. The fact that you had 2 instances and the
first argument is also a 2 is just a coincidence.

Here's how it works:

LOOKUP takes these arguments:

LOOKUP(lookup_value,lookup_vector,result_vector)

In our formula the lookup_value is 2

The lookup_vector is 1/(A1:A20=D1)

The result_vector is B1:B20

This means we want to find the value 2 in the lookup_vector and return the
corresponding value from the result_vector.

This portion of the lookup_vector:

(A1:A20=D1)

Will return an array of either TRUE or FALSE.

Dividing those logical values by 1:

1/(A1:A20=D1)

Will result in an array of either 1 or a #DIV/0! error

1/(TRUE) = 1
1/(FALSE) = #DIV/0!

The way that LOOKUP works is if the lookup_value is greater than all the
values in the lookup_vector it will match the *last* value in the
lookup_vector that is less than the lookup_value.

That's where the lookup_value of 2 comes into play. Since our lookup_vector
comprises an array of 1s and #DIV errors the *LAST* value that is less than
the lookup_value has to be a 1.

Let's look at a small sample of data to see how this works:

...........A..........B..........C..........D
1........X........Joe......................X
2........Y........Tom
3........Z........Sue
4........X........Bill

You want to extract the members of team X and there are 2 members. We have
the team to lookup in D1, X.

We can use a simple VLOOKUP formula to get the first member of the team,
Joe. Since VLOOKUP only works for a single instance of a lookup value we
then need to use another formula. The LOOKUP formula is the perfect choice.

=LOOKUP(2,1/(A1:A4=D1),B1:B4)

The lookup_vector is:

1/(A1=D1) = 1/(TRUE) = 1
1/(A2=D1) = 1/(FALSE) = #DIV/0!
1/(A3=D1) = 1/(FALSE) = #DIV/0!
1/(A4=F1) = 1/(TRUE) = 1

This is how that would look applied to the range of cells:

......lookup_vector.....result_vector
1.............1.....................Joe
2.............#DIV..............Tom
3.............#DIV..............Sue
4.............1.....................Bill

Since the lookup_value is 2 and 2 is greater than any value in the
lookup_vector the result of the formula is the value from the result_vector
that corresponds to the *LAST* value from the lookup_vector that is less
than the lookup_value. The *LAST* value from the lookup_vector that is less
than the lookup_value is the 1 in A4. So the result of the formula is the
corresponding value from B4 which is Bill.

Hope that's not confusing!

Biff


  #7   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 11,501
Default Find a second value in a table with VLOOKUP

a completely different way:-


=INDEX($A$1:$B20,SMALL(IF($A$1:$B20=$D$1,ROW($A$1: $B20)-ROW($A$1)+1,ROW($B20)+1),2),2)

In this formula the lookup value id in D1. The second to last 2 is the
record to look for, change this to a 1 and it will find the third record etc.
It's an array so enter with ctrl+shift+enter

Mike

My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.

I need to find the second person belonging to a team, which will not
be necessarily just below the first person.

Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.

Thank you


  #8   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 11,501
Default Find a second value in a table with VLOOKUP

oops type change the 2 to a 3 to find the 3rd record

"Mike H" wrote:

a completely different way:-


=INDEX($A$1:$B20,SMALL(IF($A$1:$B20=$D$1,ROW($A$1: $B20)-ROW($A$1)+1,ROW($B20)+1),2),2)

In this formula the lookup value id in D1. The second to last 2 is the
record to look for, change this to a 1 and it will find the third record etc.
It's an array so enter with ctrl+shift+enter

Mike

My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.

I need to find the second person belonging to a team, which will not
be necessarily just below the first person.

Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.

Thank you


  #9   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 79
Default Find a second value in a table with VLOOKUP

On 21 mayo, 11:19, Mike H wrote:
oops type change the 2 to a 3 to find the 3rd record



"Mike H" wrote:
a completely different way:-


=INDEX($A$1:$B20,SMALL(IF($A$1:$B20=$D$1,ROW($A$1: $B20)-ROW($A$1)+1,ROW($B2*0)+1),2),2)


In this formula the lookup value id in D1. The second to last 2 is the
record to look for, change this to a 1 and it will find the third record etc.
It's an array so enter with ctrl+shift+enter


Mike


My table (range) contains, among other information, the code for a
team and the name of the person. Each team is made of 2 people.


I need to find the second person belonging to a team, which will not
be necessarily just below the first person.


Is there a way to find this second person. I do not mind using VLOOKUP
or any other function.


Thank you- Ocultar texto de la cita -


- Mostrar texto de la cita -


Mike,

Really great, it works fine.

Thanks a lot.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need help in formula - IF + Find + Vlookup Dileep Chandran Excel Worksheet Functions 5 November 2nd 06 05:59 AM
Use Vlookup to find less than today Bruce Excel Worksheet Functions 3 April 26th 06 10:05 PM
Vlookup & Find Caroline Excel Worksheet Functions 2 April 7th 06 03:13 PM
Vlookup to find Second INstance [email protected] Excel Worksheet Functions 1 September 16th 05 03:33 AM
Vlookup info being used without vlookup table attached? Excel Worksheet Functions 0 January 25th 05 10:43 AM


All times are GMT +1. The time now is 05:30 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"