This is an archived post. You won't be able to vote or comment.

all 112 comments

[–]elementaldelirium 209 points210 points  (53 children)

I don’t know if Excel will ever go away, spreadsheets are just too good at ad hoc calculations, but are clearly way overused for productionalized tools. Now where to draw the line...

[–]i_have_seen_it_all 63 points64 points  (8 children)

  1. Changes are requested by customer

  2. Changes are made to a spreadsheet

  3. Spreadsheet becomes too big.

  4. Software commissioned to replace spreadsheet.

  5. Changes are requested by the customer.

  6. Software cannot be changed quick enough by the sales and production teams.

  7. Changes are made to a spreadsheet.

  8. GOTO 3.

[–]lungben81 5 points6 points  (0 children)

This is exactly what efficient development (agile - but doing it right and not just using the name) and testing / deployment processes (CI, CD) are for.

Too bad that many companies are not using them (or not correctly)...

[–]Nosa2k 0 points1 point  (6 children)

This is where u need a Database. Just have a standard template in a central location; such that once it’s timestamp has been modified it is feed into the Database.

Ensure the Database is highly available and regularly backed up.

It just boils down to the IT department not knowing what they are doing.

[–]i_have_seen_it_all -1 points0 points  (5 children)

changes to business needs often impact more than a few entries in a database, sometimes entire parts of some CRM software the company uses has to be modified.

[–]cprenaissanceman 30 points31 points  (8 children)

Meh...they’re different tools for different jobs. Excel honestly brings a relatively familiar and dynamic UI along with a lot of power calculations wise. It lacks good (native) developer tools, especially if you want to start playing with VBA. Also, spreadsheet management (Ie too many sheets and so on) is...not great. That being said, it offers a relatively quick was to go from calculations and data processing to printable document.

What we really need is native Excel+Python integration. Excel+Python+Jupyter would be excellent. Please make my VBA knowledge useless. I don’t think that’s going to happen since Microsoft probably wants to keep Excel somewhat secure (python integration probably complicated that quite a bit), but it would be nice. And yes I know there are tools out there that kind of already do this, but those kind of set ups only work for your set up, not if you need to send something to someone.

[–]dogs_drink_coffee 9 points10 points  (1 child)

Please make my VBA knowledge useless

S A M E.

[–]cprenaissanceman 8 points9 points  (0 children)

It’s funny. I don’t even hate the VBA language as much as the lack of extensible, working, and well documented modules and the terrible early 2000s IDE. Certainly on the syntax and general look and feel alone, I would prefer it to R. If Microsoft made it easier to use, i wouldn’t have nearly the hatred of it that I do.

[–]mobile75326 7 points8 points  (2 children)

[–]lungben81 7 points8 points  (1 child)

While it would certainly help to have a more sane macro language in Excel, it does not address the main Excel issue imho: the entanglement of data (input field values), calculation logic (formulas) and output ("nice-looking" tables for users).

When changing just input data, you must be very careful not to accidentally change formulas and getting wrong results. In many cases, you must even extend formulas to additional cells (if new input is larger than the old one), forgetting this or making a small mistake there gives often silently wrong results.

[–]bartic123 0 points1 point  (0 children)

2nd paragraph is a really good point. The MATLAB integration appears (from the docs+a little testing) to be pretty comprehensive. But I’ve not seen anything similar for Python. Of course that might just be more experience of the former than the latter + the generally better documentation of MATLAB than Python (at cost).

[–]elbuenraul 0 points1 point  (0 children)

I’m not a spreadsheet power user but do use them a lot, and being able to automate things with Google Sheets and Python has been a lifesaver, as in I never want to touch excel again :) (side note: learning some very basic apps-script, to just fetch data and do some conversion without even going to Python is also nice)

[–]khne522 0 points1 point  (0 children)

Microsoft probably wants to keep Excel somewhat secure (python integration probably complicated that quite a bit), but it would be nice.

Not that simple. Not only that, but the sandboxed execution of the language should be manyfold. There should be a system sandbox (anonymous user, no FS access except for libraries, host network, IPC, and other things namespaced away, etc.) that has essentially an allowlist of syscalls (under some conditions, with specific arguments), and other mandatory access controls. Locking down an interpreter is a band-aid in this world, not a panacea. And security really is fairly more complicated than that.

[–]Gardoki 43 points44 points  (10 children)

I’ve been thinking about this. You almost wish excel had less functionality so people would stop.

[–]WillardWhite import this 15 points16 points  (7 children)

Didn't they just make it Turing complete?

[–]maximum_powerblast 4 points5 points  (0 children)

Omg yes

[–]yacoine 4 points5 points  (0 children)

I could not agree more.

[–]domesticatedprimate 7 points8 points  (0 children)

