2016-07-26 9 views
0

私は、1つの列が他の列より大きいときに電子メールアラートを生成したいというGoogleシートを持っています。具体的には、列F>列G.これまで私が持っていることは、私は多くのスキルを書く機能を持っていないので、アドバイスは非常に高く評価されるだろう。グーグルシートのセルに基づいて条件付きメールを送信するGoogleスクリプト

function readCell() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Watch list"); 
    var value = sheet.getRange("F2").getValue(); 
    var value1 = sheet.getRange("G2").getValue(); 
    if(value>value1) MailApp.sendEmail('[email protected]', 'subject',  'message'); 
}; 

現在のところ、これは、セルF2をセルG2と比較するだけです。関数がF列全体をG列と比較する方法はありますか?Fx> Gx?

ありがとうございました!

答えて

1

すべての範囲でループする必要があります。
最初の代わりに、あなたはすべての列の内容を取得する必要があります一つのセルの内容を取得する:

var value = sheet.getRange("F2").getValue(); 

var values = sheet.getRange("F2:F").getValues(); 

(値1に同じ)
は、あなたが必要とすることになります結果を収集する空のテーブルを作成します。

var results = []; 

これでループスルーする必要があります

for(var i=0;i<values.length;i++){ 
//do the comparaison and store result if greater for example 
} 

、あなたは結果を送信することがあります。すべての値HT。 すべてが、それはそのような何かを与えるまとめ:

function readCell() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Watch list"); 
    var values = sheet.getRange("F2:F").getValues(); 
    var value1s = sheet.getRange("G2:G").getValues(); 
    var results = []; 
    for(var i=0;i<values.length;i++){ 
     if(values[i]<value1s[i]){ 
     results.push("alert on line: "+(i+2)); // +2 because the loop start at zero and first line is the second one (F2) 
     } 
    } 
    MailApp.sendEmail('[email protected]', 'subject',  results.join("\n")); 
}; 

を使用すると、自動的にその機能を起動したい場合にも、あなたが必要になります....代わりにgetActiveの(スプレッドシートを呼び出す方法を変更する必要がありますopenByIdを使用する)

+0

これは間違いなく適切なトラックです! if(values [i]> value1s [i]){(F> Gの場合は値が必要なのでif [values [i]

関連する問題