Using a Filtered Value in a Formula

by Allen Wyatt
(last updated February 19, 2018)

5

Chuck has a worksheet with 16 columns and 622 rows. When he filters on one column to display only those rows that contain a particular value, he would like to change the heading (contained in cell A1) so that it contains whatever value he filtered on. Thus, if Chuck filtered so that only cell values containing the word "Central" are displayed, he wants the heading to change to "Accounts Belonging to Central." He wonders how to grab the value by which he's filtering and then use that value in the formula that is used for the heading.

Excel provides two different ways you can filter your data. You can either use regular filtering (what used to be called AutoFiltering) or you can use advanced filtering. If you are using advanced filtering, then accomplishing what you want is somewhat easier because the criteria are stored in cells, in a criteria table. (I won't go into how to set up an advanced filter here; you can search for it on the ExcelTips site—just use the search box at the upper-right of any page.)

Since the criteria are stored in cells, you can use a formula to put together your heading based on the contents of those cells. Where you'll run into issues is if you specify multiple filtering criteria, which can make the heading formula trickier.

If you are using regular filtering—which it seems like Chuck is probably doing—then the filter specification is not stored in a cell; it is maintained internally by Excel. That makes accessing the information more difficult. Fortunately, it can be extracted with a macro, and someone has already done the "heavy lifting" for Excel users before. (No sense in reinventing the wheel, so to speak.) You can find macros that return filtering criteria at these two locations:

http://j-walk.com/ss/excel/usertips/tip044.htm
http://www.ozgrid.com/VBA/autofilter-criteria.htm

The relatively short routines at either site are set up as user-defined functions, allowing you to specify a cell whose criteria you want to return. Thus, if Chuck applied the "Central" filter to the cells in column C (where the actual filter is in cell C3 for all cells below that), then the heading could be constructed in this way:

="Accounts Belonging to " & FilterCriteria(C3)

This formula relies on the function detailed at the j-walk site; if you used the one at the OzGrid site you'd have to change the formula to reflect the function name defined there. You test the two functions at the two sites to discover which one works best for your needs and your data.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (12839) applies to Microsoft Excel 2007, 2010, and 2013.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He  is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Setting Default Attributes for Lines and Arrows

Don't like the way that Excel formats lines and arrows? You can easily make your own formatting changes, and then use ...

Discover More

Drawing Lines

Lines are one of the most common graphic elements to be added to documents. Here's how you can add the lines you want.

Discover More

Moving Through a Table in a Macro

Do you need to step through a table, cell by cell, in a macro? It's easy to do using the Move method, as described in ...

Discover More

Save Time and Supercharge Excel! Automate virtually any routine task and save yourself hours, days, maybe even weeks. Then, learn how to make Excel do things you thought were simply impossible! Mastering advanced Excel macros has never been easier. Check out Excel 2010 VBA and Macros today!

More ExcelTips (ribbon)

Clearing Only Filtering Settings

When you filter data in a worksheet, Excel also allows you to apply sorting orders to that data. Here is a ...

Discover More

Removing Filters and Unhiding Rows and Columns on Multiple Worksheets

Need to remove filters and display all rows and columns in all your worksheets? It is not easy to do manually, but with a ...

Discover More

Copying the Results of Filtering

Filtering is a great asset when you need to get a handle on a subset of your data. Excel even makes it easy to copy the ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is 9 + 6?

2018-02-20 11:40:22

Dave Bonin

I've had a similar need to the problem Allen outlined --
How do you detect whether an autofiltered row is visible or not?

Here's what worked for me:

1) Add a helper column to your worksheet. You can title it "Visible"
if you like.

2) Add the following formula to the cells in that new column. Have
the new formula reference any other column in your data cells that
will always have a value. For this example, let's assume column B
always has values. Enter the following in your helper column...
   = SUBTOTAL( 103, B2 )
Then copy that formula all the way down.

This formula counts the visible cells that are non-blank. Since we
are subtotaling only a singe cell, we get a 1 or a 0. The cell contains
one value or no values. Hidden cells -- and therefore hidden rows --
are ignored.

3) After filtering, if the row is visible, its value in the helper column
will be one. If the row is hidden, it will be zero. You can now use the
results in the helper column in other formulas.

Referring to the problem Allen outlined, you can use INDEX() and
MATCH(), or VLOOKUP() functions to solve the problem without
macros.

4) Here's another variant of the function you can use...
= AND( SUBTOTAL( 103, B2 )) Returns TRUE or FALSE


2018-02-20 09:14:28

Lisa

How timely this updated tip is for me, thanks!


2018-02-19 11:08:31

Scott Gates

The j-walk link is no longer valid. I believe this is his new site http://spreadsheetpage.com/index.php/

I can't tell if the ozgrid page is using menu or ribbon Excel, although they are advertising a menu course. I don't know enough about VBA to know if menu/ribbon even makes a difference.


2015-07-28 11:52:36

howard

do you provide a sample excel spreadsheet to go with this tip?


2013-12-16 08:56:41

Chuck

Many thanks for answering my question!!!


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.