2016-11-27 40 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导致公式为列的每一个细胞的工作:

如果你的数据在A列,在您希望修改后的文本列使用这个公式。 IF()用于将公式应用于相应的行。 REGEXEXTRACT()从文本中提取时间。

相关问题