Екцел функција ФИЛТЕР - динамичко филтрирање са формулама

  • Деле Ово
Michael Brown

Преглед садржаја

У овој брзој лекцији научићете како да динамички филтрирате у Екцел-у помоћу формула. Примери за филтрирање дупликата, ћелија које садрже одређени текст, са више критеријума и још много тога.

Како обично филтрирате у Екцел-у? Углавном, коришћењем аутоматског филтера, ау сложенијим сценаријима са напредним филтером. Будући да су брзе и моћне, ове методе имају један значајан недостатак - не ажурирају се аутоматски када се ваши подаци промене, што значи да бисте морали поново да их очистите и филтрирате. Увођење функције ФИЛТЕР у Екцел 365 постаје дуго очекивана алтернатива конвенционалним функцијама. За разлику од њих, Екцел формуле се аутоматски поново израчунавају са сваком променом радног листа, тако да ћете морати да подесите филтер само једном!

    Екцел функција ФИЛТЕР

    Филтер функција у Екцел се користи за филтрирање опсега података на основу критеријума које наведете.

    Функција припада категорији функција динамичких низова. Резултат је низ вредности који се аутоматски прелива у опсег ћелија, почевши од ћелије у коју уносите формулу.

    Синтакса функције ФИЛТЕР је следећа:

    ФИЛТЕР(низ, укључи , [иф_емпти])

    Где:

    • Низ (обавезно) - опсег или низ вредности које желите да филтрирате.
    • Инцлуде (обавезно) - критеријуми који се испоручују као логички низ (ТРУЕ и ФАЛСЕ вредности).

      Његовчак и стотине колона, можда бисте сигурно желели да ограничите резултате на неколико најважнијих.

      Пример 1. Филтрирајте неке суседне колоне

      У ситуацији када желите да се неке суседне колоне појаве у ФИЛТЕР резултат, укључите само те колоне у арраи јер је овај аргумент тај који одређује које колоне ће се вратити.

      У основном примеру формуле ФИЛТЕР, под претпоставком да желите да вратите прве 2 колоне ( Име и Група ). Дакле, дајете А2:Б13 за аргумент арраи :

      =FILTER(A2:B13, B2:B13=F1, "No results")

      Као резултат, добијамо листу учесника циљне групе дефинисане у Ф1:

      Пример 2. Филтрирајте колоне које нису суседне

      Да бисте изазвали функцију ФИЛТЕР да врати несуседне колоне, користите овај паметан трик:

      1. Направите формулу ФИЛТЕР са жељеним условом(има) користећи целу табелу за низ .
      2. Угнездите горњу формулу у другу функцију ФИЛТЕР. Да бисте конфигурисали функцију „враппер“, користите константу низа вредности ТРУЕ и ФАЛСЕ или 1 и 0 за аргумент инцлуде , где ТРУЕ (1) означава колоне које треба задржати, а ФАЛСЕ (0) означава колоне које треба искључити.

      На пример, да бисмо вратили само Имена (1. колона) и Победе (3. колона), користимо {1, 0,1} или {ТРУЕ,ФАЛСЕ,ТРУЕ} за аргумент инцлуде спољне функције ФИЛТЕР:

      =FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})

      Или

      =FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})

      Како ограничитиброј редова које враћа функција ФИЛТЕР

      Ако ваша формула ФИЛТЕР пронађе доста резултата, али ваш радни лист има ограничен простор и не можете да избришете податке испод, онда можете ограничити број редова које функција ФИЛТЕР враћа .

      Да видимо како то функционише на примеру једноставне формуле која извлачи играче из циљне групе у Ф1:

      =FILTER(A2:C13, B2:B13=F1)

      Горења формула даје све записе који налази, 4 реда у нашем случају. Али претпоставимо да имате места само за двоје. Да бисте избацили само прва 2 пронађена реда, ово треба да урадите:

      • Укључите формулу ФИЛТЕР у аргумент арраи функције ИНДЕКС.
      • За аргумент ред_број за ИНДЕКС, користите константу вертикалног низа као што је {1;2}. Одређује колико редова треба вратити (2 у нашем случају).
      • За аргумент број_колоне користите константу хоризонталног низа као што је {1,2,3}. Он одређује које колоне треба да врати (прве 3 колоне у овом примеру).
      • Да бисте се побринули за могуће грешке када се не пронађу подаци који одговарају вашим критеријумима, можете да умотате своју формулу у функцију ИФЕРРОР.

    Комплетна формула има овај облик:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "No result")

    Када радите са великим табелама, ручно писање константи низа може бити прилично гломазан. Нема проблема, функција СЕКУЕНЦЕ може аутоматски да генерише секвенцијалне бројеве:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "No result")

    Прва СЕКУЕНЦЕ генерише вертикални низкоји садржи онолико узастопних бројева колико је наведено у првом (и једином) аргументу. Друга СЕКУЕНЦЕ користи функцију ЦОЛУМНС да преброји број колона у скупу података и производи еквивалентан хоризонтални низ.

    Савет. Да бисте вратили податке из одређених колона , а не свих колона, у константу хоризонталног низа коју користите за аргумент број_колоне ИНДЕКС-а, укључите само те специфичне бројеве. На пример, да бисте издвојили податке из 1. и 3. колоне, користите {1,3}.

    Екцел функција ФИЛТЕР не ради

    У ситуацији када ваша Екцел ФИЛТЕР формула резултира грешком, највероватније ће то бити једно од следећег:

    #ЦАЛЦ! еррор

    Дешава се ако је опциони аргумент иф_емпти изостављен и нису пронађени резултати који задовољавају критеријуме. Разлог је тај што Екцел тренутно не подржава празне низове. Да бисте спречили такве грешке, увек дефинишите вредност иф_емпти у својим формулама.

    #ВАЛУЕ еррор

    Дешава се када су арраи и инцлуде аргумент има некомпатибилне димензије.

    #Н/А, #ВАЛУЕ, итд.

    Може доћи до различитих грешака ако нека вредност у аргументу инцлуде је грешка или се не може конвертовати у логичку вредност.

    грешка #НАМЕ

    Дешава се када покушавате да користите ФИЛТЕР у старијој верзији Екцел-а. Имајте на уму да је то нова функција која је доступна само у Оффице 365 и Екцел 2021.

    Унови Екцел, грешка #НАМЕ се јавља ако случајно погрешно напишете име функције.

    #СПИЛЛ еррор

    Ова грешка се најчешће јавља ако једна или више ћелија у опсегу преливања нису потпуно празне . Да бисте то поправили, само обришите или избришите непразне ћелије. Да бисте истражили и решили друге случајеве, погледајте #СПИЛЛ! грешка у Екцел-у: шта то значи и како поправити.

    #РЕФ! еррор

    Појављује се када се формула ФИЛТЕР користи између различитих радних књига, а изворна радна свеска је затворена.

    Тако се динамички архивирају подаци у Екцел-у. Захваљујем вам што сте читали и надам се да се видимо на нашем блогу следеће недеље!

    Преузмите радну свеску за вежбање

    Филтрирај у Екцел-у са формулама (.клск датотека)

    висина (када су подаци у колонама) или ширина (када су подаци у редовима) морају бити једнаке оној у аргументу арраи .
  • Иф_емпти (опционо) – вредност коју треба вратити када ниједан унос не испуњава критеријуме.
  • Филтер функција је доступна само у програму Екцел за Мицрософт 365 и Екцел 2021. У Екцел 2019, Екцел 2016 и старијим верзијама није подржан.

    Основна формула Екцел ФИЛТЕР

    За почетак, хајде да разговарамо о неколико врло једноставних случајева само да бисмо добили боље разумевање како функционише Екцел формула за филтрирање података.

    Из доњег скупа података, претпоставимо да желите да издвојите записе са одређеном вредношћу у колони Група , рецимо група Ц. Да бисмо то урадили, уносимо израз Б2:Б13="Ц" у инцлуде аргумент, који ће произвести потребан Булов низ, са ТРУЕ који одговара вредностима "Ц".

    =FILTER(A2:C13, B2:B13="C", "No results")

    У пракси је згодније унети критеријуме у посебну ћелију, нпр. Ф1 и користите референцу ћелије уместо чврстог кодирања вредности директно у формули:

    =FILTER(A2:C13, B2:B13=F1, "No results")

    За разлику од Екцел-ове функције Филтер, функција не прави никакве промене у оригиналним подацима. Извлачи филтриране записе у такозвани опсег просипања (Е4:Г7 на снимку екрана испод), почевши од ћелије у коју је унета формула:

    Ако нема записа одговара наведеним критеријумима, формула враћа вредност коју сте ставили у иф_емпти аргумент, "Нема резултата" у овом примеру:

    Ако бисте радије не враћали ништа у овом случају, онда наведите празан стринг ("") за последњи аргумент:

    =FILTER(A2:C13, B2:B13=F1, "")

    У случају да су ваши подаци организовани хоризонтално с лева на десно као што је приказано на слици испод, функција ФИЛТЕР ће такође добро радити. Само се уверите да сте дефинисали одговарајуће опсеге за аргументе арраи и инцлуде , тако да изворни низ и Булов низ имају исту ширину:

    =FILTER(B2:M4, B3:M3= B7, "No results")

    Екцел функција ФИЛТЕР – напомене о употреби

    Да бисте ефикасно филтрирали у Екцелу помоћу формула, ево неколико важних тачака на које треба обратити пажњу:

    • Функција ФИЛТЕР аутоматски пребацује резултате вертикално или хоризонтално на радни лист, у зависности од тога како су оригинални подаци организовани. Дакле, уверите се да увек имате довољно празних ћелија доле и десно, иначе ћете добити грешку #СПИЛЛ.
    • Резултати функције Екцел ФИЛТЕР су динамички, што значи да се аутоматски ажурирају када вредности у промена оригиналног скупа података. Међутим, опсег наведен за аргумент арраи се не ажурира када се нови уноси додају изворним подацима. Ако желите да низ аутоматски промени величину, онда га конвертујте у Екцел табелу и направите формуле са структурираним референцама или креирајте динамички именовани опсег.

    Како филтрирати у Екцел-у -примери формула

    Сада када знате како функционише основна формула Екцел филтера, време је да добијете увид у то како би се она могла проширити за решавање сложенијих задатака.

    Филтрирајте са више критеријума (И логиц)

    Да бисте филтрирали податке са више критеријума, наведите два или више логичких израза за аргумент инцлуде :

    ФИЛТЕР(низ, ( опсег1= критеријум1) * ( опсег2= критеријум2), "Нема резултата")

    Операција множења обрађује низове са И логиком , обезбеђујући да се врате само записи који испуњавају све критеријуме . Технички, то функционише на следећи начин:

    Резултат сваког логичког израза је низ Булових вредности, где је ТРУЕ једнако 1, а ФАЛСЕ 0. Затим се елементи свих низова на истим позицијама множе . Пошто множење са нулом увек даје нулу, само ставке за које су сви критеријуми ТРУЕ улазе у резултујући низ, па се стога само те ставке издвајају.

    Доле наведени примери показују ову генеричку формулу у акцији.

    Пример 1. Филтрирајте више колона у Екцел-у

    Проширујући нашу основну формулу Екцел ФИЛТЕР још мало, хајде да филтрирамо податке по две колоне: Група (колона Б) и Победе (колона Ц).

    За ово смо поставили следеће критеријуме: у Ф2 укуцајте име циљне групе ( критеријум1 ) и минимално потребан бројпобеђује у Ф3 ( критеријум2 ).

    С обзиром да су наши изворни подаци у А2:Ц13 ( низ ), групе су у Б2:Б13 ( опсег1 ) и победе су у Ц2:Ц13 ( опсег2 ), формула има овај облик:

    =FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "No results")

    Као резултат, добијате листу играча у групи А који су обезбедили 2 или више победа:

    Пример 2. Филтрирајте податке између датума

    Прво, треба напоменути да то није могуће да направите генеричку формулу за филтрирање по датуму у Екцел-у. У различитим ситуацијама, мораћете да направите критеријуме другачије, у зависности од тога да ли желите да филтрирате према одређеном датуму, месецу или години. Сврха овог примера је да демонстрира општи приступ.

    Нашем узорку података додајемо још једну колону која садржи датуме последње победе (колона Д). А сада ћемо издвојити добитке који су се десили у одређеном периоду, рецимо између 17. маја и 31. маја.

    Имајте у виду да се у овом случају оба критеријума примењују на исти опсег:

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "No results")

    Где су Г2 и Г3 датуми између којих треба филтрирати.

    Филтер са више критеријума (ИЛИ логика)

    За издвајање података на основу вишеструких услова ИЛИ, такође користите логичке изразе као што је приказано у претходним примерима, али уместо множења, ви их сабирате. Када се сумирају Булови низови које су враћени изразима, резултујући низ ће имати 0 за уносе који не испуњавају ниједан критеријум (тј. свекритеријуми су ФАЛСЕ), и такви уноси ће бити филтрирани. Уноси за које је најмање један критеријум ТРУЕ биће издвојени.

    Ево генеричке формуле за филтрирање колона помоћу ИЛИ логике:

    ФИЛТЕР(низ, ( опсег1= критеријум1) + ( опсег2= критеријум2), "Нема резултата")

    Као пример, хајде да издвојимо листу играча који имају ово или тај број победа.

    Под претпоставком да су изворни подаци у А2:Ц13, победе су у Ц2:Ц13, а интересни бројеви победа су у Ф2 и Ф3, формула би ишла на следећи начин:

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "No results")

    Као резултат, знате који су играчи победили у свим партијама (4), а који нису победили ниједну (0):

    Филтрирај на основу више критеријума И као и критеријума ИЛИ

    У ситуацији када треба да примените оба типа критеријума, запамтите ово једноставно правило: спојите критеријуме И са звездицом (*) и критеријуме ОР са плусом знак (+).

    На пример, да бисте вратили листу играча који имају дати број победа (Ф2) И припадају групи поменутој у Е2 ИЛИ Е3, направите следећи ланац логичких изрази:

    =FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "No results")

    И добићете следећи резултат:

    Како филтрирати дупликате у Екцел-у

    Када радите са огромним радним листовима или комбинујете податке из различитих извора, често постоји могућност да се неки дупликати ушуњају.

    Ако желите да филтрирате дупликате и екстрактјединствене ставке, а затим користите функцију УНИКУЕ као што је објашњено у претходном повезаном водичу.

    Ако је ваш циљ да филтрирате дупликате , тј. издвојите уносе који се појављују више пута, онда користите функцију ФИЛТЕР заједно са ЦОУНТИФС.

    Идеја је да добијете број појављивања за све записе и издвојите оне који су већи од 1. Да бисте добили збројеве, уносите исти опсег за сваки опсег_критеријума / критеријум пар ЦОУНТИФС овако:

    ФИЛТЕР( низ, ЦОУНТИФС( колона1, колона1, колона2, колона2)&гт;1, „Нема резултата“)

    На пример, да бисте филтрирали дуплиране редове из података у А2:Ц20 на основу вредности у све 3 колоне, ево формуле коју треба користити:

    =FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "No results")

    Савет. Да бисте филтрирали дупликате на основу вредности у кључним колонама , укључите само те специфичне колоне у функцију ЦОУНТИФС.

    Како филтрирати празне ћелије у Екцел-у

    Формула за филтрирање празних ћелија је, у ствари, варијација Екцел формуле ФИЛТЕР са више И критеријума. У овом случају проверавамо да ли све (или одређене) колоне имају податке и искључујемо редове у којима је бар једна ћелија празна. Да бисте идентификовали ћелије које нису празне, користите оператор "није једнако" () заједно са празним стрингом ("") овако:

    ФИЛТЕР(низ, ( колона1 "") * ( колона2 =""), "Нема резултата")

    Са изворним подацима у А2:Ц12, за филтрирање редовакоје садрже једну или више празних ћелија, следећа формула се уноси у Е3:

    Филтер ћелије које садрже одређени текст

    Да бисте издвојили ћелије које садрже одређени текст, може користити функцију ФИЛТЕР заједно са класичном Ако ћелија садржи формулу:

    ФИЛТЕР(низ, ИСНУМБЕР(СЕАРЦХ(" текст ", опсег )), "Нема резултата")

    Ево како то функционише:

    • Функција СЕАРЦХ тражи одређени текстуални низ у датом опсегу и враћа или број (позицију првог знака) или #ВРЕДНОСТ! грешка (текст није пронађен).
    • Функција ИСНУМБЕР конвертује све бројеве у ТРУЕ, а грешке у ФАЛСЕ и прослеђује резултујући Булов низ у инцлуде аргумент функције ФИЛТЕР.

    За овај пример, додали смо Презимена играча у Б2:Б13, откуцали део имена који желимо да пронађемо у Г2, а затим користимо следећу формулу да филтрирајте податке:

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "No results")

    Као резултат, формула преузима два презимена која садрже "хан":

    Филтрирај и израчунај (Сум, Авераге, Мин, Мак, итд.)

    Сјајна ствар у вези са Екцел функцијом ФИЛТЕР је то што може не само да издвоји вредности са условима, већ и да сумира филтриране податке. За ово комбинујте ФИЛТЕР са функцијама агрегације као што су СУМ, АВЕРАГЕ, ЦОУНТ, МАКС или МИН.

    На пример, да бисте агрегирали податке за одређену групу у Ф1, користите следећеформуле:

    Укупне победе:

    =SUM(FILTER(C2:C13, B2:B13=F1, 0))

    Просечне победе:

    =AVERAGE(FILTER(C2:C13, B2:B13=F1, 0))

    Максималне победе:

    =MAX(FILTER(C2:C13, B2:B13=F1, 0))

    Минимални добици:

    =MIN(FILTER(C2:C13, B2:B13=F1, 0))

    Обратите пажњу да у свим формулама користимо нулу за аргумент иф_емпти , како би формуле врати 0 ако није пронађена ниједна вредност која задовољава критеријуме. Достављање било ког текста као што је „Нема резултата“ довело би до грешке #ВАЛУЕ, што је очигледно последња ствар коју желите :)

    Формула ФИЛТЕР-а осетљива на велика и мала слова

    Стандардна Екцел формула ФИЛТЕР не разликује велика и мала слова, што значи да не прави разлику између малих и великих знакова. Да бисте разликовали велика и мала слова, угнездите функцију ЕКСАЦТ у аргумент инцлуде . Ово ће приморати ФИЛТЕР да уради логички тест на начин који разликује велика и мала слова:

    ФИЛТЕР(низ, ЕКСАЦТ( опсег , критеријум ), "Нема резултата")

    Претпостављамо , имате обе групе А и а и желите да издвојите записе где је група мала слова "а". Да бисте то урадили, користите следећу формулу, где су А2:Ц13 изворни подаци, а Б2:Б13 групе за филтрирање:

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "No results")

    Као и обично, можете да унесете циљну групу у унапред дефинисану ћелију, рецимо Ф1, и користите ту референцу ћелије уместо чврсто кодираног текста:

    =FILTER(A2:C13, EXACT(B2:B13, F1), "No results")

    Како да ФИЛТРИРАТЕ податке и вратите само одређене колоне

    Углавном, филтрирање свих колона помоћу једне формуле је оно што корисници Екцел-а желе. Али ако ваша изворна табела садржи десетице или

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.