前提・実現したいこと
GASを使用して社用のタイムカードを回収したかどうかを自動で通知するシステムを
作成しようとしております。
スプレッドシートのA列に名前、B列にチェックボックス、D列にはIF関数で
A列が空白ではない、かつB列チェックボックスにチェックがついていればtrue,
A列が空白でない、かつB列チェックボックスにチェックがついていない場合false,
A列が空白の場合空白にするように作成しております。
最終的にはスプレッドシートD列のfalseの数を一次元配列として取得して
それと同じ行のA列(名前)をGmailで通知するシステムにしたいのですが
D列のfalseに対応するA列の値を取得する機能を実装中に
indexOfを使うと最初のものしか取得できず、for文で繰り返すと
単純にlength分繰り返す処理となってしまい行き詰ってしまいました。
該当のソースコード
function myFunction() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();//勤務表回収スプレッドシートを取得する変数を宣言 var hirabayashi = spreadsheet.getSheetByName("平林");//平林のシートを取得 var rangeKouki = hirabayashi.getDataRange().getValues();//平林のシートにある全データを取得 var rangeD = hirabayashi.getRange(1,4,hirabayashi.getLastRow()).getValues();//D列の情報を取得 rangeD = Array.prototype.concat.apply([],rangeD);//変数rangeDを一次元配列にする Logger.log(rangeD); var mikaisyuu = rangeD.reduce(function(accumulator,currentValue,index){ if (currentValue === false ){ accumulator.push(index); } return accumulator; },[])//変数rangeDの中のfalseの行番号を返す。 Logger.log(mikaisyuu); for( var i=1;i<=mikaisyuu.length;i++){ Logger.log(rangeKouki[i][0]); }//falseの行に対応した稼働者名をログ出力させる }
試したこと
ネットで諸々取得した複数要素に対応する行をさらに取得する方法を調べたのですが
これと言ったものがでてこず、行き詰っております。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/20 00:17
2019/08/22 00:00 編集
2019/09/11 16:08
2019/09/12 00:02
2019/09/12 00:36
2019/09/12 05:34
2019/09/12 05:35