Size: a a a

Чат | Google Таблицы и скрипты

2020 March 12

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
=arrayFormula(importrange(K3:K18;"Реестр!A2:AI"))
Такого вида у меня не получалось, я решил что они не дружат
Ну так действительно не работает, к сожалению
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
=arrayFormula(importrange(K3:K18;"Реестр!A2:AI"))
Такого вида у меня не получалось, я решил что они не дружат
мы делали пользовательскую функцию для этого случая, смотри https://t.me/google_sheets/460
Telegram
Google Таблицы
Объединяем любое количество диапазонов Таблицы в одной функции.

Друзья, ДВССЫЛ / INDIRECT в массиве не работает, но очень часто вам нужно сослаться на ряд ячеек с диапазонами и собрать их в один массив. Например, у вас в Таблице двенадцать листов с расходами за разные месяца и вы хотите собрать все строки этих листов с помощью одной формулы, просто выделив диапазоны мышкой.

Теперь это возможно — мы написали для вас пользовательскую функцию. Функция объединяет диапазоны по горизонтали, в диапазонах могут быть разные листы Таблицы и разное количество столбцов. Все объединится прекрасно, смотрите скриншот.

Чтобы функция работала в вашей Таблице - скопируйте код и вставьте его в редактор скриптов этой Таблицы.

Функция отдельно:
function indirects(ranges){
 var ss = SpreadsheetApp
 .getActiveSpreadsheet();

 if(ranges.map){
   return [].concat.apply([], ranges.map(function(i){return ss.getRange(i).getValues()}));}
 else{return ss.getRange(ranges).getValues();}
}

Таблица с примером
источник

ДХ

Дамир Хафизов... in Чат | Google Таблицы и скрипты
Eugeny Namokonov
мы делали пользовательскую функцию для этого случая, смотри https://t.me/google_sheets/460
Telegram
Google Таблицы
Объединяем любое количество диапазонов Таблицы в одной функции.

Друзья, ДВССЫЛ / INDIRECT в массиве не работает, но очень часто вам нужно сослаться на ряд ячеек с диапазонами и собрать их в один массив. Например, у вас в Таблице двенадцать листов с расходами за разные месяца и вы хотите собрать все строки этих листов с помощью одной формулы, просто выделив диапазоны мышкой.

Теперь это возможно — мы написали для вас пользовательскую функцию. Функция объединяет диапазоны по горизонтали, в диапазонах могут быть разные листы Таблицы и разное количество столбцов. Все объединится прекрасно, смотрите скриншот.

Чтобы функция работала в вашей Таблице - скопируйте код и вставьте его в редактор скриптов этой Таблицы.

Функция отдельно:
function indirects(ranges){
 var ss = SpreadsheetApp
 .getActiveSpreadsheet();

 if(ranges.map){
   return [].concat.apply([], ranges.map(function(i){return ss.getRange(i).getValues()}));}
 else{return ss.getRange(ranges).getValues();}
}

Таблица с примером
Я на скрипт перешел, когда запарился ждать обновлений importrange
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
Я на скрипт перешел, когда запарился ждать обновлений importrange
Это очень правильно
источник

ДХ

Дамир Хафизов... in Чат | Google Таблицы и скрипты
Мне онлайн все равно не надо было обновление
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Согласен
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
https://t.me/google_sheets/461 вот тот скрипт советую, если строк будет много - он сможет обрабатывать большое количество таблиц, так как работает через sheets api
Telegram
Google Таблицы
Пока что наш лучший скрипт для сбора. С интерфейсом для ввода.

Друзья, если вам нужно регулярно собирать десятки тысяч строк из Таблиц, укладываясь в 6 минут (лимит времени работы одного скрипта) — вам сюда.

Просто скопируйте Таблицу себе и укажите в диапазоне «A2:C7» ссылки на Таблицы, листы и номера столбцов, которые нужно скопировать.

После запука скрипт в цикле пробежится по Таблицам, соберёт данные в массив и вставит их начиная с десятой строки.

Самое главное — вы можете поставить скрипт на регулярное выполнение и собирать данные каждую ночь, раз в два часа, etc. Для этого создайте триггер: нужно открыть редактор скриптов, меню изменить > триггеры текущего проекта, добавить триггер и поставить функцию get_google_sheets на нужную периодичность выполнения.

После этого скрипт сможет собирать тысяч строк из указанных Таблиц, даже если ваш компьютер в это время будет выключен. 🚀😈

>> Таблица со скриптом

Будут вопросы, пишите в наш чат: @google_spreadsheets_chat
источник

ДХ

Дамир Хафизов... in Чат | Google Таблицы и скрипты
Eugeny Namokonov
https://t.me/google_sheets/461 вот тот скрипт советую, если строк будет много - он сможет обрабатывать большое количество таблиц, так как работает через sheets api
Telegram
Google Таблицы
Пока что наш лучший скрипт для сбора. С интерфейсом для ввода.

