George has a worksheet where the first row, in the range B1:AK1, contains part numbers. Some part numbers begin with X and others begin with Y. He wonders if there is a way to use SUMIF (or some other function) to sum the range B2:AK212 only for those columns in which the first cell in the column (B1:AK1) contains an "X" as the first character in the part number.
One way to accomplish this task is to use the SUMPRODUCT function along with the LEFT function to determine if the part number in the first row starts with an X or not:
=SUMPRODUCT((LEFT(B$1:AK$1,1)="X")*B2:AK212)
The LEFT function returns the leftmost character of the part number and compares it to X. If it is equal, then the result is 1; if not equal then it is 0. This resulting value (1 or 0) is then multiplied by the individual cells in the data range. The result is your desired sum.
If you must use the SUMIF function for some reason, there are two ways you could approach the problem. First, you could add the following into cell AL2:
=SUMIF(B$1:AK$1,"X*",B2:AK2)
This results in a sum of just the cells in row 2 that have a part number beginning with X. Copy the cell downward to cells AL3:AL212, and then sum the column.
The other approach is to add a totals row at the bottom of your data. Thus, you could use the following in cell B213:
=SUM(B2:B212)
Copy this formula to the other cells on the row (C213 through AK213) and then you can use this formula to get your desired sum:
=SUMIF(B1:AK1,"X*",B213:AK213)
In this case, SUMIF is checking the first row (where the part numbers are) and summing the appropriate cells from the totals you just added in row 213.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (13471) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Office 365.
Excel Smarts for Beginners! Featuring the friendly and trusted For Dummies style, this popular guide shows beginners how to get up and running with Excel while also helping more experienced users get comfortable with the newest features. Check out Excel 2013 For Dummies today!
Using a formula to find information in a text value is easy. Using a formula to find either of two text values within a ...
Discover MoreNeed to get at the next-to-last value in a column, regardless of how many cells are used within that column? This tip ...
Discover MoreYou can easily set up a formula to perform some calculation on a range of cells. When you copy that formula, the copied ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2016-09-28 02:18:32
James Bruno
@ Lars Damgaard
Why do you use the double minus in your formula?
See Excel Gurus Gone Wild by Bill Jelen, Page 12 for a great example.
While IF and other Functions that expect logical tests can easily convert TRUE and FALSE values to 1's and 0's, the SUMPRODUCT cannot do this.
You need a way to convert the TRUE and FALSE values to 1/0 values. Use the Minus Minus to coerce excel to change an array of TRUE/False to 1s and 0s
2016-09-26 04:47:16
Lars Damgaard
Thanks, Peter,
Why do you use the double minus in your formula? For me, it works just as well with deleting them both.
Regarding "X*", I think I now understand that the "X*" (or "=X*") only works in formulas that take 'criteria', not in a general comparison like
=if(A3="X*",...,..)
2016-09-23 19:31:16
Peter
Lars
=SUMIF(A3:A7,"=X*",B3:B7)
=SUMPRODUCT(--(LEFT(A3:A7)="X")*(B3:B7))
HTH
2016-09-22 03:24:02
Lars Damgaard
the formula =SUMPRODUCT((LEFT(B$1:AK$1,1)="X")*B2:AK212)
is really nice and compressed. It also works with SUM instead of SUMPRODUCT
=SUM((LEFT(B$1:AK$1,1)="X")*B2:AK212)
but then you have to hit Ctrl-Shift-Enter (array formula). I guess the
(LEFT(B$1:AK$1,1)="X")*B2:AK212
part already made the multiplication to create in memory a 2D array with zeroes where the item name starts with X, so it suffices to sum this array, but SUMPRODUCT does the same when given a single 2D array as variable.
But can anyone explain when the "X*" trick in the SUMIF solution can be used? I could not make it workk in the SUMPRODUCT solution:
=SUMPRODUCT((B$1:AK$1="X*")*B2:AK212)
2016-09-17 14:32:47
Servi
I did not know about this SUMPRODUCT function, but it looks interesting and I will certainly explore it. I use SUMIF already much for adding financial data, according to cost codes. Recently I came accross the SUMIFS function (syntax: SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)). I have made named cell ranges for the columns with the sum_range and for the criteria_ranges and this makes the formulas relatively easy. I can really recommend this. I use now one column with dates that set the reporting period and one column for cost codes.
2016-09-17 14:09:37
Brian Lair
I tested this to learn more & your formula SUMPRODUCT((LEFT(B$1:AK$1,1)="X")*B2:AK212) worked for me as-is. Very clever -- I didn't know about SUMPRODUCT -- thanks! Even with your explanation, though, it's still a bit mysterious. I guess I should practice using it in real life!
2016-09-17 11:59:48
allen@sharonparq.com
Steve: I tested out the one in the article (with the asterisk) and it worked fine.
-Allen
2016-09-17 10:07:33
steve
Allen, I believe the first formula should read
=SUMPRODUCT(--(LEFT(B1:AK1,1)=""),B2:AK2) & not * between the 2 Sumproduct arguments.
2016-09-17 05:41:19
SK SHARMA
Thanks Allen. You have a wonderful new ideas and professional development about excel.
Plz keep it up.
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.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2022 Sharon Parq Associates, Inc.
Comments