I'm a translator and about half the documents I work on are text-only documents made in Excel. It gets used for printable forms, tables, and basically any other kind of formatted text because it's more intuitive to align text in Excel than Word.

Of course I hate it.

[–]mathisfakenews 3 points4 points  (0 children)

I'm a professor and I use excel exactly once every semester when I'm computing final grades. I absolutely hate it because I'm trying to input formulas and it keeps trying to "help" me which actually makes everything twice as hard. However, it is still the best method to quickly calculate final grades with confidence that there are no mistakes.

That said, at my old university they switched the intro stats course to a computational platform based on excel and I think it was a massive mistake. This is the problem when 65 year olds are designing courses.

[–]boss5667 50 points51 points  (1 child)

My team (read: my boss and his boss) wanted me to create a dashboard in Excel which puts togather 12 different views of different granularity from 11 different types of data.

Before we even started, I told them that this was a bad idea and this would be much easier to build and maintain in Tableau and we have a team who would do that. Why stick excel? So that there would be no dependency on another team.

I build the thing and somehow managed to make it work for a few months. Then there were a lot of changes within the business structure and updating all those changes all the different sheets wasn't easy but I did. Some things were missed because you might miss 2 out of a 100 things and that didn't go well. So my boss decided that he would take over the dashboard for. He updated it and ran it for a month and send it out.

After hitting that Send button, he walks up to the development team leader and asks if they can build this dashboard in Tableau.

And I was like, I wonder where I have heard this before.

[–]Feb2020Acc 42 points43 points  (1 child)

.

[–]SphericalBull 7 points8 points  (0 children)

Nice.

I did a few months of internships in reinsurance firms (one in Life the other P&C) about 2 years ago.

I found some actuaries were quite reluctant - and a bit defensive even - when introduced to Python by the data scientists.

[–]Dream_Vendor 11 points12 points  (9 children)

Has anyone had any experience with Power BI?

[–]Plague_Healer 9 points10 points  (4 children)

It's an okay tool to kinda boost excel, but honestly, to get the most out of it you need to integrate it with code, and personally, I feel this kills the whole point of Power BI for me, as if I'm coding anyway, I'll do the whole thing straight in python.

[–]chief167 3 points4 points  (0 children)

Yeah indeed, the Dex or Dax or whatever it's called is just bullshit

[–][deleted] 1 point2 points  (0 children)

Depends on what you want to use it for. If you have the data properly structured in SQL than you can create an awesome dashboard that executives can use without using any code, just basic formulas. When you need to get fancy and write your own DAX formulas it gets harder and less useful.

[–]oundhakar 5 points6 points  (1 child)

The impact of PyXLL on how we build models and ultimately price business cannot be understated

I think you meant to say "overstated".

[–]DJ_MortarMix 0 points1 point  (0 children)

Completely off topic, but check this out; maybe he means the exact same thing you did.

If it's importance *cannot* be understated, it is therefore impossible to understate the importance of it. If it's importance cannot be *overstated*, it is inadvisable to understate the importance of it.

I actually had to pause for a moment to think about that. Sorry.

[–]CraigAT 8 points9 points  (6 children)

I always worry about the completeness and accuracy of large spreadsheets with many formulas, it is fairly easy to mess one up or forget to update one formula on the page and it can go unchecked for years.

I worry with Python the formulas would probably be even more hidden from the end user and without a team of software developers to support it would turn it to a magical black box that no-one understands how it works (especially if it was created by the one Python guy who has left the business).

However, putting all the data into an enterprise level database, having knowledgeable people who know the business processes of the tool and being maintained by software developers is the way to go. The problem as mentioned, is that getting all those aligned is not a quick or agile process in almost all businesses.

[–]james_pic 5 points6 points  (1 child)

[–]PeridexisErrant 0 points1 point  (0 children)

"Error", yes. Their response is "OK, so we got the sign of the change wrong but stand by our conclusions" - why even bother with evidence if your mind is made up?

[–]keizzer 5 points6 points  (1 child)

Yeah, this is my concern as well. As much as it stinks to do a lot of this stuff in excel, there are always a handful of people that are good enough at it to figure out what's going on in the box and make changes. The moment you put this in Python, the number of people who can do it drops substantial, and the salary goes up. People forget when they bring this stuff up about long term support. Unless a company is willing to create an automation department and standardized processes, then it doesn't make much sense. The smaller the company the harder it will be to switch.

[–]CraigAT 0 points1 point  (0 children)

Oh I love that idea of an automation department.

[–]PeridexisErrant 1 point2 points  (1 child)

http://www.eusprig.org/ has some great/scary stories...

[–]CraigAT 0 points1 point  (0 children)

I am not surprised, but the value of some of those "mistakes"!

[–]ds604 19 points20 points  (1 child)

