Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Summing Every Fourth Cell in a Row.
Written by Allen Wyatt (last updated January 11, 2020)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365
Kevin needs to create a formula that sums every fourth cell in a row. He knows he can use a formula such as =A6+E6+I6+M6, etc., but this becomes cumbersome if there are a lot of columns in the worksheet.
There are several ways you can approach this problem. One way is to add some additional information to the worksheet to designate which cells should be included in the sum. For instance, in the example you are interested in summing cells in row 6 of the worksheet. If you can add some indicators in row 5, these could then be used a "triggers" in a formula. Put the number 1, for example, above each cell you want included in the sum (columns A, E, I, M, etc.). Then, you can use a formula such as the following:
=SUMPRODUCT(A5:X5, A6:X6)
The formula basically multiples whatever is in row 5 against row 6, and then sums the results. Since there are only 1s in the columns you want summed, these are all that are included in the final sum.
If you don't want to add an indicator row to your worksheet, then you need to look at different solutions. You could still use the SUMPRODUCT function in a formula such as the following:
=SUMPRODUCT((MOD(COLUMN(6:6),4)=1)*(6:6))
This formula relies on the MOD function to return the remainder of a division. In this case, what is being divided is the column number of a cell by the value 4. This will result in a remainder of either 0, 1, 2, or 3. Every fourth cell in a row will have the same remainder. Thus, column A (also known as column 1) will have a MOD value of 1 (1 divided by 4 is 0, with 1 left over), as will columns E, I, M, etc.
Note that the formula compares whether the MOD value is 1 or not. If it is, then the comparison returns True (1); if it isn't, then it returns False (0). This is then multiplied against the cell in the sixth row. Finally, SUMPRODUCT sums all these multiplications and gives the desired result.
While this formula provides the sum of every fourth cell in the sixth row, it could easily be changed to provide the sum for every third cell, fifth cell, or whatever interval you want. Simply change the 4 in the MOD function to the interval desired.
If you wanted to select a different cell in each "cluster" of four cells to be summed, then all you need to do is change the value being compared in the MOD function. In this example, only the first cell in each cluster of four will have a MOD of 1 (A, E, I, M, etc.). If you instead want to sum every fourth cell starting with, say, cell C, then you would change the comparison value from 1 to 3. Why? Because C is the third cell in the cluster and will have a MOD of 3, as will each fourth cell thereafter (G, K, O, etc.).
The only "gottcha" to this general rule is if you want to sum the fourth cell in each four-cell cluster. For instance, you might want to sum cells D, H, L, P, etc. In this case the comparison value used wouldn't be 4 since there will never be a remainder of 4 when doing a MOD operation that involves dividing by 4. Instead, the comparison value would be 0, as in the following:
=SUMPRODUCT((MOD(COLUMN(6:6),4)=0)*(6:6))
If you prefer to work with array formulas, you can use a slightly shorter variation on the above formula:
=SUM(IF(MOD(COLUMN(6:6),4)=1,6:6))
Note that the formula should be entered by pressing Ctrl+Shift+Enter. It will then appear in the Formula bar with braces ({ }) around the formula. The same modification notes relative to the MOD divisor and comparison value apply here as they did with the SUMPRODUCT function.
Both of these formulaic approaches (SUMPRODUCT and the array formula) sum every fourth cell in the entire row. If you instead want to limit the cells from which the sum is derived to a portion of the row, then simply replace 6:6 (both instances) with the proper range. Thus, if you wanted to only sum every fourth cell in the range of A6:Z6, you would use that range in the formula.
If you do a lot of summing in this manner, and you apply it not only to ranges in a row but ranges in a column, you may want to consider creating a user-defined function to do the summing. The following simple function will do the trick:
Function SumEveryFourth(MyRange As Range) Dim x As Integer SumEveryFourth = 0 For x = 1 To MyRange.Cells.Count If (x Mod 4) = 1 Then SumEveryFourth = SumEveryFourth + MyRange.Cells(x).Value End If Next x End Function
The function examines the range passed to it, and then sums every fourth cell starting with the first cell in the range. If you prefer to have it sum every second cell in the range, then change the comparison value in the If statement, as discussed earlier in this tip. (Since the Mod operation is used in this function, and it operates the same as the MOD worksheet function, then the same comparison values come into play for determining which cell in each cluster should be summed.)
The user-defined function will work just fine on either cells in a row or cells in a column. You simply need to make sure that you pass it the range you want, as demonstrated here:
=SumEveryFourth(C3:C57)
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (9203) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365. You can find a version of this tip for the older menu interface of Excel here: Summing Every Fourth Cell in a Row.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
In a series of values, you may need to know the smallest value that isn't a zero. There is no built-in function to do ...
Discover MoreIf you have a lot of values in a single row, you might want to pull the last non-zero value from that row. There are a ...
Discover MoreWhen you construct a formula and click on a cell in a different workbook, an absolute reference to that cell is placed in ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2020-01-11 22:01:40
Alex B
Typically you would have columns headings and that each column you want to add up has something in common, ie Qty, Price, Unit of Measure, Amt. Using the same ranges as above, if your headings were in Row 5 and your first data Row is 6. Then consider either Sumifs (preferred and available since Excel 2007) or Sumif
• SumIfs
=SUMIFS($A$6:$X$6,$A5:$X5,"*Amt")
• Sumif
=SUMIF($A$5:$X$6,"*Amt",$A6:$X6)
Here I am assuming each required column has the word Amt at the end of what is in the column heading, if its not at end the but in the middle use *Amt*. Obviously replace it whatever you have as the common factor.
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 © 2024 Sharon Parq Associates, Inc.
Comments