Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27
Default select based on 2 columns?

I have a spreadsheet with many rows. I want to sum a column based on the
contents of another column. No problem. With this formula, I can do that:

=SUMIF(Results,"2-In progress",TCV) where Results and TCV are named
ranges.

Now I want to complicate this by adding another layer of filtering. For all
cells that match the above criterion, I want to add another test that says I
only want a subset of these records that match a string in another column.
So I want to add the TCV for all cells that match "xxx" in the range Results
further refined by matching the cells that match "yyy" in the range Sector.

I have tried many variations on formulas but can't seem to find a
combination that works. Any idea?



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27
Default select based on 2 columns?

I tried this:

=SUMPRODUCT((Results="2-In progress"),(Sector="I"),TCV)

but I get a #NUM! error.

I can't use autofilters because this has to work without any human
intervention.

"Tom Ogilvy" wrote in message
...
=sumproduct(--(Results="xxx"),--(Sector="yyy"),TCV)

--
Regards,
Tom Ogilvy


"Kent McPherson" wrote:

I have a spreadsheet with many rows. I want to sum a column based on the
contents of another column. No problem. With this formula, I can do
that:

=SUMIF(Results,"2-In progress",TCV) where Results and TCV are named
ranges.

Now I want to complicate this by adding another layer of filtering. For
all
cells that match the above criterion, I want to add another test that
says I
only want a subset of these records that match a string in another
column.
So I want to add the TCV for all cells that match "xxx" in the range
Results
further refined by matching the cells that match "yyy" in the range
Sector.

I have tried many variations on formulas but can't seem to find a
combination that works. Any idea?






  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27
Default select based on 2 columns?

Tom,

I coped your formula (which has the 2 minus signs before the 1st 2 range
arguments) into my spreadsheet and I still get the #NUM! error. Other
thoughts?

What do the 2 minus signs do?

Thanks for your help!
Kent

"Tom Ogilvy" wrote in message
...
Well, that wasn't the example I gave. If you had used my example you
would
have had a formula like this:

=SUMPRODUCT(--(Results="2-In progress"),--(Sector="I"),TCV)

Which worked fine for me with some test data.

--
Regards,
Tom Ogilvy


"Kent McPherson" wrote:

I tried this:

=SUMPRODUCT((Results="2-In progress"),(Sector="I"),TCV)

but I get a #NUM! error.

I can't use autofilters because this has to work without any human
intervention.

"Tom Ogilvy" wrote in message
...
=sumproduct(--(Results="xxx"),--(Sector="yyy"),TCV)

--
Regards,
Tom Ogilvy


"Kent McPherson" wrote:

I have a spreadsheet with many rows. I want to sum a column based on
the
contents of another column. No problem. With this formula, I can do
that:

=SUMIF(Results,"2-In progress",TCV) where Results and TCV are named
ranges.

Now I want to complicate this by adding another layer of filtering.
For
all
cells that match the above criterion, I want to add another test that
says I
only want a subset of these records that match a string in another
column.
So I want to add the TCV for all cells that match "xxx" in the range
Results
further refined by matching the cells that match "yyy" in the range
Sector.

I have tried many variations on formulas but can't seem to find a
combination that works. Any idea?









  #4   Report Post  
Posted to microsoft.public.excel.programming
Ken Ken is offline
external usenet poster
 
Posts: 207
Default select based on 2 columns?

Kent

Tom's formula works quite well for me too. If products, sectors, and
tcv do not all have the same number of rows, I get a #value error, but,
other than that this seems to be a very robust formula. Until a few
minutes ago (when I read Tom's explanation of the --) I would have
solved your problem with and array sum function, like

{=SUM((Results="xxx")*(Sector="yyy")*TCV)}

which has both the advantages and disadvantages inherent in any array
functions, also requires the columns to be the same length, and unlike
Tom's sumproduct recommendation, it breaks when TCV is not all numeric.
I don't know about you, but, I think I will be using sumproduct a lot
more often now that I know what the -- does.

Thanks Tom, and good luck Kent.

Ken




Tom Ogilvy wrote:
=sumproduct(--(Results="xxx"),--(Sector="yyy"),TCV)

--
Regards,
Tom Ogilvy


"Kent McPherson" wrote:

I have a spreadsheet with many rows. I want to sum a column based on the
contents of another column. No problem. With this formula, I can do that:

=SUMIF(Results,"2-In progress",TCV) where Results and TCV are named
ranges.

Now I want to complicate this by adding another layer of filtering. For all
cells that match the above criterion, I want to add another test that says I
only want a subset of these records that match a string in another column.
So I want to add the TCV for all cells that match "xxx" in the range Results
further refined by matching the cells that match "yyy" in the range Sector.

I have tried many variations on formulas but can't seem to find a
combination that works. Any idea?





  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default select based on 2 columns?

Just for the record, Excel 2007 has a function called SUMIFS that is like
SUMIF but allows for multiple criteria.

=SUMIFS(TCV,Results,"2-In progress")


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)


