ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Listing Multiple Rows from Match (https://www.excelbanter.com/excel-worksheet-functions/8081-listing-multiple-rows-match.html)

Sean Larkin

Listing Multiple Rows from Match
 
I have a workbook, and the master sheet has data in many columns and rows.
Column B is the type field, and every row has been given a type of either,
Direct, National, or Dealer. The master sheet will be updated regularly
(weekly or monthly). I want to minimize the work required to update the
workbook, so the ideal solution is for just the master sheet to be updated
manually, and the rest of the sheets update themselves accordingly.

I want to have 3 additional sheets, one for each type. I'd like each sheet
to automatically list rows of their corresponding type from the master
sheet.

For example, the Direct sheet will show all rows from the master sheet that
have the type, Direct.

Master sheet:
midwest Direct 12000 500 0 500 12500
northeast National 315 1354 0 454 55521
southwest Dealer 14540 200 2 11250 111250
midwest National 13245 321 0 312 748678
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234
northeast National 315 1354 0 454 24234
southwest National 4342 200 2 33423 234423
southwest Dealer 3424 200 2 45664 67898

-----------


Direct Sheet should be:
midwest Direct 12000 500 0 500 12500
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234


------

This example is very minimal, compared to the actual amount of data on the
master sheet. I have been looking up information of Lookups, Index/Match
and Advanced Filtering, but I just can't make it happen.

Does anyone have any ideas?

Thanks.

-Sean




Frank Kabel

Hi
if you have many rows of data I wouldn't use a formula approach (too slow).
Maybe try the following addin:
http://www.rondebruin.nl/easyfilter.htm

--
Regards
Frank Kabel
Frankfurt, Germany

Sean Larkin wrote:
I have a workbook, and the master sheet has data in many columns and
rows. Column B is the type field, and every row has been given a type
of either, Direct, National, or Dealer. The master sheet will be
updated regularly (weekly or monthly). I want to minimize the work
required to update the workbook, so the ideal solution is for just
the master sheet to be updated manually, and the rest of the sheets
update themselves accordingly.

I want to have 3 additional sheets, one for each type. I'd like each
sheet to automatically list rows of their corresponding type from the
master sheet.

For example, the Direct sheet will show all rows from the master
sheet that have the type, Direct.

Master sheet:
midwest Direct 12000 500 0 500 12500
northeast National 315 1354 0 454 55521
southwest Dealer 14540 200 2 11250 111250
midwest National 13245 321 0 312 748678
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234
northeast National 315 1354 0 454 24234
southwest National 4342 200 2 33423 234423
southwest Dealer 3424 200 2 45664 67898

-----------


Direct Sheet should be:
midwest Direct 12000 500 0 500 12500
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234


------

This example is very minimal, compared to the actual amount of data
on the master sheet. I have been looking up information of Lookups,
Index/Match and Advanced Filtering, but I just can't make it happen.

Does anyone have any ideas?

Thanks.

-Sean




Max

One way to set-it up ..

In sheet named: Master
-------------------
Assume the sample table below is in cols A to G
data from row2 down
(with the key column "Type" in col B), viz:

Region___Type
midwest Direct 12000 500 0 500 12500
northeast National 315 1354 0 454 55521
southwest Dealer 14540 200 2 11250 111250
midwest National 13245 321 0 312 748678
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234
northeast National 315 1354 0 454 24234
southwest National 4342 200 2 33423 234423
southwest Dealer 3424 200 2 45664 67898

etc

List across in say, I1:K1
the 3 "Type"s: Direct, National, Dealer

Put in I2: =IF($B2="","",IF($B2=I$1,ROW(),""))

Copy I2 across to K2, then fill down by a safe "max"
number of rows that data is ever expected in cols A to G,
say, down to I10000?

In a new sheet named: Direct
---------------------------------------
Let's reserve cell A1 for the "Type" name

Put in A1:
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,32)

(This'll extract the sheetname: Direct into A1.
But you need to save the file first)

Copy Paste the same col headers from "Master"
into row2 (Region, Type, ... etc in A2, B2 ...)

Put in A3:

