Let's face it. Most people working in offices don't like computers, they are either not interested in them or they even hate them. To make things worse, most users are over-confident. They "know" that they don't make mistakes when entering data, and when mistakes are discovered, it is easy to blame it on "the computer" or "the other guy".
On top of that, most people who create spreadsheets are not trained in programming. That is also not necessary. After all, the first programmers were not trained in programming either, and most of them did better than the current "highly-trained" crop. Worse is that they have no experience.
Unfortunately, most people learn how to program spreadsheets on the job, not in their free time. The disadvantage of this is that they are under tremendous pressure to deliver. The boss yells and screams for his/her spreadsheet and claims that it will be just fine if it is "approximately" correct. Unfortunately, in programming, there is no such thing as approximately correct. Something is either correct or isn't.
The main problem with spreadsheets is that they are notoriously difficult to debug (fix). Modern programming languages are a nightmare, but spreadsheets can easily make C++ debugging look a stroll in the park. The reason is simple. Spreadsheets are essentially haphazard collections of data with instructions mixed in, nothing like the structured environment of even the most ridiculously error-prone programming language.
The people of Oregon State University call their system GoalDebug. It is supposed to allow a non-specialist to identify and correct problems by choosing from a list of suggestions proposed by the system.
GoalDebug has been announced as the next best thing. I am very sceptical. Nevertheless, it can never hurt to have an in-depth look.