| TECHNOLOGY
WORKSHOP |
| You can make Excel safer
and more friendly. |
Block That Spreadsheet
Error
BY THEO
CALLAHAN
t
one time or another it happens to nearly every
spreadsheet user: In an instant a perfectly good
spreadsheet disintegrates right before your eyes,
leaving a wasteland of #VALUE! error cells. What
triggered the problem? Someone mistyped a value
into one cell, causing the #VALUE! error message to be propagated throughout every
dependent celloften with catastrophic
results. Worse, if the worksheet were linked to a
database or part of a web of interconnected
spreadsheets, the error would instantly corrupt
all those files, too. |
| The bad
news is that errors cant be
avoidedthats why pencils have
erasers. The good news is that such an
error can be prevented from devastating a
spreadsheet by alerting the responsible
person and giving him or her not only an
opportunity to correct it but even a hint
about what went wrong. |
Key to
Instructions
To help readers
follow the instructions in this
article, we use two different
typefaces.Boldface
type identifies the
names of icons, agendas, URLs and
application commands.
Sans serif
type indicates
instructions and commands that
users should type and file names.
|
|
To see how
lets begin with a typical spreadsheet
designed to track late shipments of a product
(see exhibit 1, below).
| EXHIBIT
1 |
 |
Column B
contains the products order dates and
column C the shipping dates. Imbedded throughout
column D is a formula that calculates the
difference between the two dates and subtracts
three holiday dates as shown in the upper
right-hand corner of the spreadsheet:
=NETWORKDAYS(B7,C7,Holidays). The summary at the
top of the spreadsheet contains a formula that
computes the average number of business days
between order date and ship date:
=AVERAGE(D7:D100).
As youll see it takes
just one erroreven a subtle oneto
waste the whole spreadsheet. For example, say the
person who is filling in the data on Days
on Order types an error in cell
C13just a misplaced comma after January 12. Exhibit 2, below, illustrates how that
little typo generates #VALUE! error messages and
renders the report useless.
| EXHIBIT
2 |
 |
In this case,
since the red errors messages appear near where
the mistake was entered, the user can see the
errors location. But if the error message
is on a different page of the spreadsheet or
affects a linked file, he or she would have no
clue that an error was made and is wreaking
havoc.
BLUNDER
BLOCKER
Excel has a
functioncalled Validationthat solves
this problem. To demonstrate well create a
typical expense report that will include columns
for the date of the expense, its category, dollar
amount and a column for entering any additional
information. See exhibit 3, below.
| EXHIBIT
3 |
 |
Go to A12 and
type Date and format the column
for Dates; in B12 type Category; in
C12 Amount and format the column for Currency;
and in D12 type Comments.
Weve purposely left room at the top for the
company logo and employee information.
|
| EXHIBIT
4 |
 |
|
Starting
with the A column well specify the
kind of data that can be legitimately
entered, so if someone puts in any other
kind of data, Excel will trigger an
immediate alert at the error location.
Begin by highlighting column A by
clicking on the column labelA. Then go to the toolbar and
click on Data, Validation. That brings up the Data
Validation screen (see exhibit
4, at left). Choose Date
as the type of data from the
Allow: box. To restrict the
valid dates to this year, enter 1/1/02 under Start Date:
and 12/31/02 under End Date:.
|
|
| For now
ignore the second two tabs (Input
Message and Error Alert).
Click on OK to get back
to the spreadsheet. Now, if you type a bogus
datesay June 31, 2002in A13, you will instantly
get a generic warning message (see
exhibit 5, at right).
|
| EXHIBIT
5 |
 |
|
|
| EXHIBIT
6 |
 |
