If all the fields referenced in your calculation come from fields in the same record, then perhaps you can use an Auto-entered calculation instead of a calculation field.
If not, then you will need to keep your imported data in a different data field and define your calculation with an expression that returns the contents of the field with the imported data if there is data in it and calculates a total if it is empty:
If ( IsEmpty (ImportField) ; //your calculation goes here ; Import Field )
Note: I'm assuming that for some reason, your calculation produces a different value for your imported data than new data, otherwise you should be able to just change it to a calculation field. True, the original data is lost, but then your calculation will compute the same total as what was there originally and thus you get it back.