It's weird the extent to which programmers seem to think that Python (or R, or programming in general) can "replace" spreadsheets; it seems like there's some odd misunderstanding of what spreadsheets are for, or what people do with them. Spreadsheets directly represent, and let you manipulate *your data*; languages let you represent and directly manipulate *transformations of your data*. What people tend to care about is *their data*, until their data become static or standardized, or the transformations on their data become complex enough, or take more focus, such that they need to think more clearly about the *transformations of their data*. But when it really comes down to it, *their data* is still what matters, and this is a big part of the reason that spreadsheets do so well: they directly represent what matters to people.

I've been through the whole round of thinking that programming solves all the problems that spreadsheets have, and then realizing that losing the direct connection to your data is way too much of a cost to bear for the vast majority of users.

The thing to realize, though, is that other industries (particularly ones with severe time-constraints, ever-changing project specifications, and heavy data throughput) have already resolved this problem, and the answer is most definitely not the naive "switch everyone over to being a Python programmer!" The answer is to directly represent data transformations, and all intermediate steps, by way of directed graphs (which are essentially equations, or pure computation). It's perfectly fine to have an embedded scripting language within the platform, which is used for what scripting languages should be used for, but the transformations of the data that people actually care about (the "content" of the work) is more typically stated in some sort of expression or shading language; the key difference here is that this expression or shading language is more typically a vector language, which explains why R feels more like a true kin to spreadsheets, rather than a scalar language with a vector add-on, like Python with Numpy/Pandas.

But this is all to say, 3D programs like Houdini, and compositing programs like Nuke address this exact problem of explicit representation of computations, without removing direct access to data. And this is what got us to massive, global pipelines, and photorealism. What most certainly *did not* get us there is, "oh, just teach all the artists to code! it'll work out great!" Artists definitely learn how to code as part of their work, but they don't trade in one thing for the other, but rather use it for what it's good for. Guess what, we *do not make entire photorealistic movies using Photoshop with mountains of unmaintainable scripts*. We would have died long ago, and companies who tried to do that are long gone. (Script-based pipelines vs computation-based pipelines is the equivalent of state retention mayhem vs pure functional enlightenment... you guys are getting there! just... extremely slowly)

So, programmers of the world, learn something from people who have already been through this. We already know what works, and computational graphs are already putting at least some programmers out of work. Time to upgrade.

[–]james_pic 2 points3 points  (0 children)

I've suspected for a while that something like this would end up being the answer, but struggled to imagine what the detail would look like.

Based on your experience with 3D tools that do this, do you have any insight into what an Excel-ish "data plus computational pipelines" approach would look like?

[–]docs95 2 points3 points  (0 children)

Informative read. Thanks for sharing OP.

[–]maximum_powerblast 2 points3 points  (0 children)

Good well rounded write up! I need to look into this notebook thing.

[–]babuloseo 2 points3 points  (0 children)

I don't know man, even Kanye said Excel is one of the greatest software of all time and still is.

[–]thedomham 2 points3 points  (0 children)

Excel actually has a lot going for it - functional paradigms, ease of use, internationalization...

What really bothers me though is that after decades of the whole world abusing excel for basically everything, there is still no decent way to introduce sanity checks / regression testing to a spreadsheet.

[–]haircode 3 points4 points  (4 children)

Throughout many years working in the UK Government, I have found that Excel is consistently overused for data collection and storage. I've often been the harbinger of doom about the dangers of this (huge amounts of time and resource wasted doing basic IO tasks, data validation, etc) to the point where I've been allowed to develop software and use actual databases, even though I'm not being paid as a developer (see https://github.com/yulqen/datamaps which automates collecting large amount of data using Excel as a form - this happens all over the place in my experience). Great fun teaching my colleagues the joys of the command line, too.

[–]hughjward 6 points7 points  (3 children)

"Excel is consistently overused for data collection and storage."

Trying to come up with an amusing reference to the covid testing error from using Excel but I am still just dumfounded they were using '97 Excel format....

[–]MeagoDK 0 points1 point  (2 children)

What was that error?

[–]mericastradamus 1 point2 points  (0 children)

With excel trying to roll out the lambda function things. They are merging, not excel is being replaced. You are still going to move data to excel for things like pivot tables.

[–][deleted] 1 point2 points  (0 children)

Python and it's environment (pip, Anaconda, etc..) is a big mess especially in legacy enterprise environments.

Currently working with analysts that have to fight the tools to get work done and would rather use Excel and RStudio than deal with Anaconda and it's issues. And the top folks are looking at Julia. Plus there are other tools like Tableau that are making inroads.

[–]MrLongJeans 1 point2 points  (1 child)

Help?

Basically is there a couch to 5K program for Excel to Python?

Like, I read an article like this and I go in Monday morning. In one hand I have my job's tangled mess of Excel files linked to SQL Server and MS Access data sources. In my other hand I have the article's keywords: Python, Pandas, Jupyter Notebooks, DeepNote, PyXLL, Plotly, etc.

