GoogleAppsScriptで条件に応じたデータを別シートに転記するスクリプトを書いています。
具体的には5000行×6列のデータをgetValues()で二次元配列に代入し、この配列を繰り返し構文で回して特定の列の数値が指定変数以下かどうかを判別する条件分岐を書きました。
その後、if内で別シートへ二次元配列からその行を全て転記しようと以下のように書きました。
javascript
1 if(seach_data[i][5] < rank && seach_data[i][4] < percent){ 2 sheet.getRange(j,1).setValue(seach_data[i][0]); 3 sheet.getRange(j,2).setValue(seach_data[i][1]); 4 sheet.getRange(j,3).setValue(seach_data[i][2]); 5 sheet.getRange(j,4).setValue(seach_data[i][3]); 6 sheet.getRange(j,5).setValue(seach_data[i][4]); 7 sheet.getRange(j,6).setValue(seach_data[i][5]); 8 sheet.getRange(j,7).setValue('A'); 9 j=j+1 10 11 }
見るからに煩雑で改善の余地ありと思うだけでなく、毎回APIを叩くことになるので処理が遅くなってしまいます。
理想は別の二次元配列を用意して条件に該当した行を代入。
これを繰り返し、終わったらその二次元配列を一気に別シートへ転記。
というようなことができたら何度もAPIを叩かなくて済むので処理が早くなるかなと考えています。
この際、二次元配列がサポートされていないjavascriptではどういった書き方をすれば上のコードと同じ動きができますか?
まだあまり触った経験が少なく解決策がわからなかったので、お教え頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー