This article illustrates how to use the dynamic named range feature in an Excel chart. Without the feature, we have to readjust the source data of a chart every time we add or remove data from the dataset to show the changes in the chart. To get rid of this unnecessary painful job, learn to make your chart dynamic with the use of named ranges.
The dynamic named range is a feature in Excel that adjusts the range automatically when we add or remove data to the range.
Step 1: Preparing Dataset for Dynamic Named Range in Excel
In this article, we’re going to use the following dataset that illustrates the growth of the world population from 1950 to 2020. We want to make the dataset dynamic with the use of named ranges. It means when we add a new row of data the range will expand accordingly.
Step 2: Creating Dynamic Named Range to Use in Chart in Excel
To make our dataset a dynamic named range, follow the instruction below.
- Go to the Formulas tab in the Ribbon.
- Click the Define Name option.
- In the New Name window, type Year (same as the header name, for convenience) in the Name input box.
- In the Scope dropdown list, select the Sheet1 option as our dataset is in the Sheet1 of the workbook.
- Then in the input box named Refers to, put the following formula–
=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B:$B)-1,1)
- Finally hit OK to save the settings.
- Follow the same procedure, to make the Population in Billions column a dynamic named range. In this case, use the following formula–
=OFFSET(Sheet1!$C$2,0,0,COUNTA(Sheet1!$C:$C)-1,1)
- To check the named ranges we created, click on the Name Manager button from the Formulas tab.
- In the Name Manager window, there are two name ranges– Year and Population.
Formula Breakdown
Let’s breakdown the formula-
=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B:$B)-1,1)
The syntax of the OFFSET function is-
=OFFSET(reference, rows, cols, [height], [width])
The function returns a reference to a range, where
reference– the starting point, in our formula, Sheet1!$B$2- is the first cell value in the Year column.
rows- a row offset, set it to 0 in our formula.
cols- a column offset, set it to 0 in our formula.
[height]- the height of the returned range. We used the COUNTA function to count all the no empty cells in column B. Here we subtracted 1, as the column has a header. Leave it if the column has no header.
[width]- the width of the returned range. Always set it to 1.
Read More: Excel INDIRECT Function with Named Range
Step 3: Applying the Use of the Dynamic Named Range in Excel Chart
Now we’re going to use the dynamic named ranges in an Excel chart. Let’s follow the moves below to accomplish this.
- Select an empty cell in the worksheet at a suitable place.
- Go to the Insert tab in the Excel Ribbon.
- Click on the Scatter Chart.
- From the options choose your preferable one.
- There is an empty chart appeared on the worksheet.
- Now right click on the chart.
- Then choose the Select Data.
- In the Select Data Source window, click on the Add button.
- Click on the header of the column “Population in Billions” to set the series name.
- Then, put “=Sheet1!Year” in the Series X values input box as we want to display the year values in the x ordinate. Here, the dynamic named range Year belongs to Sheet1, as we defined earlier.
- Similarly, put “=Sheet1!Population”, the other dynamic named range i.e., Population in the Series Y values input box.
- Finally hit Enter to go.
- To save all these settings, click on the OK button in the Select Data Source
- As the output, we’ve got the scatter plot showing the Year–Population relation.
Read More: Excel Reference Named Range in Another Sheet
Step 4: Checking Use of Dynamic Named Range in Excel Chart
Now to check whether we could implement the dynamic named range in the Excel chart properly, put two more rows to the dataset. Let’s enter the predicted population for the years 2030 and 2040 in the dataset.
The chart adjusted with two new entries automatically.
Things to Remember
- We could implement the same functionality by converting our dataset into an Excel table, and then using it as the source of the chart. But in many cases, it is not a good choice to turn your dataset into a table.
- While creating a named range, we should follow the naming conventions and the dataset should not have any blank cells in it.
Download Practice Workbook
Download this practice workbook to exercise while you are reading this article.
Conclusion
Now, we know how to use the dynamic named ranges in the Excel chart. Hopefully, it will help you to use the functionality more confidently. Any questions or suggestions don’t forget to put them in the comment box below.
I use both the OFFSET-version above, the new dynamic arrays, like $A$1#, and named ranges as chart series data references to have the charts dynamic. However, it seems that Excel replaces them with fixed addresses when I copy a sheet to a new workbook. (I have worksheet scope on the named ranges). Would you have any idea why and maybe a workaround for this problem?
Hello JOHAN,
First, thanks for your query. Actually, dynamic named ranges created with OFFSET, and COUNTA functions don’t work when copied to another workbook. You can use a workaround instead. Follow the steps below.
• At first, open the Name Manager.
• Then, click on any name and tap on the Edit button.
Instantly, it will open the Edit Name dialog box.
• Here, change the previous formula in the Refers to box and give this new one.
=INDEX(Sheet1!$B$2:$C$23,0,MATCH(Sheet1!$C$2,Sheet1!$B$2:$C$2,0))
• As usual, click OK.
• Similarly, do the same for the second name also. The formula for this is similar also.
=INDEX(Sheet1!$B$2:$C$22,0,MATCH(Sheet1!$B$2,Sheet1!$B$2:$C$2,0))
Now, watch the GIF. It’s working in the new workbook.
And the chart is still dynamic. It’s changing while you are inputting new values.
That’s all from me on this topic. Hope you find this helpful. Follow our website ExcelDemy to explore more about Excel. Happy Excelling.
Regards
SHAHRIAR ABRAR RAFID
Excel & VBA Content Developer
Team ExcelDemy