利用 Google Apps 脚本复制 IF(SUMIF()>56,(SUMIF(),"")
Utilizing Google Apps script to replicate IF(SUMIF()>56,(SUMIF(),"")
我正在尝试创建一个电子表格,允许我根据某个单元格 ("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
完成更新。
回首往事,我意识到我还没有 post 最终完成的副本。
function checkExt() {
var ssExt = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var valuesExt = ssExt.getRange("G35:G46").getValues();
var Ext = ssExt.getRange("A36").getValue();
if ((ssExt.getRange("G35").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
sendEmails()}
发送电子邮件功能最终根据单元格的值分为 3 组不同的人。我不会 post 整个代码,但这里是其中的片段。
var email = "";
if (ssExt.getRange("K8").getValue() === "1Q1"){
email = MailList1stShift}
else if (ssExt.getRange("K8").getValue() === "2Q1"){
email = MailList2ndShift}
else if (ssExt.getRange("K8").getValue() === "3Q1"){
email = MailList3rdShift}
如果我没理解错的话,你想检查是否满足这两个条件:
A36
中的值等于 N95
或 N64
。
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 脚本发送电子邮件,并且您只需要检查这些条件的帮助。
参考:
希望对您有所帮助。
我正在尝试创建一个电子表格,允许我根据某个单元格 ("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
完成更新。
回首往事,我意识到我还没有 post 最终完成的副本。
function checkExt() {
var ssExt = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var valuesExt = ssExt.getRange("G35:G46").getValues();
var Ext = ssExt.getRange("A36").getValue();
if ((ssExt.getRange("G35").getValue() > 55) && (Ext === "N64" || Ext === "N95")){
sendEmails()}
发送电子邮件功能最终根据单元格的值分为 3 组不同的人。我不会 post 整个代码,但这里是其中的片段。
var email = "";
if (ssExt.getRange("K8").getValue() === "1Q1"){
email = MailList1stShift}
else if (ssExt.getRange("K8").getValue() === "2Q1"){
email = MailList2ndShift}
else if (ssExt.getRange("K8").getValue() === "3Q1"){
email = MailList3rdShift}
如果我没理解错的话,你想检查是否满足这两个条件:
A36
中的值等于N95
或N64
。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 脚本发送电子邮件,并且您只需要检查这些条件的帮助。
参考:
希望对您有所帮助。