You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets Apps Script中添加arrayformula至L2:L1000

问题解决方法

错误原因

代码报错是因为字符串中的双引号未转义。在JavaScript字符串里,若要包含双引号,必须用反斜杠\转义,否则会被识别为字符串的结束标记,引发语法错误。

另外,ARRAYFORMULA的特性是只需放在区域的首个单元格(此处为L2),就会自动应用到下方所有行,无需逐个设置L2到L1000的单元格。

修正后的代码

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  // 选中L2单元格,ARRAYFORMULA会自动填充至下方行
  var cell = sheet.getRange("L2");
  // 用单引号包裹公式字符串,避免转义内部双引号
  cell.setFormula('=arrayformula(if(ISBLANK(A2),"",if(and(M2="PLANNING",N2="TEST ONE"),"N",if(and(ISBLANK(J2),G2+7>today()),"Y",if(K2>G2+7,"Y","N")))))');
}

可选:限制公式作用范围到L1000

如果需要严格限定公式只处理到第1000行,可以修改公式中的引用范围,让ARRAYFORMULA仅作用于指定区间:

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange("L2");
  cell.setFormula('=arrayformula(if(ISBLANK(A2:A1000),"",if(and(M2:M1000="PLANNING",N2:N1000="TEST ONE"),"N",if(and(ISBLANK(J2:J1000),G2:G1000+7>today()),"Y",if(K2:K1000>G2:G1000+7,"Y","N")))))');
}

内容的提问来源于stack exchange,提问作者Van Latte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:10:43