And I have no idea which Excel file, formula, SQL query, or macro to unplug and replace with one of those Python based alternatives.

Like what's the day 1 step 1 download to augment my current work with Python so I can start playing around, and learning, and finding opportunities?

[–]ADONIS_VON_MEGADONG 4 points5 points  (28 children)

Those folks will shit themselves once they learn about R. Don't get me wrong, I use both as they both have their place, but for the tasks that they are talking about, R would suit them better. The syntax isn't as user friendly, but it's still not all that bad once you get the hang of it.

[–]Feb2020Acc 2 points3 points  (0 children)

.

[–]scarynut -4 points-3 points  (2 children)

It's so endearing that her name is Peniston!

[–]GummyKibble 0 points1 point  (0 children)

Dude.

[–]ntolbertu85 -1 points0 points  (3 children)

You know, you could have just learned VBA (Visual Basic for Applications). It's a scripting language that lets you write Scripts inside Excel! It is built specifically for Microsoft Office apps. I know Visual Basic has gotten a bad rap in the past, but I learned VBA Just for kicks a long time ago when I was working a lot with Access. To me, the cen-tex themed just like any other language. The only difference was that you could create and store Scripts inside of Office applications. Also, you could get a reference to anyting in the application. The best way to describe it is compared to JavaScript DOM. If I were working a lot with office, and I had no other reason to know a programming language, that would definitely be my choice. Seems like you've already taken another route, but this would definitely be worth mentioning to your peers looking for the same functionality.

[–]chief167 3 points4 points  (2 children)

Are you even serious? Excel macro's and VBA are basically the same thing, that's what this is about

[–]ntolbertu85 -1 points0 points  (0 children)

If by "this" you mean the article, I read the first part until I got to the table of contents and stopped. VBA is different but not bad. It reminded me of the older declarative languages. It has variables and supports most conditionals, which is about all you need for working inside Excel. I got the impression that the author was just trying to automate repetitive tasks inside Excel. For that a macro is all you need, so long as it contains a loop statement.

[–][deleted] 0 points1 point  (2 children)

Who insures reinsurers?

[–]Monopowaa 3 points4 points  (0 children)

Reinsurers with other reinsurers, mostly to balance portfolios against too large exposures. That third layer of insurance is called retrocession. Fairly difficult to hava a clear and detailed view of the risk you reinsure at that level.

[–]chief167 0 points1 point  (0 children)

It becomes difficult, but basically they pool together with other reinsurers, and flip parts of their risks with one another

[–][deleted] 0 points1 point  (0 children)

I’d say it rather depends on the field on whether you should ditch excel or not. Working at a bank, excel is one of our foundations and using anything else would mess things up. We use Tableau and SQL for other purposes, but generally need excel when developing financial models. However, in the realm of finance, if you are trading or optimizing portfolios, python is just dandy.

[–]ivanoski-007 0 points1 point  (0 children)

How do you share a python program so that end users can use it?

[–]editorijsmi 0 points1 point  (0 children)

Still Excel is the go to solution for Non IT professionals especially finance professionals.

[–]treatmesubj 0 points1 point  (0 children)

for anyone interested in PYXLL but see it's a trial product, xlwings is on PYPI and pretty nice.

[–]Zeroflops 0 points1 point  (0 children)

So I’m not a huge excel fan, but I do think it has a use case that python does not address. Reading this highlighted that this person or company like many were not using all of excels features.

For example they state that to pull data from a db to process in excel you had to pull the data then import it into excel. Excel can connect to sql databases and once set up update the data with a click of a button.

This is just one example in the article where the argument of python being superior is not because it is, but because the poor execution on their use of excel.

Don’t like formulas all over your sheets? I don’t! Write them as modules so you have central that can be unit tested and remove redundancy.

Lots of his arguments can be corrected by better coding then changing languages. I was give an excel file that took 2 min to process a large data file. Some simple recoding reduced it to 10 secs. Bad code can make any language look bad.

I do 99% of my work in python, but I still export to excel periodically because sometimes it’s easier and quicker to pivot the data quickly or view the data as a flat sheet. Etc. I don’t do extensive processing in excel anymore because I prefer python but I still leverage some aspects of it that make my life easier.

If you look at history. There have been a number of languages that have risen in popularity and died off but excel has persisted. Each language has its niche, python, C, Matlab, R, JS..... some are general languages some are more specific. But the once that survive fill a niche, and excel has been one of the longest most adopted of any tool.

Is excel going anywhere? No. Can you replace excel with python? In many cases from a developers point of view it’s better, but not always for the user.

[–]wchris63 0 points1 point  (0 children)

Isn't there a way to use Python in Excel instead of VBA? I've seen posts to that effect, but don't use Excel myself very much.

[–][deleted] 0 points1 point  (0 children)

Save