when I accidentally create an error (e.g. #NUM or #DIV/0) by changing a formula of a cell used in a circular dependency, then fix it, Excel fails to recalculate the sheet.
Isso não é verdade, o Excel recalcula adequadamente (pelo menos no exemplo que você postou):
- quando você insere uma referência circular, como em seu exemplo:
=B1*(C1+C2)
em C2 - O Excel interpreta apenas os valores da célula no momento anterior, e o valor anterior em C2 foi um erro, portanto, sua fórmula será:
=B1*(C1+#ERR)
, o que resulta em erro e em qualquer momento que você recalcule, ainda será um erro, então o comportamento que você descreveu é CORRETO - se você pressionar F2, redefina o valor em C2, por isso ele será considerado como
0
, por isso funciona - você pode argumentar que deseja redefinir todas as fórmulas com um erro, mas que pode acabar em loops infinitos quando o Excel tentar resolver cálculos impossíveis.
Eu tenho apenas alguns cálculos iterativos, mas eu aconselho veementemente contra eles, além do seu problema atual, pode haver outros também:
- perda de rastreabilidade: como os resultados do cálculo dependem não apenas de fórmulas e constantes na tela, mas também do estado anterior, pode ser muito difícil (se não impossível) reproduzir situações
- se você alterar qualquer valor acidentalmente que seja um precedente de uma fórmula de referência circular, ele será alterado imediatamente e nem sempre é fácil desfazê-lo (especialmente quando você perceber isso várias etapas depois).
- Eu acho que para uma folha financeira, seja de qualquer maneira teórica / científica / não realista você quer manter o controle total da folha.