2016-11-27 3 views
0

У меня есть столбец раз с комментарием от форм:Как обрезать несколько ячеек в электронной таблице с помощью скрипта?

'18:00 (pouze v lednu a únoru) 
'19:00 (v lednu, únoru i březnu) 
'19:00 (v lednu, únoru i březnu) 
'18:30 (pouze v lednu a únoru) 

Я хочу оставить только раз - без апострофа в начале и в комментариях, так что символы 2-6 всегда должны оставаться. Я новичок в скрипты и до сих пор я только понял, как получить столбец массива:

function cas() { 
    var ss=SpreadsheetApp.getActiveSpreadsheet(); 
    var r=ss.getRange("'Odpovědi formuláře 1'!D2:D"); 
    var vlst=r.getValues(); 
} 

ответ

1

Как насчет следующего сценария? Ваши данные находятся в столбце D. Данные, у которых есть апостроф наверху, не отображаются в электронной таблице.

enter image description here

Время и комментарии помещаются в массив из листа.

function cas() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var vlst = ss.getActiveSheet().getRange(2, 4, ss.getLastRow() - 2, 1).getValues(); // retrieving column D from your script 
    var array = []; 
    for (var i in vlst){ 
    var time = String(vlst[i]).match(/[0-9]{2}:[0-9]{2}/); 
    var comment = String(vlst[i]).replace(new RegExp(time[0], "g"), "").match(new RegExp("\\((.+?)\\)")); 
    array.push([time[0], comment[1]]); 
    } 
} 

>>> [[18:00, pouze v lednu a únoru], [19:00, v lednu, únoru i březnu], [19:00, v lednu, únoru i březnu], [18:30, pouze v lednu a únoru]] 
1

Не требуется сценарий. Данные формы все еще находятся в форме по мере ее ввода. Сценарий, редактирующий данные в столбце, изменит это, а последующие изменения или повторный импорт данных могут вызвать конфликты. Я считаю, что лучше использовать другой столбец для измененных данных. Имея это в виду:

Если данные в колонке А, использовать эту формулу в столбце, где вы хотите измененный текст:

=ARRAYFORMULA(IF(ISTEXT(A2:A), REGEXEXTRACT(A2:A,"(\d*:\d*)"),)) 

ARRAYFORMULA приводит формулу работать для каждой ячейки в столбце , IF() используется для применения формулы к соответствующим строкам. REGEXEXTRACT() извлекает время из текста.