SKRIPT
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);

}