How to Create a Dynamic Excel Chart Data Range from Cell Values
Question details
The user needs a way to make an Excel chart's data range dynamically update based on text or boundary parameters typed into specific cells, instead of using a fixed static range.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Building a flexible dashboard or report where the chart's source data boundaries change automatically when the user updates a start row and end row in designated cells.
- Observed behavior
- The chart currently uses a hardcoded, fixed range (like C11:C20) and fails to update automatically when the intended data boundaries change.
Ensure your chart's source data is organized in continuous rows or columns without blank spaces, and decide which specific cells will act as your dynamic start and end inputs.
Use Named Ranges with the OFFSET Function
Create a dynamic named range using the OFFSET function, which calculates the range based on row length inputs, and apply it directly to your chart series.
The OFFSET function returns a reference to a range that is a specified number of rows and columns from a starting cell. By linking its height or width arguments to specific cells, your chart data will dynamically expand or contract.
Designate cells to hold your parameters. For example, use cell E3 for the starting row offset and cell E4 for the total number of rows you want to plot.
Go to the Formulas tab and click 'Name Manager'. Click 'New' and give your range a name without spaces, such as 'DynamicChartRange'.
In the 'Refers to' box, type a formula similar to =OFFSET(Sheet1!$B$10, 0, 0, Sheet1!$E$4-Sheet1!$E$3+1, 1). Click OK to save the Named Range.
Right-click your chart and choose 'Select Data'. Select your series, click 'Edit', and in the 'Series Values' box, type the sheet name followed by your named range (e.g., =Sheet1!DynamicChartRange). Click OK.

Create a Non-Volatile Range Using the INDEX Function
Utilize the INDEX function inside a Named Range to define the boundary of your chart. This method is non-volatile and improves performance on large workbooks.
Build Dynamic Dashboards with WPS Spreadsheet
WPS Spreadsheet fully supports advanced Named Ranges, OFFSET, and INDEX functions. It provides a seamless, high-performance environment to create dynamic charts and automated dashboards exactly as you would in Microsoft Excel.
- 1. Open your data file: Launch WPS Spreadsheet and open your dataset.
- 2. Define your dynamic range: Navigate to the Formulas tab, select Name Manager, and create your OFFSET or INDEX formula.
- 3. Link your chart: Insert your preferred chart, click Select Data, and input your newly named range to watch it update automatically.

Frequently Asked Questions
Why does Excel show an error when I type my Named Range into the chart's series values?
This usually happens because you must include the worksheet name or workbook name along with the named range. Instead of typing '=DynamicRange', you must type '=Sheet1!DynamicRange' or ='My File.xlsx'!DynamicRange.
Can I use the INDIRECT function directly in a chart's data range?
No, Excel charts cannot directly evaluate an INDIRECT function in the 'Select Data' dialog. To use INDIRECT, you must first wrap it inside a Named Range using the Name Manager, and then assign that Named Range to the chart.
What is the difference between OFFSET and INDEX for dynamic charts?
OFFSET is a 'volatile' function, meaning it recalculates every time any change is made anywhere in the workbook, which can slow down large files. INDEX is 'non-volatile' and only calculates when its specific dependent cells change, making it more efficient for complex dashboards.
Will my dynamic charts work if I send the file to someone using a different Office suite?
Yes. Standard formulas like OFFSET and INDEX combined with Named Ranges are universally supported across major spreadsheet programs, including Microsoft Excel and WPS Spreadsheet, so your charts will remain fully dynamic.




