Last active
January 5, 2019 21:03
-
-
Save lindhe/1fe072a620a81894f9e1a18e82ecf18e to your computer and use it in GitHub Desktop.
Prints Week number from date in Google Sheets
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function printWeek() { | |
var settings = SpreadsheetApp.getActive().getSheetByName('settings'); | |
var sheet = SpreadsheetApp.getActive().getSheetByName('test'); | |
const DATE = 0; | |
const WEEK = 1; | |
const START_ROW = 2; // First row of data to process | |
// Fetch settings: | |
var config = settings.getRange(2,1,10,2).getValues(); // change range dependign on need | |
var numRows = config[0][1]; // Number of rows to process | |
if (typeof(numRows) !== 'number') { | |
Logger.log("Problem getting settings!"); | |
return false; | |
} | |
// Fetch data: | |
var dataRange = sheet.getRange(START_ROW, 1, numRows, 2); | |
var data = dataRange.getValues(); | |
for (row = 0; row < numRows; row++) { | |
if (typeof(data[row][WEEK]) === 'number') { // While week number is defined | |
var wk = data[row][WEEK]; | |
var dt = data[row][DATE]; | |
if (dt instanceof Date) { | |
dt = dt.yyyymmdd() | |
} | |
var sundayThatWeek = getDateOfNextWN(wk, 6).yyyymmdd(); | |
if (dt !== sundayThatWeek) { | |
Logger.log("The date of week " + wk + " was changed from " + dt + " to " + sundayThatWeek); | |
sheet.getRange(START_ROW + row, WEEK).setValue(sundayThatWeek); | |
SpreadsheetApp.flush(); | |
} | |
} else { | |
Logger.log("The type of the week field was " + typeof(data[row][WEEK])); | |
break; | |
} | |
} | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment