A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Excel » Worksheet Functions
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Multiple table lookup



 
 
Thread Tools Display Modes
  #1  
Old April 4th, 2010, 07:22 PM posted to microsoft.public.excel.worksheet.functions
tornado1981
external usenet poster
 
Posts: 1
Default Multiple table lookup


A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say 301) in the
cell G2, then in cells O3:O15 appear the dates corresponding to the
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates corresponding
to the codes 307,308,309,310,311 & 312 ( taking into account that "301"
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem, but the
last problem is that the date corresponding to "302+301" was not
included coz it's not exactly what I entered in G2.. So could u please
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1
=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)
{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE
CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981
  #2  
Old April 5th, 2010, 02:40 AM posted to microsoft.public.excel.worksheet.functions
T. Valko
external usenet poster
 
Posts: 15,759
Default Multiple table lookup

On the surface this would seem like a fairly straightforward lookup/data
extraction but in reality it's a bit complex! What makes it complex are the
cells where there are multiple codes:

302+301
302+305
307+312


CodeListA refers to B$2:B$7
CodeListB refers to B$10:B$15

Create this additional name:

LookupCodes
Refers to:

=TRANSPOSE(INDIRECT(Sheet1!$N$2))

Use the appropriate sheet name.

G2 = some code like 301

Enter this formula in N2. This will return the name of the range that the
code number in G2 is located in.

=IF(COUNTIF(CodeListA,G2),"CodeListA",IF(COUNTIF(C odeListB,G2),"CodeListB",""))

Enter this array formula** in O2. This will return the count of records that
meet the criteria.

=IF(N2="","",SUM(--(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E2:E18))),ROW(INDIREC T(N2))^0)0)))

Enter this array formula** in N3. This will extract the dates that meet the
criteria.

=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",INDEX(D,SMAL L(IF(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E$2:E$18))),ROW(INDIR ECT(N$2))^0)0,ROW(E$2:E$18)),ROWS(N$3:N3)))))

Format as Date. Copy down until you get blanks.

** array formulas need to be entered using the key combination of
CTRL,SHIFT,ENTER (not just ENTER). Hold down both the CTRL key and the SHIFT
key then hit ENTER.

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...

A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say 301) in the
cell G2, then in cells O3:O15 appear the dates corresponding to the
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates corresponding
to the codes 307,308,309,310,311 & 312 ( taking into account that "301"
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem, but the
last problem is that the date corresponding to "302+301" was not
included coz it's not exactly what I entered in G2.. So could u please
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1
=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)
{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE
CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981



  #3  
Old April 5th, 2010, 02:51 AM posted to microsoft.public.excel.worksheet.functions
T. Valko
external usenet poster
 
Posts: 15,759
Default Multiple table lookup

Tweak...

=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",...


Make N2 row absolute.

=IF(N$2="","",IF(ROWS(N$3:N3)O$2,"",...

--
Biff
Microsoft Excel MVP


"T. Valko" wrote in message
...
On the surface this would seem like a fairly straightforward lookup/data
extraction but in reality it's a bit complex! What makes it complex are
the cells where there are multiple codes:

302+301
302+305
307+312


CodeListA refers to B$2:B$7
CodeListB refers to B$10:B$15

Create this additional name:

LookupCodes
Refers to:

=TRANSPOSE(INDIRECT(Sheet1!$N$2))

Use the appropriate sheet name.

G2 = some code like 301

Enter this formula in N2. This will return the name of the range that the
code number in G2 is located in.

=IF(COUNTIF(CodeListA,G2),"CodeListA",IF(COUNTIF(C odeListB,G2),"CodeListB",""))

Enter this array formula** in O2. This will return the count of records
that meet the criteria.

=IF(N2="","",SUM(--(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E2:E18))),ROW(INDIREC T(N2))^0)0)))

Enter this array formula** in N3. This will extract the dates that meet
the criteria.

=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",INDEX(D,SMAL L(IF(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E$2:E$18))),ROW(INDIR ECT(N$2))^0)0,ROW(E$2:E$18)),ROWS(N$3:N3)))))

Format as Date. Copy down until you get blanks.

** array formulas need to be entered using the key combination of
CTRL,SHIFT,ENTER (not just ENTER). Hold down both the CTRL key and the
SHIFT key then hit ENTER.

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...

