Sum only visible cells within a range.

J

Jason Kendall

My user has a spreadsheet with some columns of dollar values.
What he wants to do is to set up an Auto Filter on the data with a Sum
cell at the bottom of the column (or even elsewhere on the page) such
that the sum will adjust to show only the sum of those values that are
visible in the originally selected range, which includes all of the
cells in that column, for the data set.

I'm not an Excel programmer so I don't know the VBA object model. I
have read all of the newsgroup posts back to 05/15/05 that have the
word 'sum' in the subject and I've seen a lot of things that look like
they might be the answer, but I can't seem to crack this nut.

I know this CAN'T be hard and I actually expect that there's already
an Excel function to do this, but I just can't find it.

My very closest attempt is this one line function shown below, which
doesn't seem to work.

Public Function SumVisibleRows(ByVal TheRange As Range) As Currency
SumVisibleRows =
CCur(Application.Sum(TheRange.SpecialCells(xlCellTypeVisible)))
End Function

Thanks for any help!


-Jason Kendall
(e-mail address removed)
 
W

William Horton

I'm believe the SUBTOTAL worksheet function will meet your needs. At the
bottom of the column that has the autofilter enter the formula
=SUBTOTAL(9,A1:A10). This is assuming your list is in cells A1-A10. Also,
ensure that you place this formula in a cell that is NOT in A1-A10 AND not
included in the autofilter list. The result should be the sum of whatever is
currently visible in the autofilter list.
 
J

Jason Kendall

Bernie,

Thanks so much to both you and William Horton for such a speedy and
ideal reply. I knew there just HAD to be something to do this, I just
couldn't type in the right series of keywords to make the 'SubTotal'
function show up.

Cheers!
 
G

Gary Keramidas

the help search engine really sucks as far as i'm concerned. i can enter the
name of a function and click search, it's the last item in the list. that's
ridiculous.
 

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

Top