Pokročilý filtr a nějaké kouzlo

Pro drtivou většinu uživatelů Excelu, když se jim v hlavě vynoří slovo „filtrování dat“, stačí obvyklý klasický filtr ze záložky Data – Filtr (Data — Filtr):

Pokročilý filtr a nějaké kouzlo

Takový filtr je bezpochyby známá věc a ve většině případů bude stačit. Jsou však situace, kdy potřebujete filtrovat podle velkého počtu složitých podmínek ve více sloupcích najednou. Zde obvyklý filtr není příliš pohodlný a chci něco výkonnějšího. Takový nástroj by mohl být pokročilý filtr, zejména s trochou „dokončení pilníkem“ (podle tradice).

Základna

Chcete-li začít, vložte několik prázdných řádků nad svou datovou tabulku a zkopírujte tam záhlaví tabulky – bude to rozsah s podmínkami (pro jasnost zvýrazněný žlutě):

Pokročilý filtr a nějaké kouzlo

Mezi žlutými buňkami a původní tabulkou musí být alespoň jeden prázdný řádek.

Právě do žlutých buněk je potřeba zadat kritéria (podmínky), podle kterých se pak bude filtrování provádět. Pokud například potřebujete vybrat banány v Moskvě „Auchan“ ve čtvrtletí III, budou podmínky vypadat takto:

Pokročilý filtr a nějaké kouzlo

Chcete-li filtrovat, vyberte libovolnou buňku v rozsahu se zdrojovými daty a otevřete kartu Data A klikněte na tlačítko Kromě toho (Data – Pokročilé). V okně, které se otevře, by již měl být automaticky zadán rozsah s daty a budeme muset zadat pouze rozsah podmínek, tj. A1:I2:

Pokročilý filtr a nějaké kouzlo

Upozorňujeme, že rozsah podmínek nelze přidělit „s okrajem“, tj. nemůžete vybrat extra prázdné žluté řádky, protože prázdnou buňku v rozsahu podmínek Excel vnímá jako absenci kritéria a celou prázdnou řádek jako požadavek na zobrazení všech údajů bez rozdílu.

Vypínač Zkopírujte výsledek na jiné místo vám umožní filtrovat seznam ne přímo na tomto listu (jako u běžného filtru), ale uvolnit vybrané řádky do jiného rozsahu, který pak bude nutné zadat v poli Dejte výsledek do rozsahu. V tomto případě tuto funkci nepoužíváme, odcházíme Seznam filtrů na místě a klepněte na tlačítko OK. Vybrané řádky se zobrazí na listu:

Pokročilý filtr a nějaké kouzlo

Přidání makra

"No, kde je tady pohodlí?" ptáš se a budeš mít pravdu. Nejen, že musíte rukama zadávat podmínky do žlutých buněk, ale také otevřít dialogové okno, zadat tam rozsahy, stisknout OK. Smutné, souhlasím! Ale „všechno se změní, když přijdou ©“ – makra!

Práci s pokročilým filtrem lze výrazně urychlit a zjednodušit pomocí jednoduchého makra, které automaticky spustí rozšířený filtr při zadání podmínek, tedy změně libovolné žluté buňky. Klepněte pravým tlačítkem myši na záložku aktuálního listu a vyberte příkaz Zdrojový text (Zdrojový kód). V okně, které se otevře, zkopírujte a vložte následující kód:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:I5")) Is Nothing Then On Chyba Obnovit další ActiveSheet.ShowAllData Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange :=Rozsah("A1").CurrentRegion End If End Sub  

Tento postup se automaticky spustí, když se změní jakákoli buňka v aktuálním listu. Pokud adresa změněné buňky spadá do žlutého rozsahu (A2:I5), pak toto makro odstraní všechny filtry (pokud existují) a znovu aplikuje rozšířený filtr na zdrojovou datovou tabulku počínaje A7, tj. vše bude filtrováno okamžitě, okamžitě po zadání následující podmínky:

