Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

I have a data sheet with 20 columns that represent 20 months of data (starts
at column b). Monthly data is added for each month. I want to create a
rolling average. The data starts at Row 3 and ends at row 737.

E.g. for Dec 2007, the rolling average would be Jan 2007 to Dec 2007.
e.g. for Jan 2008, the rolling average would be Feb 2007 to Jan 2008, etc,

Thanks

  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Create a 12 month rolling average

Assuming data for Jan07 to Aug08 will be entered in cols B to U (20 cols),
data from row3 down

Try in say, W3: =AVERAGE(OFFSET(B3,,,,12))
Copy W3 across by 20 cols to AP3, fill down as far as required
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"forest8" wrote:
I have a data sheet with 20 columns that represent 20 months of data (starts
at column b). Monthly data is added for each month. I want to create a
rolling average. The data starts at Row 3 and ends at row 737.

E.g. for Dec 2007, the rolling average would be Jan 2007 to Dec 2007.
e.g. for Jan 2008, the rolling average would be Feb 2007 to Jan 2008, etc,

Thanks

  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 2,059
Default Create a 12 month rolling average

On Feb 13, 2:00*pm, forest8 wrote:
I have a data sheet with 20 columns that represent 20 months of
data (starts at column b). *Monthly data is added for each month.
*I want to create a rolling average. *The data starts at Row 3 and
ends at row 737.


Does the following work for you?

Suppose you want the rolloing average in row 2. In M2 (12th month),
enter the following:

=if(count(B3:M737)=0, "", average(B3:M737))

Copy that left through U2 (20th month).
  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

Hi there

Thank you both but neither of these worked.

I want this rolling average to always remain in the same column (e.g. Column
AB). As I add each month, the rolling average will change accordingly.

Thanks
J

"joeu2004" wrote:

On Feb 13, 2:00 pm, forest8 wrote:
I have a data sheet with 20 columns that represent 20 months of
data (starts at column b). Monthly data is added for each month.
I want to create a rolling average. The data starts at Row 3 and
ends at row 737.


Does the following work for you?

Suppose you want the rolloing average in row 2. In M2 (12th month),
enter the following:

=if(count(B3:M737)=0, "", average(B3:M737))

Copy that left through U2 (20th month).

  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Create a 12 month rolling average

This might suffice ..

In AB3, copied down:
=AVERAGE(OFFSET(B3,,COUNT(B3:U3)-1,,-12))

The above presumes each cell within the 20 col range (B to U) will be
sequentially filled each month from left to right with numbers (there should
be no blank cells in between)
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"forest8" wrote in message
...
Hi there

Thank you both but neither of these worked.

I want this rolling average to always remain in the same column (e.g.
Column
AB). As I add each month, the rolling average will change accordingly.

Thanks
J





  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Create a 12 month rolling average

If there could be blank cells in-between within the 20 col range (B to U) in
the sequential fill each month from left to right

Place in AB3, array-entered, copied down:
=AVERAGE(OFFSET(B3,,MAX((B3:U3<"")*(COLUMN(B3:U3) ))-2,,-12))
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---


  #7   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

Hi Max

The revised formula worked but you're correct in thinking that I do have
blank cells/columns. Unfortunately, the second formula didn't work.

J

"Max" wrote:

If there could be blank cells in-between within the 20 col range (B to U) in
the sequential fill each month from left to right

Place in AB3, array-entered, copied down:
=AVERAGE(OFFSET(B3,,MAX((B3:U3<"")*(COLUMN(B3:U3) ))-2,,-12))
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---



  #8   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

What I meant to say was that I get "#Value" when I used the last formula.

J

"forest8" wrote:

Hi there

Thank you both but neither of these worked.

I want this rolling average to always remain in the same column (e.g. Column
AB). As I add each month, the rolling average will change accordingly.

Thanks
J

"joeu2004" wrote:

On Feb 13, 2:00 pm, forest8 wrote:
I have a data sheet with 20 columns that represent 20 months of
data (starts at column b). Monthly data is added for each month.
I want to create a rolling average. The data starts at Row 3 and
ends at row 737.


Does the following work for you?

Suppose you want the rolloing average in row 2. In M2 (12th month),
enter the following:

=if(count(B3:M737)=0, "", average(B3:M737))

