The Microsoft Excel superstars throw down in Vegas
theverge.com
theverge.com
From my perspective, it's gotten harder to use spreadsheet programs efficiently with each new version - the keyboard shortcuts collide more, and everything moving to Office 365 / Google Docs / etc. has made the available tools less powerful.
However, make sure you know the limits of Excel...
It's not fair to blame Excel for this, the real issue was using a very outdated file format from before Office 2007
That's "You Suck at Excel" talk by Joel Spolsky.
As someone various colleagues have urged to compete at modeloff years ago, it's really just something one would do if they enjoy it, anyone smart/experienced enough to do modeloff/etc. would also know it's not a good value proposition in terms of winnings/expected value/etc.
Also, anyone who writes a formula like "=SUM(CODE(MID(LOWER(SUBSTITUTE(SUBSTITUTE(C3,”:”,””)" is a bit suspect imo
from chatgpt:
Here's a practical example to illustrate:
Assume cell C3 contains the string "A:B:c".
Removing colons results in "ABc". Converting to lowercase results in "abc". Extracting ASCII codes of "a", "b", and "c" gives 97, 98, and 99, respectively. Summing these values gives 97 + 98 + 99 = 294. So, the formula SUM(CODE(MID(LOWER(SUBSTITUTE(SUBSTITUTE(C3,”:”,””)))))) for the string "A:B:c" results in 294.
Smells like K, except way more human-friendly :)
excel used to almost be a joy to use; now it's sluggish, inconsistent, and buggy
i mostly use excel 2010 now as it's a little less obnoxious than the newest builds...
i look forward to not having to use this steaming pile though I suspect I've got another 20+ years of it :(
Or...
Step 1. Open VSCode or PyCharm Step 2. Front-end... hmmm, web? Electron? Qt? Jupyter? Step 3. venv Step 4. pip Step 5. SqlAlchemy? Psycopg? Raw SQL? Import CSV? Step 6. "Where we gonna host this? Local? Cloud? Serverless? Do we need Docker? K8s?" Step 7. git init Step 8. "Hey, do any of you know what these mean on the specs? IRR? COGS? NPV? I studied CompSci, not this lame finance bullshit" Step 9. Call up Fred from Accounting for some help. Step 10. Fred starts with Step 1, above.
Step 1. Open Colab. Step 2. Start building your model.
Step 4. Build your model.
Step 5. Take a break to watch silly cat videos.
Step 6. Lose your model, and all models you previously made, as Google banned your account, and all associated accounts, for the crime of using emojis in a YouTube comment.
"Microsoft Excel stream highlights" https://m.youtube.com/watch?v=xubbVvKbUfY
My nerdy friends have a saying. If you don't have a spreadsheet, are you even having fun? Of course, their idea of fun is to min/max whatever game is at hand in order to win as best they can, which sometimes sucks the joy out of it for the rest of the players but it's all also fun to see how broken some game mechanics are.
(Not applicable to semi-professionals, they can at least figure out what's happening and learn).
That's not fun for everyone but it is fun for some people. The same way coding challenges and learn 2 code gamified websites are fun for some people.
[Insert Dilbert "the knack" show segment]
- Focused, incremental, working-memory friendly;
- Very fast feedback loop; it's a dopamine pumping 2D REPL;
- Free of all the devops bullshit, which infected all the "proper" programming tools to the degree it's getting hard to do a local "Hello World" without having to swim through it;
- Because of the derision it gets from "normie tech folks", doing something large in it gives you just the right amount of "hold my beer and watch this" bragging rights (in some ways, this is similar to demoscene on legacy platforms like Amiga).
I recruited a 24/7 team and dominated that game. We could predict with 100% accuracy how the opponent's team members would deploy their troops, in what quantity, and when. :)
My data model updated a shared spreadsheet, so my team members could see the actions we still needed to take without having to learn a new UI.
https://fmworldcup.com/product-category/case-studies/excel-e...
Most are behind a paywall, unfortunately.
The video alone lays out how these things work, very interesting. My brain started solutioning right away. Lots of fun.
The business world is full of the later. For example, some bonkers monstrosity of a spreadsheet that Bob from finance built 5 years ago. Bob is no longer with the company and said spreadsheet is the only way the TPS reports get done each month so the whole company is held together by this thing nobody really understands.
This argument usually comes from some IT group that takes like 2 years to do something for the users that get so frustrated that they do it themselves. Since the users are maintaining it, they're constantly reviewing it and are the ones with the most functional knowledge. An alternative IT group has to go to this same group anyway.
=IF(A1 > A2, (B2 + B3), (C2 - C3))
and (if (> aye-one aye-two) (+ bee-two bee-three) (- cee-two cee-three))
Infix vs prefix, coordinates vs variable names.It is syntax on top of the essence of a functional programming language.
And it has the same things. One liner of perl, python, or powershell - anyone can write it and it doesn't take too much to manage its complexity.
However, once you get into more complex relationships between data and structures, it takes discipline to manage it. Spreadsheets often are poor at giving you the tools to manage it and so it takes more effort to make sure that you're not making a mess.
A complex spreadsheet is a complex program that needs to have someone who has the discipline and abstractions necessary to manage it.
The point was more one of "Excel is an IDE for a functional language." Doing large projects in Excel should take as much care / design / thought as large projects in Lisp (or any other language).
That Excel is everywhere and people often do simple things that grow large without having the discipline of managing the complexity that excel can become - that's where there's problems.
Rather if you say to someone with enough skill to get started "here's python, good luck" you'll get similar results as "here's Excel, good luck." Just that you'll have an easier time persuading cooperate IT to install Excel on your machine compared to Python.
We use Google Sheets, as we changed from Office at the beginning of this year, and 10-15 times a day my tab crashes on Chrome from just existing, let alone when trying to do any operations.
It's a mess, and I'd rather build a simple web app to replace it, but don't have the time, approval, or financial resources to make the switch. So instead of letting me improve 100+ peoples daily workflows, we just suffer.
Go spreadsheets!
I personally would rather build an Excel sheet (in actual Excel) than a simple web app. In fact, I believe a double digit percentage of SaaS startups would be strictly more useful to their users if they came in the form of a downloadable Excel sheet instead of the bullshit web SPA thing. But of course, selling something useful for the customer is not how you make money today.
I've been writing code since I was a kid, but there are jobs a spreadsheet is just the right tool for. Almost anything that involves creating an overview of lots of interdependent numbers really.
Excel in particular is a lot more powerful than you might be aware of if you're a casual user, and I would honestly recommend you learn it properly, as you would learn a programming language, since it's a really useful skill to have (1).
That said, I've often thought about what a programmer's spreadsheet tool would look like. Scientific grade plotting, N-dimensional spreadsheets, a real programming language in the cell formulas...
Someone must have attempted it?
(1) By the way, ChatGPT is great at teaching Excel.
Someone must have attempted it?
That sounds suspiciously similar to any SQL database if you ask me...
I like postgres myself, but people talk fondly of mySQL too.. as for viewing the "spreadsheet", there are probably hundreds of solutions. I'm partial to DBeaver myself, if it's the spreadsheet feeling you're looking for at least.
The realistic alternative would be a mess of poorly engineered custom scripts, which offer no advantage over the spreadsheet.
With the spreadsheet, anyone can take out their calculator and check the results, without knowing any programming. That's really the killer feature.
All that to say, it’s an absolute cluster-fsck to automate anything with the proper tooling. If there is any way I can just do it in Excel these days, I do it. I’ve created some pretty ridiculous stuff in it. The upside is that once I am able to navigate cutting all of this red tape and use proper tools, I’ll have plenty of projects in mind and likely be asked to return as a contractor for double+ the money to maintain them in retirement.
Further, even a big messy Excel model (including VBA code) is usually self-contained in a single file, while a code-based model can be dozens or hundreds of files, many of which are support libraries for stuff that's built-in to Excel (front-end, vector math, charting). And lets not get started on breaking up a model into distributed microservices!
Calculations for slot machine mechanics and payouts have been in Excel for a long time. There can be a LOT of complexity in these workbooks. Sometimes it’s tricky to debug - but what’s the alternative? Code is often hard to debug too.
Simulating results (Monte Carlo) is nice but having two sets of data for validation/checking against each other is nice.
I am not aware of any alternatives.
No version control, no approval process, no source code repository, no unit or regression testing, no logging, no test vs production environment, no central place where all code/macros are saved, no documentation.
You end up with these giant spaghetti formulas with no easy way to decompose them into smaller functions.
Spreadsheets could have been a gateway drug to learning programming.
E.g.
01/15/2024
1/15/2024
1/15/24
01/03/2024
1/3/2024
1/3/24
Unless you write something in VBscript or whatever Excel uses now, it’s a nightmare.
function dateFix() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); var dateRange = sheet.getRange("A:A"); var dateValues = dateRange.getValues();
for (var i = 0; i < dateValues.length; i++) {
if (dateValues[i][0]) {
var fixedDate = fixDate(dateValues[i][0]);
if (fixedDate) {
sheet.getRange(i + 1, 2).setValue(fixedDate);
}
}
}
}function fixDate(dateString) { var datePattern = /^(\d{1,2})\/(\d{1,2})\/(\d{2}|\d{4})$/; var match = dateString.match(datePattern);
if (!match) {
return null;
}
var month = match[1].padStart(2, '0');
var day = match[2].padStart(2, '0');
var year = match[3];
if (year.length === 2) {
year = '20' + year;
}
return month + '/' + day + '/' + year;
}It's precisely for parsing dates but on a column with 1-digit vs. 2-digit days/months and 2-digit vs. 4-digit years (all in d/m/y format, mind you), it fails in one instance or the other.
I expect it gets your example there right, but you may have other issues in mind that you didn't push into the example.
The examples you gave are in m/d/y format though, and DATEVALUE() parses your examples correctly into Jan 15th, 2024 and January 3rd, 2024.
DATEVALUE() parses ambiguous short date formats (e.g. 1/3/24) using the short date format specified in the Region settings of Windows Control Panel. So if you want to parse d/m/y format, you can try changing the settings there.
The workaround, at least for CSVs, is to do an import via "Get Data" -> "From Text (legacy)" and tag the relevant column as "date". This doesn't always work though.
https://support.microsoft.com/en-us/office/format-a-date-the...
If I was going to drop my hackerman shades and pull up to an Excel code golf competition this is the "fewest total characters using a single cell" I could come up with: =REGEXREPLACE(A1 "^0?(\d{1,2})\/0?(\d{1,2})\/(..)?(\d{2})$", "20$3/$2/$1")
it is unforgivable that a program used for timeseries data can't interpret an ISO 8901 without third party macros
It keeps popping up as he is apparently quick and knows the ins and outs. But I've never bothered to go through it as it is seven years old at this point and focused on finance.
Can anybody recommend something similar but up to date with the new goodies so a fella could be competitive at this? I'm talking more keyboard shortcuts and advanced features (many of them overlap). The latest versions of Excel sort of open it up anew.
puts on headband and cracks knuckles
TLDR on those streams: it was Shkreli just opening excel spreadsheets and going super deep on analysis of corporate financials, in the most plain unemotional way possible. He even did fun exercises to show his viewers how he works things: the audience would vote for a random public company ticker that Shkreli never analyzed betore, and he would just spend the next few hours populating his excel spreadsheet from scratch and trying to make some conclusions. With the preference for picking companies that he actually knows absolutely nothing about in terms of their finances. Literally just gathering all relevant publicly available information and analyzing it, with lots of hard numbers and excel magic involved. No joking, no non-sequiters, no guests, just lazer-focused on financial analysis. Not going to lie, it blew my mind when i was first trying to follow along at the time.
If you aren’t into that type of a thing, i imagine it would be extremely boring to watch, as it was nothing like his “more known” livestreams focused on trolling and ragebaiting. It was just cold “thinking outloud and populating spreadsheets” type of content. The viewership numbers reflected that too, with the financial analysis streams having magnitudes less views (with most people not even knowing they existed, despite being posted on the same channel as his more popular and controversial streams).
The trolling is uninteresting except maybe the Wu Tang thing.
I'm only after pure Excel-fu here. It is actually weird for me that people use it to analyze stocks instead of Python but I probably don't know what I'm missing.
Edit: The first few minutes seem neat, I'm biting the bullet
While looking for it, I also re-discovered his chemistry lessons playlist[1]. Which i totally forgot about until now, but can recommend almost just as much to those interested in the topic. Just looking at the video titles, you can tell it is legit.
Personally, I am extremely thankful for those, as chemistry has been my own largest knowledge gap in terms of science fundamentals. At any point in HS or college where I had to pick more science classes, I always picked physics over chem, because I wasn’t really into chem at all back then (and maybe a bit self-conscious about my lack of pre-existing knowledge of it, as everyone at my college seemed to have taken AP Chem beforehand, which I didn’t).
0. https://youtube.com/playlist?list=PLJsVF3gZDcuTxcdH5FmQRTd6M...
1. https://youtube.com/playlist?list=PLJsVF3gZDcuQ_MijwAR113CdJ...
I find these types of analysis very helpful at work and building strong fundamentals has never left me regretting the time investment.
And of course ... I'd have less grey hairs ... :(
.cell * { color: black !important; }
.cell:not(.lede) { background-color: white !important; background-image: none !important; height: auto !important; border: 0 !important; }"there’s simply no more powerful piece of software on the planet for turning a mess of numbers into answers and sense"
I never want to be one to downplay Excel's ubiquity and importance, but these statements seem a tad... hypberbolic.
I'd also argue that Excel isn't really the most "powerful" per se, but the most accessible and convenient for sure.
Second statement hard no. It is a good balance of ease of use, familarity and power but for sure not even close to being the most powerful tool to crunch numbers on scale.
A double-digit % would be lost, and possibly a very high one at that.
So the best thing they ever did was make a clone of Lotus 1-2-3 and VisiCalc? Sounds about right.
Microsoft has only ever forced standardization of aggressively mediocre software. In every case, be it OS, spreadsheets, or word processing, there has been a much better competitor who lost out due to market forces, not quality.
>> "To change a cell, you move the cursor to it with the arrow keys (the original design used a mouse, but the PCs of that day did not have a mouse) and then type the new value"