Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 1
Default looking up multiple values in an arrray

I need some hel.

I have three columns of data in a worksheet. Column A contains the names of
people. Each person's name may appear multiple times in column A depending
on how many roles (responsibilities) that person has. The roles are listed
in column C. Example: Column A may list "Mary" five times if she has five
different Roles listed in Column C. I've added an index in Column B relating
to the role in Column C. Column B contains the text entries "Role_1" through
"Role_32" as needed for each person. If a person has only one role, then
Column B will contain only one entry for that person and the entry would be
"Role_1." But, for "Mary", Column B contains five entries, "Role_1" through
"Role_5", corresponding to the descriptions of Mary's roles in Column C.

Now, I'm trying to set up a separate worksheet in which each person appears
once as a column header and the role names, ranging from Role_1 to Role_32,
are the row headers. In the cells, I want to display the text values from
column C of the first worksheet.

I've worked with vlookup and hlookup. This seems like kind of a nested
lookup function. I have not worked with array functions. Can you help me?

  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 15,768
Default looking up multiple values in an arrray

If you have 100's of unique names this won't be very efficient....

Names on Sheet1 in the range A2:A20 assigned the named range: Name
Roles on Sheet1 in the range C2:C20 assigned the named range: Role

Sheet2 B1:?1 = names
Sheet2 A2:A? = roles

Enter this array formula** in Sheet2 B2:

=IF(ROWS(B$2:B2)<=COUNTIF(Name,B$1),INDEX(Role,SMA LL(IF(Name=B$1,ROW(Role)),ROWS(B$2:B2))-MIN(ROW(Role))+1),"")

Copy across as needed then down as needed.

** array formulas need to be entered using the key combination of
CTRL,SHIFT,ENTER (not just ENTER)

--
Biff
Microsoft Excel MVP


"idaho_bruce" wrote in message
...
I need some hel.

I have three columns of data in a worksheet. Column A contains the names
of
people. Each person's name may appear multiple times in column A
depending
on how many roles (responsibilities) that person has. The roles are
listed
in column C. Example: Column A may list "Mary" five times if she has five
different Roles listed in Column C. I've added an index in Column B
relating
to the role in Column C. Column B contains the text entries "Role_1"
through
"Role_32" as needed for each person. If a person has only one role, then
Column B will contain only one entry for that person and the entry would
be
"Role_1." But, for "Mary", Column B contains five entries, "Role_1"
through
"Role_5", corresponding to the descriptions of Mary's roles in Column C.

Now, I'm trying to set up a separate worksheet in which each person
appears
once as a column header and the role names, ranging from Role_1 to
Role_32,
are the row headers. In the cells, I want to display the text values from
column C of the first worksheet.

I've worked with vlookup and hlookup. This seems like kind of a nested
lookup function. I have not worked with array functions. Can you help
me?



  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 1
Default looking up multiple values in an arrray

Thank you! This hit the nail on the head. Now, I'll have to go study what
you did.
Thanks, again!!!

"T. Valko" wrote:

If you have 100's of unique names this won't be very efficient....

Names on Sheet1 in the range A2:A20 assigned the named range: Name
Roles on Sheet1 in the range C2:C20 assigned the named range: Role

Sheet2 B1:?1 = names
Sheet2 A2:A? = roles

Enter this array formula** in Sheet2 B2:

=IF(ROWS(B$2:B2)<=COUNTIF(Name,B$1),INDEX(Role,SMA LL(IF(Name=B$1,ROW(Role)),ROWS(B$2:B2))-MIN(ROW(Role))+1),"")

Copy across as needed then down as needed.

** array formulas need to be entered using the key combination of
CTRL,SHIFT,ENTER (not just ENTER)

--
Biff
Microsoft Excel MVP


"idaho_bruce" wrote in message
...
I need some hel.

I have three columns of data in a worksheet. Column A contains the names
of
people. Each person's name may appear multiple times in column A
depending
on how many roles (responsibilities) that person has. The roles are
listed
in column C. Example: Column A may list "Mary" five times if she has five
different Roles listed in Column C. I've added an index in Column B
relating
to the role in Column C. Column B contains the text entries "Role_1"
through
"Role_32" as needed for each person. If a person has only one role, then
Column B will contain only one entry for that person and the entry would
be
"Role_1." But, for "Mary", Column B contains five entries, "Role_1"
through
"Role_5", corresponding to the descriptions of Mary's roles in Column C.

Now, I'm trying to set up a separate worksheet in which each person
appears
once as a column header and the role names, ranging from Role_1 to
Role_32,
are the row headers. In the cells, I want to display the text values from
column C of the first worksheet.

I've worked with vlookup and hlookup. This seems like kind of a nested
lookup function. I have not worked with array functions. Can you help
me?




  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 15,768
Default looking up multiple values in an arrray

You're welcome. Thanks for the feedback!

--
Biff
Microsoft Excel MVP


"idaho_bruce" wrote in message
...
Thank you! This hit the nail on the head. Now, I'll have to go study
what
you did.
Thanks, again!!!

