Funkce pravidel — Příručka gull system
Referenční seznam funkcí jazyka pravidel gull system: logické, matematické, goniometrické, textové, seznamové, tabulkové a ověřovací, s argumenty a významem.
Funkce pravidel
Všechny funkce jazyka pravidel podle kategorií, tak jak je nabízí tlačítko Funkce. Velikost písmen nerozhoduje; nepovinný argument je označený otazníkem.
Argument s otazníkem je nepovinný, tři tečky znamenají libovolný počet. Jak funkce vybrat a vložit, je v článku Napsat pravidlo na parametr; zápis hodnot a operátory v článku Jazyk pravidel.
Logické
- Funkce: `IF(podmínka, když_pravda, když_nepravda)` - Význam: Vrátí jednu ze dvou hodnot; vyhodnotí se jen zvolená větev.
- Funkce: `IFERROR(hodnota, náhrada)` - Význam: Vrátí hodnotu, a když je chybová, náhradu.
- Funkce: `CHOOSE(pořadí, hodnota…)` - Význam: Vybere hodnotu podle pořadí (1 = první).
- Funkce: `CHOOSEFROM(vstup, výchozí, když, pak, …)` - Význam: Přepínač: první shodná hodnota vrátí výsledek vedle ní. Text se porovnává přesně.
- Funkce: `AND(podmínka…)`, `OR(podmínka…)`, `NOT(podmínka)` - Význam: Všechny / alespoň jedna / opak.
- Funkce: `TRUE()`, `FALSE()` - Význam: Logické konstanty.
Matematické
- Funkce: `ABS(číslo)`, `SIGN(číslo)`, `SQRT(číslo)` - Význam: Absolutní hodnota, znaménko, odmocnina (záporné číslo dá `#NUM!`).
- Funkce: `MIN(číslo…)`, `MAX(číslo…)` - Význam: Nejmenší, největší.
- Funkce: `ROUND(číslo, místa)` - Význam: Zaokrouhlí, polovina od nuly; záporná místa zaokrouhlují na desítky, stovky.
- Funkce: `ROUNDUP(číslo, místa)`, `ROUNDDOWN(číslo, místa)` - Význam: Od nuly / k nule.
- Funkce: `INT(číslo)` - Význam: Zaokrouhlí dolů.
- Funkce: `MOD(číslo, dělitel)` - Význam: Zbytek po dělení; znaménko podle dělitele.
- Funkce: `CEILING(číslo, násobek)`, `FLOOR(číslo, násobek)` - Význam: Na nejbližší násobek nahoru / dolů. Oba argumenty jsou povinné.
- Funkce: `POWER(základ, exponent)`, `PI()` - Význam: Mocnina, π.
Goniometrické
- Funkce: `SIN`, `COS`, `TG`, `COTG`, `ASIN`, `ACOS`, `ATG`, `ACOTG` - Význam: V radiánech. `TAN`, `COT`, `ATAN`, `ACOT` jsou aliasy.
- Funkce: `SIND`, `COSD`, `TGD`, `COTGD`, `ASIND`, `ACOSD`, `ATGD`, `ACOTGD` - Význam: Ve stupních. Jednotka je v názvu funkce; přepínač stupně/radiány u pravidla už není.
Text
- Funkce: `LEFT(text, počet?)`, `RIGHT(text, počet?)`, `MID(text, začátek, počet)` - Význam: Část textu; počet je výchozí 1.
- Funkce: `LEN(text)`, `UPPER`, `LOWER`, `PROPER`, `TRIM` - Význam: Délka, velká, malá, první velká, bez krajních a zdvojených mezer.
- Funkce: `FIND(hledaný, v_textu, od?)`, `SEARCH(…)` - Význam: Pozice textu; FIND rozlišuje velikost písmen, SEARCH ne. Nenalezeno dá `#VALUE!`. Bez zástupných znaků.
- Funkce: `SUBSTITUTE(text, starý, nový, výskyt?)`, `REPLACE(text, začátek, počet, nový)` - Význam: Nahrazení podle textu / podle pozice.
- Funkce: `REPT(text, kolikrát)`, `CONCATENATE(text…)`, `EXACT(a, b)` - Význam: Opakování, spojení (totéž co `&`), přesné porovnání.
- Funkce: `TEXT(číslo, formát)` - Význam: Formáty `0`, `0.00`, `000`, s předponou nebo příponou (`"$0.00"`). Výstup má vždy desetinnou tečku.
- Funkce: `VALUE(text)` - Význam: Text na číslo; čeká desetinnou tečku.
Seznamy (text s položkami oddělenými svislítkem)
- Funkce: `LISTCOUNTITEMS(seznam)`, `LISTGETITEM(seznam, pořadí)` - Význam: Počet položek, položka podle pořadí.
- Funkce: `LISTFINDITEM(seznam, položka)` - Význam: Pořadí položky bez ohledu na velikost písmen; `#NA!` když chybí.
- Funkce: `LISTSORT(seznam, vzestupně?)`, `LISTREMOVEDUPLICATES(seznam)` - Význam: Čísla před textem; duplicity se poznají přesně.
Tabulky (sloupce a řádky od 1, řádek 1 tabulky je hlavička)
- Funkce: `VLOOKUP(hledaná, tabulka, sloupec, přibližně)` - Význam: Hledá v prvním sloupci. Čtvrtý argument je povinný: `FALSE` přesně, `TRUE` nejbližší.
- Funkce: `DWVLOOKUP(hledaná, tabulka, sloupec_hledání, sloupec, přibližně)` - Význam: Hledá v libovolném sloupci.
- Funkce: `HLOOKUP(hledaná, tabulka, řádek, přibližně)`, `DWHLOOKUP(…)` - Význam: Totéž po řádcích.
- Funkce: `TABLECOLUMNLOOKUP(hledaná, sloupec_hledání, sloupec_výsledku, nenalezeno?, režim?, směr?)` - Význam: Oba sloupce jsou jednosloupcové tabulky. Režim `"EXACT"`, `"NEAREST"`, `"NEAREST_SMALLER"`, `"NEAREST_LARGER"`; směr `"FORWARD"`, `"REVERSE"`.
- Funkce: `TABLEGETVALUE(tabulka, sloupec?, řádek?)` - Význam: Buňka; řádek 1 je první datový řádek, výchozí 1 a 1.
- Funkce: `GETTABLEVALUE(tabulka, řádek, sloupec)` - Význam: Totéž s řádkem napřed.
- Funkce: `TABLEGETCOLUMNINDEXBYNAME(tabulka, název, bez_velikosti?)` - Význam: Číslo sloupce podle nadpisu.
- Funkce: `TABLEGETROWCOUNT(tabulka)`, `TABLEGETCOLUMNCOUNT(tabulka)` - Význam: Počet řádků (i s hlavičkou) a sloupců.
- Funkce: `TABLESELECTCOLUMNS(tabulka, sloupec…)` - Význam: Tabulka jen s vybranými sloupci, hlavička zůstane.
- Funkce: `TABLEFILTER(tabulka, sloupec, podmínka, bez_mezer?)` - Význam: Řádky splňující podmínku, hlavička zůstane.
- Funkce: `LISTALL(tabulka, sloupec, řadit?)`, `LISTALLDISTINCT(tabulka, sloupec)` - Význam: Sloupec jako seznam — pro Položky pole.
- Funkce: `LISTALLCONDITIONAL(tabulka, sloupec, sloupec_podmínky, podmínka, …)`, `LISTALLCONDITIONALDISTINCT(…)` - Význam: Sloupec jako seznam, jen řádky splňující podmínky — nabídka závislá na jiném poli.
Ověření
- Funkce: `ISERROR(hodnota)`, `ISNUMBER`, `ISTEXT`, `ISEMPTY` - Význam: Zastaví chybu a odpoví TRUE/FALSE; ISEMPTY platí pro prázdnou hodnotu i prázdný text.
Podmínky v tabulkových funkcích
Podmínka je text, který začíná `=`, `<>`, `<`, `>`, `<=` nebo `>=`; bez předpony znamená rovnost. Hvězdička je zástupný znak: `"=Červená"`, `">30"`, `"<>A*"`, nebo složená z pole: `"=" & [Barva]`.
Číslo se hledá číselně; text bez ohledu na velikost písmen, ale bez ořezání mezer. Režim `"NEAREST"` nepotřebuje seřazenou tabulku a bere nejbližší hodnotu na obě strany.
Funkce `VZHLED(textura, barva, měřítko?, úhel?)` ještě funguje, ale v nabídce není: je to starší zápis z doby, kdy měl vzhled jedno pravidlo. Dnes má Barvu, Texturu a Otočení textury zvlášť — viz Napojit povrch na vstupy zákazníka.