Average every nth cell in a column including the first cell? - excel

Does anyone have a formula in excel to average every nth cell in a column including the first cell?
For example in the picture if I want to average every 5th cell in the A column it would come out to be 2.75.

Try resolving AVERAGE down to its component parts (i.e. SUM/COUNT),
=SUMPRODUCT(A1:A16, (MOD(ROW(1:16), 5)=0)+(ROW(1:16)=1))/SUMPRODUCT((MOD(ROW(1:16), 5)=0)+(ROW(1:16)=1))

Related

How to find last number in row minus second to last number in row

I have a spreadsheet that I'm using to try and keep track of google keyword rankings, but I can't figure out how to track the last change in keyword ranking, meaning the last cell in the row MINUS the second to last cell in the row. I've included a picture on what I'm trying to accomplish. The formula would take, for example, in J3-I3 to get the last change of 4 shown in D3.
Right now I have this code:
=(LOOKUP(2,1/(3:3>0),3:3))-LOOKUP(9E+300,B3:INDEX(B3:J3,MATCH(9E+300,B3:J3)-1))
Which is fine, but I need to keep changing the cell references is. Is there any easier way to accomplish this?
You can use just INDEX(MATCH()) and refer to the full row.
=INDEX(3:3,MATCH(1E+99,3:3))-INDEX(3:3,MATCH(1E+99,3:3)-1)
If you have, say, 12 columns B="Jan" to M="Dec" with a formula in each, and you need to calculate the difference between the latest month's value and the previous month's value, the formula above does not work if any columns are blank but with formulas, or until you have a value for each of the 12 months.
If you want to calculate, say, Jun minus May when Jul to Dec are blank except for their formulas, this formula (for row 4) will do it for whatever the latest month with a numerical value is:
=INDEX(4:4,MAX(IF(ISNUMBER(B4:M4),COLUMN(B4:M4))))-OFFSET(B4,0,SUM(IF(ISNUMBER(B4:M4),1))-2,1,1)
It must be entered with Ctrl+Shift+Enter.
#ScottCraner has provided an answer with the right logic, which is to
locate the second last and last number in each row, and then perform a
simple subtraction between the two.
INDEX+MATCH is one way of solving the question, but in this case, given that all data are stored in a table, and to add the flexibility of
1) moving the table around or across worksheets;
2) entering numeric value in the same row outside of the table;
without incurring errors, I've used OFFSET+COLUMNS instead.
Please note in my example I have given a name to the table, called it Tbl_WordRk, and I have added some data (in the gray area) for testing purpose.
Basically, OFFSET works in similar logic as INDEX, with a known starting point (such as B3 in my example), it will find the value (or even a range of values) in another row or column as long as you know the relative position of the value compared to the starting point. For example, if your starting point is cell A1, the following OFFSET function will return the value in cell D8.
=OFFSET(A1,7,3) which is interpreted as 7 rows down and 3 columns to the right of cell A1
COLUMNS finds the total number of columns of a given range, which is perfect for finding a column position within a table. The following formula will return number 7 which is the total number of columns of the table in my example, but please note it is NOT the relative column position of the last column to cell B3.
=COLUMNS(Tbl_WordRk)
You need to add -1 to the above formula to find the relative column number of the last column from B3. And therefore, adding -2 will return the relative column position of the second last column from B3.
So the final formula in cell B3 in my example is
=OFFSET(B3,,(COLUMNS(Tbl_WordRk)-2))-OFFSET(B3,,(COLUMNS(Tbl_WordRk)-1))
Then you just drag it down to the last row.
Just one more advice on the conditional format of your example, I would prefer not to show a green upward arrow if there is no change in the word ranking. If you know how to edit an existing conditional formatting, here is how to set it:
Cheers :)

How only average cells that cell to the left contains a number

I need formula help
using cells a1 - ce1, various data, but about every 3rd to 5th column is a column containing a %. I need to average by row, the % but only if the cell to the left contains a number(even 0).
You can use the formula AVERAGEIF() to achieve this. You can find further information on its use here: https://www.techonthenet.com/excel/formulas/averageif.php

How to add every other n nonblank cells in a column in Excel/Google Spreadsheets

So I have a column that may have empty cells, but I only want to sum every 7 cells that have numbers. I have looked into SUMIF but it seems like that won't do what I want. Any ideas?
assuming you have your numbers in B2:B, to sum every 7th row
=sum(filter(B2:B, mod(row(B2:B),7)=2))
Example spreadsheet
A quick fix would be adding filter to your column and filter only showing the non-blank cells. then add another column that has the sums of every seven cells.

Sum of row n through last row

I want to create a TOTAL row at the top of my spreadsheet. In this row, each cell should be the SUM of the values in the column below the TOTAL row.
So for example, if the total row is Row 1, cell A1 should be the SUM of A2 through the last row in column A. The number of rows in the spreadsheet will grow over time, so I can't just say SUM(A2:A500) because eventually there will be row 501, 502, 503 etc.
If you want something that just works in Google Spreadsheets (as the title suggests), you can use open-ended ranges:
=SUM(A2:A)
In Excel, you can specify the maximum rows for that version; for example, for 2007 and 2010:
=SUM(A2:A1048576)
This will work in Google Spreadsheets as well, and is beyond the current theoretical row limit in GSheets (400000)*.
Edit: *The quoted limit of the new version of Sheets is actually now 2 million cells.
Try this
=SUM(OFFSET(A1,1,0,ROWS(A:A)-1,1))
Works in both Excel and Google Docs
One downside: by using OFFSET the formula becomes Volatile ie is calculated every time the sheet calculates irrespective of data change.
One way you can do this in both Excel/Google Spreadsheets is to add a dummy column with a single value at the top (and all blanks for the remainder of the column).
You can then do a SUMIF to summarize all values except the one which is not "" - which should just be the cell A1 - put the following in B1, with whatever numbers below B1 you want and anything in A1.
=SUMIF(A:A,"",B:B)
=(B3+C3+D3+E3+F3+G3+H3+I3+J3+K3+L3+M3)
This worked for me. 3 being the row number
When you Drag the box downward the formula transfers down and changes the row number automatically for each row.
After I put another heading several rows down
adding the word SUM into the formula worked.
=SUM(B19+C19+D19+E19+F19+G19+H19+I19+J19+K19+L19+M19)
Not sure if it was necessary. But just copy pasting the first formula I used into the lower segment made an error message.

Advanced Excel: Sum of relative cells of a category

I’m a designer. I have a list of tasks, with hours, and I’ve split them into milestones. I want to count the number of hours for each milestone.
Here’s a picture:
In other words: I want to look at the value in the M column, if it’s 1, I want to get the cell across it, then repeat down the rows, and sum the whole lot.
See if you can figure that one out with the least cell wastage! :) (This is Numbers for Mac, so no macros or vbscript or what-have-you.)
In Excel the SUMIF formula can be used.
Assumption: In picture above, the 'Hours' label is in cell A1
The formula for 'Milestone 1' in cell E2 would be:
=SUMIF($C2:$C11,RIGHT(E1,1),$A2:$A11)
The syntax of the formula is:
=SUMIF(range, criteria, sum range)
The criteria is determined by using the last character in the 'Milestone' heading.

Resources