Help w/ INDEX and ROW reference using OR statements

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

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.
 
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
 
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
 
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
 
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!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top