=IF(ISERROR(MATCH(SMALL(INDIRECT("'Master'!"&CHOOS E(MATCH($A$1,Master!$I$1:$
K$1,0),"I:I","J:J","K:K")),ROW(A1)),INDIRECT("'Mas ter'!"&CHOOSE(MATCH($A$1,M
aster!$I$1:$K$1,0),"I:I","J:J","K:K")),0)),"",OFFS ET(Master!$A$1,MATCH(SMALL
(INDIRECT("'Master'!"&CHOOSE(MATCH($A$1,Master!$I$ 1:$K$1,0),"I:I","J:J","K:K
")),ROW(A1)),INDIRECT("'Master'!"&CHOOSE(MATCH($A$ 1,Master!$I$1:$K$1,0),"I:I
","J:J","K:K")),0)-1,COLUMN(A1)-1))

Note: You'd need to correct / restore the couple of inadvertent line wraps /
line breaks when you copy paste the above formula into A3

Copy A3 across to G3, fill down by as many rows as was done
in "Master"'s cols I:K, i.e. down to G10000 thereabouts

You'll see that cols A to G (in row3 down)
will auto-return the "filtered" rows from "Master"
for the Type: Direct
i.e. for the sample data-set above, it'll appear as:

midwest Direct 12000 500 0 500 12500
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234

Now, just duplicate / make a copy of the sheet: Direct,
rename it as: National
and you'll get the "filtered" rows for National:

northeast National 315 1354 0 454 55521
midwest National 13245 321 0 312 748678
northeast National 315 1354 0 454 24234
southwest National 4342 200 2 33423 234423

Repeat the sheet duplicating and renaming
for: Dealer and you'll get:

southwest Dealer 14540 200 2 11250 111250
southwest Dealer 3424 200 2 45664 67898

Data entered into "Master" will auto-appear
in each of the Types' sheet: Direct, National and Dealer

Adapt / extend to suit
--
Rgds
Max
xl 97
---
GMT+8, 1° 22' N 103° 45' E
xdemechanik <atyahoo<dotcom
----
"Sean Larkin" wrote in message
...
I have a workbook, and the master sheet has data in many columns and rows.
Column B is the type field, and every row has been given a type of either,
Direct, National, or Dealer. The master sheet will be updated regularly
(weekly or monthly). I want to minimize the work required to update the
workbook, so the ideal solution is for just the master sheet to be updated
manually, and the rest of the sheets update themselves accordingly.

I want to have 3 additional sheets, one for each type. I'd like each

sheet
to automatically list rows of their corresponding type from the master
sheet.

For example, the Direct sheet will show all rows from the master sheet

that
have the type, Direct.

Master sheet:
midwest Direct 12000 500 0 500 12500
northeast National 315 1354 0 454 55521
southwest Dealer 14540 200 2 11250 111250
midwest National 13245 321 0 312 748678
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234
northeast National 315 1354 0 454 24234
southwest National 4342 200 2 33423 234423
southwest Dealer 3424 200 2 45664 67898

-----------


Direct Sheet should be:
midwest Direct 12000 500 0 500 12500
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234


------

This example is very minimal, compared to the actual amount of data on the
master sheet. I have been looking up information of Lookups, Index/Match
and Advanced Filtering, but I just can't make it happen.

Does anyone have any ideas?

Thanks.

-Sean






Alan Beban

Sean Larkin wrote:
I have a workbook, and the master sheet has data in many columns and rows.
Column B is the type field, and every row has been given a type of either,
Direct, National, or Dealer. The master sheet will be updated regularly
(weekly or monthly). I want to minimize the work required to update the
workbook, so the ideal solution is for just the master sheet to be updated
manually, and the rest of the sheets update themselves accordingly.

I want to have 3 additional sheets, one for each type. I'd like each sheet
to automatically list rows of their corresponding type from the master
sheet.

For example, the Direct sheet will show all rows from the master sheet that
have the type, Direct.

Master sheet:
midwest Direct 12000 500 0 500 12500
northeast National 315 1354 0 454 55521
southwest Dealer 14540 200 2 11250 111250
midwest National 13245 321 0 312 748678
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234
northeast National 315 1354 0 454 24234
southwest National 4342 200 2 33423 234423
southwest Dealer 3424 200 2 45664 67898

-----------


Direct Sheet should be:
midwest Direct 12000 500 0 500 12500
midwest Direct 23546 324 0 123 67898
northeast Direct 315 1354 0 454 55521
northeast Direct 343 2678 0 433 234234


------

This example is very minimal, compared to the actual amount of data on the
master sheet. I have been looking up information of Lookups, Index/Match
and Advanced Filtering, but I just can't make it happen.

Does anyone have any ideas?

Thanks.

-Sean


If the functions in the freely downloadable file at
http://home.pacbell.net/beban are available to your workbook, then
assuming that your data is in Columns A1:G1000 on a sheet named
"Master", array enter into A1:G1000 of each of the sheets "Direct",
"National", and "Dealer", respectively, the following:

=ArrayRowFilter1(Master!A1:G1000,2,"Direct")
=ArrayRowFilter1(Master!A1:G1000,2,"National")
=ArrayRowFilter1(Master!A1:G1000,2,"Dealer")

Alan Beban

Harlan Grove

"Max" wrote...
One way to set-it up ..

In sheet named: Master
-------------------
Assume the sample table below is in cols A to G
data from row2 down
(with the key column "Type" in col B), viz:

Region___Type
midwest Direct 12000 500 0 500 12500

....
southwest Dealer 3424 200 2 45664 67898

etc


Don't need headers in these columns.

List across in say, I1:K1
the 3 "Type"s: Direct, National, Dealer

Put in I2: =IF($B2="","",IF($B2=I$1,ROW(),""))


Alternatively,

I2:
=IF($B2=I$1,COUNTIF(I$1:I1,"0")+1,"")

Then I2 filled right into J2:K2, then I2:K2 filled down as far as needed.
Name the entire range spanned by columns A through K from row 1 though the
bottommost record in columns A through G something like AMT.

The $B2="" test is pointless, btw.

In a new sheet named: Direct
---------------------------------------
Let's reserve cell A1 for the "Type" name

Put in A1:
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,32)

(This'll extract the sheetname: Direct into A1.
But you need to save the file first)

....

Alternatively, define the name WSN referring to

=MID(CELL("Filename",INDIRECT("A1")),
FIND("]",CELL("Filename",INDIRECT("A1")))+1,32)

Put in A3:

=IF(ISERROR(MATCH(SMALL(INDIRECT("'Master'!"&CHOO SE(MATCH($A$1,
Master!$I$1:$K$1,0),"I:I","J:J","K:K")),ROW(A1) ),
INDIRECT("'Master'!"&CHOOSE(MATCH($A$1,Master!$I$ 1:$K$1,0),
"I:I","J:J","K:K")),0)),"",OFFSET(Master!$A$1,
MATCH(SMALL(INDIRECT("'Master'!"&CHOOSE(MATCH($A$ 1,
Master!$I$1:$K$1,0),"I:I","J:J","K:K")),ROW(A1) ),
INDIRECT("'Master'!"&CHOOSE(MATCH($A$1,Master!$I$ 1:$K$1,0),
"I:I","J:J","K:K")),0)-1,COLUMN(A1)-1))

....

INDIRECT("'Master'!"&CHOOSE(MATCH($A$1,Master!$I$1 :$K$1,0),
"I:I","J:J","K:K"))

?!

OFFSET(Master!$H:$H,0,MATCH($A$1,Master!$I$1:$K$1, 0))

is shorter and more efficient.

But continuing with my alternative setup,

A2:
=IF(COUNTIF(INDEX(AMT,0,MATCH(WSN,INDEX(AMT,1,0),0 )),"0")=ROW()-1,
LOOKUP(2,1/(INDEX(AMT,0,MATCH(WSN,INDEX(AMT,1,0),0))=ROW()-1),
INDEX(AMT,0,COLUMN())),"")

Fill A2 right into B2:G2, then fill A2:G2 down until it evaluates to "".

Now, just duplicate / make a copy of the sheet: Direct,
rename it as: National
and you'll get the "filtered" rows for National:

....



Max

Brilliant alternative, Harlan !
And many thanks for the refinement bits, too,
points well taken ..
--
Rgds
Max
xl 97
---
GMT+8, 1° 22' N 103° 45' E
xdemechanik <atyahoo<dotcom
----



Sean Larkin

Thank you Frank, Max, Alan and Harlan for the assistance!


On 12/18/04 7:15 AM, in article , "Max"
wrote:

Brilliant alternative, Harlan !
And many thanks for the refinement bits, too,
points well taken ..
--
Rgds
Max
xl 97
---
GMT+8, 1° 22' N 103° 45' E
xdemechanik <atyahoo<dotcom
----




Max

You're welcome !
--
Rgds
Max
xl 97
---
GMT+8, 1° 22' N 103° 45' E
xdemechanik <atyahoo<dotcom
----


All times are GMT +1. The time now is 06:41 PM.

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