Obsah
Pokud znáte jediný způsob, jak vytvořit filtr v Tabulkách Google, a to standardní nástroj, mám pro vás překvapení :) Pojďte se mnou prozkoumat funkci FILTR. K dispozici je spousta hotových vzorců, které si můžete vypůjčit, a také nový výkonný nástroj, který sadu nástrojů pro filtrování skvěle doplňuje.
Před časem jsme si vysvětlili, jak filtrovat v Tabulkách Google pomocí standardního nástroje. Zmínili jsme se o tom, jak filtrovat podle hodnoty a podle podmínky. Tabulky toho však v sobě vždy skrývají víc, než víme. A tentokrát s vámi prozkoumám funkci FILTROVAT v Tabulkách Google.
V Excelu ji nenajdete, takže rozhodně stojí za vyzkoušení.
Syntaxe funkce Google Sheets FILTER
Filtr v Tabulkách Google prohledá vaše data a vrátí požadované informace, které splňují vaše kritéria.
Na rozdíl od standardního filtru v tabulkách Google neprovádí funkce nic s původními daty. Zkopíruje nalezené řádky a vloží je tam, kde sestavíte vzorec.
Syntaxe je poměrně snadná, protože každý argument mluví sám za sebe:
=FILTER(rozsah, podmínka1, [podmínka2, ...])- rozsah jsou data, která chcete filtrovat. Požadováno.
- podmínka1 je sloupec nebo řádek spolu s kritérii TRUE/FALSE, pod které by měl spadat. Požadováno.
- condition2,... , atd., znamenají další sloupce/řádky a/nebo jiná kritéria. Nepovinné.
Poznámka: Každý stav by měl mít stejnou velikost jako rozsah .
Poznámka: Pokud použijete více podmínek, měly by být všechny určeny buď pro sloupce, nebo pro řádky. Funkce Google Sheets FILTER neumožňuje použití smíšených podmínek.
S těmito poznámkami se nyní podívejme, jak vypadají argumenty různých vzorců.
Jak používat funkci FILTR v Tabulkách Google
Ukážu vám všechny příklady a zároveň vyfiltruji malou tabulku, kde sleduji některé objednávky:
Tabulka obsahuje 20 řádků s různými typy dat, což je ideální pro učení funkce.
Jak filtrovat v Tabulkách Google podle textu
Příklad 1. Text je přesně
Nejprve požádám funkci, aby zobrazovala pouze ty zakázky, které mají zpoždění. Zadám rozsah pro filtrování - A1:E20 - a poté nastavte podmínku - sloupec E by se měl rovnat Pozdě :
=FILTER(A1:E20,E1:E20="Late")
Příklad 2. Text není přesně
Mohu funkci požádat, aby mi získala všechny objednávky kromě těch, které se opozdily. K tomu budu potřebovat speciální operátor porovnání (), který znamená. nerovná se :
=FILTER(A1:E20,E1:E20"Late")
Příklad 3. Text obsahuje
Nyní bych vám chtěl ukázat, jak vytvořit funkci FILTROVAT v tabulkách Google na základě částečné shody. Nebo jinými slovy - jestliže text obsahuje .
Všimli jste si, že ID objednávek ve sloupci A obsahují na konci zkratky zemí? Vytvořme vzorec, který vyhledá pouze objednávky, které byly odeslány z Kanady ( CA ).
Za normálních okolností byste k tomuto úkolu použili zástupné znaky. Pokud však jde o vzorec FILTER, pracují tímto způsobem funkce FIND a SEARCH.
Tip: Pokud byste se při filtrování podle prostého výskytu slova raději vyhnuli vnořování dalších funkcí, neváhejte vyzkoušet doplněk popsaný na konci.
Poznámka: Pokud je důležitá velikost písmen v textu, použijte příkaz FIND, v opačném případě zvolte příkaz SEARCH.
Pro můj příklad bude funkce HLEDAT vyhovovat, protože velikost písmen v textu není důležitá:
=SEARCH(search_for, text_to_search, [starting_at])- search_for je text, který chci najít. Je opravdu důležité, aby byl zabalen do dvojitých uvozovek: "ca" ... Požadováno.
- text_to_search je rozsah pro vyhledání potřebného textu. Požadováno. Je to A1:A20 pro mě.
- starting_at označuje počáteční pozici pro hledání - číslo znaku, od kterého se má začít hledat. Je zcela nepovinný, ale musím ho použít. Vidíte, že všechna ID objednávek se skládají z písmen a čísel, což znamená, že dvojice znaků CA se mohou vyskytovat někde mezi nimi. Stejný vzor všech ID mi umožňuje hledat. CA počínaje 8. znakem.
Po shromáždění všech těchto částí dohromady získám požadovaný výsledek:
=FILTER(A1:E20,SEARCH("ca",A1:A20,8))
Jak filtrovat podle data a času v Tabulkách Google
Filtrování podle data a času vyžaduje také použití dalších funkcí. V závislosti na kritériích může být nutné vložit do hlavní funkce Filtrovat v tabulkách Google DEN, MĚSÍC, ROK nebo dokonce DATUM a ČAS.
Tip: Pokud se v nich nevyznáte nebo si vždycky pletete data - žádný strach. Nástroj popsaný na konci nevyžaduje vůbec žádné funkce.
Příklad 1. Datum je
Abych se dostal k těm objednávkám, které jsou splatné 9. ledna 2020, pozvu funkci DATUM:
=FILTER(A1:E20,C1:C20=DATE(2020,1,9))
Poznámka: To funguje pouze v případě, že vaše buňky neobsahují spolu s datem i časové jednotky (tabulkový procesor je může přidávat ve výchozím nastavení). Chcete-li se ujistit, stačí vybrat buňku a zkontrolovat, co se zobrazí na panelu vzorců:
Pokud tam čas je a jeho odstranění není možné, měli byste použít buď QUERY, nebo složitější podmínku ve funkci FILTER v tabulkách Google, jako je tato:
=FILTER(A1:E20,C1:C20>=DATE(2020,1,9),C1:C20
Tip. Níže se podrobněji věnuji více podmínkám.
Příklad 2. Datum obsahuje
Pokud vás zajímá pouze konkrétní měsíc nebo rok, vystačíte si s funkcemi MĚSÍC a ROK. Vložte do ní přímo rozsah s daty ( C1:C20 ) a zadejte číslo měsíce (nebo roku), kterému se má rovnat ( =1 ):
=FILTER(A1:E20,MONTH(C1:C20)=1)
Příklad 3. Datum je před/po
Chcete-li získat data, která spadají před nebo po zadaném datu, budete potřebovat funkci DATE a operátory porovnání jako větší než (>), větší nebo rovno (>=), menší než (<), menší nebo rovno (<=).
Zde jsou uvedeny objednávky, které byly přijaty 1. ledna 2020 a později:
=FILTER(A1:E20,D1:D20>=DATE(2020,1,1))
Samozřejmě zde můžete DATE snadno nahradit MONTH nebo YEAR. Výsledek se nebude lišit od výše uvedeného:
=FILTER(A1:E20,YEAR(D1:D20)>=2020)
Příklad 4. Čas
Při filtrování v Tabulkách Google podle času je postup úplně stejný jako u dat. Používá se doplňková funkce ČAS.
Chcete-li například získat pouze dny s časovým údajem po 14:00, vzorec bude následující:
=FILTER(A1:B10,A1:A10>TIME(14,0,0))
Pokud však jde o použití funkce HODINA (stejně jako u funkce MĚSÍC pro data), hra se trochu mění. Čas je v tabulkách dost ošemetný, takže je nutné provést několik úprav.
Vrácení všech řádků s časovými značkami mezi 14:00 a 12:00 , proveďte toto:
- Rozsah uzavřete časovými značkami ( A1:A10 ) v samostatné funkci HODINA. Tím se určí, kde hledat.
- Pak přidejte další funkci HODINA pro nastavení samotného času.
=FILTER(A1:B10,HOUR(A1:A10)>=HOUR("2:00:00 PM"))
Tip. Zkontrolujte, zda výsledek neobsahuje 12:41 ? To proto, že tabulka s ním zachází jako s 00:41 což je méně než 2:00 .
Pokud najdete elegantnější řešení, podělte se o něj v komentářích níže.
Jak filtrovat v Tabulkách Google pomocí odkazů na buňky
Při každém vytváření filtrovacího vzorce v Tabulkách Google je třeba zadat podmínku tak, jak je: ať už slovo nebo jeho část, datum atd. Pokud neznáte odkazy na buňky.
Usnadňují spoustu věcí týkajících se vzorců. Protože místo toho, abyste vše vypisovali, můžete jednoduše odkazovat na buňky pomocí podmínek.
Pamatujete si, jak jsem hledal všechny objednávky, které se opozdily? Mohu rychle odkázat na E4 s textem Pozdě udělat totéž:
=FILTER(A1:E20,E1:E20=E4)
Výsledek se nebude vůbec lišit:
Tento postup můžete zopakovat u všech výše uvedených vzorců. Vyhněte se například přidávání dalších funkcí, jako je DATE, a pouze se odkažte na buňku se zajímavým datem:
=FILTER(A1:E20,C1:C20=C15)
Tip. Odkazy na buňky umožňují také filtrovat z jiného listu. Stačí jen přenést název listu:
=FILTER(Objednávky!A1:E20,Objednávky!C1:C20=Objednávky!C15)
Vzorce pro filtrování v tabulkách Google s více kritérii
Zatímco dříve jsem ve všech filtračních vzorcích v Tabulkách Google používal hlavně jednu podmínku, je pravděpodobnější, že budete potřebovat filtrovat tabulku podle několika podmínek najednou.
Příklad 1. Logika IS BETWEEN
Chcete-li najít všechny řádky spadající mezi dvě čísla/datum/čas, budou se vám hodit nepovinné argumenty funkce - podmínka2 , podmínka3 , atd. Prostě pokaždé zopakujete stejný rozsah, ale s novou podmínkou.
Podívejte, vrátím pouze ty objednávky, které mě stály více než 250 dolarů, ale méně než 350 dolarů:
=FILTER(A1:E20,B1:B20>=250,B1:B20<350)
Příklad 2. Logika OR ve funkci Google Sheets FILTER
Bohužel pro získání všech řádků, které obsahují různé záznamy ve sloupci zájmu, předchozí způsob nestačí. Jak tedy mohu zkontrolovat všechny objednávky, které jsou na cestě i se zpožděním?
Pokud zkusím předchozí metodu a zadám každý stav objednávky do samostatné podmínky, zobrazí se chyba #N/A:
Abych tedy správně nastavil logiku OR ve funkci FILTER, měl bych tato dvě kritéria sečíst v rámci jedné podmínky:
=FILTER(A1:E20,(E1:E20="Pozdě")+(E1:E20="Na cestě"))
Přidání filtru do Tabulky Google do více sloupců
Ještě pravděpodobnější než použití několika podmínek na jeden sloupec je vytvoření filtru v tabulkách Google pro více sloupců.
Argumenty jsou všechny stejné. Každá nová část vzorce však vyžaduje nový rozsah s vlastními kritérii.
Zkusme funkci FILTER v tabulkách Google vrátit příkazy, které spadají pod všechna následující pravidla:
- Jejich hodnota by měla být 200-400 dolarů:
A1:E20,B1:B20>=200,B1:B20<=400
- Jsou splatné v lednu 2020:
MĚSÍC(C1:C20)=1
- A jsou stále na cestě:
E1:E20="na cestě"
Spojte všechny tyto části dohromady a vzorec filtru pro více sloupců v tabulkách Google je připraven:
=FILTER(A1:E20,B1:B20>=200,B1:B20<=400,MONTH(C1:C20)=1,E1:E20="on the way")
Způsob bez vzorců pro pokročilý filtr v tabulkách Google
Funkce FILTER je skvělá, ale někdy toho může být až příliš. Sledování všech argumentů, oddělovačů, vnořených funkcí a podobně může být velmi nepřehledné a časově náročné.
Naštěstí máme lepší řešení, které překonává jak funkci FILTR v tabulkách Google, tak jejich standardní nástroj - vícenásobné shody VLOOKUP.
Nenechte se zmást jejím názvem. Podobá se funkci VLOOKUP v tabulkách Google, protože vyhledává shody. Stejně jako to dělá funkce FILTER. Stejně jako jsem to udělal výše.
Zde jsou 5 hlavních výhod nástroje nad funkcí FILTROVAT v Tabulkách Google:
- Nebudete muset myslet na to. operátory pro různé podmínky - stačí si vybrat jeden z nich. ze seznamu:
Upřímně vám doporučuji nainstalovat si program Multiple VLOOKUP Matches a vyzkoušet ho. Chcete-li si jeho možnosti prohlédnout blíže, navštivte jeho výukovou stránku nebo se podívejte na speciální instruktážní video: