R1D24 Everyone Has Written a Function
I am not 100% sure if it counts, but I am going to write about spreadsheet software in this post.
To be clear, I suck at using spreadsheets. I spend way more time trying to get stuff to look pretty than I do thinking about how to solve problems with the tool. I am certain that I know about 5% of all the things that are possible.
I was motivated by Joel Spolsky’s Excel training video a few years ago and have tried to get better at using it.
I spent a little bit of time with my sales enginering hat on making a kick ass spreadsheet when I realized pretty much everyone in the world has written a function ast least once in their life thanks to the magic of spreadsheets.
Especially since I’ve spent the last couple of days diving back into functional programming, I can’t think of a better example of what functional programming looks like than what you put into a random cell starting with the equal sign in Excel.
The specific problem that I was trying to solve was to calculate a weighted percentage match based on the priority and sum of one column compared to a “Yes” or “No” in a seprate column. This is where the SUMIFS function comes into play.
Component | Priortity | Vendor A | Vendor B |
Ability to do X | 4 | Yes | No |
Ability to do Y | 2 | Yes | No |
Feature A | 3 | Yes | Yes |
Feature B | 1 | No | Yes |
Feature C | 5 | Yes | Yes |
Weighted Percentage Match: | 93% | 60% |
=SUMIFS($C3:$C7, D3:D7, "Yes")/SUM($C3:$C7)Which translates to "sum the priority values all the yes's and divide by total priority sum". This means that at least based on the priorities that I have defined Vendor A is a 93% match compared to Vendor B.
Spreadsheets are amazing because they give you half the power of a database with half the power of a REPL. You can slice, dice, transform, and visualize data in ways that would be very difficult to accomplish with a pure programming langauge solution. Use them.
Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.
Check out some more stuff to read down below.
Most popular posts this month
- 2024
- Reinstalling Windows at 1am
- SQLite DB Migrations with PRAGMA user_version
- My Custom Miniflux CSS Theme
- How to Disable Wayland in Debian Testing
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- Future Fonts from Blog – Brad Frost
- 21st Century C++ from Communications of the ACM
- Submarines DevCon 2025 Keynote Speech from JoshHaines.com
- How I Use AI: Meet My Promptly Hired Model Intern from Armin Ronacher's Thoughts and Writings
- DeepSeek from Maggie Appleton
- Digital Reality Digital Shock from Christopher Butler
- 10 habits to help becoming a Debian Maintainer from Optimized by Otto
- Tiny corners from Manuel Moreale RSS Feed
Articles from blogs I follow around the net
Cheap mini PCs have gotten really good
For the past week, I've been working off the Minisforum UM870. A tiny mini PC with an 8-core/16-thread AMD 8745H CPU, which retails for $343 (or €379) as a bare-bone unit, and stays below $550, even after adding 48GB of RAM and 1TB of storage. I'…
via David Heinemeier Hansson May 18, 2025Pluralistic: Plinkpump linkdump (17 May 2025)
Today's links Plinkpump linkdump: A blogging sabbath. Object permanence: 2005, 2010, 2015, 2020, 2024 Upcoming appearances: Where to find me. Recent appearances: Where I've been. Latest books: You keep readin' em, I'll keep writin' …
via Pluralistic: Daily links from Cory Doctorow May 17, 2025Celebrating kindness
When I started working on the new version of blogroll.org, one thing I knew I wanted to do from the get-go was to highlight all the wonderful people who are supporting what I do here in the digital world. And the reason why I wanted to do …
via Manuel Moreale May 17, 2025Generated by openring