"T. Valko" wrote:

If you have 100's of unique names this won't be very efficient....

Names on Sheet1 in the range A2:A20 assigned the named range: Name
Roles on Sheet1 in the range C2:C20 assigned the named range: Role

Sheet2 B1:?1 = names
Sheet2 A2:A? = roles

Enter this array formula** in Sheet2 B2:

=IF(ROWS(B$2:B2)<=COUNTIF(Name,B$1),INDEX(Role,SMA LL(IF(Name=B$1,ROW(Role)),ROWS(B$2:B2))-MIN(ROW(Role))+1),"")

Copy across as needed then down as needed.

** array formulas need to be entered using the key combination of
CTRL,SHIFT,ENTER (not just ENTER)

--
Biff
Microsoft Excel MVP


"idaho_bruce" wrote in message
...
I need some hel.

I have three columns of data in a worksheet. Column A contains the
names
of
people. Each person's name may appear multiple times in column A
depending
on how many roles (responsibilities) that person has. The roles are
listed
in column C. Example: Column A may list "Mary" five times if she has
five
different Roles listed in Column C. I've added an index in Column B
relating
to the role in Column C. Column B contains the text entries "Role_1"
through
"Role_32" as needed for each person. If a person has only one role,
then
Column B will contain only one entry for that person and the entry
would
be
"Role_1." But, for "Mary", Column B contains five entries, "Role_1"
through
"Role_5", corresponding to the descriptions of Mary's roles in Column
C.

Now, I'm trying to set up a separate worksheet in which each person
appears
once as a column header and the role names, ranging from Role_1 to
Role_32,
are the row headers. In the cells, I want to display the text values
from
column C of the first worksheet.

I've worked with vlookup and hlookup. This seems like kind of a nested
lookup function. I have not worked with array functions. Can you help
me?






  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 1,231
Default looking up multiple values in an arrray

"T. Valko" wrote...
If you have 100's of unique names this won't be very efficient....


But if the original table were sorted first by col A (name) then by
col B (role index), the summary table could be built much more
efficiently.

Names on Sheet1 in the range A2:A20 assigned the named range: Name
Roles on Sheet1 in the range C2:C20 assigned the named range: Role

Sheet2 B1:?1 = names
Sheet2 A2:A? = roles

....

If the names in row 1 of Sheet2 were in the same order as the sorted
names in the table in Sheet1 and roles in col A of Sheet2 were in the
same order as roles in table in Sheet1, you could use

B2:
=IF(ROWS(B$2:B2)<=COUNTIF(Name,B$1),
INDEX(Role,MATCH(B$1,Name)+ROWS(B$2:B2)-1),"")

Fill B2 right as far as needed so there's a formula under each name in
row 1, say to Z2, then select B2:Z2 and fill down as far as needed so
there are formulas in these columns to the right of every role index
in col A.

Sorting is good. Makes other things easy and efficient.


  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 15,768
Default looking up multiple values in an arrray

But if the original table were sorted first by col A (name)
then by col B (role index), the summary table could be
built much more efficiently.


Yep, that would make things much easier.

--
Biff
Microsoft Excel MVP


"Harlan Grove" wrote in message
...
"T. Valko" wrote...
If you have 100's of unique names this won't be very efficient....


But if the original table were sorted first by col A (name) then by
col B (role index), the summary table could be built much more
efficiently.

Names on Sheet1 in the range A2:A20 assigned the named range: Name
Roles on Sheet1 in the range C2:C20 assigned the named range: Role

Sheet2 B1:?1 = names
Sheet2 A2:A? = roles

...

If the names in row 1 of Sheet2 were in the same order as the sorted
names in the table in Sheet1 and roles in col A of Sheet2 were in the
same order as roles in table in Sheet1, you could use

B2:
=IF(ROWS(B$2:B2)<=COUNTIF(Name,B$1),
INDEX(Role,MATCH(B$1,Name)+ROWS(B$2:B2)-1),"")

Fill B2 right as far as needed so there's a formula under each name in
row 1, say to Z2, then select B2:Z2 and fill down as far as needed so
there are formulas in these columns to the right of every role index
in col A.

Sorting is good. Makes other things easy and efficient.



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
find values in multiple cells and paste row values izzyt1972 Excel Discussion (Misc queries) 5 December 26th 07 10:14 PM
{SUM(IF((ARRRAY FORMULA)} bookman3 Excel Worksheet Functions 8 October 18th 07 04:43 AM
Adding multiple values in one column based on multiple values of the same value (text) in another column [email protected] Excel Discussion (Misc queries) 1 May 16th 07 06:02 PM
Adding numerical values based on multiple values in another column Kazmaniac Excel Worksheet Functions 6 April 4th 07 08:53 PM
Set a 2D arrray data into a range, given the top-left cell Tom Chau Excel Discussion (Misc queries) 2 June 29th 06 06:53 AM


All times are GMT +1. The time now is 04:03 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"