The evil side of spreadsheets is that there are no column types. Each single cell can take both possible types of values. Each cell can have either text or number even if all other cells in the same column are the other type. Formulas return either text or number or errors as a special third type.
- A spreadsheet has no column types (no fields).
- A spreadsheet has no tables. Any rectangle of cells may be interpreted as a “table” or not. You can clutter all relevant data of a fully functional calculation model across completely uncoherent cells.
- A spreadsheet has no records. With a single inadvertant click on a sort button you may distort any records you have typed or imported into a rectangle of cells. Wrong references or wrong usage of lookup functions makes completely unrelated data appear related.
A spreadsheets is a simplified programming language mostly for arithmetics, but most commonly misused as a database replacement.
You get the hang of it once you learned to distinguish the following:
- Text vs. Number (fundamental with any programming language)
- Relative vs. Absolute referencing
- Data vs. Formatting (beginners waste hours with completely useless formatting details)
- The “special numbers” derived from data type “Number” (percent, date, time etc)
- The idiosyncrasies of lookup functions (which by default assume a calculation model rather than a record set).
- If you misuse a spreadsheet in order to evade a database program, you can ignore all rules of database design at the cost of a horrible unmanagable ooze of data. Better you learn some fundamental design rules in order to make use of the spreadsheet’s limited database functionality. Better use a database right from the start, may be with a spreadsheet as prototype.