|
Lets
customize the error message so it will
tell users the reason for the alert. To
do that, return to the Data
Validation screen and click on
the Error Alert tab (see
exhibit 6, at left). Caveat: Resist the
temptation to prepare humorous or
sarcastic text in custom error
messagesa common occurrence. Such
text has a way of becoming not funny and
quite irritating after a while. Also,
keep in mind that you are trying to be
helpful.
|
|
| The next
step is to set up validation rules for
the other columns. For the rules to be
effective, we need to be sure everyone
uses the same expense categories with the
same codes. For our example, well
use only the categories with the
following codes: Code
Description
ENTR = Client entertainment
HOTL = Lodging
MEAL = Employee meals
TRVL = Airfare, taxi
Select all of Column B,
go to Data, Validation
and click on the first tab, Settings.
Click on Allow: to
generate a dropdown list and select List.
The box will change to look like exhibit
7, at right. In the Source: box,
type the four codes from the above list.
Leave a check in the Ignore Blank
box (so a blank cell will not trigger an
error message) and in the In-cell
dropdown box.
|
| EXHIBIT
7 |
 |
|
|
| We placed a check in the In-cell
dropdown box so that when users click on
a cell in the Categories column
they automatically generate a menu of all the
listed codes (see exhibit 8, below); this saves
users from having to type them inanother
way to prevent typing mistakes. |
| EXHIBIT
8 |
 |
|
Note that
it is still possible to type an invalid
entry into a data cell, so you should go
to the Error Alert tab
and create a suitable error message. If
the list of categories weve used
doesnt seem very robust, dont
worry, well probably be adding to
it. For one thing, every expense report
needs a catchall category. Instead of
adding it here, lets insert a
miscellaneous (MISC) category to a range
on the spreadsheet. In cells E1 through
E4, type in each of our categories from
the above table. Then, in E5 type MISC. Now go back and choose Column
B and go to Data Validation. In
the Source: box, clear
out our earlier typing. Use the mouse to
choose E1 through E5. Click on OK. |
|
| Caveat: You must note
two things. First, if you change the list of
valid entries, existing entries will not be
updated. For instance, if you decide that HOTL
should really be LODG, changing the value in the
list will prevent anyone from using HOTL in the
future, but cells already containing HOTL will
remain. You may add entries to the valid list at
any time, but you should make changes carefully,
keeping an eye out for existing data. Also, the list of valid entries must be
placed on the same sheet as the data being
entered unless you use a named range. To use a
named range, highlight the expense categories in
E1:E5 and go to the top left corner of your Excel
window. Just below the Font Box is the Name Box
(see screenshot below).
|
Type a phrase
with no spaces like ExpenseCat
into the Name Box. Now go back to Data
Validation and replace E1:E5
with =ExpenseCat. You use the same process to place your
named range on Sheet2. The advantage is that the
person filling out the expense report
doesnt see (and wont modify) the
validation list. RAISING THE FLAG
So far weve
disallowed entries that didnt meet the
criteria. But sometimes we just want to warn a
user that a value is unusual or to flag him or
her with useful information. For example, when we
want to warn users that any expense over $500
must be signed by a vice-president, highlight
Column C and bring up the Data Validation
dialog box. In the Allow: box,
choose Decimal. In the Data:
box, choose less than or equal to. In
the Maximum: box, type 500.
Go to the Error Alert tab. In
the box marked Style: change Stop
to Information. In the Title:
box, type Large expense,
and in the Error message: box
type Expenses
over $500 must be approved by a vice-president and click on OK (see
exhibit 9, below). Now all the cells in Column C
expect values less than $500. As long as we enter
smaller values, nothing happens. If we enter a
value greater than $500, the informational
message is triggered.
|
| EXHIBIT
9 |
 |
