Vzorec
Sloupec, který počítá hodnotu z jiných sloupců – kompletní přehled funkcí, jak se shodují typy hodnot a jak do vzorce vložit hodnoty z relací.
Sloupec Vzorec spočítá hodnotu z jiných sloupců – spojí jméno a příjmení, vynásobí cenu počtem kusů nebo spočítá počet dní do termínu. Hodnota se počítá automaticky nad každým záznamem – měníte ji tedy přes sloupce, ze kterých vzorec počítá.
Na rozdíl od ostatních typů zadáváte vzorec rovnou při zakládání sloupce a upravíte ho později volbou Upravit vzorec. Datový zdroj přitom má mít aspoň jeden záznam – do úplně prázdného zdroje tedy nejdřív přidejte řádek a vzorec zakládejte potom.
Jak vzorec zadáte
Vzorec píšete do editoru, kde skládáte dvě věci:
- Sloupce – odkazy na hodnoty jiných sloupců. Vyberete je z nabídky (hledání Hledat sloupec…) a vloží se jako barevný odkaz.
- Funkce a operátory – například
SUM,IF,CONCAT, nebo operátory+,-,*,/,&(spojení textu) a porovnání==,>,>=,<,<=.
U každé funkce editor ukazuje její argumenty, co vrací a příklad. Vzorec se průběžně ověřuje a pod ním vidíte živou ukázku výsledku. Vzorec můžete i vygenerovat pomocí AI – slovy popíšete, co má počítat, a DATIFY AI sestaví výraz (a navrhne i název a popis sloupce).
Odkazy na sloupce
Do vzorce vložíte odkaz na jiný sloupec a jeho hodnota vstoupí do výpočtu. Každý typ sloupce se ve vzorci chová jako určitý typ hodnoty:
| Typ sloupce | Ve vzorci vystupuje jako |
|---|---|
| Text, Odkaz na web, Email, Výběr jedné možnosti | Text |
| Číslo, Měna, Procenta, Pořadí | Číslo |
| Datum | Datum |
| Checkbox | Ano/Ne |
| Výběr více možností, Příloha, Sloupec z jiné tabulky | Seznam hodnot |
Vzorec pracuje s běžnými sloupci, ne s jiným vzorcem – vzorce se neřetězí, takže mezivýpočet napište rovnou do jednoho vzorce. Odkaz na jiný vzorec DATIFY označí jako Neznámý sloupec.
Hodnoty z relací a výběrů (seznamy)
Sloupce Sloupec z jiné tabulky, Výběr více možností a Příloha nedávají jednu hodnotu, ale seznam – u vazby jsou to názvy navázaných záznamů, u výběru více možností jednotlivé štítky, u přílohy názvy souborů. Se seznamem pracují jen některé funkce; obalte ho proto funkcí, která seznam zpracuje:
- COUNT(seznam) – kolik hodnot seznam má. Typicky kolik navázaných záznamů –
COUNT({Objednávky})spočítá, kolik objednávek klient má. - ARRAY_JOIN(seznam, oddělovač) – spojí hodnoty do textu,
ARRAY_JOIN({Štítky}, ", "). - SUM, AVG, MIN, MAX – nad seznamem čísel (například nad číselným sloupcem přeneseným přes vazbu).
- CONCAT seznam textů rovnou spojí čárkami.
Vazba (Sloupec z jiné tabulky) se nastaveným Výpočtem se naopak chová jako jedno Číslo (spočítaný souhrn), takže ji lze použít přímo. Vzorec navíc musí nakonec vrátit jednu hodnotu, ne seznam – když odkaz na seznam necháte „holý", DATIFY napoví, ať ho obalíte (COUNT(...), ARRAY_JOIN(...) apod.).
Typy hodnot a jejich shoda
Každá funkce očekává argumenty určitého typu (Číslo, Text, Datum, Ano/Ne nebo Seznam). Když typ nesedí, vzorec je neplatný (Nekompatibilní typy). Několik pravidel:
- Porovnání (
==,>,<…) i funkce IF vyžadují, aby obě porovnávané hodnoty byly stejného typu. UIFmusí mít obě větve (když ano / když ne) stejný typ – a ten je i výsledkem. - Spojení textu (
CONCAT/&) je jediné, kde se typy převádějí automaticky: čísla, data i seznamy se převedou na text. - Výsledný typ vzorce (Číslo, Text, Datum, nebo Ano/Ne) určuje, jak se sloupec chová dál – jaké nabídne filtry a agregace. Vrací-li vzorec číslo, dá se v patičce sečíst; vrací-li text, chová se jako textový sloupec.
- Čísla se zaokrouhlují na šest desetinných míst.
Přehled funkcí
Funkce se zapisují jako NÁZEV(argument1, argument2…). Tři tečky u argumentu znamenají, že jich může být víc.
Matematické a agregační
| Funkce | Co dělá | Příklad |
|---|---|---|
| SUM(hodnoty…) | Sečte čísla; přijme i seznam čísel. | SUM(cena, daň) |
| AVG(hodnoty…) | Průměr čísel; přijme i seznam. | AVG(skóre1, skóre2) |
| MIN(hodnoty…) | Nejnižší hodnota – čísla nebo data. | MIN(cena, sleva) |
| MAX(hodnoty…) | Nejvyšší hodnota – čísla nebo data. | MAX(od, do) |
| COUNT(seznam) | Počet hodnot v seznamu. | COUNT({Objednávky}) |
| ABS(číslo) | Absolutní hodnota. | ABS(-5) |
| SUB(a, b) | Rozdíl a − b. | cena - sleva |
| MUL(hodnoty…) | Součin. | cena * počet |
| DIV(a, b) | Podíl a ÷ b. | celkem / počet |
Text
| Funkce | Co dělá | Příklad |
|---|---|---|
| CONCAT(hodnoty…) | Spojí hodnoty do textu; čísla, data i seznamy převede na text. | CONCAT(Jméno, " ", Příjmení) |
| CONTAINS(text, hledaný) | Ano/Ne – obsahuje text daný podřetězec. | CONTAINS(název, "faktura") |
| LEFT(text, počet) | Prvních N znaků textu. | LEFT(kód, 3) |
| RIGHT(text, počet) | Posledních N znaků textu. | RIGHT(kód, 4) |
| ARRAY_JOIN(seznam, oddělovač) | Spojí seznam hodnot do textu odděleného zvoleným znakem. | ARRAY_JOIN({Štítky}, ", ") |
Datum
| Funkce | Co dělá | Příklad |
|---|---|---|
| TODAY() | Dnešní datum. | TODAY() |
| DATE_ADD(datum, počet, jednotka) | Přičte k datu; jednotka day, week, month nebo year. | DATE_ADD(vznik, 1, "day") |
| DAY(datum) | Den v měsíci jako číslo. | DAY(termín) |
| MONTH(datum) | Měsíc jako číslo. | MONTH(termín) |
| YEAR(datum) | Rok jako číslo. | YEAR(termín) |
| IS_BEFORE(datum1, datum2) | Ano/Ne – je datum1 před datum2. | IS_BEFORE(začátek, konec) |
| IS_AFTER(datum1, datum2) | Ano/Ne – je datum1 po datum2. | IS_AFTER(konec, začátek) |
Porovnání (vrací Ano/Ne)
| Funkce | Co dělá | Příklad |
|---|---|---|
| EQUAL(a, b) | Jsou hodnoty stejné? Obě musí být stejného typu. | stav == "Hotovo" |
| GREATER(a, b) | Je a větší než b? (čísla nebo data) | cena > 1000 |
| GREATER_OR_EQUAL(a, b) | Je a větší nebo rovno b? | cena >= 1000 |
| LESS(a, b) | Je a menší než b? | cena < 1000 |
| LESS_OR_EQUAL(a, b) | Je a menší nebo rovno b? | cena <= 1000 |
Logické
| Funkce | Co dělá | Příklad |
|---|---|---|
| AND(podmínky…) | Ano, když platí všechny podmínky. | AND(cena > 0, sklad > 0) |
| OR(podmínky…) | Ano, když platí aspoň jedna podmínka. | OR(vip, sleva > 0) |
| EMPTY(hodnota) | Ano, když je hodnota prázdná. | EMPTY(vlastník) |
| IF(podmínka, když ano, když ne) | Vrátí jednu ze dvou hodnot podle podmínky; obě musí být stejného typu. | IF(cena > 1000, "drahé", "levné") |
Když vzorec nefunguje
Vzorec se ověřuje ve dvou krocích – zápis hned v editoru a typy na pozadí (Vzorec se ověřuje…). Dokud není v pořádku, uvidíte Vzorec je neplatný a jednu z příčin:
- Neplatný počet vstupních parametrů – funkce dostala víc nebo míň argumentů, než čeká.
- Chyba v zápisu – překlep nebo špatně uzavřené závorky.
- Nekompatibilní typy – hodnota je jiného typu, než funkce potřebuje (třeba text tam, kde má být číslo).
- Neznámá funkce / Neznámý sloupec – název funkce neexistuje, nebo odkaz míří na sloupec, se kterým vzorec nepracuje (například jiný vzorec).