そのため、Google シートと、リンクされたシートから毎週新しい従業員を選択し、Google を使用してリストの一番下に到達したときにリストの一番上から再開するカスタム関数を使用して、自動ローテーション スケジュールを作成しようとしています。 7 日ごとにカウンターを実行するようにトリガーします。
毎週スプレッドシートに値を保存してカウンターの値を保存し、関数を再度実行してカウンターを更新するときに同じ値を参照する方法を理解するのに苦労しています。
また、スプレッドシートが現在の出力で「結果は数値ではありませんでした」というエラーをスローする問題も抱えています。これは、スプレッドシートがそれ自体を参照しており、数式しか保存できない場合にカウンターを初期化する方法がわからないためです。参照するセル内。
ここに私が持っているものがあります:
/* counter starts at 2, increases each week (called upon by Google trigger to run each week) until
it reaches the lastRow of employees and then resets to two.
Returns this week's counter value each time to cell where function is called. */
function cleanerCounter(){
/*sheets*/
var sheet = SpreadsheetApp.getActive().getSheetByName('KitchenDuties');
var eDirectory = SpreadsheetApp.getActive().getSheetByName('EmployeeDirectory');
var lastRow = eDirectory.getLastRow(); //last row that contains an employee in the directory
//counter setup
var counter = sheet.getRange(6,2);
counter = counter.getDisplayValue();
counter = +counter;
if(counter >= lastRow){
counter = 2;
return +counter;
} else {
return +counter;
}
}