A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say 301) in the
cell G2, then in cells O3:O15 appear the dates corresponding to the
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates corresponding
to the codes 307,308,309,310,311 & 312 ( taking into account that "301"
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem, but the
last problem is that the date corresponding to "302+301" was not
included coz it's not exactly what I entered in G2.. So could u please
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1
=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)
{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE
CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981





  #4  
Old April 5th, 2010, 01:07 PM posted to microsoft.public.excel.worksheet.functions
tornado1981[_2_]
external usenet poster
 
Posts: 1
Default Multiple table lookup


T. Valko;942822 Wrote:
Tweak...
-
=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",...-


Make N2 row absolute.

=IF(N$2="","",IF(ROWS(N$3:N3)O$2,"",...

--
Biff
Microsoft Excel MVP


"T. Valko" wrote in message
...-
On the surface this would seem like a fairly straightforward

lookup/data
extraction but in reality it's a bit complex! What makes it complex

are
the cells where there are multiple codes:
-
302+301
302+305
307+312-


CodeListA refers to B$2:B$7
CodeListB refers to B$10:B$15

Create this additional name:

LookupCodes
Refers to:

=TRANSPOSE(INDIRECT(Sheet1!$N$2))

Use the appropriate sheet name.

G2 = some code like 301

Enter this formula in N2. This will return the name of the range that

the
code number in G2 is located in.


=IF(COUNTIF(CodeListA,G2),"CodeListA",IF(COUNTIF(C odeListB,G2),"CodeListB",""))

Enter this array formula** in O2. This will return the count of

records
that meet the criteria.


=IF(N2="","",SUM(--(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E2:E18))),ROW(INDIREC T(N2))^0)0)))

Enter this array formula** in N3. This will extract the dates that

meet
the criteria.


=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",INDEX(D,SMAL L(IF(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E$2:E$18))),ROW(INDIR ECT(N$2))^0)0,ROW(E$2:E$18)),ROWS(N$3:N3)))))

Format as Date. Copy down until you get blanks.

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

the
SHIFT key then hit ENTER.

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message


...-

A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say 301) in

the
cell G2, then in cells O3:O15 appear the dates corresponding to the
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates

corresponding
to the codes 307,308,309,310,311 & 312 ( taking into account that

"301"
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem, but

the
last problem is that the date corresponding to "302+301" was not
included coz it's not exactly what I entered in G2.. So could u

please
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1

=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)

{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE
CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981-


-


Thanks so much valko for ur help .. but would u please attach an excel
sheet for explanation ?
i got some errors when i apply ur codes
Thank u




--
tornado1981
  #5  
Old April 5th, 2010, 05:52 PM posted to microsoft.public.excel.worksheet.functions
tornado1981[_3_]
external usenet poster
 
Posts: 1
Default Multiple table lookup


Hi valko,
Finally i did it
thanks so much for ur help
that was awesome
but i got another problem
what if i want to search in two columns and not just one ( column E &
F) ?
is that possible ?




--
tornado1981
  #6  
Old April 5th, 2010, 07:40 PM posted to microsoft.public.excel.worksheet.functions
T. Valko
external usenet poster
 
Posts: 15,759
Default Multiple table lookup

Here's a small sample file that demonstrates this..

Tornado1981.xls 17kb

http://cjoint.com/?efuMzriA6o

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...

T. Valko;942822 Wrote:
Tweak...
-
=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",...-


Make N2 row absolute.

=IF(N$2="","",IF(ROWS(N$3:N3)O$2,"",...

--
Biff
Microsoft Excel MVP


"T. Valko" wrote in message
...-
On the surface this would seem like a fairly straightforward

lookup/data
extraction but in reality it's a bit complex! What makes it complex

are
the cells where there are multiple codes:
-
302+301
302+305
307+312-

CodeListA refers to B$2:B$7
CodeListB refers to B$10:B$15

Create this additional name:

LookupCodes
Refers to:

=TRANSPOSE(INDIRECT(Sheet1!$N$2))

Use the appropriate sheet name.

G2 = some code like 301

Enter this formula in N2. This will return the name of the range that

the
code number in G2 is located in.


=IF(COUNTIF(CodeListA,G2),"CodeListA",IF(COUNTIF(C odeListB,G2),"CodeListB",""))

Enter this array formula** in O2. This will return the count of

records
that meet the criteria.


=IF(N2="","",SUM(--(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E2:E18))),ROW(INDIREC T(N2))^0)0)))

