Also, excel supports far more mathematical functions.
I'm reasonable at Excel. I've been using it in anger for close to 20 years. My most serious dressing down I've every received at work was related to a column of incorrect data in Excel. (I built a spreadsheet based on incorrect data. Management expected me to build correct spreadsheets from incorrect data.) I'm reasonable at SQL. I've been using it casually for 10 years. My cutoff at this point is that I'll use Excel if I expect my analysis to take less than five minutes. I'll use pandas or SQL for anything more complicated than that, because it's that much more powerful.
Excel stops scaling at about a million rows. SQL stops scaling when your indices no longer fit in RAM.
In SQL: Type query -> See some results -> Repeat
Excel: Everything in front of your eyes. You are manipulating live data. That is not something you do in SQL. (SQL doesn't mean much though, as it is a standard and not a tool. Maybe you had some specific SQL based tooling in mind)
> Excel stops scaling at about a million rows.
A large amount of real world data has less than a million rows. Every tool will stop at some point. At that point the benefits of Excel fade away, even if it could handle the data, as 1M rows are too large for our brain to make a sense of live.
>My cutoff at this point is that I'll use Excel if I expect my analysis to take less than five minutes
A lot of real world analysis takes 5 minutes.
Of course, Excel is not perfect, and I too will never use Excel for anything that has to be done repeatedly (pandas or similar solutions are perfect here), but for quick and dirty data exploration, Excel is very good.
Any attempt to use it as a database or for data analysis should be met with extreme caution. As soon as someone suggests a VB macro for anything they should be shot. Excel is not the right tool for those kids of jobs.
Python and R have just destroyed excel for data analysis and statistics (and most visualizations now) and are free. You can’t go back once getting used to that flexibility.
Jupyter Notebooks reproducibility and traceability put the nail in the coffin for excel as a data analysis tool.
Add a WHERE.
> You can Ctrl-Z for undo.
Drop the WHERE. Hell, ctrl+z will work fine here too!
> sort on many columns
ORDER BY supports multiple columns too.
> create derived columns and sort on those
You can have arbitrary expressions in your SELECT clause.
> and all of this interactively.
Destructively*.
And SQL makes it clear exactly what you've done to the source data in order to get there.
> Also, excel supports far more mathematical functions.
Surely that's what extensions are for!
It's also good for creating what amounts to a quick interactive form.
But I've lost count of how many times I've run across a spreadsheet being misused as a shitty, ad-hoc database where it'd be less work (and less error-prone) to just use sqlite (or even postgres, honestly), so I have some empathy for GP's perspective.
SQL is a language. Excel (and Google Sheets) is a tool (that also supports SQL, the language). Why wouldn't you want a sleek Excel-like user interface to SQL data and queries?
https://www.lifewire.com/excel-front-end-to-sql-server-24953...
https://www.benlcollins.com/spreadsheets/google-sheets-query...
And no I don't mean like the steaming piece of shit called MySQLWorkbench (or PHPMyAdmin for that matter).
https://devrant.com/rants/1342177/mysql-workbench-user-frien...
Input data should be separate from your calculations, and you should never deal with single cells in your results (fix your formula or input data instead).
Yes, Excel actually has a mode that supports that workflow: the Unified Get & Transform Experience[0] (just rolls off the tongue, right?). And it's basically drag-and-drop Pandas.
But I've only ever seen one person use it (after repeatedly bugging him about how we will need to repeat this analysis and how surely there must be a better way). And even then it's very easy to screw up and introduce bugs whenever the input data is replaced. Wanted to make a graph and only included the populated data region? Referred to the aggregation row somewhere in some stats sheet? Too bad!
Also, Colin's post ends up recommending SQL Workbench/J, which seems to be much closer to MySQL Workbench than Excel.
[0]: https://support.office.com/en-us/article/unified-get-transfo...
A lot of simple functions in Excel are incredibly complex in SQL. You might technically can pull most off put then you end up with a lot of ugly SQL.
Also each time you make a change with SQL, you have to query the database again which can be slow and inefficient.
I use both tools together, exporting SQL results and opening in Excel for further clean up. That way you can take advantage of the strengths of each one.
Absolutely, it's amazing the things you can do in Access!
Otherwise [csvkit](https://csvkit.readthedocs.io/en/latest/) gives a pretty good command line interface to make sql queries against a CSV or dump the CSV into a database so you can use any standard database tool to query.