Скрипт Google Sheets для идентификации шаблона в столбце и копирования только уникального шаблона или диапазона уникальнJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Скрипт Google Sheets для идентификации шаблона в столбце и копирования только уникального шаблона или диапазона уникальн

Сообщение Anonymous »

type here

Столбец A: идентификатор задачи, столбец B: StaffUserID, столбец C: номер недели, столбец D: день недели, столбец E: выходные данные скрипта.
Скрипт распознает уникальные шаблоны для каждой комбинации StaffUserID и TaskID. Однако, если номер недели 1 — это TaskID: Task1, StaffID: Test1, DayofWeek: понедельник, вторник, среда, четверг, пятница.
WeekNumber 2 — это TaskID: Task1, StaffID: Test1, DayofWeek: понедельник, вторник, четверг, пятница.
Он оставляет номер недели 2 пустым, поскольку технически он идентифицирует уникальный общий шаблон, но не обязательно уникальную последовательность общих шаблонов в пределах номера недели.
Другой пример находится ниже, где номера WeekNumber 1, 2, 3, 4 и 6 уникальны. Однако WeekNumber 5 находится в WeekNumber 2, поэтому технически он не является «уникальным», но мне все равно нужно заполнить данные для 1-го WeekNumber, имеющего уникальный общий шаблон, и для последнего WeekNumber с уникальным общим шаблоном.
A: TaskID B: StaffUserID C: WeekNumber D: DayofWeek E: Вывод сценария
CMC 2E — 0730 — 1600 Тест 1 Понедельник Понедельник
CMC 2E – 07:30 – 16:00 Тест 1, вторник, вторник
CMC 2E – 07:30 – 16:00, Тест 1, среда
CMC 2E - 07:30–16:00 Тест 1, четверг, четверг
CMC 2E – 07:30–16:00 Тест 1, пятница, пятница
CMC 2M – 08:00–16:30, Тест 2, понедельник, понедельник< /p>
CMC 2M – 08:00–16:30 Тест 2, вторник, вторник
CMC 2M – 08:00–16:30, тест 2, среда
CMC 2M - 08:00 - 16:30 Тест 2 Четверг, четверг
CMC 2M - 08:00 - 16:30 Тест 2 Пятница
CMC 1L - 09:00 - 17:30 Тест 3 Понедельник Понедельник
CMC 1L — 09:00 — 17:30 Тест 3 Вторник Вторник
CMC 1L — 09:00 — 17:30 Тест 3 Среда Среда
CMC 1L – 09:00–17:30 Тест 3 Четверг Четверг
CMC 1L – 09:00–17:30 Тест 3 Пятница Пятница
CMC 1E – 07:00 – 15:30 Тест 4, понедельник, понедельник
CMC 1E – 07:00 – 15:30 Тест 4, вторник, вторник
CMC 1E – 07:00 – 15:30, Тест 4, среда Среда
CMC 1E – 07:00–15:30 Тест 4 Четверг Четверг
CMC 1E – 07:00–15:30 Тест 4 Пятница Пятница
CMC 2M – 08:00 – 16:30 Тест 5, понедельник
CMC 2M – 08:00 – 16:30 Тест 5, вторник
CMC 2M – 08:00 – 16:30 Тест 5, среда
CMC 2M – 08:00 – 16:30 Тест 5, четверг
CMC 2M – 08:00 – 16:30 Тест 5, пятница
CMC 2L - 09:30 - 18:00 Тест 6 Понедельник Понедельник
CMC 2L - 09:30 - 18:00 Тест 6 Вторник
CMC 2L - 09:30 - 18:00 Тест 6, среда
CMC 2L - 09:30 - 18:00 Тест 6, четверг, четверг
CMC 2L - 09:30 - 18:00 Тест 6, пятница, пятница
CMC 2L - 09:30 - 18:00 Тест 6, пятница, пятница
CMC 2L - 09:30 - 18:00 Тест 6, пятница, пятница
CMC 2L p>
Когда я попытался реализовать переменную WeekNumber, каждая неделя воспринималась как уникальная. Но ниже мой скрипт без переменной WeekNumber.
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[0]; // TaskID is in the first column
var staffUserID = data[1]; // StaffUserID is in the second column
var dayOfWeek = data[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
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... ue-pattern
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»