Vlastnost Formula v Notion databázích
Blog / Dála Musil – 12. dubna 2023, aktualizace 19. února 2024
Potřebujete zobrazit u svých záznamů v databázi nějakou hodnotu specifickým způsobem nebo udělat třeba výpočet mezi některými hodnotami? Pak využijte vlastnost Formula (alias Funkce), která je nejpokročilejší vlastností, které Notion databáze umí.
Formula je nejen nejpokročilejší vlastností v databázích (průvodce databázemi), ale zároveň tím pádem i nejsložitější. Pokud používáte třeba v Excelu či Google Sheets funkce, pak je Formula v Notionu jejich obdobou - jejím základem je sestavení nějakého "vzorce" (třeba matematického) typicky z dalších hodnot záznamu. Velkou výhodu mají vývojáři, pro které je spousta používaných "prvků" na denním pořádku. My ostatní to máme trochu složitější, ale jak vám dnes ukážu, jde se to s trochou snahy naučit (pokud máte radši videa než texty, třeba v mém online kurzu).
Co je potřeba zdůraznit - databáze v Notionu se nerovná tabulkám v Excelu (Notion != Excel, jak by řekla právě formula v Notionu). Zatímco v Excelu můžu třeba vynásobit buňky A1 a B2, v databázi pracuji vždy s jedním záznamem, tzn. jedním řádkem. Můžu tak kombinovat všechny buňky (vlastnosti) v řádku A s A, ale nikoliv s řádkem B, protože to je jiný záznam.
Příklady použití Notion formulas
- zjištění, kolik dní zbývá do deadline úkolu
- výpočet, kolik fakturovat na základě časového výkazu
- vypsání hlášky při překročeném termínu
- stavový semafor, ideální pro projekty a úkoly
- vytvoření hezčího progress baru
- spojení jména a příjmení do jedné hodnoty
- spočítání časového výkazu na základě data a času
- zjištění jaký je název dne podle daného data
- vypsaní data (termínu) v libovolném formátu
- automatické posouvání data u úkolu v kalendáři
- a samozřejmě sčítání, násobení, zaokrouhlování a další "klasická matematika"
Jaké máme možnosti?
Formula používá 4 typy prvků - vlastnosti, konstanty, operátory a funkce. Vlastnostmi jsou hodnoty vašich záznamů, čili třeba datum u úkolu, částka u klienta, status u projektu apod. - zkrátka to, co máte reálně zadané a vztahuje se právě a pouze jenom k danému konkrétnímu záznamu.
Z konstant jsou stěžejní TRUE (pravda) a FALSE (nepravda), bez kterých se neobejdete, když použijete podmínku "pokud" (operátor IF). Tzn. třeba pokud je číslo větší než jiné, zaškrtni, pokud bude menší, nezaškrtávej.
V operátorech najdeme klasické sčítání, odčítání, dělení a násobení, možnosti typu AND (více podmínek platných) a OR (alespoň jedna podmínka platná) nebo třeba porovnávání, zda je nějaká hodnota větší či menší než jiná.
Funkce pak umožňují třeba spojení hodnot, výpočet délky hodnoty, nahrazení obsahu, zjištění zda je hodnota prázdná, zaokrouhlování nebo různorodou práci s datem a časem.
Ty nejpoužívanější prvky včetně příkladů probereme v dalších odstavcích.
Základní matematika
Znáte znaménka jako plus +, mínus -, krát * a děleno /? K běžným výpočtům nic dalšího nepotřebujete.
Přizpůsobení formátu výsledku
Pokud je výstupem formuly číslo, můžeme nastavit také její formátování, jaké právě vlastnost Number umožňuje a to třeba včetně progress baru - typicky se hodí třeba když chcete vědět kolik % máte hotových z projektu.
Zaokrouhlení s ROUND
Zaokrouhlovat můžete dolů (floor), nahoru (ceil) nebo klasicky (round).
Pokud chcete držet i místa za desetinnou čárkou, je potřeba si pomoct přes pomocné číslo, které bude mít tolik nul, kolik chcete mít desetinných míst.
Spojení textů s CONCAT
Pojďme od čísel k textům. Výše už jsem zmiňoval typické využití v podobě spojení obsahu, který máte ve dvou "buňkách", třeba spojení jména a příjmení do společného sloupce.
Spojení čísla s textem skrz FORMAT
Abych mohl používat číselné hodnoty v kombinaci s textovým obsahem, je potřeba je na text převést (jinak bude formula vyhazovat chybu). Slouží k tomu FORMAT, díky čemuž pak můžu vytvořit třeba následující ukázku.
V návaznosti si tak doplňme, že máme 4 datové typy (nebo chcete-li formáty) - text (string), číslo, datum a pravda/nepravda (tzv. Boolean), která je v základu v Notionu jako checkbox. Když chceme něco použít jinak než v daném formátu, musíme si typicky hodnotu sami naformátovat.
Klasické AND a OR
Pokud jste se nikdy nesetkali s podmínkami AND a OR, pointa je následující - AND se používá tehdy, když chceme, aby platily všechny zadané podmínky. OR pak když chceme, aby platila alespoň jedna ze zadaných podmínek.
V tomto příkladu bude zaškrtnuté AND, pokud je datum dnes nebo dříve (k čemuž slouží NOW) a zároveň je zaškrtnutá hodnota Hotovo. Jak vidíte, druhý řádek není splněný, protože datum je v budoucnu. Oproti tomu OR, kde jsem ve formule použil akorát "or" místo "and", jsou zaškrtnuté oba řádky - protože v obou je buď datum dnes a dříve nebo zaškrtnuté Hotovo (alespoň jedna podmínka je splněná).
Mimochodem tohle == znamená rovná se, != nerovná se. Větší než > a menší než < předpokládám znáte.
Podmínky s IF, TRUE a FALSE
Výše zmíněné AND a OR se typicky používají s IF, TRUE a FALSE. IF nám přitom říká "pokud něco, pak tohle (TRUE), pokud to neplatí tak tohle (FALSE)". V ukázce níže pokud je datum dnes nebo dříve, bude zaškrtnutý Stav. Pokud neplatí, nebude zaškrtnutý).
Místo TRUE a FALSE si můžeme dát něco vlastního - třeba textový řetězec (kdybych chtěl, aby to znělo odborně) nebo textovou hlášku (což říkám radši). A ano, k textu můžeme vložit třeba i emoji - důležité je nezapomenout na uvozovky.
A abych navázal na zmíněné AND a OR, tak si pojďme tuhle podmínku rozšířit. Představme si, že koukáme na úkoly, a chceme vědět, jestli je úkol hotový a zároveň jsme neprošvihli termín. Máme podmínku pro datum, aby bylo dnes nebo dříve, a Hotovo musí být zaškrtnuté.
Tuhle podmínku mimochodem lze zapsat i tímhle způsobem, který je výhodnější o to víc, čím více podmínek kombinujete.
Více podmínek v jednom vzorci
Výše zmíněné IF můžeme také kombinovat do sebe a detailněji si tak přizpůsobovat finální hodnotu. Když tak navážu na screen, kde máme vlastnosti Datum a Hotovo, můžeme přidat další podmínku dovnitř. Co říká vzorec?
Pokud je hotovo, bude TRUE = zelená fajfka. Pokud nebude hotovo, bude FALSE = vyber si z dalších podmínek.
1. a 3. řádek hotové nejsou, takže se bere v potaz druhá podmínka, která se ptá na to, jestli je datum právě dnešní.
Zatímco 1. řádek má datum včera (tenhle článek píšu 6. dubna), podmínka na dnešek je FALSE a bere se vykřičník. Podmínka na 3. řádek platí, takže TRUE bere oheň.
IF (první podmínka, pravda? → fajfka, IF (druhá podmínka, pravda? → oheň, nepravda? → vykřičník))
Formátování data a času FORMATDATE
Ve zmíněném příkladu jste si možná všimli zatím nezmíněné funkce FORMATDATE. Datum a čas jako takové můžete libovolně formátovat, pokud vám nestačí běžný zápis. Vlastnost se vám nicméně s touhle funkcí změní z typu date na string, tj. text, takže pak daný sloupec nemůžete používat v kalendáři (který umí zobrazovat pouze typ Date).
Zjištění data skrz NOW
Datum nemusíte jen formátovat, pokud už nějaké máte, ale můžete jej skrz kombinaci FORMATDATE a NOW i zjišťovat z právě aktuálního dne. Dny, týdny, měsíce, roky - co si přejete.
Příp. lze konkrétní den, datum nebo třeba měsíc zjišťovat i snadněji a sice rovnou skrz vlastní funkci. Třeba kolikátý je den tohoto týdne?
Termín vs. dnešní datum s DATEBETWEEN
Hojně používané bývá také DATEBETWEEN pro zjištění, jak se od sebe liší různá data u jednoho záznamu - třeba v tomhle příkladu kolik času ve dnech zbývá do deadline.
Použít se dá dobře také pro automatickou archivaci skrz filtry, např. pokud poslední editace záznamu proběhla před více než 14 dny, zaškrtni vlastnost Archivovat.
Jiné progress bary díky SLICE
Zajímavou funkcí je také SLICE, který slouží k primárně tomu, aby zobrazoval jen vybrané znaky z hodnot.
Díky němu máme možnost vytvořit si také vlastní progress bary tím, že ukrajujeme vybrané "znaky". Ano, takhle se tvořily bary předtím, než je přidal Notion nativně (nicméně i teď jsou mnohde hezčí tyhle původní).
Další běžnější funkce
- CONTAINS - zjišťuje, zda hodnota obsahuje vybraný obsah
- DATEADD a DATESUBTRACT - přidávání (a odebírání) času/data ke zvolené hodnotě
- EMPTY - zjišťuje, zda je hodnota prázdná
- JOIN - á la CONCAT s rozdílem, že vkládá stejný obsah navíc mezi hodnoty
- MAX a MIN - vrací nejvyšší nebo nejnižší nalezenou hodnotu
- REPLACE - nahrazení obsahu jiným
- START a END - vrací počáteční nebo závěrečné datum z data, které má od-do
- TONUMBER - mění datový typ na číslo
Český videokurz?
Pokud vám texty nestačí, můžete se naučit vlastnost Formula také díky videokurzům - třeba v jediném českém, který najdete tady. V kurzu vysvětluju názorně veškerý obsah z tohoto článku včetně všech běžnějších funkcí viz jeden odstavec výše. Níže ukázka z kurzu.
Nové formuly 2.0
V září 2023 dorazila nové verze formul, která násobně posouvá možnosti, jaké formuly mají. Více najdete v samostatném článku, který představuje nové formuly a automatizace. Níže se můžete mrknout na speciality, které teď dokážete, příp. tady je pár náhledů.
Jak vidíte, formula nemusí být zase tak složitá a díky nekonečné možnosti kombinací všech prvků a funkcí díky ní dokážete vypočítat nebo zobrazit téměř cokoliv vás napadne. Neváhejte ji proto vyzkoušet :-)
Nechcete se vlastnost formula učit, ale rádi byste ji využili? Dejte mi vědět, rád vám libovolnou formulu připravím zcela na míru nebo rovnou nastavím ve vašich databázích (více info tady).
O autorovi článku
Dála Musil je digitální konzultant & designér a Notion Consulting Partner & Ambassador z Pardubic. Svým klientům pomáhá zjednodušovat život díky Notionu a automatizacím, dříve se věnoval UX designu, marketingu či procesnímu řízení. O podnikání a všem digitálním píše už více než 11 let.
Líbil se vám článek? Sdílejte ho dál
Pomohl vám můj obsah? Podpořte další tvorbu
Jsou pro vás moje články, videa, šablony, newsletter či posty na socialu (nejen o Notionu) užitečné? Přispěním libovolné částky mi pomůžete tvořit další nový obsah ZDARMA. Díky za podporu! 🙌