Excel Tutorial
Excel Tutorial
Introduction
My purpose with this Excel tutorial is to illustrate some Excel tips that will dramatically improve
your efficiency. I make no attempt to be as encyclopedic as some of the 800-page Excel manuals
available. I concentrate on common tasks, not every last thing that can be done in Excel. Also, I
presume that you have some Excel knowledge. For example, I assume you know about rows and
columns, values, labels, and formulas, relative and absolute addresses, and other basic Excel
elements. If you know virtually nothing about Excel, you probably ought to work through an
“Excel for Dummies” book and then work through this tutorial.
The style of this tutorial should be easy to follow. Main topics appear in bold black type. Specific
direction headings are in yellow, and these are followed by detailed directions in red. Additional
comments about the directions appear in blue. Then there are “Try it!” exercises in green. These
“Try it!” exercises are a key feature of this tutorial. I have embedded numerous sample Excel
spreadsheets so that you can try out the directions right away—without switching into Excel.
When you double-click on one of these spreadsheets, you launch Excel, and the spreadsheet
“comes alive.” The menus and toolbars even change to those for Excel. By clicking outside one
of these spreadsheets, you’re back in Word.
The easiest way to maneuver around this tutorial is to switch to outline view. To do so, select
Word’s ViewàOutline menu item, which gives you an extra Outlining menu. Select this menu
and then click on the Show Level dropdown. This lets you choose the level of the outline. You’ll
get good results by choosing Level 2. This lets you see all first-level and second-level headings.
Put your cursor on a heading of interest and then switch back to normal view by selecting Word’s
ViewàPrint Layout menu item. (Try it right now. It’s easy!)
Finally, I suggest that you save this file–RIGHT NOW–as MyXLTutorial.docx (or some such
name) and work with the copy. That way, if you mess anything up as you try the exercises, you
can always go back and retrieve the original file (ExcelTutorial.docx).
Have fun!
Differences in Excel 2007
If Excel 2007 is your first exposure to Excel, you’ll love it. If you’re used to Excel 2003 or an
earlier version, however, you’ll have some unlearning to do. There are two big changes in Excel
2007 and a host of smaller changes. The first big change is that worksheets are much bigger. You
used to have about 65,000 rows and 256 columns. Now you have over a million rows and over
16,000 columns. You’ll hardly ever use this much space, but it’s available.
The second big change is the one you’ll notice right away: you no longer have the usual menus
and toolbars. Microsoft has completely reorganized the user interface to provide menus and
ribbons. Each menu (Home, Insert, Page Layout, etc.) has an associated ribbon that is similar to
the old toolbars. For example, if you click on the Formula menu, you get a ribbon with buttons
that are useful for working with formulas. Each ribbon has several groups of buttons. For
example, the Formulas ribbon has one group called Defined Names with buttons for manipulating
range names. There’s only one way to learn these ribbons: practice and experiment. If you’re
used to the old Excel, you’ll undoubtedly curse at the new ones a few times when you can’t find
something, but you can be assured that they are more logically organized than the old versions.
One particular menu item you’ll miss is ToolsàOptions, for changing various options in Excel.
It’s not gone; it’s just in a different place. To get to it, click on the new Office button (in the
upper left corner of the screen) and then the Excel Options button. From there, you can
The action of an End-arrow combination depends on where you start. It takes you to the last
nonblank cell if you start in a nonblank cell. (If there aren’t any nonblank cells in that direction, it
takes you to the far edge of the sheet.) If you start in a blank cell, it takes you to the first nonblank
cell.
Splitting the Screen
It is often useful to split the screen so that you can see more information.
To split the screen vertically, horizontally, or both:
Click on the narrow “screen splitter” bar just to the right of the bottom scroll bar (for vertical
splitting) or just above the right-hand scroll bar (for horizontal splitting) and drag this to the left
or down.
Splitting gives you two “panes” (or four if you split in both directions). Once you have these
panes, practice scrolling around in any of them, and see how the others react.
Try it! Split the screen either way and then remove the split.
Selecting a Range
Usually in Excel, you select a range and then do something to it (such as enter a formula in it,
format it, delete its contents, and so on). Therefore, it is extremely important to be able to select a
range efficiently. It’s easy if the whole range appears on the screen, but it’s a bit trickier if you
10 13 7 9
1 9 12 7
5 4 1 1
6 12
15 2
13 4 10
Pressing Ctrl-Enter enters what you typed in all of the selected cells (adjusted for relative
addresses), so in general, it can be a real time saver. For example, it can be used to enter the
number 10 in a whole range of cells. Just select the range, type 10, and press Ctrl-Enter.
Try it! Fill up the range B2:D8 with the value 10 by using Ctrl-Enter.
Absolute/Relative References
Absolute and references are indicated in formulas by dollar signs or the lack of them, and they
indicate what happens when you copy or move a formula to a range. You typically want some
parts of the formula to stay fixed (absolute) and others to change relative to the cell position. This
is a crucial concept for efficiency in spreadsheet operations, so you should take some time to
understand it thoroughly. Here are two important things to remember: (1) The dollar signs are
relevant only for the purpose of copying or moving; they have no inherent effect on the formula.
For example, the formulas =5*B3 and =5*$B$3 in cell C3, say, produce exactly the same result.
Their difference is relevant only if you want to copy cell C3 to some range. (2) There is never any
need to type the dollar signs. This can be done with the F4 key.
Try it again! Enter one formula with appropriate absolute/relative addressing in cell C5
that can be copied to C5:F9. (Scroll to the right to see the correct answer.)
Table of revenues for various unit prices and units sold
Units sold
50 100 150 200
Unit price $3.25
$3.50
$3.75
$4.00
$4.25
I have read one Excel book that advocates the use of R1C1 notation everywhere,
reasoning that this notation makes more logical sense. Maybe the author has a point, but
the A1 notation is so ingrained in most of us that the transition to R1C1 notation would
probably start a revolt among millions of Excel users!
Inserting and Deleting Rows or Columns
Often you want to insert or delete rows or columns. Note that deleting a row or column is not the
same as clearing the contents of a row or column—making all of its cells blank. Deleting a row or
column means wiping it out completely.
To insert one or more blank rows:
Click on a row number and drag down as many rows as you want to insert. Then click on the
Insert dropdown and select Insert Sheet Rows. (Interestingly, the Insert dropdown is in the Cells
group of the Home ribbon, not on the Insert ribbon.)
The rows you insert are inserted above the first row you selected. For example, if you select rows
8 through 11 and then insert, four blank rows will be inserted between the old rows 7 and 8.
Try it! Insert blank rows for the data for Feb, Apr, and May.
Filling a Series
Say you want to fill column A, starting in cell A2, with the values 1, 2, and so on up to 1000.
There is an easy way.
To fill a column range with a series:
Enter the first value in the first cell (1 in cell A2). With the cursor in the starting cell (A2), select
the Fill dropdown and then select the Series option to obtain a dialog box. (The Fill dropdown is
in the Editing group of the Home ribbon.) Change the Rows setting to Columns, make sure the
Summation Button
The SUM function is used so often to sum across rows or columns that a button (the Σ button) is
available to automate the procedure. To illustrate its use, suppose you have a table of numbers in
the range B3:E7. You want the row sums to appear in the range F3:F7, and you want the column
sums to appear in the range B8:E8. It’s easy.
To produce row and column sums with the summation button:
Select the range(s) where you want the sums (F3:F7 and B8:E8–remember how to select multiple
ranges?), and click on the summation button.
Note that if you select multiple cells, you get the sums automatically. If you select a single cell
(such as when you have a single column of numbers to sum), you’ll be shown the sum formula
“for your approval” and you’ll have to press Enter to actually enter it. Why does Excel do it this
way–your guess is as good as mine!
Try it! Use the summation button to fill in the row and column sums.
The summation button is in the Editing group of the Home ribbon. If you want a sum, click
directly on the Σ button. Alternately, you can click on the AutoSum dropdown for other options,
including Average, Max, Min, and others.
Range Names
Range names are extremely useful for making your formulas more understandable. After all,
which formula makes more sense: =B20-B21 or =Revenue-Cost? Efficient use of range names
takes some experience, but here are a few useful tips.
To create a range name:
Select a range that you want to name. Then type the desired range name in the upper left “name
box” on the screen. (This box is just above the column A heading. It usually shows the cell
address, such as E13, where the cursor is.)
You can also select the Formulas menu and use the Define Name option in the Defined Names
group to name a range, but typing the range name in the name box is quicker and more intuitive.
By the way, range names are not case sensitive, so that Revenue, revenue, and REVENUE can be
used interchangeably.
Try it! Name the rectangular range containing the numbers Data.
When you type the range name in the name box, make sure you then press Enter to make the
name “stick.” It’s easy to type the name and then click on some other cell without pressing Enter.
(I’ve done it hundreds of time.) If you do so, you’ll find that the range name was not created.
To delete a range name:
Select the Name Manager in the Defined Names group of the Formulas ribbon. This shows a list
of all range names in your workbook. Click on the one you want to delete, and then click on the
Delete button.
Suppose a range has name Costs and you want to rename it UnitCosts. If you highlight the range,
the name box will show Costs. If you then overwrite this with UnitCosts in the name box, the
range will have two names, Costs and UnitCosts. There is nothing inherently wrong with this, but
if you want only a single name, UnitCosts, you will have to delete the Costs name, as described
here.
Try it! The numerical range is currently named Data. Delete this range name and then
rename the range Database.
Suppose you have the labels Revenue, Cost, and Profit in cells A20, A21, and A22, and you
would like the cells B20, B21, and B22 (which will contain the values of revenue, cost, and
profit) to have these range names. Here’s how to do it quickly.
To create range names from adjacent labels:
Select the range consisting of the labels and the cells to be named (A20:B22). Then click on the
Create from Selection button in the Defined Names group of the Formulas ribbon. In the resulting
dialog box, make sure the appropriate option (in this case, Left Column) is checked, and click on
OK.
Excel tries (usually successfully) to guess where the labels are that you want to use as range
names. If it guesses incorrectly, you can always override its guess.
Try it! Name the ranges A3:A8, B3:B8, and so on according to the labels in row 2.
Sometimes it is straightforward to use range names in formulas. For example, if B20 is named
Revenue and B21 is named Cost, then entering the formula =Revenue-Cost in, say, cell B22 is a
natural thing to do. But consider this situation. The range B3:B14 contains revenues for each of
12 months, and its range name is Revenue. Similarly, C3:C14 contains costs, and its range name
is Cost. For each month you want that month’s revenue minus cost in the appropriate cell in
column D. You will get it correct if you select the range D3:D14, type the formula =Revenue-
Cost, and press Ctrl-Enter. If you click on any cell in this range, you’ll see the formula
=Revenue-Cost.
This is pretty amazing. How does Excel know that the formula in D3, for example, is really =B3-
C3? Let’s just say that it’s smart enough to figure this out. If it confuses you, however, you can
always enter =B3-C3 and copy it down. Then you’re safe, but you’ve lost the advantage of range
names!
Try it! Enter the formula for all of D3:D14 using range names. (If you like, calculate profits
again in column E in the usual way, without range names.)
Total cost
AVERAGE Function
The AVERAGE function averages all of the numeric cells in a range.
To use the AVERAGE function:
Enter the formula =AVERAGE(range) where range is any range. This produces the average of
the numeric values in the range.
Note that the AVERAGE function ignores labels and blank cells in the average. So, for example,
if the range C3:C50 includes scores for students on a test, but cells C6 and C32 are blank because
these students haven’t yet taken the test, then =AVERAGE(C3:C50) averages only the scores for
SUMPRODUCT Function
There are many times when you need to sum products of values in two (or possibly more than
two) similar-sized ranges. Fortunately, there is an Excel function that sums products quickly.
To use the SUMPRODUCT function
Enter the formula =SUMPRODUCT(range1,range2), where range1 and range2 are exactly the
same size. For example, they might be two column ranges with 10 cells each, or they might be
two ranges with 4 rows and 10 columns each. The formula sums the products of the
corresponding values from the two ranges.
IF Function
IF functions are very useful, and they vary from simple to complex. I’ll provide a few examples.
To enter a basic IF function:
Enter the formula =IF(condition,expression1,expression2), where condition is any condition that
is either true or false, expression1 is the value of the formula if the condition is true, and
expression2 is the value of the formula if the condition is false.
A simple example is =IF(A1<5,10,“NA”). Note that if either of the expressions is a label (as
opposed to a numeric value), it should be enclosed in double quotes.
Try it! Enter appropriate IF formulas in columns C and D. (Scroll to the right to see the
correct answer.)
For each product, if the end inventory is less than or equal to 50 units,
enough units are ordered to bring stock back up to 200; otherwise, no
units of that product are ordered
Sometimes IF functions are nested. For example, there might be three possibilities, depending on
whether the value in cell A1 is negative, zero, or positive. A nested IF formula can then be used
as follows.
To use nested IF functions:
Enter the formula =IF(condition1,expression1,IF(condition2,expression2,expression3)). If
condition1 is true, the relevant value is expression1. Otherwise, condition2 is checked. If it is
true, the relevant value is expression2. Otherwise, the relevant value is expression3.
Sometimes more complex conditions (AND/OR conditions) are useful in IF functions. These are
not difficult once you know the syntax.
To use an AND condition in an IF function:
Enter the formula =IF(AND(condition1,condition2),expression1,expression2). This results in
expression1 if both condition1 and condition2 are true. Otherwise, it results in expression2.
Note the syntax. The keyword AND is followed by the conditions, separated by a comma and
enclosed within parentheses. Also, note that more than two conditions could be included in the
AND, all separated by commas.
Try it! Use an IF function with an AND condition to fill in the bordered range. (Scroll to the
right to see the correct answer. Note the double quotes for labels.)
Investor sells stock only if its price has gone up three consecutive days
(including the current day)
There are times where the first column of the lookup table are not sorted in ascending order. This
is still allowable, but then you need to include the fourth argument with value FALSE in the
VLOOKUP function. In this case, VLOOKUP will look for an exact match and will return an
error if doesn’t find an exact match.
Try it! Use a VLOOKUP function in column C to find the gradepoints for each student.
Note that the grades in column E of the lookup table are in the “natural” order, but they
are not in Excel’s A-Z sort order. Therefore, FALSE must be entered as the fourth
argument in the VLOOKUP function.
Student Grade Gradepoints Grade Gradepoints
Adams B A 4
Davis A-‐ A-‐ 3.7
Edwards C+ B+ 3.3
Johnson B-‐ B 3
Myers B+ B-‐ 2.7
Smith A C+ 2.3
Thomson C C 2
C-‐ 1.7
Data Tables
Data tables, also called what-if tables, allow you to see very quickly how one or more outputs
change as one or two key inputs change. There are two types of data tables: one-way tables and
two-way tables. A one-way table has one input and any number of outputs. A two-way table has
two inputs but only one output. I’ll demonstrate both types.
To illustrate, suppose Mr. Jones buys a new car for $20,000, makes a $5,000 down payment, and
finances the remaining amount over the next 36 months at an 8.5% annual interest rate. There are
at least two outputs that might be of interest: the monthly payment and the total interest paid
through the duration of the loan. These are affected by at least two inputs: the amount of the
down payment and the annual interest rate.
Let’s first look at a simple one-way data table, which illustrates how a single output, monthly
payment, varies as the annual interest rate varies. This is shown in the following spreadsheet.
Price of car $20,000 Data table
Down payment $5,000 Interest rate Monthly payment
Amount financed $15,000 $473.51
Annual interest rate 8.50% 8.00% $470.05
Number of payments 36 8.25% $471.78
8.50% $473.51
Monthly payment $473.51 8.75% $475.25
Total interest paid $2,046.47 9.00% $477.00
Try it! Create a one-way data table that shows the monthly payments and the total interest
paid for each term (value in cell B5) from 12 to 48 in increments of 12. (Scroll to the right
for the correct answer.)
Price of car $20,000
Down payment $5,000
Amount financed $15,000
Annual interest rate 8.50%
Number of payments 36
Two-way tables allow you to vary two inputs, one along a row and one along a column, and
capture a single output in the body of the table. The following spreadsheet illustrates this, where
the annual interest rate and the amount of the down payment both vary, and the single output is
the monthly payment.
Price of car $20,000 Data table of monthly payment
Down payment $5,000 $473.51 $4,000 $5,000 $6,000
Amount financed $15,000 8.00% $501.38 $470.05 $438.71
Annual interest rate 8.50% 8.25% $503.23 $471.78 $440.33
Number of payments 36 8.50% $505.08 $473.51 $441.95
8.75% $506.94 $475.25 $443.57
Monthly payment $473.51 9.00% $508.80 $477.00 $445.20
Total interest paid $2,046.47
Fortunately, there is a much better way. Logically, we observe that every name has a comma and
a space. The first name is what comes after the comma and space, and the last name is what
Try it! This is a bit more difficult than the name-parsing exercise above. Now each name is
a first name, then a middle initial and a period, and then a last name. The goal is to have
three columns with the first name, the middle initial (no period), and the last name. (Scroll
to the right for a possible solution. This solution finds each piece of the name in a single
formula. You might prefer to break it up into several formulas.)
Bob E. Jones
Stephen C. Davis
Andy T. Thompson
John F. Wilson
Kathy C. Fredericks
Karen D. Williams
Tom T. Smith
Peter F. Jennings
Ted R. Benson
Jason E. Samson
Concatenating Text
The opposite of parsing text is concatenating text. To parse text, we start with a long piece of text
and separate it into pieces. To concatenate, we start with two or more pieces of text and “string
them together.” For example, we might parse “Bob Jones” into “Bob” and “Jones”. In the other
direction, we might concatenate “Bob” and “Jones” into “Bob Jones”. The key to concatenating
in Excel is the ampersand symbol, &.
To concatenate the text in cells A1 and B1, for example, enter the formula =A1&B1 in cell C1.
Literal text can also be included, such as =A1&“, ”&B1. In this case, if A1 contains “Jones” and
B1 contains “Bob”, then C1 will contain “Jones, Bob”. This concatenates the last name, a literal
comma and space, and the first name.
DATEDIF Function
Because dates are stored as numbers, it is possible to perform arithmetic on them. One particular
arithmetic operation makes sense: subtraction. If you subtract one date from another, you find the
number of days between them. You can do this by simple subtraction of cells, or you can get
more control with the DATEDIF function. If you use simple subtraction, you automatically get
Days (subtraction)
Days (DATEDIF)
Months (DATEDIF)
Years (DATEDIF)
Statistical Functions
There are many statistical functions built into Excel. I’ve already discussed the simplest statistical
function, the AVERAGE function. (Statisticians often call this the mean, or the sample mean, but
it’s simply the average of a set of numbers.) In this section I’ll discuss a few other statistical
functions.
MEDIAN, MODE Functions
The median is the “middle” value in a set of numbers, in the sense that half are above it and half
are below it. More precisely, when the values are sorted in increasing order, it is the middle value
if there are an odd number of values, and it is the average of the two middle values if there are an
even number of values. Fortunately, Excel takes care of the details with the MEDIAN function.
To use the MEDIAN function:
Enter the formula =MEDIAN(datarange), where datarange is any range that contains a set of
values.
Note that if datarange contains labels or blank cells, these are ignored when calculating the
median. This is true for the other statistical function listed below. (Of course, it is also true for the
AVERAGE function.)
Try it! Find the median of the numbers in column A (which extend well below row 10). Is it
the same as the average? Why or why not? (Scroll to the right to see the answers.)
33 Median:
3 Average:
0 Mode:
1
4
14
5
41
3
5
The mode is the most likely value, the one that occurs most often. If no value occurs more than
once or twice, then the mode isn’t very useful. However, if a clothing retailer records the size of
each dress sold, then the mode is quite useful. It is the best-selling dress size. Excel’s MODE
function calculates the mode.
To use the MODE function:
The PERCENTILE function takes any percentage (expressed as a decimal number) and returns
the value such that the given percentage of all values is below this value. For example, if we use
the percentage 10% (0.10) and the PERCENTILE function returns 45, then we know that 10% of
all values in the data set are below 45 and 90% are above it.
To use the PERCENTILE function:
Enter the formula =PERCENTILE(datarange,pct), where pct is any percentage expressed as a
decimal, such as 0.10 for 10%.
Try it! Find the requested percentiles in the above spreadsheet, and place your formulas in
column G. For example, P10 indicates the 10th percentile. Do you see the relationship
between the quartiles and certain percentiles? (Again, answers to the right.)
Note that the QUARTILE and PERCENTILE functions are typically used on data sets with a
large number of observations. If they are used on a very small data set, you might be surprised at
the results. In fact, you might even disagree with them. For example, if the data set has the 5
The LARGE and SMALL functions are less well-known Excel functions, but they can be useful.
Let’s say we have a data set with 250 values and we want the 10 largest values. Then we can find
these with the LARGE function, using arguments 1 through 10. Similarly, we can use the
SMALL function to find the 10 smallest values.
To use the LARGE function:
Enter the formula =LARGE(datarange,k), where k is any integer from 1 to the number of data
values. This returns the kth largest value.
To use the SMALL function:
Enter the formula =SMALL(datarange,k), where k is any integer from 1 to the number of data
values. This returns the kth smallest value.
Typically, we would enter a sequence of values of k in some column, enter the LARGE or
SMALL formula for the first of them, and then copy down.
Try it! For the data set in column A, which extends well below row 10, find the 10 largest
values and 10 smallest values in columns D and E. Use the values of k in column C. (Scroll
to the right for the answers.)
NPV
If a company incurs cash inflows or outflows at irregular times, such as January 15, then May 30,
then July 1, and so on, the NPV function cannot be used. You could go back to your finance book
to see how to discount future payments directly, but there is an easier way, using the little-known
XNPV function. This function is actually part of the Analysis ToolPak that ships with Excel.
However, you might not have it loaded. To check, click on the Office button, then Excel Options,
then Add-Ins, and then Go. If the Analysis ToolPak item isn’t checked, check it. Then you can
use the XNPV function.
To use the XNPV function:
Enter the formula =XNPV(discountrate,cashvalues,dates), where discountrate is the same as with
NPV and cashvalues and dates are a stream of pairs of cash values and the dates when they are
incurred.
Typically, the first cash value will be an outflow and the rest will be inflows. In this case, the
initial outflow (investment) should be included in the XNPV function, and the NPV will be
discounted back to the date of this initial payment. This payment should be entered as a negative
number.
Try it! First make sure the Analysis ToolPak is loaded. Then find the net present value of
the stream of cash inflows shown below, where the first is really a payment at the beginning
of 2005. (Scroll down to see the answer.)
Discount rate 12%
NPV
IRR Function
Companies often have investment opportunities where they pay initially and then get returns in
the future. When discussing NPV, I illustrated in the “Try it!” exercise that the NPV of such an
investment decreases as the discount rate increases. In fact, for large enough discount rates, the
IRR
Plant 1
City 2
Unit shipping cost
MATCH Function
The MATCH function is handy for finding a cell in a range that matches a given value. It is often
used in the following situation. Suppose you have decision variable such as order quantity that
needs to chosen so as to maximize some profit. You enter some formulas that link order quantity
to the profit. Then you create a data table that finds the profit for a number of possible order
quantities. The MATCH function lets you locate the cell in the data table with the smallest profit.
To use the MATCH function:
Enter the formula =MATCH(value,range,FALSE). This returns the index of the cell in range that
matches value. For example, if the match occurs in the third cell of the range, this returns 3.
The last argument, FALSE, indicates that we want an exact match. (Actually, FALSE can be
replaced by 0 with the same effect.) If there is no exact match, the formula returns an error. The
MATCH function can also look for an inexact match by using third argument TRUE. I’ll let you
look this up in online help.
The following spreadsheet indicates how MATCH can be used in conjunction with INDEX. You
can imagine that a profit model has led to the table shown, where each order quantity listed leads
to the corresponding profit. For this small example, it is obvious that the largest expected profit is
$5,640, which corresponds to an order quantity of 300. However, if inputs (not shown) that drive
the profit model change, the best order quantity and the corresponding profit could change. We
want formulas in cells B9 and B10 to show and the best profit and best order quantity regardless
of where they appear in the table.
OFFSET function
The OFFSET function allows you to reference a range (or single cell) relative to another cell. It is
hard to appreciate unless you see some examples, so I will present two below.
To use the OFFSET function:
Enter the formula =OFFSET(cell,r_offset,c_offset,height,width). Here, r_offset and c_offset are
integers that can be positive, negative, or zero, and height and width are optional positive
integers. If either height and width are missing, they default to 1. This formula returns a reference
to a range that has height rows and width columns. To find its upper left cell, start at cell, move
r_offset rows down (if positive) or up (if negative), and move c_offset columns to the right (if
positive) or the left (if negative).
For example the formula =OFFSET(A1,2,3,4,1) returns a reference to the range D3:D6. It is a
range with 4 rows and 1 column, and its upper left cell, D3, is offset from cell A1 by going 2
rows down and 3 columns to the right. As another example, the formula =OFFSET(F4,0,-3)
refers to a single cell (because the last two arguments are missing), and this single cell is 3
columns to the left of F4, namely, C4.
A good example of the OFFSET function appears in the spreadsheet below. Our company sells to
a retailer, and the retailer pays a certain number of months later, as indicated by the payment
delay (in months) in cell B1. The sales occur as indicated in row 4, but the receipts from the
retailer occur 2 months later, as indicated in row 5.
Month Oct Nov Dec Jan Feb Mar Apr May Jun
Sales 3200 4600 5500 2500 3300 4200 2900 4500 2750
Receipts 4600 5500 2500 3300 4200 2900
Without the OFFSET function, we could simply put links in the Receipts row that point to sales 2
months earlier. For example, the formula for receipts in January would be =C4. But what if the
retailer decides to delay payments by 3 months instead of 2? Then we would need to fix the links
in the Receipts row. However, a clever use of OFFSET avoids this updating of links. We use the
formula =OFFSET(E4,0,-$B$1) in cell E5 for January and then copy it across row 5 for the other
months. This formula says to start in the January sales cell and go a certain number of cells to the
left (because of the minus sign), where this number is specified in cell B1. To see how it works,
try changing the value in cell B1 to 3 or 1. (What would go wrong if you changed this delay to 4
months? How would you fix it?)
Try it! Suppose that a manufacturing company buys raw materials from a supplier. If the
cost in any month is $x, the company pays 40% of this cost 1 month from now and the other
60% 2 months from now. Use the OFFSET function to calculate the payments made in
January through August, based on the costs through July. These calculated payments
should change automatically if you change the inputs in cells B1:B2 and D1:D2. For
example, make sure your formulas react correctly if you enter 2 and 3 in cells D1 and D2.
(Scroll down to see the answer.)
Percent paid 40% when: 1 month from now
60% 2 months from now
Another great use of the OFFSET function is to create a dynamic range name, one that expands or
contracts depending on the number of data values in a range. Consider the following spreadsheet,
where monthly sales values are entered in column B, and the total of all sales values is calculated
in cell E1. Every month, an extra sales value and its month label are appended to the list in
columns A and B. We can make the formula in cell E1 automatically adjust to the appended
values by using a dynamic range name.
To do this, I selected the Define Name dropdown from the Defined Names group in the Formulas
ribbon. In the Name box at the top of the resulting dialog box, I entered Sales as the range name.
In the Refers To box at the bottom, I entered the formula =OFFSET(B1,1,0,COUNT(B:B),1).
Then I clicked on OK. Finally, I entered the formula =SUM(Sales) in cell E1. Note that
COUNT(B:B) refers to the count of all numeric cells in column B. So this OFFSET function
refers to a range that starts 1 cell down from cell B1 and has as many rows as there are numeric
values in column B. To see how it adjusts, enter a sales value for June in cell B7 and watch how
the total changes automatically.
Note that COUNT(B:B) counts all of the numeric values in column B, so if there were some other
numbers down below sales, they could mess up the logic in the OFFSET function. For example,
suppose there were a numeric value in cell B100. Then, given the data above, COUNT(B:B)
would return 6, so at that point, the Sales range name would refer to the range B2:B7, that is, 6
cells starting with B2. The moral is that if you want to use dynamic range names, it’s best not to
include “junk” in the affected columns or rows.
Try it! The following spreadsheet has sales by month and by salesperson. We want to sum
sales over all months and salespeople in cell B2. Create a dynamic range name that updates
when new months are added and when salesperson columns are added or deleted. Then use
this range name to sum sales in cell B2. (Scroll across to see answer.)
Total sales
Smith Jones Wilson Donalds
Jan-05 $6,700 $7,400 $5,800 $9,000
Feb-05 $5,800 $8,900 $5,500 $7,900
Mar-05 $5,000 $7,900 $5,900 $8,300
Apr-05 $6,700 $5,800 $6,000 $9,700
May-05 $9,400 $7,800 $6,700 $8,400
Jun-05 $6,200 $5,800 $9,400 $8,500
Jul-05 $8,700 $5,300 $6,900 $7,500
A great use for dynamic range names is with pivot tables. Suppose you want to base a pivot table
on a data set that is likely to expand (or even contract) as time goes on. You can create a dynamic
range name such as MyData for the data set. Then when the pivot table wizard asks for the data
range, enter MyData. If your data set expands or contracts in the future, all you need to do is click
on the Refresh pivot table button (!) to update the pivot table with the newest data. If you show
this trick to your colleagues at work, you’ll be a hero!