Filtrování dat pomocí funkce FILTER – 03

DOTAZ: „Funkce FILTER je pro moji práci mimořádně užitečná. Diky ní dokážu z velkého množství záznamů získat přesně ty, které mě zajímají.

Narazil jsem ale na problém, kdy bych potřeboval vyfiltrovat záznamy obsahující určitý řetězec. Máme dlouhé popisy zboží a já bych potřeboval vyfiltrovat například ty, které obsahují v popisu slovo „ventil“. Nevím ale, jak to udělat.“

Funkce FILTER s vnořenou textovou funkcí

Řešení problému filtrování na základě části textu je snadno řešitelné.

Do druhého argumentu funkce FILTER, který slouží jako kritérium hledání, vložíme textovou funkci, která se pokusí v prohledávané oblasti nalézt požadovaný text.

Z textových funkcí bude nejvhodnější použít:

  • ZLEVA
  • ZPRAVA
  • ČÁST

nebo múžeme použít univerzální funkci HLEDAT, která nám pomůže ve většině podobných problémů.

Řešení pomocí funkce ZLEVA

funkce FILTER s vnořenou funkcí
funkce FILTER s vnořenou funkcí

Potřebujeme získat z tabulky dat všechny záznamy, pro které produktový kód ve sloupci B začíná trojicí znaků AA2.

Du buňky F5, která představuje začátek oblasti s výsledky, zapíšeme vzorec

=FILTER(B3:D100;ZLEVA(B3:B100;3)=F3)

Druhý argument funkce FILTER obsahuje výraz ZLEVA(B3:B100;3)=F3

Funkce ZLEVA prochází každou buňku z oblasti B3:B100, načte z produktového kódu první 3 znaky a porovná je s hodnotou uloženou v buňce F3.

Pokud funkce ZLEVA zjistí, že první trojice znaků je stejná jako hledaná hodnota tj. AA2, vrátí hodnotu PRAVDA a funkce FILTER celý záznam (řádek oblasti B3:D100) zobrazí ve výsledné oblasti.

Řešení pomocí funkce HLEDAT

funkce FILTER s vnořenou funkcí HLEDAT
funkce FILTER s vnořenou funkcí HLEDAT

Potřebujeme získat z tabulky dat všechny záznamy, pro které textový popis ve sloupci C obsahuje text „ventil“.

Využijeme textovou funkci HLEDAT, která zjistí, jestli buňky sloupce C hledaný text obsahují. Pokud text funkce nalezne, vrátí číslo, které určuje pozici nalezeného textu v prohledávaném řetězci.

Pokud text „ventil“ nenalezne, vrátí chybovou hodnotu – proto hodnotu vrácenou funkcí HLEDAT testujeme funkci JE.CHYBHODN, která vrátí hodnotu PRAVDA, pokud nebude text „ventil“ nalezen nebo hodnotu NEPRAVDA, pokud text „ventil“ je součástí prohledávaního textu.

Funkce NE obrátí pravdivostní hodnotu – pokud tedy funkce HLEDAT nalezne text „ventil“, vrátí číslo, funkce JE.CHYBHODN vrátí hodnotu NEPRAVDA a funkce NE tuto hodnotu změní na PRAVDA.

Nakonec funkce FILTER celý záznam (řádek) zobrazí ve výsledné oblasti.

Pro rychlé osvojení funkce FILTER si můžete stáhnout přiložený soubor s popsanými příklady: