The OFFSET Function takes a specified beginning cell reference then returns a cell reference or range reference that starts from that beginning cell. You can choose to offset the cell or range being returned. OFFSET along with INDIRECT are key functions used when constructing dynamic names that self adjust with worksheet data.

The OFFSET function is a computer program that you run from a worksheet cell formula. It takes a specified beginning cell reference then returns a cell reference or range reference that is offset from that beginning cell. For example, say you specify a cell reference of A1 in the function and you want to grab the cell value that is two rows down and one over, then you would use the OFFSET worksheet function to accomplish this task. The OFFSET function just does not return a single cell, it also returns ranges as well. In the case where it returns a range it is usually nested inside another function like SUM. The reason to use the OFFSET function really boils down to the scenario where you can lock onto to something like a header using some function like MATCH but you really want another cell around it. You cannot search on that cell because it is a number that keeps changing but the header always remains the same. So you lock onto what you can on the worksheet then grab the value around it. Another key use is when you go after data that fluctuates in size on the worksheet. The OFFSET worksheet function is a key player in locking onto the precise range regardless if it has shifted in size. This particular capability has applications in every feature that uses a range in Microsoft Excel including names, Pivot Tables, charts, formulas...etc. Many times the COUNTA worksheet function is nested in the 4th and 5th arguments of this function to determine the size of fluctuating data on a worksheet.

se the SUBTOTAL worksheet function when you have to exclude hidden rows in a basic calculation like taking the sum, average, max, min...etc of a group of cells. It is ideal for using with a filter like AutoFilter or Advanced Filter or on worksheets where rows are hidden and you do not want to include them in your calculations.

Whenever you type a formula in a worksheet cell, this is called syntax or grammar. The general OFFSET function syntax has a format like this when you type it in a worksheet cell:

=OFFSET(reference, rows, cols, [height], [width])

Where reference, rows, cols, [height], [width] are called the function argument list. Remember, you are running a computer program at this point so the program needs information to operate and that is why there is an argument list. When you see an argument list and you see square brackets [ ] around the argument name, this means the argument is optional and you do not have to include it when typing unless you need it. So for the syntax above, you need to include 3 arguments for the OFFSET worksheet function when typing it in a worksheet cell formula in order for it to calculate correctly. What argument values can be used are discussed below. Remember functions expect certain things in their argument lists, if you do not put the correct information in the list they will generate an error when run.

- reference: The reference argument can be a cell reference, range reference or formula that returns a reference. It is the reference point that OFFSET uses to lock onto another cell or range around it.
- rows: This argument can be a constant, cell reference or formula that specifies the number of rows offset from the reference point. The number of rows can be either negative or positive in value. For example, using 2 as the rows argument specifies that the reference is 2 rows below the reference.
- cols: This argument can be a constant, cell reference or formula that specifies the number of columns offset from the reference point. The number of columns can be either negative or positive in value. For example, using 3 as the columns argument specifies that the reference is 3 columns to the right of the reference.
- height: This argument can be a constant, cell reference or formula that specifies how many rows should be included from the offset reference determined by the rows and cols argument. You set this argument if you want to return a range reference not just a cell reference. Use this argument to create a dynamic range reference that adjusts to the size of data automatically.
- width: This argument can be a constant, cell reference or formula that specifies how many columns should be included from the offset reference determined by the rows and cols argument. You set this argument if you want to return a range reference not just a cell reference. Use this argument to create a dynamic range reference that adjusts to the size of data automatically.

Since the OFFSET function is a computer program, it runs when you press Enter to enter the formula that contains it. If any of the arguments are wrong, the function will return an error.

When typing the OFFSET function in a worksheet cell formula, you need to replace the argument list with arguments separating each one with a comma (,). Some typical arguments you can use are:

Argument Type | Cell Formula | Example Explanation |

Cell References | = OFFSET( A1, 2, 3 ) | Returns the cell reference that is two rows down and three columns from cell A1 which is D3 |

Range Reference | = SUM( OFFSET( A1:A4, 4, 2 ) ) | Returns the range reference C5:C8 that the SUM function then uses |

Range Reference | = SUM( OFFSET( A1, 0, 0, COUNTA( A1:A100 ) ) ) | Returns the range reference starting a cell A1 to the end of the data in the range A1:A100. The COUNTA worksheet function calculates the end of the data assuming no blanks are present in the cells. Since the width argument is not specified it is assumed to be the width of the reference argument which is 1 |

* Note that the OFFSET and COUNTA worksheet functions are used to create a dynamic name in Excel. Names can refer to cells or ranges on the Excel worksheet. Consult Excel help on how to name a cell.

- If the rows and cols offset reference are off of the worksheet, OFFSET returns the #REF! error value.
- If the height or width arguments are omitted, it is assumed to be the same height or width as the reference argument.
- The OFFSET function does not actually move cells; it just returns a reference. OFFSET can be used with any function expecting a reference argument like SUM, COUNTIF, VLOOKUP...etc.

Need Help? Please call us at 1.805.498.7162

Excel Training Services

Microsoft Excel Products

EMAGENIT Company Information

Copyright © 2002-2019

EMAGENIT All Rights Reserved