Pokročilý filter a nejaké kúzlo

Keď sa drvivej väčšine používateľov Excelu vynorí v hlave slovo „filtrovanie údajov“, stačí bežný klasický filter z karty Údaje – Filter (Údaje – Filter):

Pokročilý filter a nejaké kúzlo

Takýto filter je nepochybne známa vec a vo väčšine prípadov to bude stačiť. Sú však situácie, keď potrebujete filtrovať podľa veľkého počtu zložitých podmienok vo viacerých stĺpcoch naraz. Zvyčajný filter tu nie je príliš pohodlný a chcem niečo výkonnejšie. Takýto nástroj by mohol byť pokročilý filter, najmä s malým „dokončením pilníkom“ (podľa tradície).

Základňa

Ak chcete začať, vložte niekoľko prázdnych riadkov nad tabuľku s údajmi a skopírujte tam hlavičku tabuľky – bude to rozsah s podmienkami (pre prehľadnosť zvýraznený žltou):

Pokročilý filter a nejaké kúzlo

Medzi žltými bunkami a pôvodnou tabuľkou musí byť aspoň jeden prázdny riadok.

Práve do žltých buniek je potrebné zadať kritériá (podmienky), podľa ktorých sa potom bude filtrovať. Napríklad, ak potrebujete vybrať banány v moskovskom „Auchan“ v štvrťroku III, podmienky budú vyzerať takto:

Pokročilý filter a nejaké kúzlo

Ak chcete filtrovať, vyberte ľubovoľnú bunku v rozsahu so zdrojovými údajmi a otvorte kartu dátum A kliknite na ikonu Okrem toho (Údaje – pokročilé). V okne, ktoré sa otvorí, by už mal byť automaticky zadaný rozsah s údajmi a budeme musieť zadať iba rozsah podmienok, teda A1:I2:

Pokročilý filter a nejaké kúzlo

Upozorňujeme, že rozsah podmienok nemožno prideliť „s okrajom“, tj nemôžete vybrať extra prázdne žlté riadky, pretože prázdnu bunku v rozsahu podmienok Excel vníma ako absenciu kritéria a celú prázdnu riadok ako požiadavku na zobrazenie všetkých údajov bez rozdielu.

prepínač Skopírujte výsledok na iné miesto vám umožní filtrovať zoznam nie priamo na tomto hárku (ako pri bežnom filtri), ale uvoľniť vybraté riadky do iného rozsahu, ktorý potom bude potrebné zadať v poli Vložte výsledok do rozsahu. V tomto prípade túto funkciu nepoužívame, odchádzame Zoznam filtrov na mieste a kliknite na tlačidlo OK. Vybraté riadky sa zobrazia na hárku:

Pokročilý filter a nejaké kúzlo

Pridanie makra

"No, kde je tu pohodlie?" pýtaš sa a budeš mať pravdu. Nielenže musíte zadávať podmienky do žltých buniek rukami, ale aj otvoriť dialógové okno, zadať tam rozsahy, stlačiť OK. Smutné, súhlasím! Ale „všetko sa zmení, keď prídu ©“ – makrá!

Práca s pokročilým filtrom sa dá výrazne urýchliť a zjednodušiť pomocou jednoduchého makra, ktoré automaticky spustí rozšírený filter pri zadaní podmienok, teda zmene ľubovoľnej žltej bunky. Kliknite pravým tlačidlom myši na kartu aktuálneho hárka a vyberte príkaz Zdrojový text (Zdrojový kód). V okne, ktoré sa otvorí, skopírujte a prilepte nasledujúci kód:

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

Tento postup sa automaticky spustí, keď sa zmení ktorákoľvek bunka v aktuálnom hárku. Ak adresa zmenenej bunky spadá do žltého rozsahu (A2:I5), potom toto makro odstráni všetky filtre (ak existujú) a znova použije rozšírený filter na tabuľku zdrojových údajov počnúc A7, tj všetko bude filtrované okamžite, okamžite po zadaní nasledujúcej podmienky:

Takže všetko je oveľa lepšie, nie? 🙂

Implementácia zložitých dopytov

