Help w/ INDEX and ROW reference using OR statements

E

emonz

I am working on a worksheet that has been imported into excel from an
antiquated mainframe and so the resulting excel worksheet carries the headers
and footer from the mainframe. Basically, these header and footer prevent
the worksheet from functioning like a data sheet. I want to filter out the
rows with meaningful data. Each of the rows that contain meaningful data has
a text field of 4 characters in column B.
This is what I’ve been working with:
=INDEX(A$15:E$51, SMALL(IF(B$15:B$51 = SDXS or BNDX or UNVI or BEER or WAGE
or UBEN, ROW($1:$37)), ROW(15)))

I don’t understand how the second ROW call (ROW(15)) functions. If the data
in column B is on the list (SDXS or BNDX or UNVI or BEER or WAGE or UBEN) I
want to return all the data for that same row.
 
D

Dave F

Why don't you create a helper column in which you test for the presence of
these four-character strings, and filter on that?

If your data goes from column A to E, then in column F enter the formula
=IF(OR(B1="SDXS",B1="BNDX",B1="UNVI",B1="BEER",B1="WAGE"),1,"")

Filter on the 1, copy the filtered records, and paste in a new spreadsheet?

Dave
 
T

T. Valko

Assuming your formula was syntactically correct (which it isn't):

Where:

IF(B$15:B$51 = SDXS or BNDX or UNVI or BEER or WAGE
or UBEN

= TRUE

An array of row numbers is passed to the SMALL function via: ROW($1:$37)

Then: ROW(15)

Would pass the 15th smallest row number to the INDEX function.

Biff
 
E

emonz

Good idea - thanks much!

Dave F said:
Why don't you create a helper column in which you test for the presence of
these four-character strings, and filter on that?

If your data goes from column A to E, then in column F enter the formula
=IF(OR(B1="SDXS",B1="BNDX",B1="UNVI",B1="BEER",B1="WAGE"),1,"")

Filter on the 1, copy the filtered records, and paste in a new spreadsheet?

Dave
 
D

Domenic

Let's assume that you want your results in Column G, starting at G15,
try the following formula that needs to be confirmed with
CONTROL+SHIFT+ENTER...

G15, copied down and across:

=INDEX(A$15:A$51,SMALL(IF(ISNUMBER(MATCH($B$15:$B$51,{"SDXS","BNDX","UNVI
","BEER","WAGE","UBEN"},0)),ROW($B$15:$B$51)-ROW($B$15)+1),ROWS(G$15:G15)
))

Hope this helps!
 
Top