Size: a a a

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

2018 May 14

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Во, это как раз тот случай когда вы вместо "ехать" выбираете "шашечки", используйте формулу не массива в этом случае, протяните ее с запасом и будет вам счастье.
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Можно скорее всего и массивом, но я сходу не вспомню как, а искать времени нет. Может специалисты по экселевским массивам подскажут.
источник

RY

Ruslan Y. in Чат | Google Таблицы и скрипты
Вариант протянуть не очень. Буду ждать спецов экселя)
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Ruslan Y.
Вариант протянуть не очень. Буду ждать спецов экселя)
"не очень" -  это вариант использовать формулы массива в больших файлах
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
а уж особенно в гугл таблицах, которые умирают не то, что из-за формул массива, а из-за лишней тысячи строк
источник

EN

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

EN

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

EN

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

P

Pavel in Чат | Google Таблицы и скрипты
Коллеги подскажите пожалуйста
Есть у кого скрипт оповещение на почту о изменениях в таблице
источник

C

CSV in Чат | Google Таблицы и скрипты
Pavel
Коллеги подскажите пожалуйста
Есть у кого скрипт оповещение на почту о изменениях в таблице
У меня был. Но часа через 1.5
источник

NK

ID:412416133 in Чат | Google Таблицы и скрипты
Друзья, кто нибудь знает почему у меня никак не получается зарегать триггер?
function onedit(e){
 try{
   updateOnce_(e);
 }catch(err){
   console.error(err, err.message, err.stack);
 }
}

function updateOnce_(e){
 var rng = e.range;
 var c = rng.getColumn();
 var r = rng.getRow();
 if(!e.value || c !== 7 || r <= 1)
   return;
 var sht = rng.getSheet();
 var to = sht.getRange(r, 19, 1, 3);
 if(!!to.getValues()[1].join(""))
   return;
   
 to.setValues(sht.getRange(r, 2, 1, 3).getValues());
}
источник

NK

ID:412416133 in Чат | Google Таблицы и скрипты
источник

NK

ID:412416133 in Чат | Google Таблицы и скрипты
вот это вот не работает
источник

NK

ID:412416133 in Чат | Google Таблицы и скрипты
и не хочет работать
источник

NK

ID:412416133 in Чат | Google Таблицы и скрипты
не могу зарегаться никак
источник

NK

ID:412416133 in Чат | Google Таблицы и скрипты
вчера работало, сегодня уже все..
источник

NK

ID:412416133 in Чат | Google Таблицы и скрипты
источник
2018 May 15

v

volond in Чат | Google Таблицы и скрипты
привет.
для моего вчерашнего вопроса про importrange я нашёл более удобное решение (позволяет делать что угодно с полученными данными, а потом снова их обновить), кстати, в случае с importrange при удалении значения только в первой колонке, в консолидированной таблице удаляется вся строка:

function onOpen() {

var ui = SpreadsheetApp.getUi();
ui.createMenu('Моё меню')
   .addItem('Бросить якорь в C56', 'setAnchor')
   .addItem('Импорт от Операторов', 'importFromOperators')
   .addToUi();
}

function importFromOperators() {

// подготовка места вставки данных в файле Консолидации
var ssBoss = SpreadsheetApp.getActive(); // файл Консолидации (текущий)
var bsSheet = ssBoss.getSheetByName('Лист2'); // название листа в файле Консолидации

var bsLastRow = Math.max(2, bsSheet.getLastRow());

var bsRange = bsSheet.getRange('A2:H'+bsLastRow); // диапазон на листе в файле Консолидации
bsRange.clear(); // очищаем перед новой загрузкой

var values = bsRange.getValues(); // инициализируем массив одной пустой строкой (потом удалим)

// массив идентификаторов файлов Операторов
var operIds = [ '16j-2JOSmbqyWyC2eB3T_dcINBP1cmP1sOvivI2RCaD4' ,
               '1kG37JW8hFoN6ZuyYdSF_PaQ-2fHVSjIrKTe_xY48hBI' ,
               '1gliJdShI_MCGAt8kJP1xkqcEGNKwaDF-U530oNiDW9M' ];

// читаем данные из файлов Операторов (цикл по файлам)
for(var i=0; i<operIds.length; i++) {
   var ssOper = SpreadsheetApp.openById(operIds[i]); // очередной файл Оператора
   var opSheet = ssOper.getSheetByName('Лист1'); // название листа в файле Оператора

   var opLastRow = Math.max(2, opSheet.getLastRow());

   var opRange = opSheet.getRange('A2:H'+opLastRow); // диапазон на листе в файле Оператора
   
   values = values.concat(opRange.getValues()); // добавляем очередные значение в общий массив
}

// удаляем абсолютно пустые строки (массив уплотняется)
for (i=values.length-1; i>=0; i--) {
   if (values[i].toString() == values[0].toString()) {
   values.splice(i, 1);
   }
}

// вставляем консолидированные данные на лист Консолидации
if (values.length) bsRange.offset(0, 0, values.length).setValues(values);  
}
источник

VK

Viktor Kazakov in Чат | Google Таблицы и скрипты
А есть формула, которая определяет географические координаты города/области?
источник

М

Михаил in Чат | Google Таблицы и скрипты
Ребята, огромное спасибо за ВПР. Я же совсем не знал про её существование!
Так и сидел бы.
источник