Enter this array formula** in N3. This will extract the dates that

meet
the criteria.


=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",INDEX(D,SMAL L(IF(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E$2:E$18))),ROW(INDIR ECT(N$2))^0)0,ROW(E$2:E$18)),ROWS(N$3:N3)))))

Format as Date. Copy down until you get blanks.

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

the
SHIFT key then hit ENTER.

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message


...-

A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say 301) in

the
cell G2, then in cells O3:O15 appear the dates corresponding to the
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates

corresponding
to the codes 307,308,309,310,311 & 312 ( taking into account that

"301"
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem, but

the
last problem is that the date corresponding to "302+301" was not
included coz it's not exactly what I entered in G2.. So could u

please
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1

=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)

{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE
CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981-

-


Thanks so much valko for ur help .. but would u please attach an excel
sheet for explanation ?
i got some errors when i apply ur codes
Thank u




--
tornado1981



  #7  
Old April 5th, 2010, 09:12 PM posted to microsoft.public.excel.worksheet.functions
tornado1981[_4_]
external usenet poster
 
Posts: 1
Default Multiple table lookup


Thanks so much T. Valko .. That's really awesome .. But could we modify
these codes to search in columns E & F instead of Just Column E ??
the sheet would be like that
http://cjoint.com/data/efv6hthN8f.htm

T. Valko;943026 Wrote:
Here's a small sample file that demonstrates this..

Tornado1981.xls 17kb

http://cjoint.com/?efuMzriA6o

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...-

T. Valko;942822 Wrote:-
Tweak...
--
=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",...--

Make N2 row absolute.

=IF(N$2="","",IF(ROWS(N$3:N3)O$2,"",...

--
Biff
Microsoft Excel MVP


"T. Valko" wrote in message
...--
On the surface this would seem like a fairly straightforward-
lookup/data-
extraction but in reality it's a bit complex! What makes it

complex-
are-
the cells where there are multiple codes:
-
302+301
302+305
307+312-

CodeListA refers to B$2:B$7
CodeListB refers to B$10:B$15

Create this additional name:

LookupCodes
Refers to:

=TRANSPOSE(INDIRECT(Sheet1!$N$2))

Use the appropriate sheet name.

G2 = some code like 301

Enter this formula in N2. This will return the name of the range

that-
the-
code number in G2 is located in.

-

=IF(COUNTIF(CodeListA,G2),"CodeListA",IF(COUNTIF(C odeListB,G2),"CodeListB",""))-

Enter this array formula** in O2. This will return the count of-
records-
that meet the criteria.

-

=IF(N2="","",SUM(--(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E2:E18))),ROW(INDIREC T(N2))^0)0)))-

Enter this array formula** in N3. This will extract the dates

that-
meet-
the criteria.

-

=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",INDEX(D,SMAL L(IF(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E$2:E$18))),ROW(INDIR ECT(N$2))^0)0,ROW(E$2:E$18)),ROWS(N$3:N3)))))-

Format as Date. Copy down until you get blanks.

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

and-
the-
SHIFT key then hit ENTER.

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in

message-
-
...-

A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say 301)

in-
the-
cell G2, then in cells O3:O15 appear the dates corresponding to

the
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates-
corresponding-
to the codes 307,308,309,310,311 & 312 ( taking into account

that-
"301"-
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem,

but-
the-
last problem is that the date corresponding to "302+301" was not
included coz it's not exactly what I entered in G2.. So could u-
please-
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1
-

=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}-
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)
-

