Excel – Dynamic Range 12 Month Rolling Horizontal Chart

Horizontal 12 Month Rolling Chart

After publishing my blog on dynamic ranges to create a 12 month rolling chart (http://wp.me/p2EAVc-ah), I have received a number of enquiries about how to apply this to a horizontal table of data.

Personally, I prefer to have my data tables set vertically as it gives me far more options to slice and dice my data, apply filters, pivots etc. Based on the number of questions I have had there seem to be quite a number of businesses out there using a horizontal data layout.

So here is how it’s done;

The formula you will need will be as follows (bearing in mind you may need to adapt this to your own data table);


Our anchor point is $B$2, and always starting in the same row (0). The COUNT function counts the number of cells in row 2 and takes away 1 to give the correct end cell i.e. the last cell in the row to contain a numerical value. The height of the range is 1 row but the width is 12 columns back from the last cell that was identified by the COUNT function.

As we are applying this to a chart, we also need to create a dynamic range to pick out the correct labels;


As explained in the earlier blog, this dynamic range is based on the dynamic data range we created above. “DynHorizData2 is just the name I assigned to the range.

And there you have it…a 12 month rolling chart based on a horizontal data table.

To see an example using the formulas above follow the link below to open a workbook (Excel 2013) called “Horizontal Dynamic Chart.xlsx”. The workbook is read only, so click on FILE and Save As to download the file and then you can edit the data and see what happens.



Posted on March 10, 2015, in Charts and tagged , , , . Bookmark the permalink. 2 Comments.

  1. Hi! Thanks for this!

    Question for you. Is it possible to offset the entire chart data range? When I click ‘select data’ instead of offsetting each series and the labels individually can I offset the entire thing in the field at the top of this window?

    I have a report with about 40 charts and if I could do it this way instead of following your method above for each chart, it would save me a lot of time.


    • Although you can select an entire table when creating a chart manually each series is a separate range and that’s why you have to create separate dynamic ranges for each series plus the labels. However once you have the first data range in a table each subsequent range is just an offset of that range like the labels but instead of the usual -1, it’s then +1, +2 etc. Yes it’s manual to start with the point of the dynamic range is that once set it will adapt/move as new data is added over time.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: