Counting Names Based on Two Criteria

Rod has a Christmas card list in Excel. (Actually, this question could apply to any greeting card list.) Each name has a unique numeric ID associated with it and is color coded based on whether the name is family, friend, school friend, or work friend. He also has a True/False indicator in a column which indicates whether the person is to receive a card this year. Rod would like to count how many cards fit two criteria: the “gets card” indicator is True and the ID is 50 or below. Alternatively, he’d like a way to count the number of cards where the “gets card” indicator is True and the color code is red.

If you only have to get such sublists periodically, the easiest and most flexible solution might be to use the filtering capabilities of Excel and then use the SUBTOTAL function to determine the count. You can filter to display rows based upon almost any criteria you want. When the list represents what you want, then you can use a formula such as the following:

=SUBTOTAL(3,B2:B100)

This variation on the SUBTOTAL function returns a count of all displayed rows in the specified range. The key here is that the only rows displayed are those that meet your filtering criteria, so the formula returns the count you want.

There are also formulas that will return the desired information. The COUNTIFS function will look at multiple criteria and return a count based upon the result of the comparisons. For instance, the following formula will provide the number of list members where the “gets card” indicator is true and the ID is 50 or below:

=COUNTIFS(A2:A100,"<50",B2:B100,TRUE)

The formula only looks at list members in A2:A100, and it assumes that B2:B100 contains the True/False values serving as the “gets card” indicator.

You should remember that the COUNTIFS function was introduced beginning with Excel 2007. If you are creating a workbook that will also be used by those with an older version of Excel, then you may want to use an alternative function to return the count:

=SUMPRODUCT((A2:A100<50)*B2:B100*1)

If you want to take cell color into account in your formulas, then it becomes a bit trickier. You can devise a user-defined function (a macro) that returns cell color and then use that it in formula. (Other issues of ExcelTips have discussed such functions.) An easier way which avoids the macro is to add a column to your data that contains a numeric value indicating which group (family, friend, school friend, or work friend) the indivual belongs to. Then you can include the column value in your formulas.