Using INDEX() to Automatically Update Range in SUM() Formula

Last reviewed: August 20, 1995
Article ID: Q73586
The information in this article applies to:
  • Microsoft Excel for Windows, versions 2.x, 3.x, 4.x, 5.0, 5.0c
  • Microsoft Excel for the Macintosh, versions 2.x, 3.x, 4.x, 5.0, 5.0a
  • Microsoft Excel for Windows 95, version 7.0
  • Microsoft Excel for Windows NT, version 5.0

In Microsoft Excel, a range referenced in a SUM() function (or any function) does not automatically expand to include newly added rows or columns. This situation is true regardless of whether the formula references a range, as in the formula =SUM(A1:E1), or a defined name, as in the formula =SUM(NamedRange).

If you want to reference a range so that it is automatically updated when you add new rows or columns, you can use the INDEX() and SUM() functions in a formula similar to the following :

   =SUM(first_cell:INDEX(column:column,ROW()-1))

In this formula, <first_cell> is the address of the first cell of the range to be summed and <column> is the letter identifying the column of the summed range.

Because the INDEX() function always returns the address of the cell immediately preceding the cell containing the SUM() formula, there is no need to edit the formula when you insert new rows.

If your data is arranged horizontally instead of vertically, use the following formula:

   =SUM(first_cell:INDEX(row:row,COLUMN()-1))

Note that in the above formula the only difference from the previous one is that column:column is changed to row:row, and ROW() is changed to COLUMN().

The above formulas are useful in situations where want to keep a running total of information.

Example

  1. In a new worksheet, type the following:

       A1:  Months             B1: Amounts
       A2:  May                B2: 50
       A3:  June               B3: 50
       A4:  July               B4: 50
       A5:                     B5:
    
    

  2. To create a formula such that you can keep a running total of this information, type the following:

       A6:  Total              B6: =SUM(B2:INDEX(B:B,ROW()-1))
    
    

Explanation of Formula in B6

  • The ROW() function returns the row number of the active cell (in this case, B6).
  • INDEX(B:B,ROW()-1) returns the cell immediately preceding the active cell (in this case, B5).
  • The entire function is converted to =SUM(B2:B5).

REFERENCES

In Microsoft Excel version 5.0, the equivalent of the "Function Reference" is contained in the Online Help. To access this information, press the F1 key (or select Contents from the Help menu), then choose Reference Information. You should now see Late Breaking Information about Excel and General Reference. Under General Reference, select Worksheet Functions and scroll through the Alphabetical List of Worksheet Functions.

"Function Reference," version 4.0, pages 238, 423

"Function Reference," version 3.0, pages 127, 231

"Functions and Macros," version 2.0 for Windows and OS/2, pages 60, 112

"The Expert," Volume 4, Number 6, June 1991


KBCategory: kbusage
KBSubcategory:

Additional reference words: 7.00 2.2 2.20 2.21 3.0 3.00 4.00 4.00a 5.00


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: August 20, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.