{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE-
CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981-

---


Thanks so much valko for ur help .. but would u please attach an

excel
sheet for explanation ?
i got some errors when i apply ur codes
Thank u




--
tornado1981 -





--
tornado1981
  #8  
Old April 5th, 2010, 11:22 PM posted to microsoft.public.excel.worksheet.functions
T. Valko
external usenet poster
 
Posts: 15,759
Default Multiple table lookup

what if i want to search in two columns
and not just one ( column E & F) ?


What's in column F?

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...

Hi valko,
Finally i did it
thanks so much for ur help
that was awesome
but i got another problem
what if i want to search in two columns and not just one ( column E &
F) ?
is that possible ?




--
tornado1981



  #9  
Old April 6th, 2010, 04:23 AM posted to microsoft.public.excel.worksheet.functions
T. Valko
external usenet poster
 
Posts: 15,759
Default Multiple table lookup

Tornado1981(2).xls

http://cjoint.com/?egfrN0oCsQ

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...

Thanks so much T. Valko .. That's really awesome .. But could we modify
these codes to search in columns E & F instead of Just Column E ??
the sheet would be like that
http://cjoint.com/data/efv6hthN8f.htm

T. Valko;943026 Wrote:
Here's a small sample file that demonstrates this..

Tornado1981.xls 17kb

http://cjoint.com/?efuMzriA6o

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...-

T. Valko;942822 Wrote:-
Tweak...
--
=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",...--

Make N2 row absolute.

=IF(N$2="","",IF(ROWS(N$3:N3)O$2,"",...

--
Biff
Microsoft Excel MVP


"T. Valko" wrote in message
...--
On the surface this would seem like a fairly straightforward-
lookup/data-
extraction but in reality it's a bit complex! What makes it

complex-
are-
the cells where there are multiple codes:
-
302+301
302+305
307+312-

CodeListA refers to B$2:B$7
CodeListB refers to B$10:B$15

Create this additional name:

LookupCodes
Refers to:

=TRANSPOSE(INDIRECT(Sheet1!$N$2))

Use the appropriate sheet name.

G2 = some code like 301

Enter this formula in N2. This will return the name of the range

that-
the-
code number in G2 is located in.

-

=IF(COUNTIF(CodeListA,G2),"CodeListA",IF(COUNTIF(C odeListB,G2),"CodeListB",""))-

Enter this array formula** in O2. This will return the count of-
records-
that meet the criteria.

-

=IF(N2="","",SUM(--(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E2:E18))),ROW(INDIREC T(N2))^0)0)))-

Enter this array formula** in N3. This will extract the dates

that-
meet-
the criteria.

-

=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",INDEX(D,SMAL L(IF(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E$2:E$18))),ROW(INDIR ECT(N$2))^0)0,ROW(E$2:E$18)),ROWS(N$3:N3)))))-

Format as Date. Copy down until you get blanks.

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

and-
the-
SHIFT key then hit ENTER.

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in

message-
-
...-

A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say 301)

in-
the-
cell G2, then in cells O3:O15 appear the dates corresponding to

the
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates-
corresponding-
to the codes 307,308,309,310,311 & 312 ( taking into account

that-
"301"-
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem,

but-
the-
last problem is that the date corresponding to "302+301" was not
included coz it's not exactly what I entered in G2.. So could u-
please-
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1
-

=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}-
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)
-

{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE-
CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981-

---

Thanks so much valko for ur help .. but would u please attach an

excel
sheet for explanation ?
i got some errors when i apply ur codes
Thank u




--
tornado1981 -





--
tornado1981



  #10  
Old April 7th, 2010, 07:14 PM posted to microsoft.public.excel.worksheet.functions
tornado1981[_5_]
external usenet poster
 
Posts: 1
Default Multiple table lookup


Hi Valko
Would u please take a look at that file please
Thank u
http://cjoint.com/?ehuoyrWg8V

T. Valko;943145 Wrote:
Tornado1981(2).xls

http://cjoint.com/?egfrN0oCsQ

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in message
...-

Thanks so much T. Valko .. That's really awesome .. But could we

modify
these codes to search in columns E & F instead of Just Column E ??
the sheet would be like that
http://cjoint.com/data/efv6hthN8f.htm

T. Valko;943026 Wrote:-
Here's a small sample file that demonstrates this..

Tornado1981.xls 17kb

http://cjoint.com/?efuMzriA6o

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in

message
...--

T. Valko;942822 Wrote:-
Tweak...
--
=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",...--

Make N2 row absolute.

=IF(N$2="","",IF(ROWS(N$3:N3)O$2,"",...

--
Biff
Microsoft Excel MVP


"T. Valko" wrote in message
...--
On the surface this would seem like a fairly straightforward-
lookup/data-
extraction but in reality it's a bit complex! What makes it-
complex--
are-
the cells where there are multiple codes:
-
302+301
302+305
307+312-

CodeListA refers to B$2:B$7
CodeListB refers to B$10:B$15

Create this additional name:

LookupCodes
Refers to:

=TRANSPOSE(INDIRECT(Sheet1!$N$2))

Use the appropriate sheet name.

G2 = some code like 301

Enter this formula in N2. This will return the name of the

range-
that--
the-
code number in G2 is located in.

-
-

=IF(COUNTIF(CodeListA,G2),"CodeListA",IF(COUNTIF(C odeListB,G2),"CodeListB",""))--

Enter this array formula** in O2. This will return the count

of-
records-
that meet the criteria.

-
-

=IF(N2="","",SUM(--(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E2:E18))),ROW(INDIREC T(N2))^0)0)))--

