, поэтому задача состоит в том, что мне нужно выделить или отсканировать дубликаты значений в столбце, НО для последних, скажем, 5 строк, например, если у меня есть данные
1. 1
2. 5
3. 7
4. 2
5. 2
6. 3
7. 4
8. 2
9. 3
, поэтому в конце следует выделить только 5-й, 6-й, 8-й и 9-й ряд. Я могу легко сделать это, используя скрипт здесь
function myFunction() {
// List the columns you want to check by number (A = 1)
var CHECK_COLUMNS = [1];
// Get the active sheet and info about it
var sourceSheet = SpreadsheetApp.getActiveSheet();
var numRows = sourceSheet.getLastRow();
var numCols = sourceSheet.getLastColumn();
// Create the temporary working sheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var newSheet = ss.insertSheet("FindDupess");
// Copy the desired rows to the FindDupes sheet
for (var i = 0; i < CHECK_COLUMNS.length; i++) {
var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
var nextCol = newSheet.getLastColumn() + 1;
sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
}
// Find duplicates in the FindDupes sheet and color them in the main sheet
var dupes = false;
var data = newSheet.getDataRange().getValues();
data.length;
for (i = data.length-1; i > data.length-4; i--) {
for (j = i-1; j > data.length-6; j--) {
if (data[i].join() == data[j].join()) {
i;
j;
dupes = true;
sourceSheet.getRange(i+1,1,1,numCols).setBackground("red");
sourceSheet.getRange(j+1,1,1,numCols).setBackground("red");
}
}
}
// Remove the FindDupes temporary sheet
ss.deleteSheet(newSheet);
// Alert the user with the results
if (dupes) {
Browser.msgBox("Possible duplicate(s) found and colored red.");
} else {
Browser.msgBox("No duplicates found.");
}
};
Теперь я хочу, чтобы при добавлении новой строки я хотел, чтобы код / формула снова запускался автоматически и выбирал «теперь предыдущие 5 строк». Например, если я добавлю еще одну строку
1. 1
2. 5
3. 7
4. 2
5. 2
6. 3
7. 4
8. 2
9. 3
10. 3
Теперь нужно выделить 6-й, 9-й и 10-й ряд. Надеюсь, я дал понять.
P.S Я также использовал эту формулу
=UNIQUE(FILTER(A:A,ARRAYFORMULA(ROW(A:A)>COUNT(A:A)-5+1)))
Но, во-первых, он не выделяет строки, во-вторых, он не возвращает повторяющиеся значения, но все уникальные значения