|
Test that
it works. Enter a figure less than $500;
nothing should happen. But if you put in
an amount over $500, the warning should
pop up. In the Style:
box in Data Validation, you
may have noticed another option called Warning.
When this is added, the user is asked to
verify the data. In other words its
just a warning to the user to
double-check the entry.
Now lets add a
validation for column DComments.
Since Excel can handle a maximum of only
255 characters in any one cell, entering
information that exceeds that limit
either gets lost or, in a worst-case
scenario, corrupts the cell and can ruin
the spreadsheet. To impose a
225-character limit to cells in the Comments
column, highlight the Comments
column and go to the Settings
tab and the Allow: box, choosing Text
length. In the Data:
box, select less than
and set the Maximum: box
at 255.
|
|
VALIDATION
WITH FORMULAS
So far weve
used only constant conditions. For instance,
expenses must be less than $500 and expense codes
must be in a standard list. But what if
youd like to check a changing condition?
What if an activity must occur within a certain
time range or a value must be at least a certain
percentage of another?In
the Data Validation dialog box
under Allow: you will see Custom.
This validation feature lets you use any valid
Excel formula that evaluates to TRUE or FALSE.
For instance, if you type =(5>3) in a
cell, it will show TRUE. If you type =(2=7)
in a cell, it will show FALSE. Our formula must
compare the value in the data validation cell
with such a formula.
To illustrate, imagine a
catalog sales department with different shipping
charges. Certain products have one rate and bulk
products have another. Imagine, too, that only
one constant holds: Shipping is never less than
15% of a products price. Lets set up
a data validation cell to test that.
|
| Our goal
is to write a formula that will evaluate
to TRUE when shipping charges are more
than 15% and FALSE when they are less. In
the spreadsheet shown in exhibit 10, at
right, D1 contains the price and E1 the
shipping charges; so our formula will be =(E1 >
(D1*0.15)).
Remember to go to the Error Alert
tab and change the Style
to Stop and write an
appropriate error message. Caveat: When you choose
column E to set up the data validation,
notice that while the entire column is
shaded, only one cell is highlighted.
That cell (probably E1) was the active
cellthat is, the cell to use in our
validation formula. The black arrow in
exhibit 10 shows the highlighted cell. Be
careful when entering validation formulas
to use the active cells address;
otherwise, you may be checking the amount
just above or below a specific cell. To
be sure you have selected the correct
cell, look in the Name Boxthe
red arrow in exhibit 10 points to it.
|
| EXHIBIT
10 |
 |
|
|
CLEAN
UP
If you want to add
your company logo and other identification
information at the top of the spreadsheets in
rows 1 through 11, well have to clean out
the rules just for those rows. Start by
highlighting rows 1 through 11 or just select the
range from A1 to D11. Go to Data
Validation and you probably will get one
of two error messages depending on how you
selected the range. One message states that some
rows do not contain data validation rules and
asks do you want to extend them?
Since were about to delete the rules, it
doesnt matter what you answer. So just
click on Yes to get rid of the
box. The other likely error message tells you
that your range contains multiple types
of data validation and asks if you would
like to clear them. Click on Yes.That should bring you back to the
regular Data Validation screen.
At the bottom left is a Clear All
box. Before you click on that box, make sure the
check box just above it that says Apply
these changes to all other cells with the same
settings is clear. If that box is
checked and you then click on Clear All, youll
clear all of your rulesand you dont
want to do that. Now click on Clear All
and on OK. Youll find that
you can now type in anything in the first few
rows of your spreadsheet, but the rules still
apply in the expenses section. To test that, I
inserted a logo at the top left for my company
and entered my information about the nature of my
expenses near the top (see exhibit 11, below).
| EXHIBIT
11 |
 |
You now have the
basic tools to make your spreadsheets more robust
and user friendly. However, use data validation
judiciously. If you put in too many rules, users
may feel boxed inlimited in what they can
do. Remember, data validation is not a security
tool and it doesnt make Excel an enterprise
database application. If you want to take
validation to the next logical step, youll
need to use Visual Basic for Applications code.
And for true data validation, data security and
data integrity, you must migrate to a database
such as Access, SQL Server or Oracle. 
THEO CALLAHAN is president of I
Get It! Development, a consulting firm based in
Los Gatos, California, that develops custom
software and offers custom business-process
training programs. His e-mail address is theo@igetit.net.
|
An
Invitation
If you have a special how-to
technology topic you would like the JofA
to consider for inclusion in this series
or an application shortcut you devised
and would like to share with other
professionals, contact Senior Editor
Stanley Zarowin. His e-mail address is zarowin@mindspring.com. |
|
|