Как сделать двунаправленную синхронизацию данных между Google Spreadsheets?
Добрый день. Подскажите, есть ли способ сделать двунаправленную синхронизацию данных между двумя гугл таблицами? Т.е. юзер меняет данные в первой таблице — они меняются во второй. В тот же момент другой юзер может поменять эти же данные во второй таблице и они должны поменяться в первой. Если было бы только на чтение, то решилось бы с помощью IMPORTRANGE()
Делал так: отслеживал onEdit, открывал книгу и менял значения второй книги на значения первой.
В результате получаю ошибку: недостаточно прав. Почитал, вроде бы onEdit() урезан в правах Editor add-on authorization
Как это победить? Делать триггер по времени? Получится ненадёжно, часть данных может потеряться.
Как связать данные между таблицами в Google Таблицах
Большинство из нас знакомы с основами использования электронной таблицы в Таблицы Google; Мы фиксируем некоторые строки и столбцы, мы создаем вычисления, мы организуем наши данные в кружки, графики и графики, чтобы помочь визуализировать их. Но почему на этом все заканчивается? Следующим логическим шагом в улучшении ваших электронных таблиц является связывание данных между различными электронными таблицами, ввод точных данных или диапазонов данных, которые вы хотите, и отправка их в совершенно новое место! Здесь мы покажем вам, как это сделать с помощью функции ЗАПРОС и ИМПОРТРАНЖ.

Примечание. Обратите внимание, что при связывании данных с другой таблицей вам нужно будет щелкнуть ячейку и «Разрешить доступ» после ввода формулы, иначе данные не появятся.
КАК СВЯЗАТЬ ДАННЫЕ С ПОМОЩЬЮ ИМПОРТРАНЖА
Первый и самый важный способ связать данные между листами — использовать функцию ИМПОРТРАНЖ. Вот синтаксис того, как IMPORTRANGE передает данные из одной электронной таблицы в другую:
«Spreadsheet_key» — длинная комбинация цифр и букв в URL-адресе данной электронной таблицы.
«Range_string» — это точное имя страницы, с которой вы извлекаете данные (по умолчанию она называется «лист1», «лист2» и т. Д.), За которым следует «!» и диапазон ячеек, из которых вы хотите получить данные i.
Вот лист, из которого мы будем извлекать данные:

Мы будем извлекать данные из этой таблицы между ячейками A1 и D100. Формула для этого вводится в будущую электронную таблицу следующим образом:

При этом импортируются данные из другой электронной таблицы, в частности, из внутреннего листа, называемого «лист 1», куда переносятся все данные между ячейками A1 и D100. После выполнения этой настройки данные должны появиться в исходном виде.
Используйте QUERY для импорта наиболее условных данных
ImportRange — отличная функция для передачи больших данных между листами, но если вы хотите уточнить, что вы хотите импортировать, функция QUERY, вероятно, то, что вы ищете. Это будет искать в исходной таблице некоторые из указанных вами слов или условий, а затем извлекать соответствующие данные из той же строки или столбца.
В этом примере мы снова возьмем данные из таблицы ниже, но на этот раз мы собираемся получить только те данные, которые «Продано единиц» из Германии.

Чтобы получить нужные данные, нам нужно ввести следующее:

