製造プロセスのステップを経て進行中の作業を追跡するスプレッドシートを作成しています。ループ処理よりも効率的な解決策が必要
このプロセスの各ステップには、各ステージに移動された合計部分の列があります。この列の左側には、ステージに移動されたパーツの数の列があります(パーツは一度にいくつか移動します)。
私のscrpitは "add"カラムの値を "total"カラムに加え、 "add"カラムを ""にリセットします。ここで
コードです:function addColumns() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// ss is now the spreadsheet the script is associated with
var sheet = ss.getSheets()[0]; // sheets are counted starting from 0
// sheet is the first worksheet in the spreadsheet
for (var i=4; i<500; i++) {
if(sheet.getRange(i,1).getValue()>0){ //Only run if order number not empty
//Breakout Column
var add = sheet.getRange(i,6);
var total = sheet.getRange(i,7);
total.setValue(total.getValue() + add.getValue());
add.setValue("");
//CNC Column
var add = sheet.getRange(i,8);
var total = sheet.getRange(i,9);
total.setValue(total.getValue() + add.getValue());
add.setValue("");
//CutSand Column
var add = sheet.getRange(i,10);
var total = sheet.getRange(i,11);
total.setValue(total.getValue() + add.getValue());
add.setValue("");
//Lasered Column
var add = sheet.getRange(i,12);
var total = sheet.getRange(i,13);
total.setValue(total.getValue() + add.getValue());
add.setValue("");
//To Finishing Column
var add = sheet.getRange(i,14);
var total = sheet.getRange(i,15);
total.setValue(total.getValue() + add.getValue());
add.setValue("");
// Defective Column
var add = sheet.getRange(i,17);
var total = sheet.getRange(i,18);
total.setValue(total.getValue() + add.getValue());
add.setValue("");
//Etsy Column
var add = sheet.getRange(i,20);
var total = sheet.getRange(i,21);
total.setValue(total.getValue() + add.getValue());
add.setValue("");
}
if(sheet.getRange(i,4).getValue()<1){i=500} //Once you find a blank order exit the loop
}
}
、これを達成ん書かれたように私のコード;それは私が必要とするものを正確に行います。問題は、コードが各ループのスプレッドシートにアクセスしているため、実行するセルごとにほぼ完全な秒がかかり、注文ごとに7つのステップがあるため、一度に数分で多くの注文を実行できることです。
これはかなり単純な数学的な作業です。そのためには、より効率的な方法が必要です。私は、自分が何をする必要があるかを説明するための適切なキーワードを見つけることができませんでした。
私は何をする必要があるかを学ぶのがとてもうれしく、どんな方向に向かうべきかを知る必要があります。
ありがとうございます!