Advertisement
Guest User

Untitled

a guest
Feb 6th, 2025
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function generatePivotTable() {
  2.   var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  3.   var dispensedSheet = spreadsheet.getSheetByName("Dispensed");
  4.   var helperSheet = spreadsheet.getSheetByName("Helper Sheet") || spreadsheet.insertSheet("Helper Sheet");
  5.  
  6.   var data = dispensedSheet.getDataRange().getValues();
  7.   var headerRow = data[0];
  8.  
  9.   // Find the index of "Therapist" column
  10.   var therapistColumnIndex = headerRow.indexOf("Therapist");
  11.   if (therapistColumnIndex === -1) {
  12.     Logger.log("Therapist column not found");
  13.     return;
  14.   }
  15.  
  16.   // Remove "Timestamp" from header row
  17.   var timestampColumnIndex = headerRow.indexOf("Timestamp");
  18.   if (timestampColumnIndex !== -1) {
  19.     headerRow.splice(timestampColumnIndex, 1);
  20.   }
  21.  
  22.   // Clear contents of Helper Sheet
  23.   helperSheet.clear();
  24.  
  25.   // Prepare pivot data
  26.   var pivotData = [];
  27.   pivotData.push(headerRow);
  28.   for (var i = 1; i < data.length; i++) {
  29.     var row = data[i];
  30.     var therapist = row[therapistColumnIndex];
  31.     if (!therapist) continue;
  32.     if (!pivotData[therapist]) {
  33.       pivotData[therapist] = Array(headerRow.length).fill(0);
  34.     }
  35.     for (var j = 0; j < row.length; j++) {
  36.       if (j !== therapistColumnIndex && j !== timestampColumnIndex) {
  37.         pivotData[therapist][j] += row[j];
  38.       }
  39.     }
  40.   }
  41.  
  42.   // Write data to Helper Sheet
  43.   for (var k in pivotData) {
  44.     helperSheet.appendRow([k].concat(pivotData[k]));
  45.   }
  46.  
  47.   // Create Pivot Table
  48.   var range = helperSheet.getDataRange();
  49.   var pivotTableRange = helperSheet.getRange('A1').offset(0, 0, range.getNumRows(), range.getNumColumns());
  50.   var pivotTable = pivotTableRange.createPivotTable(helperSheet.getRange('A1'));
  51.  
  52.   var sourceData = pivotTableRange;
  53.   var rows = [
  54.     {
  55.       sourceColumnOffset: 0,
  56.       showTotals: true,
  57.       sortAscending: true,
  58.       sortOrder: SpreadsheetApp.SortOrder.ASCENDING
  59.     }
  60.   ];
  61.   var values = [];
  62.   for (var m = 1; m < headerRow.length; m++) {
  63.     values.push({
  64.       summarization: SpreadsheetApp.PivotTableSummarizeFunction.SUM,
  65.       sourceColumnOffset: m,
  66.     });
  67.   }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement