Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function generatePivotTable() {
- var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
- var dispensedSheet = spreadsheet.getSheetByName("Dispensed");
- var helperSheet = spreadsheet.getSheetByName("Helper Sheet") || spreadsheet.insertSheet("Helper Sheet");
- var data = dispensedSheet.getDataRange().getValues();
- var headerRow = data[0];
- // Find the index of "Therapist" column
- var therapistColumnIndex = headerRow.indexOf("Therapist");
- if (therapistColumnIndex === -1) {
- Logger.log("Therapist column not found");
- return;
- }
- // Remove "Timestamp" from header row
- var timestampColumnIndex = headerRow.indexOf("Timestamp");
- if (timestampColumnIndex !== -1) {
- headerRow.splice(timestampColumnIndex, 1);
- }
- // Clear contents of Helper Sheet
- helperSheet.clear();
- // Prepare pivot data
- var pivotData = [];
- pivotData.push(headerRow);
- for (var i = 1; i < data.length; i++) {
- var row = data[i];
- var therapist = row[therapistColumnIndex];
- if (!therapist) continue;
- if (!pivotData[therapist]) {
- pivotData[therapist] = Array(headerRow.length).fill(0);
- }
- for (var j = 0; j < row.length; j++) {
- if (j !== therapistColumnIndex && j !== timestampColumnIndex) {
- pivotData[therapist][j] += row[j];
- }
- }
- }
- // Write data to Helper Sheet
- for (var k in pivotData) {
- helperSheet.appendRow([k].concat(pivotData[k]));
- }
- // Create Pivot Table
- var range = helperSheet.getDataRange();
- var pivotTableRange = helperSheet.getRange('A1').offset(0, 0, range.getNumRows(), range.getNumColumns());
- var pivotTable = pivotTableRange.createPivotTable(helperSheet.getRange('A1'));
- var sourceData = pivotTableRange;
- var rows = [
- {
- sourceColumnOffset: 0,
- showTotals: true,
- sortAscending: true,
- sortOrder: SpreadsheetApp.SortOrder.ASCENDING
- }
- ];
- var values = [];
- for (var m = 1; m < headerRow.length; m++) {
- values.push({
- summarization: SpreadsheetApp.PivotTableSummarizeFunction.SUM,
- sourceColumnOffset: m,
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement