Google apps script 如果单元格包含文本,则自动将文本添加到另一列单元格中

Google apps script 如果单元格包含文本,则自动将文本添加到另一列单元格中,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我的工作表有两列,第一列包含“完成”、“升级”、“拒绝”。现在我想要的是,当我键入escalate时,它将在另一列上生成“无法在线验证” | A | B | |Done | | |Escalate|Unable to verify online |

我的工作表有两列,第一列包含“完成”、“升级”、“拒绝”。现在我想要的是,当我键入escalate时,它将在另一列上生成“无法在线验证”

| A      | B                      |                                                    
|Done    |                        |                  
|Escalate|Unable to verify online |              
|Reject  |                        |                                                
我会尝试
=if(A2=“Escalate”,“HAHA”和“”)
在B列的第2行,它可以工作,现在我想把它应用到整个列

例如,如果在A列中的任何位置找到“升级”一词,则无法验证的将出现在同一行的B列上


有什么想法吗?

您必须编写一个自定义函数才能做到这一点。从电子表格中,按照菜单栏上的
工具-->脚本编辑器…
操作。在末尾输入以下代码:

function fillColB() {
  var s = SpreadsheetApp.getActiveSheet();
  var data = s.getDataRange().getValues();
  var data_len = data.length;
  for(var i=0; i<data_len; i++) {
    if(data[i][0] == "Escalate") {
      s.getRange(i+1,2).setValue("unable to verify online");
      }
    }
  }
函数fillColB(){
var s=SpreadsheetApp.getActiveSheet();
var data=s.getDataRange().getValues();
var data_len=data.length;

对于(var i=0;i您可以仅使用Google Sheet的函数来实现这一点。如果您试图根据特定字符串对其进行配置,则可以使用:=If(E5=“Y”,1,),其中E5是包含文本的单元格,“Y”是列中的所需文本,“1”是您希望根据所需文本输出的结果,以及““如果文本不正确,则为所需输出

如果您想知道是否有任何文本,可以使用IsBlank(E5)代替E5=“y”。Ex=If(IsBlank(E16),1)


如果你想更具体一些,Google也有ISTEXT或ISNUM。我按照你给出的说明操作,但当我把
=fillColB()放入单元格时,它会说“你没有调用set Value(第7行)的权限”…这意味着什么?试着运行fillColB()在使用公式之前从脚本编辑器中删除。您可以使用菜单栏上的“运行”按钮执行此操作。这不会回答问题-它会查找匹配的文本,但不会追加。