Takže všechno je mnohem lepší, ne? 🙂

Implementace složitých dotazů

Nyní, když se vše filtruje za chodu, můžeme jít trochu hlouběji do nuancí a rozebrat mechanismy složitějších dotazů v pokročilém filtru. Kromě zadávání přesných shod můžete použít různé zástupné znaky (* a ?) a znaky matematické nerovnosti v řadě podmínek pro implementaci přibližného vyhledávání. Na případu postavy nezáleží. Pro přehlednost jsem všechny možné možnosti shrnul do tabulky:

Kritérium Výsledek
gr* nebo gr všechny buňky počínaje GrIe Grucho, Grapefruit, Granat atd.
= cibule všechny buňky přesně a pouze se slovem Luk, tedy přesná shoda
*liv* nebo *liv buňky obsahující Liv jak podtrhnout, tzn ОLivže, Livep, PodleLiv atd.
=p*v slova začínající na П a končící na В ie ПPrvníв, Пéterв atd.
tak jako slova začínající na А a dále obsahující СIe Аpelсin, Аukolébavkaс, Asai atd.
=*s slova končící na С
=???? všechny buňky s textem o 4 znacích (písmena nebo čísla včetně mezer)
=m?????n všechny buňky s textem o 8 znacích začínající na М a končící na НIe Мandariн, Мúzkostн  atd.
=*n??a všechna slova končící na А, kde je 4. písmeno od konce НIe Paprsekнikа, Podleнozа atd.
>=e všechna slova začínající Э, Ю or Я
<>*o* všechna slova, která neobsahují písmeno О
<>*vich všechna slova kromě těch končících na HIV (například filtrujte ženy podle druhého jména)
= všechny prázdné buňky
<> všechny neprázdné buňky
> = 5000 všechny buňky s hodnotou větší nebo rovnou 5000
5 nebo =5 všechny buňky s hodnotou 5
> = 3/18/2013 všechny buňky s datem po 18. březnu 2013 (včetně)

Jemné body:

  • Znak * znamená libovolný počet libovolných znaků a ? – jakákoliv postava.
  • Logika při zpracování textových a číselných dotazů je mírně odlišná. Například buňka podmínky s číslem 5 tedy neznamená hledat všechna čísla začínající pěti, ale buňka podmínky s písmenem B se rovná B*, ​​tedy bude hledat libovolný text začínající písmenem B.
  • Pokud textový dotaz nezačíná znakem =, můžete na konec v duchu umístit *.
  • Dates must be entered in the US format month-day-year and through a fraction (even if you have Excel and regional settings).

Logické spojky AND-OR

Podmínky zapsané v různých buňkách, ale na stejném řádku, jsou považovány za propojené logickým operátorem И (A):

Pokročilý filtr a nějaké kouzlo

Tito. filtrovat banány pro mě ve třetím čtvrtletí, přesně v Moskvě a zároveň z Auchanu.

Pokud potřebujete propojit podmínky s logickým operátorem OR (OR), pak je stačí zadat do různých řádků. Pokud například potřebujeme najít všechny objednávky manažera Voliny na moskevské broskve a všechny objednávky na cibuli ve třetím čtvrtletí v Samaře, lze to specifikovat v řadě podmínek takto:

Pokročilý filtr a nějaké kouzlo

Pokud potřebujete uložit dvě nebo více podmínek na jeden sloupec, můžete jednoduše duplikovat záhlaví sloupce v rozsahu kritérií a zadat pod něj druhou, třetí atd. podmínky. Můžete si tedy například vybrat všechny transakce od března do května:

Pokročilý filtr a nějaké kouzlo

Obecně platí, že po „dokončení se souborem“ vychází pokročilý filtr jako docela slušný nástroj, místy o nic horší než klasický autofiltr.

  • Superfiltr na makrech
  • Co jsou makra, kam a jak vložit kód makra ve Visual Basicu
  • Inteligentní tabulky v aplikaci Microsoft Excel

Napsat komentář