Если ваши функции являются пользовательскими функциями Excel VBA, вызываемыми из ячеек рабочего листа, то вы получите это не пересчитывающее поведение, если UDF ссылается на ячейки, которых нет во входных параметрах UDF.
Если это так, то хорошим решением было бы определить некоторые динамические именованные диапазоны, которые расширяются / сжимаются при добавлении / удалении данных, и используют их в качестве входных данных для функции.
Другим решением будет добавление Application.Volatile.к вашему UDF, но это имеет нежелательный побочный эффект, что ваши UDF будут пересчитываться при каждом вычислении, которое может быть мучительно медленным.