我有一段时间的评论表格:
'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应该始终保留。我是Scripts的新手,到目前为止我只想出了如何将列添加到数组中:
function cas() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var r=ss.getRange("'Odpovědi formuláře 1'!D2:D");
var vlst=r.getValues();
}
答案 0 :(得分:1)
以下脚本怎么样?您的数据位于D列中。顶部有撇号的数据不会显示在电子表格中。
时间和评论从表格中放入一个数组。
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 :(得分:1)
无需脚本。表单数据仍然是输入时的表单。编辑列中数据的脚本将更改此操作,稍后编辑或重新导入数据可能会导致冲突。我发现使用另一列来修改数据会更好。考虑到这一点:
如果您的数据位于A列中,请在要修改文本的列中使用此公式:
=ARRAYFORMULA(IF(ISTEXT( A2:A), REGEXEXTRACT(A2:A,"(\d*:\d*)"), ))
ARRAYFORMULA使公式适用于列中的每个单元格。 IF()用于将公式应用于适当的行。 REGEXEXTRACT()从文本中提取时间。