формула excel для чтения из функции volatile?


У меня есть волатильная функция, скажем =getprice() в ячейке A1, которая может преуспеть, возвращая цену, или потерпеть неудачу, возвращая #REF!. Есть ли способ записать формулу в B1, которая читается из A1, если это удастся, получить значение, а если не удастся, сохранить последнее круглое значение?

2   4  

2 ответа:

Если вы включите включить итерационный расчет с максимальным числом итераций, равным 1, то:

=IF(ISERROR(A1),B1,A1)

Я понимаю, что это запоздалый ответ, но вот еще одна альтернатива, которая точно не отвечает на ваш вопрос, но все же, я думаю, что это полезная информация:

Недавно я обнаружил, что раскрывающиеся списки проверки данных всегда энергонезависимы, даже если вы выбираете значение volatile из раскрывающегося списка. Значение, выбранное из выпадающего списка, будет оставаться в ячейке неопределенно долго, пока вы не выберете его снова.

В вашем случае, в ячейке B1, вы можете выбрать проверка данных и настройка ее с помощью следующих параметров:

Введите описание изображения здесь

Таким образом, ячейка A1 будет постоянно обновляться, и всякий раз, когда вы хотите "захватить" это значение в A1, вы просто вручную выбираете единственную доступную опцию из выпадающего списка в ячейке B1, которая будет хранить это значение в B1 бесконечно, пока вы вручную не выберете из выпадающего списка снова.

Опять же, я понимаю, что это не совсем ответ на ваш вопрос, потому что ячейка B1 не отвечает автоматическое обновление, но этот метод имеет два основных преимущества:

  1. Это позволяет Excel по существу иметь память и смотреть на прошлые события (то, что в противном случае не могло бы быть достигнуто).

  2. Он по существу преобразует летучую клетку в энергонезависимую.

Преобразование в энергонезависимую ячейку, как правило, особенно полезно для повышения эффективности работы электронной таблицы. Например, в ячейке A1 Вы можете иметь функцию volatile = NOW() и затем используйте этот метод для моментального копирования этого значения в ячейку B1, и все ячейки в вашей рабочей книге, которые нуждаются в Формуле NOW(), могут быть основаны на ячейке B1 вместо A1, что потенциально может значительно улучшить время вычисления, так как B1 является энергонезависимым.