I think it's amazing - have started playing around with it to test prestiging situations - in that case it's nice to know the CP - so I added some columns at the far right to calculate this for the Attacker/Defender ... also could include the prestige gain and float the HP remaining to the row that announces if the Attacker won. These are just some minor suggestions, I'm still trying to understand your main battle simulation process. Nice that you were able to do it all with formulas and no scripts!
Change to Gym Simulator
For those who may care, I made a significant update to my gym simulator on Google Sheets (https://docs.google.com/spreadsheets/d/1TGMj8MK90hMYmvehzCLyEu4roXswLJlIC4h7-pmyj5I/edit?usp=sharing).
The short explanation is that previously the dodging calculation didn't account for each move's damage window (because I didn't have a good source for the data).
As a result, it assumed if you wanted to dodge, you would always have time to try to do so. Now, when using the "Realistic" dodging option, it checks to see that you are able to dodge during the "Damage Window" of the specific move. If you aren't able to react in time, you won't dodge.
This is more accurate, but does highlight another limitation which I will try to address soon. I will build in the ability for the attacker to "skip" an attack in order to ensure it has time to dodge a defender's attack, since that's a very common strategy.
I also added a Change Log and To Do list. Still looking for feedback and suggestions. Thanks!