前提・実現したいこと
月次データを、
テンプレートを基に日付毎に集計する仕組みづくりを作成しています。
発生している問題・エラーメッセージ
表に入力されている関数が、
貼り付け先だと若干ズレてしまう。
該当のソースコード
// プログラム0|スプレッドシート名の設定 function DivideData2() { // プログラム1|スプレッドシートの情報を取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName('貼付&操作'); var sheet1 = spreadsheet.getSheetByName('テンプレ'); // プログラム2|スプレッドシートのデータを二次元配列として取得 var myRange = sheet.getDataRange().getValues(); // プログラム3|空の配列を設定 var products = []; // プログラム4|プログラム2の商品列(E列)をプログラム3の空配列に取得 for (var i=5; i<myRange.length; i++){ products.push(myRange[i][0]); } // プログラム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[4]); // プログラム9|商品名が一致すれば、その情報を配列に格納 for (var k=0; k<myRange.length; k++){ if (myRange[k][0] == product_list[i]){ myproducts.push(myRange[k]); } } // プログラム10|シートを追加 var sheetsnum = spreadsheet.getNumSheets(); var newsheet = spreadsheet.insertSheet(product_list[i], sheetsnum); // プログラム11|新規追加したシートに情報を貼り付け sheet1.getRange("B1:T15").copyTo(newsheet.getRange("B1:T15"),SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false); newsheet.getRange(17,1,myproducts.length,myproducts[0].length).setValues(myproducts); } }
試したこと
setFormulaで書き込みを行っても同様に関数がズレてしまう。
sheeta.getRange(2,5).setFormula('=COUNTIFS($E$18:E,"D",$O$18:O,"1",$CC$18:CC,">=0:6:59")')
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/09 17:36