Друзья, если вам нужно регулярно собирать десятки тысяч строк из Таблиц, укладываясь в 6 минут (лимит времени работы одного скрипта) — вам сюда.

Просто скопируйте Таблицу себе и укажите в диапазоне «A2:C7» ссылки на Таблицы, листы и номера столбцов, которые нужно скопировать.

После запука скрипт в цикле пробежится по Таблицам, соберёт данные в массив и вставит их начиная с десятой строки.

Самое главное — вы можете поставить скрипт на регулярное выполнение и собирать данные каждую ночь, раз в два часа, etc. Для этого создайте триггер: нужно открыть редактор скриптов, меню изменить > триггеры текущего проекта, добавить триггер и поставить функцию get_google_sheets на нужную периодичность выполнения.

После этого скрипт сможет собирать тысяч строк из указанных Таблиц, даже если ваш компьютер в это время будет выключен. 🚀😈

>> Таблица со скриптом

Будут вопросы, пишите в наш чат: @google_spreadsheets_chat
👍
источник

ДХ

Дамир Хафизов... in Чат | Google Таблицы и скрипты
Eugeny Namokonov
https://t.me/google_sheets/461 вот тот скрипт советую, если строк будет много - он сможет обрабатывать большое количество таблиц, так как работает через sheets api
Telegram
Google Таблицы
Пока что наш лучший скрипт для сбора. С интерфейсом для ввода.

Друзья, если вам нужно регулярно собирать десятки тысяч строк из Таблиц, укладываясь в 6 минут (лимит времени работы одного скрипта) — вам сюда.

Просто скопируйте Таблицу себе и укажите в диапазоне «A2:C7» ссылки на Таблицы, листы и номера столбцов, которые нужно скопировать.

После запука скрипт в цикле пробежится по Таблицам, соберёт данные в массив и вставит их начиная с десятой строки.

Самое главное — вы можете поставить скрипт на регулярное выполнение и собирать данные каждую ночь, раз в два часа, etc. Для этого создайте триггер: нужно открыть редактор скриптов, меню изменить > триггеры текущего проекта, добавить триггер и поставить функцию get_google_sheets на нужную периодичность выполнения.

После этого скрипт сможет собирать тысяч строк из указанных Таблиц, даже если ваш компьютер в это время будет выключен. 🚀😈

>> Таблица со скриптом

Будут вопросы, пишите в наш чат: @google_spreadsheets_chat
function tryt() для чего не понял
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
function tryt() для чего не понял
Спасибо, убрал, я тестировал что-то
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Функция в коде не используется
источник

ДХ

Дамир Хафизов... in Чат | Google Таблицы и скрипты
Диапазон с целевой таблицы забирается A2:D7, и с колонки D берется переменная ROW? попробовал добавить в D, "количество ячеек". Но изменений в отработке нет. Или это для чего то другого переменная?
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
Диапазон с целевой таблицы забирается A2:D7, и с колонки D берется переменная ROW? попробовал добавить в D, "количество ячеек". Но изменений в отработке нет. Или это для чего то другого переменная?
Row пока не используется
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
Диапазон с целевой таблицы забирается A2:D7, и с колонки D берется переменная ROW? попробовал добавить в D, "количество ячеек". Но изменений в отработке нет. Или это для чего то другого переменная?
Почитай пост, там понятно, как работает скрипт и что в него нужно добавить
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
просто вставляешь ссылки на таблицу, листы и столбцы, которые нужно собрать
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Обращения к Таблицам идет через sheets api и они и вставляются и собираются быстро, ты можешь вставить сотни тысяч строк. Через стандартный метод с таким количеством у тебя возникнут сложности.
источник

ДХ

Дамир Хафизов... in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Почитай пост, там понятно, как работает скрипт и что в него нужно добавить
Как по умолчаню работает я понял, хороший функционал с выбором нужных колонок, пытаюсь понять код, чтоб перепелить свой скрипт. Спасибо за наводку еще раз)
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
Как по умолчаню работает я понял, хороший функционал с выбором нужных колонок, пытаюсь понять код, чтоб перепелить свой скрипт. Спасибо за наводку еще раз)
Row пока уберу, чтобы не смущало
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Дамир Хафизов
Как по умолчаню работает я понял, хороший функционал с выбором нужных колонок, пытаюсь понять код, чтоб перепелить свой скрипт. Спасибо за наводку еще раз)
Будут какой-то фидбек по скрипту - пиши!
источник

ДХ

Дамир Хафизов... in Чат | Google Таблицы и скрипты
var ss = SpreadsheetApp.getActive();
 var sheetName = ss.getActiveSheet().getName();  
 var sheet = ss.getSheetByName(sheetName);

Непонятно)
Зачем брать имя активного листа и возвращать его, чтобы получить этот же лист, почему просто не взять активный лист, или лист с нужным именем
источник