"Kent McPherson" wrote in message
...
I have a spreadsheet with many rows. I want to sum a column based on the
contents of another column. No problem. With this formula, I can do
that:

=SUMIF(Results,"2-In progress",TCV) where Results and TCV are named
ranges.

Now I want to complicate this by adding another layer of filtering. For
all cells that match the above criterion, I want to add another test that
says I only want a subset of these records that match a string in another
column. So I want to add the TCV for all cells that match "xxx" in the
range Results further refined by matching the cells that match "yyy" in
the range Sector.

I have tried many variations on formulas but can't seem to find a
combination that works. Any idea?







  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27
Default select based on 2 columns?

Tom, thanks very much! I figured out why mine version didn't work. The
named ranges I was using in the formula (Results, TCV, & Sector) referred to
a specific column in another worksheet. When I changed the references to
specific cells within those columns, the formula worked like a charm.

Thank you so much!

"Tom Ogilvy" wrote in message
...
The two minus signs convert the boolean result of the logical comparison
to
the numbers 1 for true or 0 for false so they can be multiplied by
Sumproduct
to determine whether to add in the value for each row of TCV.

Do you have a #Num error in your source data?

This formula is pretty much standard fare, so if your having problems it
likely isn't the formula and as I said, it is working masterfully for me.

--
Regards,
Tom Ogilvy


"Kent McPherson" wrote:

Tom,

I coped your formula (which has the 2 minus signs before the 1st 2 range
arguments) into my spreadsheet and I still get the #NUM! error. Other
thoughts?

What do the 2 minus signs do?

Thanks for your help!
Kent

"Tom Ogilvy" wrote in message
...
Well, that wasn't the example I gave. If you had used my example you
would
have had a formula like this:

=SUMPRODUCT(--(Results="2-In progress"),--(Sector="I"),TCV)

Which worked fine for me with some test data.

--
Regards,
Tom Ogilvy


"Kent McPherson" wrote:

I tried this:

=SUMPRODUCT((Results="2-In progress"),(Sector="I"),TCV)

but I get a #NUM! error.

I can't use autofilters because this has to work without any human
intervention.

"Tom Ogilvy" wrote in message
...
=sumproduct(--(Results="xxx"),--(Sector="yyy"),TCV)

--
Regards,
Tom Ogilvy


"Kent McPherson" wrote:

I have a spreadsheet with many rows. I want to sum a column based
on
the
contents of another column. No problem. With this formula, I can
do
that:

=SUMIF(Results,"2-In progress",TCV) where Results and TCV are
named
ranges.

Now I want to complicate this by adding another layer of filtering.
For
all
cells that match the above criterion, I want to add another test
that
says I
only want a subset of these records that match a string in another
column.
So I want to add the TCV for all cells that match "xxx" in the
range
Results
further refined by matching the cells that match "yyy" in the range
Sector.

I have tried many variations on formulas but can't seem to find a
combination that works. Any idea?












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
How to select the value based on given condition? Eric Excel Discussion (Misc queries) 2 October 30th 07 01:06 AM
Select rows based on criteria sotiris_s Excel Worksheet Functions 4 November 14th 05 12:35 PM
Tallying columns based on values of 2 different columns Mctabish Excel Worksheet Functions 1 January 30th 05 10:40 AM
Select Columns based on cell value No Name Excel Programming 1 November 13th 03 09:31 AM
Select a range of columns based on active cell Tom Ogilvy Excel Programming 0 November 10th 03 05:09 PM


All times are GMT +1. The time now is 07:18 PM.

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

About Us

"It's about Microsoft Excel"