Пашыраны фільтр і трохі магіі

Для пераважнай большасці карыстальнікаў Excel, калі ў галаве ўзнікае слова «фільтрацыя даных», толькі звычайны класічны фільтр з укладкі Дадзеныя – Фільтр (Даныя — Фільтр):

Пашыраны фільтр і трохі магіі

Такі фільтр, без сумневу, звыклая рэч, і ў большасці выпадкаў ён падыдзе. Аднак бываюць сітуацыі, калі патрабуецца адфільтраваць па вялікай колькасці складаных умоў адразу ў некалькіх слупках. Звычайны фільтр тут не вельмі зручны і хочацца чагосьці больш магутнага. Такі інструмент можа быць пашыраны фільтр, асабліва з невялікай “дапрацоўкай напільнікам” (паводле традыцыі).

База

Каб пачаць, устаўце некалькі пустых радкоў над табліцай даных і скапіруйце туды загаловак табліцы - гэта будзе дыяпазон з умовамі (выдзелены жоўтым для нагляднасці):

Пашыраны фільтр і трохі магіі

Паміж жоўтымі вочкамі і зыходнай табліцай павінен быць хаця б адзін пусты радок.

Менавіта ў жоўтыя ячэйкі трэба ўвесці крытэрыі (умовы), па якіх потым будзе ажыццяўляцца фільтраванне. Напрыклад, калі ў III квартале ў маскоўскім «Ашане» трэба выбраць бананы, то ўмовы будуць выглядаць так:

Пашыраны фільтр і трохі магіі

Для фільтрацыі вылучыце любую ячэйку дыяпазону з зыходнымі дадзенымі, адкрыйце ўкладку Дата І націсніце Дадаткова (Дадзеныя — Пашыраны). У якое адкрылася акне дыяпазон з дадзенымі ўжо павінен быць аўтаматычна ўведзены, і нам застанецца толькі ўказаць дыяпазон умоў, гэта значыць A1:I2:

Пашыраны фільтр і трохі магіі

Звярніце ўвагу, што дыяпазон умоў нельга вылучаць «з запасам», г.зн. нельга вылучаць лішнія пустыя жоўтыя радкі, таму што пустая ячэйка ў дыяпазоне ўмоў ўспрымаецца Excel як адсутнасць крытэрыю, а цэлая пустая. радок як запыт на адлюстраванне ўсіх даных без разбору.

перамыкач Скапіруйце вынік у іншае месца дазволіць вам адфільтраваць спіс не тут жа на гэтым аркушы (як са звычайным фільтрам), а выгрузіць выбраныя радкі ў іншы дыяпазон, які потым трэба будзе ўказаць у полі Пастаўце вынік у дыяпазон. У гэтым выпадку мы не выкарыстоўваем гэтую функцыю, мы сыходзім Спіс фільтраў на месцы і націсніце OK. Выбраныя радкі будуць адлюстраваны на аркушы:

Пашыраны фільтр і трохі магіі

Даданне макраса

«Ну дзе ж тут зручнасць?» вы спытаеце, і вы будзеце мець рацыю. Вам трэба не толькі рукамі ўвесці ўмовы ў жоўтыя вочкі, але і адкрыць дыялогавае акно, увесці туды дыяпазоны, націснуць OK. Сумна, згодны! Але «ўсё мяняецца, калі яны прыходзяць ©» - макрасы!

Працу з пашыраным фільтрам можна значна паскорыць і спрасціць з дапамогай простага макраса, які будзе аўтаматычна запускаць пашыраны фільтр пры ўводзе ўмоў, г.зн. пры змене любой жоўтай клеткі. Пстрыкніце правай кнопкай мышы на ўкладцы бягучага аркуша і абярыце каманду Зыходны тэкст (Зыходны код). У якое адкрылася акне скапіруйце і ўстаўце наступны код:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:I5")) Is Nothing Then On Error Resume Next ActiveSheet.ShowAllData Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange :=Дыяпазон("A1").CurrentRegion End If End Sub  

Гэтая працэдура будзе запускацца аўтаматычна пры змене любой ячэйкі на бягучым аркушы. Калі адрас змененай ячэйкі трапляе ў жоўты дыяпазон (A2:I5), то гэты макрас выдаляе ўсе фільтры (калі такія маюцца) і паўторна прымяняе пашыраны фільтр да табліцы зыходных дадзеных, пачынаючы з A7, г.зн. усё будзе адфільтравана імгненна, адразу пасля ўводу наступнага ўмовы:

Так што ўсё значна лепш, так? 🙂

