function createOfficeSheets() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var dataSheet = ss.getSheetByName("Read Only"); // Fetch all the data var data = getRowsData(dataSheet); // This is the data we want to display var columnNames = ['Direct', 'Ext', 'Office', 'First Name', 'Last Name', 'Cell Phone']; // Index data by office name var dataByOffice = {}; var offices = []; for (var i = 0; i < data.length; ++i) { var rowData = data[i]; if (!dataByOffice[rowData.office]) { dataByOffice[rowData.office] = []; offices.push(rowData.office); } dataByOffice[rowData.office].push(rowData); } offices.sort(); var headerBackgroundColor = dataSheet.getRange(1, 1).getBackgroundColor(); for (var i = 0; i < offices.length; ++i) { var sheet = ss.getSheetByName(offices[i]) || ss.insertSheet(offices[i], ss.getSheets().length); sheet.clear(); var headersRange = sheet.getRange(1, 1, 1, columnNames.length); headersRange.setValues([columnNames]); headersRange.setBackgroundColor(headerBackgroundColor); setRowsData(sheet, dataByOffice[offices[i]]); } }