/** @OnlyCurrentDoc */ function getGroup(sheet, rowIndex) { var groupDepth = sheet.getRowGroupDepth(rowIndex); if (groupDepth) return sheet.getRowGroup(rowIndex, groupDepth) else return null } function remove_all_groups() { var spreadsheet = SpreadsheetApp.getActive(); var sheet = spreadsheet.getActiveSheet(); var endRow = sheet.getLastRow(); for (var row = 1; row <= endRow; row++) { var group = getGroup(sheet, row); while (group) { group.remove(); group = getGroup(sheet, row); } } }; function group_rows() { remove_all_groups(); var spreadsheet = SpreadsheetApp.getActive(); var sheet = spreadsheet.getActiveSheet(); var endRow = sheet.getLastRow(); var endCol = sheet.getLastColumn(); var row = 10; var new_group_row = 10; while (row <= endRow) { var new_group = ! sheet.getRange(row, 1).isBlank() if (new_group) { if (row - new_group_row > 2) { // sheet.getRange(row-2,2).setValue(new_group_row); sheet.getRange(new_group_row+1, 1, row - new_group_row - 1).shiftRowGroupDepth(1); getGroup(sheet,new_group_row+1).collapse(); } new_group_row = row } row++; } };