Рэалізацыя складаных запытаў

Цяпер, калі ўсё фільтруецца на хаду, мы можам крыху паглыбіцца ў нюансы і разабраць механізмы больш складаных запытаў у пашыраным фільтры. У дадатак да ўводу дакладных супадзенняў вы можаце выкарыстоўваць розныя знакі падстаноўкі (* і ?) і матэматычныя знакі няроўнасці ў шэрагу ўмоў для рэалізацыі прыблізнага пошуку. Рэгістр характару не мае значэння. Для нагляднасці я звёў усе магчымыя варыянты ў табліцу:

крытэрый Вынік
гр* або гр усе клеткі, пачынаючы з GrIe Grвуха, Grаперук, Grанат і г.д.
= цыбуля усе клеткі дакладна і толькі са словам Лук, г.зн. дакладнае супадзенне
*ліў* або *ліў клетак, якія змяшчаюць Ліў як падкрэсліць, г. зн ОЛіўШто, Ліўep, згоднаЛіў і г.д.
=п*в словы, якія пачынаюцца з П і заканчваецца на В ie П1.в, Пэфірв і г.д.
а*с словы, якія пачынаюцца з А і далей які змяшчае СIe Апелсin, АНанас, Asai і г.д.
=*s словы, якія заканчваюцца на С
=???? усе ячэйкі з тэкстам з 4 знакаў (літары або лічбы, уключаючы прабелы)
=m??????n усе вочкі з тэкстам з 8 знакаў, пачынаючы з М і заканчваецца на НIe Мандарын, Мнепакойн  і г.д.
=*н??а усе словы, якія заканчваюцца на А, дзе 4-я літара з канца НIe Праменьнikа, згоднанozа і г.д.
>=е усе словы, якія пачынаюцца з Э, Ю or Я
<>*о* усе словы без літары О
<>*віч усе словы, акрамя тых, якія заканчваюцца на ВІЧ (напрыклад, фільтраваць жанчын па імені па бацьку)
= усе пустыя вочкі
<> усе непустыя клеткі
> = 5000 усе ячэйкі са значэннем большым або роўным 5000
5 або =5 усе вочкі са значэннем 5
>=3 усе ячэйкі з датай пасля 18 сакавіка 2013 г. (уключна)

Тонкія моманты:

  • Знак * азначае любую колькасць любых сімвалаў, а ? – любы адзін знак.
  • Логіка апрацоўкі тэкставых і лікавых запытаў трохі адрозніваецца. Так, напрыклад, ячэйка ўмовы з лічбай 5 не азначае пошук усіх лічбаў, якія пачынаюцца з пяці, але ячэйка ўмовы з літарай B роўная B*, гэта значыць будзе шукаць любы тэкст, які пачынаецца з літары B.
  • Калі тэкставы запыт не пачынаецца са знака =, то ў канцы можна ў думках паставіць *.
  • Даты трэба ўводзіць у амерыканскім фармаце месяц-дзень-год і праз дроб (нават калі ў вас ёсць Excel і рэгіянальныя налады).

Лагічныя злучнікі І-АБО

Ўмовы, запісаныя ў розных вочках, але ў адным радку, лічацца звязанымі паміж сабой лагічным аператарам И (І):

Пашыраны фільтр і трохі магіі

Тыя. фільтр бананы мне ў трэцім квартале, менавіта ў маскве і заадно з ашана.

Калі вам трэба звязаць умовы з дапамогай лагічнага аператара OR (OR), то іх проста трэба ўвесці ў розныя радкі. Напрыклад, калі нам трэба знайсці ўсе заказы мэнэджэра Воліна на маскоўскія персікі і ўсе заказы на лук у трэцім квартале ў Самары, то гэта можна задаць у шэрагу ўмоў наступным чынам:

Пашыраны фільтр і трохі магіі

Калі вам трэба навязаць два і больш умоў на адзін слупок, то вы можаце проста прадубляваць загаловак слупка ў дыяпазоне крытэрыяў і ўвесці пад ім другі, трэці і г.д. тэрміны. Так, напрыклад, вы можаце выбраць усе транзакцыі з сакавіка па май:

Пашыраны фільтр і трохі магіі

Увогуле, пасля «дапрацоўкі файла» пашыраны фільтр атрымліваецца цалкам прыстойным інструментам, месцамі не горшым за класічны аўтафільтр.

  • Суперфільтр на макрасы
  • Што такое макрасы, куды і як уставіць код макрасаў у Visual Basic
  • Разумныя табліцы ў Microsoft Excel

Пакінуць каментар