Copy that left through U2 (20th month).

  #9   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Create a 12 month rolling average

"forest8" wrote:
What I meant to say was that I get "#Value" when I used the last formula
Place in AB3, array-entered, copied down:
=AVERAGE(OFFSET(B3,,MAX((B3:U3<"")*(COLUMN(B3:U3) ))-2,,-12))


You got the error because you didn't "array-enter" the formula
To "array-enter" means to press CTRL+SHIFT+ENTER [CSE] in confirming the
formula (instead of just pressing ENTER). If you did this confirmation
correctly, you should see Excel wrap curly braces: { } around the formula in
the formula bar. If you don't see it, click inside the formula bar and try
the CSE again.

That said, I'd suggest a tweak to the earlier array formula - that we
control/fix the range to be averaged based on the col labels row (row2)
instead of the data rows, as you may have no data for entry for a certain
current month, in which case Excel would not know that the "current" rolling
range has moved 1 col to the right.

So, assuming that you would be entering the col labels in row2 progressively
each month from left to right within the range B2:U2

Put in AB3, array-enter the formula, copied down:
=AVERAGE(OFFSET(B3,,MAX(($B$2:$U$2<"")*(COLUMN($B $2:$U$2)))-2,,-12))
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
  #10   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

It worked with CSE but I have another question:

Can I use this formula if I only want to create a rolling average based on
the 12 most recent months (even if it includes blanks)?

This formula seems to take 12 months regardless of whether it's the 12 most
recent months.

"Max" wrote:

"forest8" wrote:
What I meant to say was that I get "#Value" when I used the last formula
Place in AB3, array-entered, copied down:
=AVERAGE(OFFSET(B3,,MAX((B3:U3<"")*(COLUMN(B3:U3) ))-2,,-12))


You got the error because you didn't "array-enter" the formula
To "array-enter" means to press CTRL+SHIFT+ENTER [CSE] in confirming the
formula (instead of just pressing ENTER). If you did this confirmation
correctly, you should see Excel wrap curly braces: { } around the formula in
the formula bar. If you don't see it, click inside the formula bar and try
the CSE again.

That said, I'd suggest a tweak to the earlier array formula - that we
control/fix the range to be averaged based on the col labels row (row2)
instead of the data rows, as you may have no data for entry for a certain
current month, in which case Excel would not know that the "current" rolling
range has moved 1 col to the right.

So, assuming that you would be entering the col labels in row2 progressively
each month from left to right within the range B2:U2

Put in AB3, array-enter the formula, copied down:
=AVERAGE(OFFSET(B3,,MAX(($B$2:$U$2<"")*(COLUMN($B $2:$U$2)))-2,,-12))
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---



  #11   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Create a 12 month rolling average

Can I use this** formula if I only want to create a rolling average based
on
the 12 most recent months (even if it includes blanks)?


**That's exactly what the formula I gave does when you enter the col labels
in row2 progressively each month from left to right within the range B2:U2.

**Put in AB3, array-enter the formula, copied down:
=AVERAGE(OFFSET(B3,,MAX(($B$2:$U$2<"")*(COLUMN($B $2:$U$2)))-2,,-12))

The "MAX(...)-2" part of it in the OFFSET anchors/fixes the rightmost
startpoint, ie the most "recent" col (col param) while the -12 (width param)
then grabs the 12 cols range to the left of this anchor col. The minus
in -12 means to the left.

If you carefully select just the OFFSET(...) part of it within the formula
bar and then press F9 to evaluate, the 12 "recent" cols range will be
revealed. Use this as a visual check.
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---


  #12   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

Hi again

When I verified this formula, I had a problem.

The earliest data is in column B and the latest is in V. The next column to
be filled is in W. This formula doesn't work well if Column W is left blank.

I've attached a sample from my file.

Months Category 1 Category 2 Category 3
Apr 06 438 2429 187
May 06 468 2509 188
Jun 06 386 2356 115
Jul 06 439.99 2494.934
Aug 06 418.738 2623.68
Sep 06 476.762 2818.631
Oct 06 384.501 2800.796
Nov 06 500.444 2805.878 1286.587
Dec 06 411.816 2857.546 1048.737
Jan 07 595.142 3119.351 1357.796
Feb 07 440.891 3119.204 1611.12
Mar 07 548.954 3349.091 1877.482
Apr 07 501.714 3103.273 1369.555
May 07 526.133 2728.437
Jun 07 536.357 2538.707
Jul 07 485.514
Aug 07 457.713
Sep 07 404.142
Oct 07 459.103
Nov 07 418.293
Dec 07 350.3


