it-swarm.com.ru

Как сделать так, чтобы таблица Google обновлялась каждые 1 минуту?

Моя электронная таблица Google использует функцию GOOGLEFINANCE('symbol','price) для получения цен акций моего портфеля. К сожалению, сейчас приходится обновлять вручную. Как я могу заставить электронную таблицу обновляться каждые 1 минуту?

Спасибо за помощь.

13
user781486

Если вы находитесь на новых листах Google, это все, что вам нужно сделать, согласно документам :

измените настройку пересчета на «Изменения и каждую минуту» в вашей электронной таблице в меню «Файл»> «Параметры электронной таблицы».

Это заставит весь лист обновляться сам каждую минуту на стороне сервера, независимо от того, есть ли у вас электронная таблица в вашем браузере или нет.

Если вы находитесь на старых Google Sheets, вам нужно добавить ячейку с этой формулой для достижения той же функциональности:

=GoogleClock()

EDIT, чтобы включить старые и новые Google Sheets и изменить на =GoogleClock().

22
rickcnagy

Если вы ищете только частоту обновления для функции GOOGLEFINANCE, имейте в виду, что задержки данных могут составлять до 20 минут (в соответствии с Заявлением об отказе от обязательств в отношении финансирования Google).

Частота обновления одного символа (с использованием GoogleClock)

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

=GoogleClock(GOOGLEFINANCE(symbol,"datadelay"))

Например, с: 

  • СИМВОЛ: ХОРОШО
  • ЗАДЕРЖКА ДАННЫХ: 15 (минут)

затем

=GoogleClock(GOOGLEFINANCE("GOOG","datadelay"))

Результатом является динамическая частота обновления данных:

=GoogleClock(15)

Частота обновления мультисимволов (с использованием GoogleClock)

Если ваш лист содержит несколько строк символов, вы можете добавить столбец datadelay для каждого символа и использовать минимальное значение, например:

=GoogleClock(MIN(dataDelayValuesNamedRange))

Где dataDelayValuesNamedRange - абсолютная или именованная ссылка диапазона ячеек, которые содержат значения задержки данных для каждого символа (при условии, что эти значения различны).

Без GoogleClock()

Функция GoogleClock() была удалена в 2014 году и заменена настройкой параметров для обновления листов. В настоящее время я подтвердил, что параметры замены доступны только в Листах при доступе из браузера настольного компьютера, а не из мобильного приложения (я использую мобильное приложение Листов Google, обновленное 2016-03-14).

(Эта часть ответа основана на скопированной части справки Google Docs)

Чтобы изменить частоту обновления «некоторых» функций Google Sheets:

  1. Откройте электронную таблицу. Нажмите Файл > Настройки электронной таблицы .
  2. В разделе RECALCULATION выберите параметр в раскрывающемся меню.
  3. Возможные варианты настройки:
    • По изменению
    • На смену и каждую минуту
    • На смену и каждый час
  4. Нажмите СОХРАНИТЬ НАСТРОЙКИ

NOTEФункции внешних данных пересчитываются через следующие интервалы:

  • ImportRange: 30 минут
  • ImportHtml, ImportFeed, ImportData, ImportXml: 1 час
  • GoogleFinance: 2 минуты

По-прежнему применимы ссылки в предыдущих разделах на отображение и использование атрибута datadelay, а также концепции для более эффективного кодирования листов. 

Положительным моментом является то, что новая опция обновления продолжает обновляться серверами Google независимо от того, загружен лист или нет. Это положительно для общих листов наверняка; тем более для сценариев Служб Google (GAS), где GAS используется в коде рабочего процесса или ссылочные данные используются в качестве триггера для события.

[*] в моем понимании (я сейчас проверяю это)

6
Derek Abrams

У меня была похожая проблема с крипто-обновлениями. Хитрый хак, который обходит это, состоит в том, чтобы включить трюк '+ now () - now ()' в конце формулы ячейки с настройкой, как указано выше, чтобы пересчитывать каждую минуту. Это работало для моих обновлений цен, но, безусловно, безобразный взлом.

1
Mike Pitman

используйте now () в любой ячейке. затем используйте эту ячейку в качестве «фиктивного» параметра в функции . когда now () изменяется каждую минуту, формула пересчитывает . пример: someFunction (a1, b1, c1) * (ячейка с now ( )/ячейка с сейчас ()) 

1
Paulino Seoane