Formula Errors

Why SUM and OFFSET Produce Doubling Values in Excel

Jason MillerJason Miller Oct 26, 2026 868 views

Question details

The user needs to understand why two similar Excel formulas produce different sequences and how to correctly generate a simple sequential list using SUM and OFFSET.

Why SUM and OFFSET Produce Doubling Values in Excel
Product
Excel
Device & OS
not provided
Scenario
Generating a sequential list (e.g., ID numbers) within an Excel table using dynamic offset references.
Observed behavior
One formula produces a standard sequential list (1, 2, 3), while a slightly different formula referencing an expanding range produces doubling values (1, 2, 4, 8).
Before you start

Before modifying your formulas, check if you are referencing a single cell or an expanding range (like all table headers down to the current row). Expanding ranges inside a SUM function often lead to unexpected exponential totals.

Solution 1Recommended

Use a Single-Cell Reference for Sequential Numbering

Adjust your OFFSET formula to reference only the cell immediately above the current row, rather than summing an expanding range.

A formula like =SUM(OFFSET([@ID],-1,0),1) creates a simple sequential list. It takes the value of the single cell exactly one row above the current cell in the ID column and adds 1 to it. Because it only looks at the previous row's result, the numbers increment linearly (1, 2, 3, 4).

1
Select the target cell

Click on the first cell in your table's ID column where you want the numbering to start.

2
Enter the single-cell OFFSET formula

Type the formula `=SUM(OFFSET([@ID],-1,0),1)` into the formula bar.

3
Apply to the column

Press Enter. If you are using an Excel Table, the formula will automatically spill or fill down the entire column, resulting in a correct sequential sequence.

Use a Single-Cell Reference for Sequential Numbering
Best Practice: Using a single-cell reference is computationally lighter and less prone to circular reference-like behavior than summing a constantly expanding range.
Resolve Formula Issues Easily

Fix Dynamic Arrays and Formulas in WPS Spreadsheet

WPS Spreadsheet provides comprehensive support and 100% compatibility for Excel formulas, including complex dynamic arrays, SUM, and OFFSET functions. You can easily build precise sequential lists and troubleshoot expanding ranges using its intuitive formula evaluation tools.

  1. 1. Open your file in WPS Spreadsheet: Launch WPS Office and open your workbook containing the problematic table formulas.
  2. 2. Locate the formula: Click on the cell in the ID column that is returning the doubling values.
  3. 3. Update the OFFSET reference: Change the formula to reference only the cell directly above. For example, replace the expanding range with `=SUM(OFFSET([@ID],-1,0),1)`.
  4. 4. Calculate and apply: Press Enter to recalculate. WPS Spreadsheet will automatically fill the corrected sequential formula down the table column.
100% compatible with Microsoft Excel formulas and table referencesAdvanced formula evaluation to easily trace doubling errorsFree, lightweight, and fast spreadsheet processingFamiliar user interface for a seamless transition
microsoft office alternative - wps office

Frequently Asked Questions

Why does my running total formula double the values?

If your running total references an expanding range that includes previous totals inside a SUM function, it will add all previous results together. Summing a series where each value is the sum of all preceding values inherently causes an exponential doubling effect.

What does the OFFSET function do?

The OFFSET function returns a reference to a range that is a specified number of rows and columns away from a starting cell or range. It is often used to create dynamic ranges that adjust automatically as data is added.

Are there better alternatives to OFFSET for sequential numbers?

Yes. OFFSET is a volatile function, meaning it recalculates every time a change is made anywhere in the workbook, which can slow down large files. A better alternative for generating sequential numbers in a table is using the ROW function, like `=ROW()-ROW(Table1[[#Headers]])`.