<スポンサーリンク>
function combineRowsFromFourthSheetOnwards() {
// まとめ先のシート名
var combinedSheetName = "結果";
var combinedSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(combinedSheetName);
// まとめ先のシートが存在しない場合は新規作成
if (!combinedSheet) {
combinedSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(combinedSheetName);
}
// まとめ先のシートにヘッダーを追加
var headers = ["目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1", "目次1"];
combinedSheet.appendRow(headers);
// シートの数
var numSheets = SpreadsheetApp.getActiveSpreadsheet().getNumSheets();
// 4番目以降のシートからデータを取得してまとめる
for (var i = 3; i < numSheets; i++) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[i];
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var dataToCombine = [];
// 3行ごとのデータを1行にまとめる
for (var j = 1; j <= lastRow; j += 3) {
var range = sheet.getRange(j, 1, 3, lastColumn);
var values = range.getValues();
var combinedRow = [];
// 取得した3行のデータを1行にまとめる
values.forEach(function(row) {
combinedRow = combinedRow.concat(row);
});
// まとめたデータを配列に追加
dataToCombine.push(combinedRow);
}
// まとめたデータをまとめ先のシートに一気に書き込む
combinedSheet.getRange(combinedSheet.getLastRow() + 1, 1, dataToCombine.length, dataToCombine[0].length).setValues(dataToCombine);
}
}
コメント欄