具有多个 IF 条件的 Google Apps 脚本

Posted

技术标签:

【中文标题】具有多个 IF 条件的 Google Apps 脚本【英文标题】:Google Apps Script with multiple IF conditions 【发布时间】:2020-12-21 15:57:32 【问题描述】:

我在 G 列中使用了这个公式

=IF(ISBLANK(A3),"User missing",IFS(C3=E3,0,E3="","Empty Data",C3<>E3,"Wrong Data"))

将此公式应用于 30k 数据会使我的工作表变慢。需要转成脚本。

由于 If 和 IFS 在同一个公式中使用,我很难将其转换为脚本。

条件:

If Column A is Empty then "User Missing"
If A have data, 
then condition is
If E is empty then "Empty Data"
If C and E is not equal then "Wrong Data"
If C and E is equal then 0

【问题讨论】:

【参考方案1】:

鉴于您需要A,C,E 列,我使用了A2:E 范围并将结果数据粘贴到F 列中:

function myFunction()
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const sh = ss.getSheetByName("Sheet1");
    const vals = sh.getRange("A2:E"+sh.getLastRow()).getValues();
    const cvals = []; 
    vals.forEach(r=>           
         cvals.push( [
                 r[0]==''?"User Missing":
                 r[4]==''?"Empty Data":
                 r[2]!=r[4]?"Wrong Data":0
         ])            
      );
    sh.getRange(2,6,cvals.length,1).setValues(cvals); // paste in column F

【讨论】:

这里有同样的问题,而是 C,D,E 。如果我使用 A,C,E vals 会怎样? 请edit根据新列更新条件。 @Moses 不确定您编辑了什么。您只想更改输入列?条件再次基于 C、D、E 列?请编辑此部分并更改您要使用的列字母:If Column D is Empty then "User Missing" If D have data, then condition is If E is empty then "Empty Data" If C and E is not equal then "Wrong Data" If C and E is equal then 0 @Moses 我更新了答案。让我知道它是否有效

以上是关于具有多个 IF 条件的 Google Apps 脚本的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps/G Suite/Google Workspace for MailChimp 上的多个 DKIM 和 SPF 记录

IF 函数 - Google 脚本 - 多个条件

使用 Apps 脚本对 Google 表格中的边框进行条件格式设置

集成 Plaid 和 Google Apps 脚本

使用 HtmlService 使用 Google Apps 脚本上传文件

具有多个条件的 if 语句