type here
Column A: TaskID, Column B: StaffUserID, Column C: WeekNumber, Column D: DayofWeek, Column E: Output of script.
The script does recognize unique patterns for each StaffUserID and TaskID combination. However, if WeekNumber 1 is TaskID: Task1, StaffID: Test1, DayofWeek: Monday, Tuesday, Wednesday, Thursday, Friday.
WeekNumber 2 is TaskID: Task1, StaffID: Test1, DayofWeek: Monday, Tuesday, Thursday, Friday
It leaves WeekNumber 2 blank because technically it identified the unique common pattern, but not necessarily the unique common pattern sequence within a WeekNumber.
Another example is below where WeekNumber 1, 2, 3, 4, and 6 are all unique. However, WeekNumber 5 is found in WeekNumber 2 so technically it’s not “unique”, but I still need the data to be filled in for 1st WeekNumber that has a unique common pattern and the last WeekNumber with a unique common pattern.
A: TaskID B: StaffUserID C: WeekNumber D: DayofWeek E: Script Output
CMC 2E – 0730 – 1600 Test 1 Monday Monday
CMC 2E – 0730 – 1600 Test 1 Tuesday Tuesday
CMC 2E – 0730 – 1600 Test 1 Wednesday Wednesday
CMC 2E – 0730 – 1600 Test 1 Thursday Thursday
CMC 2E – 0730 – 1600 Test 1 Friday Friday
CMC 2M – 0800 – 1630 Test 2 Monday Monday
CMC 2M – 0800 – 1630 Test 2 Tuesday Tuesday
CMC 2M – 0800 – 1630 Test 2 Wednesday Wednesday
CMC 2M – 0800 – 1630 Test 2 Thursday Thursday
CMC 2M – 0800 – 1630 Test 2 Friday Friday
CMC 1L – 0900 – 1730 Test 3 Monday Monday
CMC 1L – 0900 – 1730 Test 3 Tuesday Tuesday
CMC 1L – 0900 – 1730 Test 3 Wednesday Wednesday
CMC 1L – 0900 – 1730 Test 3 Thursday Thursday
CMC 1L – 0900 – 1730 Test 3 Friday Friday
CMC 1E – 0700 – 1530 Test 4 Monday Monday
CMC 1E – 0700 – 1530 Test 4 Tuesday Tuesday
CMC 1E – 0700 – 1530 Test 4 Wednesday Wednesday
CMC 1E – 0700 – 1530 Test 4 Thursday Thursday
CMC 1E – 0700 – 1530 Test 4 Friday Friday
CMC 2M – 0800 – 1630 Test 5 Monday
CMC 2M – 0800 – 1630 Test 5 Tuesday
CMC 2M – 0800 – 1630 Test 5 Wednesday
CMC 2M – 0800 – 1630 Test 5 Thursday
CMC 2M – 0800 – 1630 Test 5 Friday
CMC 2L – 0930 – 1800 Test 6 Monday Monday
CMC 2L – 0930 – 1800 Test 6 Tuesday Tuesday
CMC 2L – 0930 – 1800 Test 6 Wednesday Wednesday
CMC 2L – 0930 – 1800 Test 6 Thursday Thursday
CMC 2L – 0930 – 1800 Test 6 Friday Friday
When I tried to implement a WeekNumber variable, it just saw each week as unique. But below is my script without a WeekNumber variable.
function copyCommonDayOfWeekPattern() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getRange("A2:D" + sheet.getLastRow()).getValues();
// Dictionary to store common DayOfWeek patterns for each TaskID and StaffUserID combination
var commonPatterns = {};
var startingRows = {}; // Dictionary to store starting row for each TaskID-StaffUserID combination
// Iterate through the data to find common patterns and starting rows
for (var i = 0; i < data.length; i++) {
var taskID = data[i][0]; // TaskID is in the first column
var staffUserID = data[i][1]; // StaffUserID is in the second column
var dayOfWeek = data[i][3]; // DayOfWeek is in the fourth column
var key = taskID + '-' + staffUserID;
if (!commonPatterns[key]) {
commonPatterns[key] = [];
startingRows[key] = i + 2; // Starting row for this TaskID-StaffUserID combination
}
if (commonPatterns[key].indexOf(dayOfWeek) === -1) {
commonPatterns[key].push(dayOfWeek);
}
}
// Paste the common patterns to column E
for (var key in commonPatterns) {
var patterns = commonPatterns[key];
var startingRow = startingRows[key];
for (var j = 0; j < patterns.length; j++) {
sheet.getRange(startingRow + j, 5).setValue(patterns[j]); // Paste to column E
}
}
}
ioux1 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.