Everyone here is right. Spreadsheets and databases,
as they are currently implemented, are not the same thing. Both products lack some of the necessary core features of the other. But what Hattig and others are saying is with a bit of programming, there's no reason why a spreadsheet can't be more like a database.
When I stare at an Excel document, I see a database in the making. Databases, for example, arrange data in tables. Well, a spreadsheet looks a lot like a table. It's got rows and columns. I can put headings at the top of the columns to give them names. I can insert into the tables by typing data. I can alter the data. I can delete the data.
What about multiple tables? Database have those. Excel does, too, in the form of multiple sheets. I can give each sheet a name in Excel and it's almost like giving each table a name in a database.
What Excel lacks is a way to relate the sheets to one another, the way a database can. Nor can Excel easily create new sheets as "views" of my data. But that's just programming. How hard would it be, really, to add a simple, SQL-like language to a spreadsheet to give it database-like capabilities? Heck, it doesn't have to be SQL -- it just has to be easy to use for ordinary people. Here's a simple relational query using Excel-ish terminology. Let's not even assume I've named the columns and sheets and instead use the Excel naming defaults.
Code:
create sheet "Sheet5" as
select Sheet1!A:A, Sheet1!B:B, Sheet2!A:A, Sheet2!C:C
from Sheet1, Sheet2
where Sheet1!B:B = Sheet2!D:D
As you can clearly see
🙂 this query creates a new sheet called Sheet5 and pulls data from Sheet1 and Sheet2 by relating them using column B of Sheet1 and column D of Sheet2.
So it's true: Excel as it is now cannot be a very good database (although it tries). But imagine Excel with these two features:
- The ability to create and manage lots of sheets. While you can create multiple sheets in Excel, it's unwieldy when you have more than a small handful.
- A relational query language.
You'd then have a spreadsheet that acts like a database. Of course, you could still use it like the flat, 2D speadsheet that you know and love as Excel. Or you could use the relational capabilities and treat it as a database. The use its reporting and charting capabilities to create graphical views of your data (try
that in MySQL!).
The fact that we have to resort to exporting data from a database and import it into a spreadsheet just to produce nice graphs from what are, essentially, two very similar data-driven applications means the time is ripe to combine the two into one versatile tool.
Sorry for the long post, but it bugs me that Excel can't do more than it could be capable of. Improv was a spreadsheet that acted like a database. Or was it a database that looked like a spreadsheet? Who knows,
because they're the same thing.