When calling Calculate() it is just update all formula dependent cells, is not related with dirty state. As solution you can make snapshot of state, than make comparison.