Здесь данные «IMPORTRANGE» следуют точно такой же формуле, как и раньше, но теперь мы собираемся использовать префикс QUERY), а затем указать ему выбрать столбец 5 (столбец «Продано единиц»), где данные находятся в столбце 2, т. Е. «Германия», поэтому в разделе «ЗАПРОС-ИМПОРТРАНЖ» есть два из «Аргументов» и выберите столбец X, где столбец Y = «Z».
Вы можете использовать эти формулы для всех видов автоматизированных методов привязки данных, поэтому позвольте вашему творчеству (или, по крайней мере, навыкам управления электронными таблицами) преобладать над данными!
Заключение
Приведенное выше руководство позволяет вам создавать листы, полные жизненно важных данных, когда исходный лист получает обновление. Такая настройка — это большие деньги и находка для тех, кто хочет объединить несколько таблиц с ценными подробными данными в один большой лист.
Вы открыли для себя какие-нибудь интересные уловки с Google Таблицами или у вас есть другой способ связать таблицы? Делитесь в комментариях.
Обмен данными между таблицами Google Spreadsheet
Как реализовать обмен данными между таблицами Google Spreadsheet ?
Для наглядности визуализировал все на картинке:
Таблицы находятся в разных документах.
При редактировании ячеек информация должна обновиться в другой таблице. Соответствие строк должно соблюдаться.
![]()
![]()
Для этого не нужен Apps Script, задача решается встроенными функциями importrange и query . А именно, importrange включает часть одной таблицы в другую, например
где в . надо поместить ссылку на другую таблицу, взяв её из адресной строки браузера. При первом использовании понадобится подтвердить разрешение на импорт данных.
Затем, выбрать только нужные данные посредством query (синтакс подобен SQL):
Отмечу, что Col3, например, означает третий столбец импортированного куска таблицы. В этом примере выбраны только строки, где в 8-м столбце указано В таблицу 1.
Как связать данные между таблицами в Google Таблицах
Большинство из нас знакомы с основными операциями при использовании электронных таблиц в Google Таблицах, такими как использование определенных строк и столбцов, вычисление, создание круговых диаграмм, столбцов, строк из данных и т. Д. Но почему мы просто останавливаемся на этом. Вам необходимо улучшить электронные таблицы, например связать данные между электронными таблицами, точно взять данные или диапазоны данных и поместить их в совершенно новое положение на другом листе. В этой статье показано, как связать данные с помощью функций ЗАПРОС и ИМПОРТРАНЖ.
- Как настроить право редактировать таблицы в Google Таблицах
Примечание. При связывании данных с другой таблицей необходимо щелкнуть поле и «Разрешить доступ» после ввода формулы, в противном случае данные не появятся.
Как связать данные с помощью функции ИМПОРТРАНЖ
Первый, самый простой метод связывания данных между электронными таблицами – это использование функции IMPORTRANGE. Вот синтаксис:
= ИМПОРТРАНЖ («ключ_таблицы», «строка_диапазона»)
«Ключ электронной таблицы» – это длинная строка цифр и букв в URL-адресе данной электронной таблицы. «Строка диапазона» – это точное имя электронной таблицы, которая принимает данные (по умолчанию называется «Sheet1», «Sheet2» и т. Д.), За которым следует ‘!’ и диапазон ячеек, которые хотят получить данные.
Ниже приведена таблица, в которой будут связаны данные:

В этой таблице мы получим данные из ячейки A1 в D100. Следовательно, у нас будет следующая формула:
= ImportRange (“1ByTut9xooZdPIBF55gzQ0Cdi04owDTtLVc_gPGtOKY0”, “Sheet1! A1: D100”)

Эта формула импортирует данные из электронной таблицы в другую таблицу. Вот данные из ячеек A1 до D100 из рабочего листа Sheet1. Данные, которые будут отображаться в другой таблице, сохранят тот же формат, что и исходный лист.
Используйте функцию ЗАПРОС для ввода условных данных
Функция IMPORTRANGE используется для массовой передачи данных между листами, но если вы хотите связать определенные данные, используйте функцию запроса. Это будет искать определенные слова или условия, которые вы установили, а затем перетаскивать соответствующие данные из той же строки или столбца.
Например, здесь мы получим немецкие данные о проданных единицах.

Чтобы получить данные, введите следующую формулу:
= QUERY (ImportRange (“1ByTut9xooZdPIBF55gzQ0Cdi04owDTtLVc_gPGtOKY0”, “Sheet1! A1: O1000”), “выберите Col5, где Col2 = ‘Germany’”)

Здесь данные «ImportRange» правильно следуют предыдущему синтаксису, а затем мы укажем функцию для столбца 5 как столбца «Продано единиц», содержащего столбец 2 «Германия». Следовательно, в этом запросе есть два «аргумента»: ImportRange и выберите ColX, где ColY = ‘Z’.
Приведенные выше инструкции позволяют создавать связи между электронными таблицами и могут автоматически обновлять данные при изменении в электронной таблице.