私は1枚のシートにいくつかのテーブルがあり、毎日メールを送るためにスクリプトを作成する必要があります。私が今日検索したスクリプトは、それを私のテーブルにマッチさせて列番号を返します。そして、最初の列(A)のTotalを探して、それを見つけたら行番号を返します。行番号と列番号を取得したら、その日の合計値を返します。私はJavaScriptで進歩していないし、配列(まだ学んでいる)と闘っている。私がこれまでに持っていたスクリプトは、そのシートに1つのテーブルしかない限り、とてもうまくいっていますが、シート上には50以上のテーブルがあり、最後に合計があります。私が持っている数式は、合計を見つけるが、すべての合計(行番号)を文字列として返します。私が必要とするのは、最初の合計(行番号)を取得することだけです。私はそれがすべて理にかなってほしい。返信行番号は一致エラーです
私はアイデアを作るために画像を添付しているし、私のスクリプト私がこれまで持っている:
function getTodaysTotal() {
function toDateFormat(date) {
try {return date.setHours(0,0,0,0);}
catch(e) {return;}
}
var values = SpreadsheetApp
.openById("ID")
.getSheetByName("Q3 - W27 - 39")
.getDataRange()
.getValues();
for (i in values){
if (values[i][0]=='Total'){
var nr = i;
Logger.log(nr); // will return two values (41 - first total and
104 second total ... if you add more Total it will return all rows
numbers that contain word Total
}
}
var today = toDateFormat(new Date());
var todaysColumn =
values[5].map(toDateFormat).map(Number).indexOf(+today);
var output = values[nr][todaysColumn];
// Logger.log(output);
var emailDate = Utilities.formatDate(new Date(today),"GMT+1",
"dd/MM/yyyy");
これはちょうど最初のテーブルですが、この1とそれぞれの下に多くのがあるだろう1つは合計を持つでしょう。
ありがとうございました!
大切にしてください!
シートのサンプルシートを50枚のテーブルで提供できますか、実際のシートへのリンクが良いでしょうか?各テーブルを他と区別できるのは何ですか? – mongoose36
私は2つのテーブルでテストファイルを提供することができます。パターンはすべて50で同じになります。https://drive.google.com/open?id=1Of2qpfaz8Z8sAhblVP1ebllHR3WT7b3kEehli6xqe0U。 .... –
ありがとうAndrei!シートに編集権限を与えることは可能でしょうか。 – mongoose36