Как сделать гугл лист формулу просто рассчитать один раз?

У меня есть 3 строки в моем листе Google, то есть акции, цены и итоги. Итак, я просто использую "множественную" формулу для акций и цен, а затем помещаю значение в итоговую строку. но я не хочу, чтобы итоговая строка получала обновление или изменяла значение всякий раз, когда я меняю стоимость акций.

Кто-нибудь может мне помочь?

4 ответа

Решение

Google Sheets не предназначен для работы таким образом. Самое простое и быстрое решение - рассчитать то, что вам нужно, а затем использовать CTRL + C и выполнить повторную вставку с помощью CTRL + SHIFT + V.

Предполагая, что вы хотите, чтобы ячейка A1 вычисляла свое значение только один раз, вы можете поместить следующее в ячейку A1. Это указывает ячейке просто использовать ее существующее значение, если оно есть (а не 0), в противном случае запустить формулу.

=IF(A1<>0, A1, formula())

Поскольку ячейка ссылается на себя, вам необходимо включить итеративный расчет в меню "Файл"> "Настройки электронной таблицы"> "Расчет".

Я использую что-то вроде следующего для исторических данных Google Finance, поскольку значение никогда не изменится, а иногда Google Finance случайным образом возвращает ошибку. Это приведет к запуску формулы GOOGLEFINANCE() только до тех пор, пока она не вернет ненулевое значение без ошибок.

=IF(IFERROR(A1)<>0, A1, GOOGLEFINANCE(...))

используйте параметр значения копирования и вставки согласно https://www.ablebits.com/office-addins-blog/google-sheets-convert-formulas-values/

Первоначально я использовал решение Грейсона, но это

      =IF(IFERROR(A1)<>0, A1, GOOGLEFINANCE(...))

Помещает ЛОЖЬ в ячейку до тех пор, пока не будет помещен результат.

Мне нужно, чтобы это было пусто, т.е. "" как бы то ни было отличное от этого вызовет другую ячейку для выполнения другого запроса / запроса.

Мне также нужно, чтобы формула запускалась в зависимости от триггера (URL-адрес в другой ячейке). В этой формуле, если триггер размещен после выполнения формулы, он не сработает.

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

Так что у меня есть что-то вроде

      =IF(AND(IFERROR(E53)<>0,E53<>""),E53, if(D53<>"",IMPORTDATA(D53),""))

Объяснение (мне потребовалось время, чтобы понять это, чтобы я мог его расширить):

      D53 = myself

If I am nothing ("") or I am in Error (importdata not yet completed)
then
I am the result of ->   If(D53<>"",IMPORTDATA(D53),"")

Which is:
If the cell before me is something different from "", run the importdata 
with that cell as url, otherwise I am "" (nothing)

Таким образом достигается цель выполнения формулы только один раз, если триггер действителен (URL-адрес предыдущей ячейки есть). После размещения результат не изменится.

Если по какой-либо причине вам понадобится запустить его снова, вам придется удалить формулу и поместить ее снова.

Примечания. Если в ячейке X есть результат внешней выборки (например,IMPORTDATA) и в ячейке Y = ячейкаX, а в ячейке X вы видите «Загрузка ...» в ячейке Y, вы увидите (нуль). Я считаю, что это объясняет, почему другое решение сравнивалось с 0.

Другие вопросы по тегам