3D engine entirely made of MS Excel formulae
gamasutra.com
gamasutra.com
anyway, that's absolutely insane. The 3D engine seems to be laggy, on the video anyway, whereas this rollecoaster is pretty smooth !
It’s like the difference between text rendering versus decompressing JPEG images. Both can pile up enough data to exhibit lag, but you get more bang for your buck with the lighter data stream.
The typical things one gains from higher order functions are things like mapping and filtering of data structures. Excel only has one data structure—the table. Mapping is done by writing the formula once and then dragging it from the corner to the whole column. Filtering is not really done. Normally use the gui to hide the rows to be filtered away.
Functions add in questions of scoping. How are closures supposed to work? Could there be some way to say “the function in cell A1 at the time and closing over the state of when cell B2 was last logically computed”? Excel handles scoping in the non-function-in-cell approach using $.
Obviously this all breaks apart when you don’t want tables where you drag things either always down or always across
You should look into array formulas (or block formulas). They break out of the one-at-a-time mold and could be much more powerful.
https://support.office.com/en-us/article/create-power-query-...
https://msdn.microsoft.com/en-us/query-bi/m/understanding-po...
https://msdn.microsoft.com/en-us/query-bi/m/power-query-m-re...
And I'm not sure the things that make Excel so crappy could really be fixed without sacrificing the things that make it such a flexible and useful tool. For instance, adding the ability to recurse or iterate sanely would remove the transparency of having every iteration of a computation clearly visualized cell-by-copy-pasted-cell.
ps. Excel does some things OK, like drawing pretty graphs on smallish datasets and visualize quick analysis with pivot tables. It just lacks a sensible scripting language and is generally very brittle once the data is getting nontrivial and more than one person is involved.
One big problem it solves for regular people (i.e. not programmers) is this: "our workflow and/or reality of our business changes much faster than the IT department/outside contractors can keep up with".
(The other big, and related, problem is: "our IT department/outside contractors have no clue and don't really even care much about what we actually do or need".)
round (2.575, 2)
in Python leads to 2.57 instead of rounding up to 2.58. Everything in our engineering firm is checked by another engineer. In [7]: round(2.575, 2)
Out[7]: 2.58
Umm?The behavior of round() for floats can be surprising: for example, round(2.675, 2) gives 2.67 instead of the expected 2.68. This is not a bug: it’s a result of the fact that most decimal fractions can’t be represented exactly as a float.
In [17]: Decimal(2.675)
Out[17]: Decimal('2.67499999999999982236431605997495353221893310546875')
So sort of round() is working as expected, but the number you are not inputting is not the one you are expecting.Yes, but the main one is that institutional IT policies frequently dictate that people whose aren't employed specifically in software development roles aren't allowed software development tools, but everyone in the org tends to be allowed core Office apps like Excel.
When it's literally the only remotely applicable tool most people are allowed to have, it shouldn't be surprising that it gets used for a lot, independent of merit.
(I was surprised to find 0 results on Google for this term.)
=GET(SUM(A3:B97))Efficiencies or lack of it is visible in the spreadsheet in a very concrete way. How many used cells are there, how many “steps” or rows is required to finish a computation and how many times are cells addressed clearly relates to time and space complexity of an algorithm.
With a judicious use of vba, many of the tasks above, especially those related to forecasting, planning and reporting can be automated down from hours to just seconds. I have seen inordinate amount of hours wasted by people using excel to do all sorts of tasks that were repetitive to the max. A thinking programmer can work with such people to change those tasks from being hugely manual to simply automatic.
Mind you, the vba that has been written by non-programmers is usually so bad that you don't want to even try to attempt to change or fix it. It is far better to just start from scratch.
It is a tool that can be used in quite novel ways, but it does have its gotchas that will cause interesting failures for businesses that rely on it. But when it is the only tool you have, then you use it any way you can.
I have seen some outstanding examples of well written spreadsheets but these tend to be the minority case. Depending on the organisation and the priority it puts on validation, the spreadsheets can range in quality from vry poor to mediocre.
I have seen critical spreadsheets that were a disaster of coding.
Many times, the IT costs for getting the IT developers to do the work for you is so far above what it costs for you to do it yourself or even to get a developer in specifically to work for you, outside of any controls that your IT group would exert. Plenty of the work I have done in the last 20 years was based on the end-user employing me to do the work taht was not cost effective or even allowed for by the company IT teams.
I knew the data for the spreadsheet was wrong only because I had been involved in looking at the actual data sources in weeks previously.
But there can also be formulae errors. They seem to produce the correct information, but they will have subtle errors that miss necessary edge cases or use set values when they shouldn't.
It's better waste hours using Excel than waste even more hours trying to convince some developer to do a change and wait for the product - which might never come.
In my case, I was on call to discuss what was to be achieved and to help them build what they needed. The turn around times were short. My function as the "Real Programmer" was to get them into a position of solving any relevant problems and making sure that they were able to progress with their work. That is the beauty of working directly for the end-user instead of being part of the central IT team.
I've got to ask (and I hope this isn't non-PC or some such), but is English the author's first language? Where's he from?
I wish that I had Excel so that I could try it out! :) More about the choice of random digits, sin x + cos x, would be nice to read.
Somebody said that a decade ago and the responses provided invaluable pointers into regions of PL-theory I would not have consider explored this well... Happy reading ;)
Actually, I’ve been wondering how to create a comprehensive spreadsheet that tests all of Excel’s features. Kind of like an ACID3 for spreadsheets...
If you have LibreOffice installed, it takes less time to actually try it, than to post a comment.
I'm in the commit logs of LibreOffice, incidentally.
I can't listen to it now without thinking about Mr Tourette [1].
[1] https://www.youtube.com/results?search_query=mr+tourette
Using that data source snippet I wrote a 'static' CMS that pulls the JSON data from sheets in the workbook and then compiles and deploys a Jekyll site. I've been enthusiastically replacing WordPress sites with this wherever possible when clients only need data to change and don't require actual page editing (this system is perfect for restaurants - think menu changes). The "deploy" event is a little convoluted since I wanted to control what happens and when it happens, but it is all kicked off by submitting a Google Form which is attached to the Sheet.
The script as-is returns one object per row but converting it to key/value responses is also pretty easy. If Office365 has an equivalent to Google App Scripts that can publish a script as a web app, I'd love to hear about it.
[0] https://gist.github.com/chrsstrm/3fb0ce6820acecf62c5490d220d...
Payroll analysts
/waves
I'm an absolute nerd for sports stats, and have a friend that moved out of the finance/BI world in the hospitality sector and landed herself an impressive gig at ESPN-of all things, as a stats editor.
It seems a relevant jaunt (because all I know of her profession is that she's an incredible mathematician) but the gap seems wide just from a perspective of domain knowledge; she openly states not caring at all for sports but the new job location puts her close to family.
My question is: is Data Science so applied that one can make that kind of jump domains easily? This gal is one of the smartest people I know but the more I look into what it is you folks do, the more I am simultaneously intimidated yet interested in the field.
For these types of professional roles you generally see specialized teams in three broad groups: data engineers, modelers/analysts, domain experts. Unicorns sometimes exist, but usually you see T-type experience with depth in one of the three.
“Dangerous” in lighter ways: https://m.youtube.com/watch?v=-gYb5GUs0dM
Nostalgia requires this... https://www.smore.com/clippy-js
From that link: “Spreadsheet errors are costing businesses billions of pounds, according to a financial modeling company, which is calling for the introduction of industry-wide standards to reduce the risk of mistakes.
F1F9 estimated that 88 percent of all spreadsheets have errors in them, while 50 percent of spreadsheets used by large companies have material defects. The company said the mistakes are not just costly in terms of time and money - but also lead to damaged reputations, lost jobs and disrupted careers.”