Teraz, keď sa všetko filtruje za behu, môžeme ísť trochu hlbšie do nuancií a rozobrať mechanizmy zložitejších dopytov v rozšírenom filtri. Okrem zadávania presných zhôd môžete použiť rôzne zástupné znaky (* a ?) a znaky matematickej nerovnosti v rade podmienok na implementáciu približného vyhľadávania. Na prípade postavy nezáleží. Pre prehľadnosť som všetky možné možnosti zhrnul do tabuľky:

kritérium Výsledok
gr* alebo gr všetky bunky začínajúce na GrIe Grucho, Grapefruit, Granat a tak ďalej
= cibuľa všetky bunky presne a len so slovom Luk, teda presná zhoda
*liv* alebo *liv bunky obsahujúce Liv ako podčiarknuť, tj ОLivŽe, Livep, PodľaLiv a tak ďalej
=p*v slová začínajúce na П a končiace na В ie Пprvýв, Пéterв a tak ďalej
a*s slová začínajúce na А a ďalej obsahuje СIe Аpelсin, Аnanaс, Asai a tak ďalej
=*s slová končiace na С
=???? všetky bunky s textom o 4 znakoch (písmená alebo čísla vrátane medzier)
=m????n všetky bunky s textom s 8 znakmi začínajúcimi na М a končiace na НIe Мandariн, Мúzkosťн  a tak ďalej
=*n??a všetky slová končiace na А, kde je 4. písmeno od konca НIe Lúčнikа, Podľaнozа a tak ďalej
>=e všetky slová začínajúce na Э, Ю or Я
<>*o* všetky slová, ktoré neobsahujú písmeno О
<>*vich všetky slová okrem tých, ktoré končia na HIV (napríklad filtrujte ženy podľa stredného mena)
= všetky prázdne bunky
<> všetky neprázdne bunky
> = 5000 všetky bunky s hodnotou väčšou alebo rovnou 5000
5 alebo =5 všetky bunky s hodnotou 5
>=3 všetky bunky s dátumom po 18. marci 2013 (vrátane)

Jemné body:

  • Znak * znamená ľubovoľný počet ľubovoľných znakov a ? - ľubovoľná postava.
  • Logika spracovania textových a numerických dotazov je mierne odlišná. Takže napríklad bunka podmienky s číslom 5 neznamená hľadať všetky čísla začínajúce päťkou, ale bunka podmienky s písmenom B sa rovná B*, ​​teda bude hľadať akýkoľvek text začínajúci písmenom B.
  • Ak textový dotaz nezačína znakom =, potom môžete v duchu dať * na koniec.
  • Dátumy musia byť zadané v americkom formáte mesiac-deň-rok a cez zlomky (aj keď máte Excel a miestne nastavenia).

Logické spojky AND-OR

Podmienky napísané v rôznych bunkách, ale v rovnakom riadku, sa považujú za vzájomne prepojené logickým operátorom И (A):

Pokročilý filter a nejaké kúzlo

Tie. filtrovať banány pre mňa v treťom štvrťroku, presne v Moskve a zároveň z Auchanu.

Ak potrebujete prepojiť podmienky s logickým operátorom OR (OR), potom ich stačí zadať do rôznych riadkov. Napríklad, ak potrebujeme nájsť všetky objednávky manažéra Volina na moskovské broskyne a všetky objednávky na cibuľu v treťom štvrťroku v Samare, potom to možno špecifikovať v rozsahu podmienok takto:

Pokročilý filter a nejaké kúzlo

Ak potrebujete uložiť dve alebo viac podmienok na jeden stĺpec, môžete jednoducho duplikovať hlavičku stĺpca v rozsahu kritérií a zadať pod ňu druhú, tretiu atď. podmienky. Môžete si teda napríklad vybrať všetky transakcie od marca do mája:

Pokročilý filter a nejaké kúzlo

Vo všeobecnosti po „dokončení so súborom“ vychádza pokročilý filter ako celkom slušný nástroj, miestami nie horší ako klasický automatický filter.

  • Superfilter na makrách
  • Čo sú makrá, kde a ako vložiť kód makra vo Visual Basicu
  • Inteligentné tabuľky v programe Microsoft Excel

Nechaj odpoveď