"12 month
rolling" 477.0213333 2863.294 1106.772375
Check 477.0213333 2993.0105 1553.98825

J

"Max" wrote:

Can I use this** formula if I only want to create a rolling average based
on
the 12 most recent months (even if it includes blanks)?


**That's exactly what the formula I gave does when you enter the col labels
in row2 progressively each month from left to right within the range B2:U2.

**Put in AB3, array-enter the formula, copied down:
=AVERAGE(OFFSET(B3,,MAX(($B$2:$U$2<"")*(COLUMN($B $2:$U$2)))-2,,-12))

The "MAX(...)-2" part of it in the OFFSET anchors/fixes the rightmost
startpoint, ie the most "recent" col (col param) while the -12 (width param)
then grabs the 12 cols range to the left of this anchor col. The minus
in -12 means to the left.

If you carefully select just the OFFSET(...) part of it within the formula
bar and then press F9 to evaluate, the 12 "recent" cols range will be
revealed. Use this as a visual check.
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---



  #13   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Create a 12 month rolling average

Is this a new issue? I haven't a clue what's going on. In this thread, the
layout discussed was month headers labelled across the row in B2, C2, ...
etc.

Suggest you put in a fresh, new posting, and in that post,
you could also upload & post a direct link to your sample**,
using:
http://www.freefilehosting.net/
**desensitize it as appropriate
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---


  #14   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

It's the same issue. I put the sample data into this format so that you can
see that my 12-month rolling average and the check average are not producing
the same result.

"Max" wrote:

Is this a new issue? I haven't a clue what's going on. In this thread, the
layout discussed was month headers labelled across the row in B2, C2, ...
etc.

Suggest you put in a fresh, new posting, and in that post,
you could also upload & post a direct link to your sample**,
using:
http://www.freefilehosting.net/
**desensitize it as appropriate
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---



  #15   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 41
Default Create a 12 month rolling average

Ignore my last post. I did the F9 check and discovered that it's not picking
up the 12 most recent cells but only 12 cells that have data.





"Max" wrote:

Is this a new issue? I haven't a clue what's going on. In this thread, the
layout discussed was month headers labelled across the row in B2, C2, ...
etc.

Suggest you put in a fresh, new posting, and in that post,
you could also upload & post a direct link to your sample**,
using:
http://www.freefilehosting.net/
**desensitize it as appropriate
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---





  #16   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Max Max is offline
external usenet poster
 
Posts: 9,221
Default Create a 12 month rolling average

a. Let's back it up a bit, in my earlier response, I mentioned:
---------------
... That said, I'd suggest a tweak to the earlier array formula - that we
control/fix the range to be averaged based on the col labels row (row2)
instead of the data rows, **as you may have no data for entry for a certain
current month, in which case Excel would not know that the "current" rolling
range has moved 1 col to the right**

So, assuming that **you would be entering the col labels in row2
progressively each month from left to right within the range B2:U2**

Put in AB3, array-enter the formula, copied down:
=AVERAGE(OFFSET(B3,,MAX(($B$2:$U$2<"")*(COLUMN($B $2:$U$2)))-2,,-12))
----------------

Pl note the 2 emphasis parts above enclosed within **

Can you confirm that the above has been applied to what you have over there?

b. I'm not able to decipher what's going on from your sample data as posted.
You need to post a link to your file with the sample data, as suggested.
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to create a rolling 6 month average? anley Excel Discussion (Misc queries) 3 August 14th 06 12:41 PM
rolling 12 month average gevans Excel Worksheet Functions 5 February 21st 06 01:09 PM
Formula for calculating a rolling 12 month average in excel? Jeff Excel Discussion (Misc queries) 1 December 9th 05 09:11 PM
How do I create a rolling average chart, adding most recent data? Doug@NxEdge Charts and Charting in Excel 1 November 5th 05 02:22 AM
How can I create a rolling average between 2 values? tomcat Excel Worksheet Functions 2 January 28th 05 02:49 PM


All times are GMT +1. The time now is 08:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"