Jazyk pravidel: zápis, odkazy, operátory — Příručka gull system
Syntaxe jazyka pravidel gull system: čísla, text, logické hodnoty, odkazy na vstupy a tabulky, operátory a jejich priorita, chybové hodnoty.
Jazyk pravidel: zápis, odkazy, operátory
Vzorce jako v Excelu: čísla s tečkou, text v uvozovkách, názvy v hranatých závorkách, funkce velkými písmeny. Totéž platí v pravidlech, proměnných, polích formuláře i názvech složek.
Hodnoty
- Druh: číslo - Zápis: `12`, `0.5`, `.5` - Poznámka: desetinná tečka; `1,5` jsou dva argumenty. Bez jednotek, bez `1e3`.
- Druh: text - Zápis: `"Nerez"` - Poznámka: uvozovka uvnitř textu se zdvojí: `"""A"""`
- Druh: logická hodnota - Zápis: `TRUE`, `FALSE` - Poznámka: velikost písmen nerozhoduje; `TRUE()` funguje také
- Druh: seznam - Zápis: `"A|B|C"` - Poznámka: text s položkami oddělenými svislítkem; čtou ho funkce LIST…
- Druh: tabulka v zápisu - Zápis: `{"h1","h2";"v1","v2"}` - Poznámka: čárka odděluje sloupce, středník řádky, první řádek je hlavička
Úvodní `=` je nepovinné. Prázdný argument je dovolený: `TABLECOLUMNLOOKUP(x, a, b, , "NEAREST")`.
Odkazy
- Název z písmen, číslic a `_`, který začíná písmenem, může stát holý: `Délka * 2`. Cokoli jiného — mezera, pomlčka — patří do hranatých závorek: `[Délka korby]`. Co je v závorkách, je vždy odkaz, takže `[TRUE]` je vstup jménem TRUE.
- Velikost písmen se u názvů i funkcí ignoruje.
- Tabulku z Knihovny odkazujete jejím názvem: `VLOOKUP([Šířka], Rozměry, 3, FALSE)`. Každá tabulková funkce vezme i název jako text.
- Jeden jmenný prostor, v tomto pořadí. vstup → název prvku Kroky ve formuláři → proměnná → konstanta → tabulka. Shodný název na dvou místech se odmítne, viz Pojmenovat věci tak, aby na sebe navazovaly.
Operátory, od nejslabšího
- Operátor: `AND`, `OR` - Význam: logické a / nebo - Poznámka: v jednom řetězci jen jeden druh: `a AND b OR c` se odmítne bez závorek
- Operátor: `=` `==` `<>` `!=` `<` `>` `<=` `>=` - Význam: porovnání - Poznámka: dvě čísla číselně, jinak jako text bez ohledu na velikost písmen; `a < b < c` je chyba
- Operátor: `&` - Význam: spojení textu - Poznámka: slabší než `+`, jako v Excelu
- Operátor: `+` `-` - Význam: sčítání, odčítání - Poznámka:
- Operátor: `*` `/` - Význam: násobení, dělení - Poznámka: dělení nulou dá `#NUM!`
- Operátor: `^` - Význam: mocnina - Poznámka: zleva: `2^3^2` je 64
- Operátor: `-x`, `+x` - Význam: znaménko - Poznámka: silnější než `^`: `-2^2` je 4
- Operátor: `x%` - Význam: procenta - Poznámka: dělí stem
- Operátor: `( )` - Význam: závorky - Poznámka:
Převody
- Text, který není číslo, dá v počtech `#VALUE!`. Prázdný text se nikdy nečte jako 0.
- Jako pravda platí nenulové číslo a neprázdný text.
- Logická hodnota se v textu zapíše jako `1` nebo `0`.
Chybové hodnoty
- Hodnota: `#VALUE!` - Kdy: špatný typ, špatný počet argumentů, hledaná hodnota nenalezena, tabulka použitá jako jedna hodnota
- Hodnota: `#NAME?` - Kdy: neznámý název nebo funkce
- Hodnota: `#NUM!` - Kdy: dělení nulou, odmocnina ze záporného čísla, nespočitatelná mocnina
- Hodnota: `#REF!` - Kdy: index mimo tabulku
- Hodnota: `#NA!` - Kdy: `LISTFINDITEM` nic nenašel
- Hodnota: `#CIRCULAR!` - Kdy: proměnná, která závisí sama na sobě
Chyba projde každým operátorem a funkcí dál; zastaví ji jen `IFERROR`, `ISERROR`, `ISNUMBER`, `ISTEXT` a `ISEMPTY`. Syntaktická chyba se odmítne hned a pravidlo s ní se neuloží. Jak chyby číst, je v článku Chybové hodnoty #VALUE!, #NAME? a další.