← Back to context

Comment by chime

16 years ago

The 'Solver' (http://www.solver.com/) tool in Excel is widely used for many business optimization problems. If you have x & y quantities of two raw materials and products A and B consume different proportions of each raw material, then you can use the solver to determine the most optimal production strategy that maximizes your profit (or minimizes your labor requirements etc.)

The joys of linear optimization. Do you know if it also supports integer optimization? (Doing that fast enough would be a feat in pure Excell.)

  • There are multiple versions of Solver. To get the free one to do this requires a hack (using some sort of Fourier Transform into a cell or something, I think there are multiple ways). There are paid versions of Solver that are far more powerful, with fully developed APIs. Also, Iron Python can be used with Excel, which makes the whole thing really intense because many Python Libs can be used. Excel truly is Microsoft's shiniest, best piece of software.

    • > Excel truly is Microsoft's shiniest, best piece of software.

      I would grant that honour to SQL Server. In fact, I regard SQL Server as Microsoft's third best product, lagging behind both the Natural Keyboard series (a must) and their mice ("honest value", reliable and comfortable). Never thought that, but Excel could be the fourth product in this list.

    • Excel is scriptable by COM and therefore VBSript, Python+PyWin32, and any other COM scripting language.

      Presumably you mean IronPython integration in a different sense due to it being a .Net library? Got any links with examples of how that looks / what it can do?

      3 replies →

  • I believe it does. And, IIRC, it's a native code library that uses Excel for data input and results presentation.

I've seen Solver used by a number of accountants to say 'I need my profit to be this number, what figures do I need to change to hit that?'. Solver is a life saver for those looking to cook the books (sadly far too many people).