Automatický filtr je velmi oblíbený pro svou názornost při ovládání člověkem. Metoda „kouknu a vidím“ tu slaví úspěchy. Má ovšem svá omezení v počtu kritérií i v jejich složitosti. Druhé hledisko pro využívání filtrů je relativně složitý dotaz, který není nijak jednoduché zadat, ale zato se v různých úlohách moc nemění. To umožňují rozšířené filtry. Budeme se zabývat možnostmi, které nám rozšířené filtry poskytují v kombinaci s VBA.
Podkladová úloha: Pracujeme již poosmé se stejnou rozsáhlejší tabulkou. Stáhněte si sešit 2012-01 Filtry.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:
Oproti minulým dílům jsou zde dva nové sloupce „Spoluprace_Od“ a „Spoluprace_Do“, jejichž význam je zhruba takový: Kde není vyplněno nic, tak jsme s tímto člověkem dosud nespolupracovali, kde je vyplněno „Od“, ale ne „Do“, tak s ním dosud spolupracujeme, a kde je vyplněno i „Do“, tak jsme spolupráci ukončili.
Řekněme, že vznikají pravidelné úlohy vybrat jména pro zaslání nabídek, ale ty se budou lišit podle toho, jak dlouho s daným subjektem spolupracujeme. Takže pro akci „Věrní klienti“ chceme vybrat ty, kteří s námi spolupracují 5-10 let. Pro akci „Supervěrní klienti“ ty, kteří spolupracují déle, než 10 let. Třetí skupinu budou tvořit „Ztracení dlouhodobí klienti“, kteří v minulosti s námi spolupracovali alespoň 5 let, ale z nějakého důvodu spolupráce byla ukončena před více než 3 lety.
Pro práci s rozšířenými filtry si založíme list Param, který po uvedení do ostrého provozu zamkneme a skryjeme, a na nějž si uložíme kritéria pro rozšířený filtr.
Uživatel neznalý rozšířených filtrů by pravděpodobně přidal další sloupce, v nichž by sestavil vzorce pro dobu trvající spolupráce, a sloupec pro dobu, která uplynula od ukončení spolupráce. Na nich by pak použil automatický filtr.
My stejnou úlohu vyřešíme pomocí rozšířených filtrů, jenomže nechceme, aby kritéria rozšířeného filtru dostali uživatelé do ruky, a tak je pouze navedeme k výběru alternativy.
V dnešním dílu nebudeme umožňovat změnu číselných hranic mezi zvolenými kritérii.
Na listu „Pokyny“ vytvoříme zadávací oblast:
…