google スプレッドシートで集計のシートへデータ入力後にデータの転記を行いたいと思いWEB検索をしたところ、
直ぐにGASを投稿しているサイトを見つけて使用して見ましたがデバックが出てしまいます。
https://fastclassinfo.com/entry/gas_data_tenki/
スクリプトエディタ
// プログラム0|スプレッドシート名の設定
function DivideData() {
// プログラム1|スプレッドシートの情報を取得
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('集計');
// プログラム2|スプレッドシートのデータを二次元配列として取得
var myRange = sheet.getDataRange().getValues();
// プログラム3|空の配列を設定
var products = [];
// プログラム4|プログラム2の集計の1列目は除外、2列目の日付時間~シート転記(Z列)をプログラム3の空配列に取得
for (var i=1; i<myRange.length; i++){
products.push(myRange[i][25]);
}
// プログラム5|プログラム4の商品名の重複を削除
var product_list = products.filter(function(value, i, self){
return self.indexOf(value) === i;
});
// プログラム6|商品名ごとに繰り返す
for (var i=0; i<product_list.length; i++){
// プログラム7|空の配列を設定 var myproducts = []; // プログラム8|ヘッダー情報を取得 myproducts.push(myRange[0]); // プログラム9|シート転記が一致すれば、その情報を配列に格納 for (var k=0; k<myRange.length; k++){ if (myRange[k][25] == product_list[i]){ myproducts.push(myRange[k]); } } // プログラム10|シートを追加 var sheetsnum = spreadsheet.getNumSheets(); var newsheet = spreadsheet.insertSheet(product_list[i], sheetsnum); // プログラム11|新規追加したシートに情報を貼り付け newsheet.getRange(1,1,myproducts.length,myproducts[0].length).setValues(myproducts);
}
}
実行をするとプログラム9でデバックが表示されます。
10:40:45 エラー
Exception: シート名「一般」はすでに存在しています。別の名前を入力してください。
DivideData @ コード.gs:41
GASが初心者以下の為、上記のプログラム修正が出来ません。
あと実行した際に集計シートでデータの入力をして、
実行を何回もした場合でもエラー表示がされない様にしたいのと、
このプログラムは新規データのみに実行が可能の為、
追加のデータが入力されても転記される様にしたいです。
お手数ですが、よろしくお願いいたします。