SKRIPT
Filtrování pomocí skriptu
Filtrování pomocí skriptu
function filterRowsInSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("úkoly1");
// Získání nadpisů v řádku 2
var headers = sheet.getRange(2, 1, 1, sheet.getLastColumn()).getValues()[0];
// Najděte index sloupce W
var columnIndex = headers.indexOf("schváleno");
if (columnIndex == -1) {
throw new Error("Sloupec 'schváleno' nebyl nalezen.");
return;
}
columnIndex++; // Přizpůsobení pro základní index 1 místo základního indexu 0
// Získání dat ze sloupce W
var columnData = sheet.getRange(3, columnIndex, sheet.getLastRow() - 2, 1).getValues();
// Získání všech neprázdných hodnot ze sloupce W
var nonEmptyValues = [];
for (var i = 0; i < columnData.length; i++) {
if (columnData[i][0]) {
nonEmptyValues.push(columnData[i][0]);
}
}
// Získání aktuálního filtru
var filter = sheet.getFilter();
// Pokud filtr neexistuje, vytvořte nový filtr
if (!filter) {
var range = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn());
filter = range.createFilter();
}
// Nastavení kritérií pro nalezený sloupec
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(nonEmptyValues)
.build();
filter.setColumnFilterCriteria(columnIndex, criteria);
// Zobrazení hlášení
var hiddenRowCount = sheet.getRange(1, columnIndex).getValue();
ss.toast("AKCE BYLA PROVEDENA. CELKOVÝ POČET SCHVÁLENÝCH ÚKOLŮ, KTERÉ JSOU SKRYTY, JE " + hiddenRowCount, "", 3);
}