Artera Google Script Completed
This commit is contained in:
@ -1 +1 @@
|
||||
{"scriptId":"1TtrlsqzXey172jgJ2O8KLOudCm8p-q8aePsWRS4m3_HgLyOgmO1AWKrY","rootDir":"/Users/normrasmussen/Documents/Northpass/Scripts/GoogleScripts/Artera_wowprog"}
|
||||
{"scriptId":"1TtrlsqzXey172jgJ2O8KLOudCm8p-q8aePsWRS4m3_HgLyOgmO1AWKrY","rootDir":"/Users/normrasmussen/Documents/Northpass/Scripts/GoogleScripts/Artera_wowprog","projectId":"appscriptslocaldev"}
|
||||
|
||||
1
Scripts/GoogleScripts/Artera_wowprog/.clasprc.json
Normal file
1
Scripts/GoogleScripts/Artera_wowprog/.clasprc.json
Normal file
@ -0,0 +1 @@
|
||||
{"token":{"access_token":"ya29.a0AX9GBdXiioWBdtoVWI2RMz3w20lAhDMGbSH0G0hvCqUE51N9mNwR6Q2YegprBi-uLPjUQCn-Sff08o1yJUcMYY0jDuO7LCF061zu3Vlh-376Elz5-jXNrePuKaNxB73aLWsBPqKNWjf08RKMCEy2kBDQULaXaCgYKAbYSARASFQHUCsbC2bxYHKbnr9AwbIBf9rfVfQ0163","refresh_token":"1//01cyoCuw3Wr0xCgYIARAAGAESNwF-L9Ir2krbuxda1cDzPQRSodYRr4leW0_Rdu4wcMUtJn1TMn_5-yw-UNSLjOoY-JxbkLZvJ0I","scope":"https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/script.webapp.deploy","token_type":"Bearer","expiry_date":1673971176372},"oauth2ClientSettings":{"clientId":"979249900345-7tlqhlra786jbp15eddnlh9iracitoq8.apps.googleusercontent.com","clientSecret":"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","redirectUri":"http://localhost"},"isLocalCreds":true}
|
||||
@ -1,29 +1,67 @@
|
||||
var now = new Date();
|
||||
var today = Utilities.formatDate(now, 'America/New_York', 'MM/dd/yyyy');
|
||||
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
|
||||
const sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
|
||||
var lastColumn = sheet2.getLastColumn()+1;
|
||||
//Logger.log(lastColumn)
|
||||
const readSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
|
||||
const writeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1];
|
||||
|
||||
// This function needs to happen every time the script runs.
|
||||
function writeHeadings() {
|
||||
// Write the new Column Headings
|
||||
sheet2.getRange(1, lastColumn).setValue("Percent Change");
|
||||
sheet2.getRange(1, lastColumn+1).setValue("Progress");
|
||||
sheet2.getRange(2, lastColumn+1).setValue(today);
|
||||
// addtoSheet()
|
||||
var lastColumn = writeSheet.getLastColumn()+1;
|
||||
writeSheet.getRange(1, lastColumn).setValue("Percent Change");
|
||||
writeSheet.getRange(1, lastColumn+1).setValue("Progress");
|
||||
writeSheet.getRange(2, lastColumn+1).setValue(today);
|
||||
addProgress(lastColumn);
|
||||
}
|
||||
|
||||
function addtoSheet() {
|
||||
var numRows = sheet.getLastRow()-1; // Number of rows to process
|
||||
var dataRange = sheet.getRange(2, 2, numRows, 3);
|
||||
// This function takes the progress from Column D of Sheet0 and adds it to Sheet1
|
||||
function addProgress(lastColumn, prevColumn) {
|
||||
// Process Data from Sheet0
|
||||
var numRows = readSheet.getLastRow()-1; // Number of rows to process
|
||||
var dataRange = readSheet.getRange(2, 2, numRows, 3);
|
||||
// Process First Row from Sheet1
|
||||
// var numRows = writeSheet.getLastRow()-1; // Number of rows to process
|
||||
// var dataRange = writeSheet.getRange(3, 1, numRows, 1);
|
||||
var values = dataRange.getValues();
|
||||
|
||||
for (item in values) {
|
||||
var row = values[item];
|
||||
var course= row[0];
|
||||
var avgProgress = row [2];
|
||||
//var setRow = i+1
|
||||
//sheet2.getRange(setRow, 1).setValue(course);
|
||||
//sheet2.getRange(setRow, 2).setValue(avgProgress);
|
||||
findRow(course, avgProgress, lastColumn);
|
||||
}
|
||||
}
|
||||
|
||||
function findRow(course, avgProgress, lastColumn) {
|
||||
var prevColumn = writeSheet.getLastColumn()-2;
|
||||
var numRows = writeSheet.getLastRow();
|
||||
var data = writeSheet.getRange(3,1,numRows,1).getValues();
|
||||
for(var i = 0; i<data.length;i++){
|
||||
if(data[i][0] == course){
|
||||
var row = i+3;
|
||||
var prevVal = writeSheet.getRange(row, prevColumn).getValues();
|
||||
writeSheet.getRange(row, lastColumn+1).clearFormat();
|
||||
writeSheet.getRange(row, lastColumn).clearFormat();
|
||||
writeSheet.getRange(row, lastColumn+1).setValue(avgProgress);
|
||||
writeSheet.getRange(row, lastColumn).setValue(percentDiff(prevVal, avgProgress));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function percentDiff(prevVal, avgProgress){
|
||||
var prevVal = prevVal-0
|
||||
var avgProgress = avgProgress-0
|
||||
var percentChange = percentChange-0
|
||||
// This block will NOT show negative changes. So if a number decreases from one week to the next, it will still show a POSITIVE % change.
|
||||
// var percentChange =
|
||||
// (
|
||||
// (Math.abs(prevVal-avgProgress))/((prevVal+avgProgress)/2)
|
||||
// )
|
||||
// return percentChange
|
||||
|
||||
// Business Math! This will show negativos.
|
||||
var percentChange =
|
||||
(
|
||||
(avgProgress-prevVal)/(prevVal)
|
||||
)
|
||||
return percentChange
|
||||
}
|
||||
|
||||
6
Scripts/GoogleScripts/Artera_wowprog/MathExamples.js
Normal file
6
Scripts/GoogleScripts/Artera_wowprog/MathExamples.js
Normal file
@ -0,0 +1,6 @@
|
||||
// Logger.log(myFunction());
|
||||
|
||||
// function myFunction() {
|
||||
// var x = 5
|
||||
// return x-7
|
||||
// }
|
||||
@ -3,5 +3,11 @@
|
||||
"dependencies": {
|
||||
},
|
||||
"exceptionLogging": "STACKDRIVER",
|
||||
"runtimeVersion": "V8"
|
||||
}
|
||||
"runtimeVersion": "V8",
|
||||
"executionApi": {
|
||||
"access": "ANYONE"
|
||||
},
|
||||
"oauthScopes": [
|
||||
"https://www.googleapis.com/auth/spreadsheets"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user