The algorithm is simple. A cell is filled with a value N if either:
- no other value can legally occupy that cell, or
- N caanot occupy any other cell in the row/column/3x3 block.
Sounds easy, but implementing it using only Excel spreadsheet functions sure took some thought, especially the guessing and backtracking part.
The file is available here: XLS (310k) - ZIP (43k)
Instructions are included in the file. Since circular references are used heavily, it defaults to manual calculation. So you need to press F9 to make things happen. Switching to automatic calculation works too, just make sure that the "reset" cell is on (see instructions), or it'll take forever to enter the starting clues!
I welcome feedback, especially if you find any bugs!
--
Marshall