Как да използвате функцията FILTER на Google Sheets

  • Споделя Това
Michael Brown

Ако единственият начин, който познавате за създаване на филтър в Google Sheets, е стандартният инструмент, имам изненада за вас :) Елате да изследвате функцията FILTER заедно с мен. Има много готови формули, които можете да заимствате, както и нов мощен инструмент, който допълва изключително много набора от инструменти за филтриране.

Преди известно време обяснихме как да филтрираме в Google Sheets с помощта на стандартния инструмент. Споменахме как да филтрираме по стойност и по условие. Електронните таблици обаче винаги съдържат повече, отколкото знаем. И този път ще разгледам с вас функцията FILTER на Google Sheets.

Няма да го намерите в Excel, така че определено си заслужава да го разгледате.

    Синтаксис на функцията FILTER на Google Sheets

    Филтърът в Google Sheets сканира данните ви и връща необходимата информация, която отговаря на вашите критерии.

    За разлика от стандартния филтър на Google Sheets, функцията не прави нищо с първоначалните ви данни. Тя копира намерените редове и ги поставя там, където построите формулата.

    Синтаксисът е доста лесен, тъй като всеки аргумент говори сам за себе си:

    =FILTER(обхват, условие1, [условие2, ...])
    • обхват са данните, които искате да филтрирате. Изисква се.
    • условие1 е колона или ред заедно с критериите TRUE/FALSE, под които трябва да попада. Изисква се.
    • условие2,... , и т.н., означават други колони/редове и/или други критерии. По избор.

    Забележка. състояние трябва да е със същия размер като обхват .

    Забележка: Ако използвате няколко условия, всички те трябва да са или за колони, или за редове. Функцията FILTER на Google Sheets не позволява смесени условия.

    Сега, като имаме предвид тези бележки, нека видим как се оформят аргументите на различните формули.

    Как да използвате функцията FILTER в Google Sheets

    Ще ви покажа всички примери, докато филтрирам малка таблица, в която проследявам някои поръчки:

    Таблицата съдържа 20 реда с различни видове данни, които са идеални за изучаване на функцията.

    Как да филтрирате в Google Sheets по текст

    Пример 1. Текстът е точно

    Първо, ще поискам функцията да покаже само тези поръчки, които закъсняват. Въвеждам диапазона за филтриране - A1:E20 - и след това задайте условието - колона E трябва да бъде равен на Късно :

    =FILTER(A1:E20,E1:E20="Late")

    Пример 2. Текстът е точно не

    Мога да поискам от функцията да ми даде всички поръчки, но не и тези, които са закъснели. За тази цел ще ми е необходим специален оператор за сравнение (), който означава не е равен на :

    =FILTER(A1:E20,E1:E20"Late")

    Пример 3. Текстът съдържа

    Сега бих искал да ви покажа как да изградите функцията FILTER на Google Sheets въз основа на частичното съвпадение. Или с други думи - ако текстът съдържа .

    Забелязахте ли, че идентификаторите на поръчките в колона А съдържат съкращения на държави в края си? Нека създадем формула за извличане само на поръчки, които са изпратени от Канада ( CA ).

    Обикновено за тази задача се използват заместващи символи. Но когато става въпрос за формулата FILTER, по този начин работят функциите FIND и SEARCH.

    Съвет: Ако предпочитате да избегнете вмъкването на други функции при филтриране по прости срещания на думи, можете да изпробвате добавката, описана в края.

    Забележка: Ако големината на буквите в текста е важна, използвайте FIND, в противен случай изберете SEARCH.

    Функцията SEARCH е подходяща за моя пример, тъй като регистърът на текста е без значение:

    =SEARCH(search_for, text_to_search, [starting_at])
    • търсене_за Това е текстът, който искам да намеря. Много е важно да го обвиете с двойни кавички: "ca" . Изисква се.
    • text_to_search е обхватът за сканиране за необходимия текст. Изисква се. A1:A20 за мен.
    • starting_at посочва началната позиция за търсене - номера на символа, от който да се започне търсенето. Това не е задължително, но трябва да го използвам. Виждате, че всички идентификатори на поръчки се състоят от букви и цифри, което означава двойка CA Идентичният модел на всички идентификатори ми позволява да търся CA като се започне от 8-ия символ.

    След като събера всички тези части заедно, получавам желания резултат:

    =ФИЛТЪР(A1:E20,SEARCH("ca",A1:A20,8))

    Как да филтрирате по дата и час в Google Sheets

    Филтрирането по дата и час също изисква използването на допълнителни функции. В зависимост от критериите ви може да се наложи да вградите ДЕН, МЕСЕЦ, ГОДИНА или дори ДАТА и ВРЕМЕ в основната функция FILTER на Google Sheets.

    Съвет. Ако не сте запознати с тях или винаги бъркате нещата с датите - не се притеснявайте. Инструментът, описан в края, не изисква никакви функции.

    Пример 1. Датата е

    За да получа тези поръчки, които трябва да бъдат изпълнени на 9 януари 2020 г., ще използвам функцията DATE:

    =FILTER(A1:E20,C1:C20=DATE(2020,1,9))

    Забележка: Това работи само ако клетките ви не съдържат единици за време заедно с датата (електронната таблица може да ги добави по подразбиране). За да се уверите, просто изберете клетка и проверете какво се появява в лентата с формули:

    Ако времето е там и премахването му не е възможно, трябва да използвате или QUERY, или по-сложно условие във функцията си Google Sheets FILTER, като това:

    =FILTER(A1:E20,C1:C20>=DATE(2020,1,9),C1:C20

    Съвет. По-долу ще разгледам по-подробно множеството условия.

    Пример 2. Дата съдържа

    Ако се интересувате само от конкретен месец или година, можете да се справите с функциите MONTH и YEAR. Поставете диапазона с дати директно в него ( C1:C20 ) и посочете номера на месеца (или годината), на който трябва да бъде равен ( =1 ):

    =FILTER(A1:E20,MONTH(C1:C20)=1)

    Пример 3. Датата е преди/след

    За да получите данните, които попадат преди или след зададената дата, ще ви е необходима функцията DATE и такива оператори за сравнение като по-голямо от (>), по-голямо или равно на (>=), по-малко от (<), по-малко от или равно на (<=).

    Ето поръчките, които са получени на и след 1 януари 2020 г:

    =FILTER(A1:E20,D1:D20>=DATE(2020,1,1))

    Разбира се, тук можете лесно да замените DATE с MONTH или YEAR. Резултатът няма да се различава от този по-горе:

    =FILTER(A1:E20,YEAR(D1:D20)>=2020)

    Пример 4. Време

    Когато филтрирате в Google Sheets по време, процедурата е абсолютно същата, както при датите. Използвате допълнителната функция TIME.

    Например, за да получите само дни с времеви печат след 14:00 ч., формулата ще бъде:

    =FILTER(A1:B10,A1:A10>TIME(14,0,0))

    Въпреки това, когато става въпрос за използване на функцията ЧАС (както и за функцията МЕСЕЦ за дати), играта се променя малко. Времето е достатъчно сложно в електронните таблици, така че са необходими няколко корекции.

    Връщане на всички редове с времеви маркери между 14:00 Ч. и 12:00 Ч. , направете това:

    1. Обградете диапазона с времеви маркери ( A1:A10 ) в отделна функция HOUR (Час). Това ще покаже къде да търсите.
    2. След това добавете още една функция HOUR, за да зададете самото време.

    =FILTER(A1:B10,HOUR(A1:A10)>=HOUR("2:00:00 PM"))

    Съвет. Проверете дали резултатът не включва 12:41 Ч. ? Това е така, защото електронната таблица го третира като 00:41 която е по-малка от 2:00 .

    Ако намерите по-елегантно решение, споделете го в раздела за коментари по-долу.

    Как да филтрирате в Google Sheets, като използвате препратки към клетките

    Всеки път, когато създавате формула за филтриране в Google Sheets, трябва да въвеждате условието както е: дали дума или нейна част, дата и т.н. Освен ако не сте запознати с препратките към клетките.

    Те улесняват много неща, свързани с формулите. Защото вместо да изписвате всичко, можете просто да се позовавате на клетките с условия.

    Спомняте ли си как потърсих всички поръчки, които са закъснели? Мога бързо да направя справка с E4 с текста Късно да направи същото:

    =FILTER(A1:E20,E1:E20=E4)

    Резултатът няма да се различава по никакъв начин:

    Можете да повторите това с всички гореспоменати формули. Например избягвайте да добавяте повече функции като DATE и просто се позовавайте на клетката с интересуващата ви дата:

    =FILTER(A1:E20,C1:C20=C15)

    Съвет. Препратките към клетките също ви позволяват да филтрирате от друг лист. Трябва само да въведете името на листа:

    =FILTER(Orders!A1:E20,Orders!C1:C20=Orders!C15)

    Формули за филтриране в Google Sheets с множество критерии

    Въпреки че преди използвах основно едно условие във всички формули за филтриране в Google Sheets, по-вероятно е да ви се наложи да филтрирате таблица по няколко условия едновременно.

    Пример 1. IS BETWEEN logic

    За да намерите всички редове, попадащи между две числа/дати/часове, незадължителните аргументи на функцията ще ви бъдат полезни - условие2 , условие3 , и т.н. Просто дублирате същия диапазон всеки път, но с ново условие.

    Ще връщам само поръчките, които ми струват повече от 250 долара, но по-малко от 350 долара:

    =FILTER(A1:E20,B1:B20>=250,B1:B20<350)

    Пример 2. Логика OR във функцията FILTER на Google Sheets

    За съжаление, за да получа всички редове, които съдържат различни записи в интересуваща ви колона, предишният начин не е подходящ. Как мога да проверя всички поръчки, които са едновременно на път и закъснели?

    Ако опитам да използвам предишния метод и въведа състоянието на всяка поръчка в отделно условие, ще получа грешката #N/A:

    Следователно, за да задам правилно логиката OR във функцията FILTER, трябва да събера тези два критерия в едно условие:

    =FILTER(A1:E20,(E1:E20="Късно")+(E1:E20="На път"))

    Добавяне на филтър към Google Sheets за няколко колони

    Още по-вероятно от прилагането на няколко условия към една колона е създаването на филтър в Google Sheets за няколко колони.

    Всички аргументи са едни и същи. Но всяка нова част от формулата изисква нов диапазон със собствени критерии.

    Нека се опитаме да направим така, че функцията FILTER в Google Sheets да връща поръчки, които отговарят на всички изброени по-долу правила:

    1. Те трябва да са на стойност 200-400 долара:

      A1:E20,B1:B20>=200,B1:B20<=400

    2. Трябва да бъдат предоставени през януари 2020 г:

      МЕСЕЦ(C1:C20)=1

    3. И все още са на път:

      E1:E20="по пътя"

    Съберете всички тези части и вашата формула за филтриране на няколко колони в Google Sheets е готова:

    =FILTER(A1:E20,B1:B20>=200,B1:B20<=400,MONTH(C1:C20)=1,E1:E20="on the way")

    Начин без формули за разширен филтър на Google Sheets

    Функцията FILTER е чудесна, но понякога може да бъде прекалено много. Следенето на всички аргументи, разделители, вложени функции и какво ли още не може да бъде изключително объркващо и отнемащо време.

    За щастие имаме по-добро решение, което надхвърля както функцията FILTER на Google Sheets, така и техния стандартен инструмент - Multiple VLOOKUP Matches.

    Не се заблуждавайте от името ѝ. Тя прилича на функцията VLOOKUP на Google Sheets, защото търси съвпадения. Точно както прави функцията FILTER. Точно както направих по-горе.

    Тук са 5 основни предимства на инструмента над функцията FILTER на Google Sheets:

    1. Няма да ви се налага да мислите за оператори за различни условия - просто изберете един от списъка:

  • Въведете датите и часа, както винаги. в електронните таблици - вече няма специални функции:
  • Създаване и изтриване множество условия за множество колони наистина бързо :
  • Преглед на резултата и коригирайте условията (ако е необходимо), преди да поставите всичко в листа:
  • Получаване на резултата като стойности или като готов формула .
  • Искрено ви насърчавам да инсталирате Multiple VLOOKUP Matches и да опитате с него. За да разгледате по-отблизо опциите му, посетете неговата страница с уроци или гледайте специалното видео с инструкции:

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.