Size: a a a

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

2019 July 24

SM

Stanislav Maslakov in Чат | Google Таблицы и скрипты
Eugeny Namokonov
Две формулы напиши, в одной один столбец выведи, потом &, потом второй столбец
спасибо
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Stanislav Maslakov
спасибо
Ну либо выше был пример с textjoin
источник

EN

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

EN

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

A

Aleksey in Чат | Google Таблицы и скрипты
Всем привет! Подскажите, пожалуйста, а как сделать так, чтобы скрипт работал только на определенном листе?
function onEdit(e)
{
 var range = e.range
 if(range.getColumn()==12 && e.value=="Да"){
   range.offset(0,1).setValue(new Date())
 }
}
А то сейчас он срабатывает на всех листах
источник

A

Aleksey in Чат | Google Таблицы и скрипты
Я так понимаю сначала надо
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("НазваниеЛиста")
источник

A

Aleksey in Чат | Google Таблицы и скрипты
Направьте, пожалуйста
источник

A

Admin in Чат | Google Таблицы и скрипты
Aleksey
Всем привет! Подскажите, пожалуйста, а как сделать так, чтобы скрипт работал только на определенном листе?
function onEdit(e)
{
 var range = e.range
 if(range.getColumn()==12 && e.value=="Да"){
   range.offset(0,1).setValue(new Date())
 }
}
А то сейчас он срабатывает на всех листах
&& e.source.getActiveSheet().getName()==='имя листа' &&
источник

A

Admin in Чат | Google Таблицы и скрипты
Aleksey
Я так понимаю сначала надо
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("НазваниеЛиста")
Пример
Срабатывает на листе "Данные" и на колонке 4

Получилось?
источник

A

Aleksey in Чат | Google Таблицы и скрипты
/спасибо @IT_sAdmin 👍
источник

A

Aleksey in Чат | Google Таблицы и скрипты
Получилось! Успевал только заменять один вариант на другой. Зашел один был пример, потом зашел, уже другой)
источник

A

Admin in Чат | Google Таблицы и скрипты
Aleksey
Получилось! Успевал только заменять один вариант на другой. Зашел один был пример, потом зашел, уже другой)
🙂 Ну первый вариант у вас не сработал бы, так как не вынесено в переменные
И исправил на полный текст

А по фото, там полный текст sheet в переменных
 var sheet = e.source.getActiveSheet();
источник

A

Aleksey in Чат | Google Таблицы и скрипты
Благодарю)
источник

A

Admin in Чат | Google Таблицы и скрипты
Aleksey
Всем привет! Подскажите, пожалуйста, а как сделать так, чтобы скрипт работал только на определенном листе?
function onEdit(e)
{
 var range = e.range
 if(range.getColumn()==12 && e.value=="Да"){
   range.offset(0,1).setValue(new Date())
 }
}
А то сейчас он срабатывает на всех листах
Если это скрипт для вставки даты, то ловите мой вариант, он более лучше, и сохраняет навсегда ту дату, которая первично вставлена без изменений

function onEdit(e){ 

 var range = e.range
 var ss = e.source
 var sheet = ss.getActiveSheet();
 var row = range.getRow();
 var col = range.getColumn();

  if (col == 3){ // Если изменения в третьей колонке
   if (sheet.getRange(row, 1).getValues()==''){ //Если дата в колонке 1 не заполнена

      sheet.getRange(row, 1).setValues([[new Date()]]); //Заполняем текущую дату

   }
 }
}
источник

A

Aleksey in Чат | Google Таблицы и скрипты
Переслано от Admin
Если это скрипт для вставки даты, то ловите мой вариант, он более лучше, и сохраняет навсегда ту дату, которая первично вставлена без изменений

function onEdit(e){ 

 var range = e.range
 var ss = e.source
 var sheet = ss.getActiveSheet();
 var row = range.getRow();
 var col = range.getColumn();

  if (col == 3){ // Если изменения в третьей колонке
   if (sheet.getRange(row, 1).getValues()==''){ //Если дата в колонке 1 не заполнена

      sheet.getRange(row, 1).setValues([[new Date()]]); //Заполняем текущую дату

   }
 }
}
источник

A

