使用Google Apps脚本复制IF(SUMIF()> 56,(SUMIF(),“”))

问题描述 投票:0回答:1

我正在尝试创建一个电子表格,该电子表格将允许我基于某个单元格(“ A36”)等同于“ N95”或“ N64”以及范围(G35:G46)为等于或大于“ 56”。我过去通过使用IF(SUMIF()> 56,(SUMIF(),“”)公式来实现此目的。但是,我的客户希望文档本身中没有公式。

这是到目前为止我要减少的内容...

   function newFile() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var values = ss.getRange("G35:G46").getValues();
var Ext = ss.getRange("A36").getA1Notation();
 if((values.getValue()>="56") && (Extrusion="N64")){ 
 ss.getRange=("P1:P4").setValue("2");
 }

 if ((values.getValue()>"56") && (Ext="N95")){
  ss.getRange("P1:P4").setValue("1");
  }
  }

作为更新,这是我想出的,但是我想将其压缩为一个小的脚本。我承认我仍在学习,并且希望得到帮助。

function newFile() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var Ext = ss.getRange("A36").getValue();
     if ((ss.getRange("G35").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G36").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G37").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G38").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G39").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G40").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G41").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G42").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G43").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G44").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G45").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
     if ((ss.getRange("G46").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
   ss.getRange("L35").setValue("4");}
 }

 // .setValue("4") is just my way of letting me know if the script was successful
javascript google-apps-script google-sheets porting
1个回答
0
投票

如果我对您的理解正确,您想检查是否同时满足这两个条件:

  • A36中的值等于N95N64
  • G35:G46范围内的每个值都大于55。

如果是这种情况,那么您可以这样做:

function sendEmail() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var values = sheet.getRange("G35:G46").getValues();
  var a36 = sheet.getRange("A36").getValue();
  var n95 = sheet.getRange("N95").getValue();
  var n64 = sheet.getRange("N64").getValue();
  var higher = values.every(function(value) {
    return value >= 56;
  })
  if ((a36 === n95 || a36 === n95) && higher) {
    // Send email
  }
}

我假设您已经知道如何通过Apps脚本发送电子邮件,并且您只需要帮助检查这些情况即可。

参考:

我希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.