i-nth logo

Authors

Yanif Ahmad, Tudor Antoniu, Sharon Goldwater, & Shriram Krishnamurthi

Abstract

We describe a methodology for detecting user errors in spreadsheets, using the notion of units as our basic elements of checking.

We define the concept of a header and discuss two types of relationships between headers, namely is-a and has-a relationships. With these, we develop a set of rules to assign units to cells in the spreadsheet. We check for errors by ensuring that every cell has a well-formed unit. We describe an implementation of the system that allows the user to check Microsoft Excel spreadsheets.

We have run our system on practical examples, and even found errors in published spreadsheets.

Sample

Unit error example
Unit error example

We have deliberately introduced an error in cell D5. For each error cell, the user can display the input cells to the formula in that cell by right clicking the mouse.

There are two kinds of errors reported back:

  • The unit errors are those where the unit checker identified a problem in the formula for the cell, as is the case with cell D5.
  • There are also propagation errors. Those are cells that use a reference to another cell flagged by the unit checker as containing an error.

Publication

2003, IEEE International Symposium on Automated Software Engineering, October, pages 174-183

Full article

A type system for statically detecting spreadsheet errors