BrewBama has the basic equation, but you'll want to adjust for mash temperature if you're mashing really high or really low.

I've had quite decent luck with BeerSmith and its calculations. If I hit mash temps, I usually get a final gravity within a point on either side of the estimated value, which ain't bad. Looking through the settings, BeerSmith's default is to reduce attenuation by 1.25% for each degree above 153.5, and increase it by 1.25% for each degree below 153.5. This adjustment could be incorporated into your Excel formula to match the BeerSmith results (and you could further tweak it for your system as you collect results over time).

[for some reason I can't exactly match the BeerSmith values when I calculate a test equation out in Excel; I suspect it's something with the way the software calculates or assumes another aspect of attenuation? Or maybe a rounding issue? In any case, I'm still within 0.001 of the BeerSmith values, and that's pretty much in what I consider standard measurement error on my own refractometer and hydrometer]