Admin in Чат | Google Таблицы и скрипты
Aleksey
Переслано от Admin
Если это скрипт для вставки даты, то ловите мой вариант, он более лучше, и сохраняет навсегда ту дату, которая первично вставлена без изменений

function onEdit(e){ 

 var range = e.range
 var ss = e.source
 var sheet = ss.getActiveSheet();
 var row = range.getRow();
 var col = range.getColumn();

  if (col == 3){ // Если изменения в третьей колонке
   if (sheet.getRange(row, 1).getValues()==''){ //Если дата в колонке 1 не заполнена

      sheet.getRange(row, 1).setValues([[new Date()]]); //Заполняем текущую дату

   }
 }
}
Не туда переслали 😉
источник

A

Aleksey in Чат | Google Таблицы и скрипты
Admin
Не туда переслали 😉
Извиняюсь) Спасибо! Завтра попробую ваш скрипт)
источник

A

Aleksey in Чат | Google Таблицы и скрипты
Всем привет!
Есть несколько пакетов услуг, каждая услуга разделена на этапы. И есть таблица с процентовкой, которая распределяет сумму договора по клиенту на эти этапы. Была задача сделать таким образом, чтобы в таблице мы прописвыали клиента, его сумму договора и приобретенный пакет, а дальше на каждом этапе проставляли чекбоксы, когда этот этап сдан. В итоговом столбце у нас должна считаться отработка этих денег.
Я сделал условие для каждого этапа ЕСЛИ(D7:D12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;2;1);0) и потом все просуммировал и вышло такое большое полотно:
=ARRAYFORMULA(ЕСЛИ(D7:D12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;2;1);0)+ЕСЛИ(E7:E12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;3;1);0)+ЕСЛИ(F7:F12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;4;1);0)+ЕСЛИ(G7:G12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;5;1);0)+ЕСЛИ(H7:H12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;6;1);0)+ЕСЛИ(I7:I12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;7;1);0)+ЕСЛИ(J7:J12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;8;1);0)+ЕСЛИ(K7:K12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;9;1);0)+ЕСЛИ(L7:L12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;10;1);0)+ЕСЛИ(M7:M12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;11;1);0))
https://docs.google.com/spreadsheets/d/1PDa7fomEd01tiyozhkPL_TvQNBI4gKuhn4ciinwlUGQ/edit#gid=1463961669
И это для примера только 10 этапов, в рабочей таблице там около 40 этапов и формула в 4 раза длинее получается. Возможно как-то оптимизировать?
источник

EN

Eugeny Namokonov in Чат | Google Таблицы и скрипты
Aleksey
Всем привет!
Есть несколько пакетов услуг, каждая услуга разделена на этапы. И есть таблица с процентовкой, которая распределяет сумму договора по клиенту на эти этапы. Была задача сделать таким образом, чтобы в таблице мы прописвыали клиента, его сумму договора и приобретенный пакет, а дальше на каждом этапе проставляли чекбоксы, когда этот этап сдан. В итоговом столбце у нас должна считаться отработка этих денег.
Я сделал условие для каждого этапа ЕСЛИ(D7:D12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;2;1);0) и потом все просуммировал и вышло такое большое полотно:
=ARRAYFORMULA(ЕСЛИ(D7:D12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;2;1);0)+ЕСЛИ(E7:E12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;3;1);0)+ЕСЛИ(F7:F12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;4;1);0)+ЕСЛИ(G7:G12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;5;1);0)+ЕСЛИ(H7:H12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;6;1);0)+ЕСЛИ(I7:I12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;7;1);0)+ЕСЛИ(J7:J12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;8;1);0)+ЕСЛИ(K7:K12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;9;1);0)+ЕСЛИ(L7:L12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;10;1);0)+ЕСЛИ(M7:M12=1;C7:C12*ВПР(B7:B12;$C$2:$M$4;11;1);0))
https://docs.google.com/spreadsheets/d/1PDa7fomEd01tiyozhkPL_TvQNBI4gKuhn4ciinwlUGQ/edit#gid=1463961669
И это для примера только 10 этапов, в рабочей таблице там около 40 этапов и формула в 4 раза длинее получается. Возможно как-то оптимизировать?
привет, попробуй так
источник

А

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