it-swarm.com.ru

Принудительно пересчитать формулу листа Google

У меня есть формула индекса/соответствия, которая соответствует конкретному файлу на основе значения даты определенных ячеек. Вот формула:

=IFERROR(INDEX(INDIRECT("'"&TEXT($O$3,"mm-dd-yyyy")&"'!"&"$D3:$D$500"),MATCH($D5,INDIRECT("'" & TEXT($O$3, "mm-dd-yyyy") &"'!$B$3:$B500"),0)),0)

Я заметил, что значения не изменились, даже когда я импортировал новый CSV. Единственный способ получить значения для обновления состоял в том, чтобы заново ввести формулу путем перетаскивания из верхней части в последнюю ячейку, как это было бы вручную.

Я попытался изменить время пересчета в настройках, но казалось, что настройки не применяются к моей формуле, так как я установил его на каждую минуту, и ничего не произошло. 

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

7
Sean W

Короткий ответ

Ваша формула не пересчитывается, потому что ее аргументы не меняются. Как вы уже поняли, решение состоит в том, чтобы заново ввести правильные аргументы в ячейки, на которые ссылается ваша формула.

Объяснение

Формулы Google Sheets пересчитываются при

  1. Таблица открыта
  2. Изменения аргументов функции
  3. Функции СЕЙЧАС, СЕГОДНЯ, Рэнда и RANDBETWEEN обновляются в соответствии с настройками электронной таблицы, при изменении, при изменении и каждую минуту, при изменении и каждый час
  4. Функции внешних данных пересчитываются через следующие интервалы:
    • ImportRange: 30 минут
    • ImportHtml, ImportFeed, ImportData, ImportXml: 1 час
    • GoogleFinance: может быть отложено до 20 минут

Примечание. Некоторые функции и пользовательские функции не допускают использование недетерминированных функций в качестве аргументов.

Рекомендации

13
Rubén

Я нашел простое решение моей проблемы. Я написал скрипт для повторного ввода правильных дат в ячейки, на которые ссылается моя формула, и обновленных формул. 

2
Sean W

Вот еще одно решение, хотя и вычислительно дорогое: передать диапазон, который необходимо учитывать при расчете, функции. Таким образом, каждый раз, когда значение изменяется в переданном диапазоне или изменяется сам диапазон (например, вставка строки в диапазон), формула пересчитывается.

0
Jesse Heines