Google表格替换了Text()等效

时间:2014-07-30 14:01:45

标签: scripting google-apps-script google-sheets google-docs

在Google表格中,我有一列单元格,例如下面的示例,其中包含有用的数据 - 以及来自它的来源的一些垃圾。基本上我正在尝试编写一个脚本来删除“tag×”以及之后发生的任何事情。我只对保留名字感兴趣

亚当史密斯标签×制作×
bill jones tag×sales×
克里斯裤子标签×仓库×
dave watts tag×phones×

我可以在Excel中使用循环遍历列来完成此操作 Selection.Replace What:=“tag×*”,Replacement:=“”

但在我的新办公室,我们正在使用Google表格。我以为我可以用replaceText()来做这个,但是这个函数似乎只能在Document Service的文本类中使用。我查看了Spreadsheet App类但找不到任何内容。有谁知道电子表格应用程序中是否存在这种功能,或者我如何处理这种列?

4 个答案:

答案 0 :(得分:0)

您必须使用字符串操作。

将列中的所有数据放入一个数组中,逐行迭代进行字符串缩减。 代码

function removeTags(){
  var column = 1
  var sh = SpreadsheetApp.getActive().getActiveSheet();
  var data = sh.getRange(1,column,sh.getLastRow(),1).getValues();
  for(var n in data){
    if(data[n][0]==''){continue};// if cell empty then continue
    var str = data[n][0].toString();
    data[n][0]= str.substring(0,str.indexOf('tag'));//remove everything after "tag"
  }
  sh.getRange(1,column,sh.getLastRow(),1).setValues(data);// update sheet with new data
}

答案 1 :(得分:0)

不是很花哨,但假设它们都像你所展示的那样,可以用两个功能来完成。假设您的数据在A2列中,这些函数分别在b2和c2中。一个工作示例是here

=发现( “标签×”,A2) =左(a2,b2-2)

答案 2 :(得分:0)

使用以下公式创建列:

  

=左(A1,发现( “标签×”,A1)-2)

使用原始数据向下拖动到列旁边。

Screenshot here

答案 3 :(得分:0)

REGEXEXTRACT是另一种选择,请尝试

=Arrayformula(iferror(REGEXEXTRACT(A2:A,"(^\w+\ \w+)")))

REGEXEXTRACT

result