Как переносить большие данные между таблицами // Что делать если importrange не работает?

Котятки, привет)

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

Для теста нам понадобятся:

- тест импорта источник

- тест импорта назначение (скрипт пишем здесь)

Для начала объявляем переменные для документов:

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

В документе источника решаем, что будем импортить, как правило это конкретные столбцы. Допустим столбцы “запись 4” и “запись 7”

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

В скрипте эта запись выглядит так:

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Примечание: в доке назначения заранее добавьте строки, если вставляемое число строк больше того, что есть в назначенном документе

Дальше очистим значения листа в итоговом документе, это нужно, чтобы не оставалось лишних данных

И указываем диапазоны :

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Dest.getRange(1,1,Lr), где 1 номер начальной строки, lr номер последней строки и 1 посередине - номер столбца ,куда будет записываться данные

Все, готово:)

Готовый скрипт выглядит вот так, согласитесь крайне несложно)) :

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Скрипт готов, теперь поговорим, как же его запустить. Есть два варианта:

1. Добавить триггер самообновления

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост
Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Настроить периодичность обновления скрипта

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Например: обновление раз в сутки или каждые 4 часа

Или же можно воспользоваться вторым способом

2) Вставить рисунок, и обозначить скрипт

Вставляем рисунок и нажимаем на 3 точки

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Дальше выбираем “назначить скрипт”

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Пишем название скрипта до скобок (в скрипте это название функции):

Как переносить большие данные между таблицами // Что делать если importrange не работает? Google Таблицы, Google, Формула, Длиннопост

Теперь при нажатии на эту картинку будет исполняться скрипт :)

Готово!) И не пугайтесь, если скрипт отрабатывает, как вам кажется слишком долго, учитывая объем инфы - полторы минуты эт норма.


Р.S. Готовый скрипт:

function import_data() {

const CURRENT = SpreadsheetApp.getActiveSpreadsheet();

const Dest = CURRENT.getSheetByName("Dest");

const SOURCE = SpreadsheetApp.openById("1JjqIJln5IKjNaLBMRVQAH72x8doTZLykf_3JeB1i0wQ");

const Source = SOURCE.getSheetByName("Source");

const dataArr = Source.getRange("A:A").getValues();

const zapis4Arr = Source.getRange("E:E").getValues();

const zapis7Arr = Source.getRange("H:H").getValues();

const lr = Source.getMaxRows();

Dest.clearContents();

Dest.getRange(1,1,lr).setValues(dataArr);

Dest.getRange(1,2,lr).setValues(zapis4Arr);

Dest.getRange(1,3,lr).setValues(zapis7Arr);

}

MS, Libreoffice & Google docs

718 постов15K подписчиков

Добавить пост

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.