Enter this array formula** in N3. This will extract the dates-
that--
meet-
the criteria.

-
-

=IF(N2="","",IF(ROWS(N$3:N3)O$2,"",INDEX(D,SMAL L(IF(MMULT(--(ISNUMBER(SEARCH(LookupCodes,E$2:E$18))),ROW(INDIR ECT(N$2))^0)0,ROW(E$2:E$18)),ROWS(N$3:N3)))))--

Format as Date. Copy down until you get blanks.

** array formulas need to be entered using the key combination

of
CTRL,SHIFT,ENTER (not just ENTER). Hold down both the CTRL

key-
and--
the-
SHIFT key then hit ENTER.

--
Biff
Microsoft Excel MVP


"tornado1981" wrote in-
message--
-
...-

A B
1 Name Code
2 London 301
3 Paris 302
4 Rome 303
5 Moscow 304
6 Madrid 305
7 Berlin 306

9 Name Code
10 Brazilia 307
11 Buenos Aires 308
12 Santiago 309
13 Montevide 310
14 Quito 311
15 Lima 312

D E
1 Date Code
2 17/3/2010 301
3 22/3/2010 306
3 23/6/2010 312
4 14/5/2010 305
5 22/9/2010 302+301
6 25/10/2010 308
7 1/3/2010 311
8 9/11/2010 301
9 6/5/2010 307
10 17/7/2010 302+305
11 28/7/2010 304
12 6/8/2010 309
13 31/12/2010 310
14 2/2/2010 301
15 9/2/2010 303
16 5/6/2010 307
17 1/10/2010 307+312

What i want to do is that when i enter a code (let's say

301)-
in--
the-
cell G2, then in cells O3:O15 appear the dates corresponding

to-
the-
codes 300,301,302,303,304,305 & 306.
And if i enter 312, then in cells O3:O15 appear the dates-
corresponding-
to the codes 307,308,309,310,311 & 312 ( taking into account-
that--
"301"-
that i entered in cell G2 is a part of "302+301" in cell E6)

I entered 3 formulas that have solved a part of the problem,-
but--
the-
last problem is that the date corresponding to "302+301" was

not
included coz it's not exactly what I entered in G2.. So could

u-
please-
modify my formulas or create others to solve that problem ??

Here are my formulas

In O1
-
-

=LOOKUP(9.99999999999999E+307,CHOOSE({1,2},MATCH(G 2,CodeListA,0),MATCH(G2,CodeListB,0)),CHOOSE({1,2}--
,"CodeListA","CodeListB"))

In O2 (ctrl+shift+enter)
{=SUM(IF(ISNUMBER(MATCH(E2:E18,INDIRECT(O1),0)),1) )}

In Range O3:O15 (ctrl+shift+enter)
-
-

{=IF(ISNA($O$1),"",IF(ROWS($O$3:O3)=$O$2,INDEX($D $2:$D$18,SMALL(IF(ISNUMBER(MATCH($E$2:$E$18,INDIRE--

CT($O$1),0)),ROW($D$2:$D$18)-ROW($D$2)+1),ROWS($O$3:O3))),""))}

And these are the results

N O
1 Range : CodeListA Where CodeListA is the range B2:B7
2 No. of dates 7 While it has to be 9 !!
3 Dates: 17/3/2010
22/3/2010
14/5/2010
9/11/2010
28/7/2010
2/2/2010
9/2/2010

Thank you




--
tornado1981-

---

Thanks so much valko for ur help .. but would u please attach an-
excel-
sheet for explanation ?
i got some errors when i apply ur codes
Thank u




--
tornado1981 ---





--
tornado1981 -





--
tornado1981
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 01:55 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.