První vzorec a operátory v Excelu

Vzorec

Vzorec je jakýsi symbolický předpis, který s využitím operátorů a funkcí zpracovává vstupní hodnoty a navrací požadovaný výsledek (do buňky, do proměnné). Se vzorci se potkáte nejčastěji v buňkách listu. Objevují se ale i v definovaných názvech nebo kupříkladu v podmíněném formátování či v programovém kódu.

Zápis vzorce do buňky

1. Předem vybereme jednu či více buněk (pro hromadný zápis).
2. Přímo nebo s využitím řádku vzorců zapíšeme symbol = a doplníme požadovaný vzorec.
3. Zápis potvrdíme stiskem klávesy ENTER (CTRL+ENTER v případě hromadného zápisu do více buněk).

První vzorec
První vzorec

Při hromadném zápisu Excel zohledňuje adresování buněk (relativní, absolutní, smíšené). Chová se stejně, jako kdyby byl vzorec rozkopírován z první buňky do dalších.

Operátory v Excelu

Operátor je matematický pojem, nad jehož definicí si nyní nebudeme lámat hlavu. Přinejmenším všichni známe aritmetické operátory, mezi něž patří operátory pro sčítání, odečítání, násobení a dělení. V zápisu 1 + 2 představují čísla 1 a 2 operandy a znaménko + operátor pro sčítání. To nám z pohledu pojmů stačí.

Operátor přiřazení

symbol = (úvodní znak v zápisu vzorců, ALT+0061)

1
2
3
4
5
6
=3
=3+5
=A1
=A1+3
=SUMA(A1:A3)
="kolotoč"

Symbolem = zde přiřazujeme (do buňky) hodnotu, resp. výsledek vzorce či výroku, zkrátka to, co je napravo od něj. V případě zápisu =A1 se jedná o prostý odkaz na jinou buňku (její hodnotu). První a poslední příklad ukazují, jak vypadá přiřazení hodnoty 3 a textu „kolotoč“ vzorcem namísto přímého zápisu.

Přímý zápis do buňky versus vzorec
Přímý zápis do buňky versus vzorec

 

Prostý odkaz na buňku vzorcem
Prostý odkaz na buňku vzorcem

Pozn.
Vzorec lze uvést i symboly + a -, případně znakem @, pokud za ním bude následovat název funkce. Úvodní symbol = doplní v tomto případě Excel do zápisu sám.

Aritmetické operátory

Sčítání

symbol + (plus, klávesová zkratka ALT+0043 na numerické části klávesnice)

1
2
3
=1+2
=A1+A2
=A3+3

Odečítání

symbol – (minus, ALT+0045)

1
2
3
=1-2
=A1-A2
=A3-3

Stejné znaménko se uplatní i v případě negace výrazu.

1
2
3
=-1
=-A1
=-(A3+3)

Pozn.
Možná někteří z vás již narazili kupříkladu na zápis – -, tj. dvojici znamének minus vedle sebe. Asi si stejně jako já vybavíte ze školy, že namísto osamoceného znaménka minus si můžeme představit číslo -1, jímž násobíme bezprostředně následující výraz, tj. zápis -(3+5) značí -1·(3+5) = -1·3 – 1·5 = -3 – 5 = -8. A dvě znaménka vedle sebe? Inu (-1)·(-1)·…, což je zdánlivě zbytečná operace navíc. Nicméně touto technikou se běžně převádí výsledky výroků (PRAVDA, NEPRAVDA) na čísla, jímž odpovídají (1, 0).

Násobení

symbol * (hvězdička, ALT+0042, pravý ALT+-)

1
2
3
=1*2
=A1*A2
=A3*3

Pozn.
V Excelu se nepoužívá znak x (iks). Tomu se vyhýbejte i jinde (byť ho česká norma výjimečně připouští). Zapomeňte i na symbol pro násobek × (ALT+0215, pravý ALT+), tj. pravá závorka), tečku . (ALT+0046), resp. středovou tečku · (ALT+0183).

Tip
Na notebocích bez numerického bloku v pravé části je hvězdička velmi často dostupná pod klávesovou zkratkou Fn+P.

Tip
Tlačítko pro násobení si můžete také přidat na panel nástrojů Rychlý přístup.

Hvězdička na panelu nástrojů Rychlý přístup
Hvězdička na panelu nástrojů Rychlý přístup

Dělení

symbol / (obyčejné lomítko, ALT+0047)

1
2
3
=1/3
=A1/A2
=A3/3

Pozn. Typografie rozlišuje matematické lomítko (1⁄3), jež má větší sklon. V Excelu se ale neuplatní, stejně jako symbol ÷.

Pozn. Na listu Excelu se nepoužívá zpětné lomítko \ (ALT+0092, pravý ALT+Q) pro celočíselné dělení. Jeho funkci přebírá funkce CELÁ.ČÁST. Zpětné lomítko se pro dané účely objevuje pouze coby operátor pod VBA.

Umocnění („iks na ypsilon“)

symbol ^ (stříška, ALT+0094, pravý ALT+š + znak)

1
2
3
=1^2
=A1^A2
=A3^3

Pozn. Pro odmocninu existuje v Excelu funkce ODMOCNINA. Nicméně ta je připravena pouze na druhou odmocninu. V praxi používáme pro jiné případy matematickou poučku.

Odmocnina v Excelu
Odmocnina v Excelu

Pro třetí odmocninu čísla dvě tak zapíšeme

1
=2^(1/3)

Procenta

Pokud se v buňce či jejím vzorci objeví zápis 25%, případně, 25 %, Excel hodnotu 25 automaticky vydělí 100 a buňku tzv. naformátuje.

25% … interní hodnota 0,25
25 % … interní hodnota 0,25
=1+25% … interní hodnota 1,25

Pozn.
Osobně toto chování (spojené s formátováním buňky) nemám v oblibě. Spoléhám se raději na klasickou trojčlenku a vlastní formát buňky. V praxi ostatně zápis 25% (bez mezery) značí dvacetipětiprocentní, nikoliv dvacet pět procent (s mezerou).

Tip
Jak říkám, procenta nejlépe umějí počítat ženy. Slevu 10 % z částky 500 Kč lze přepsat jako 0,1 · 500 Kč = 50 Kč (číslo uvádějící procenta dělíme stem a slovní „z“ značí krát). Jinak viz pojmy jako zmíněná trojčlenka či přímá úměra.

Spojování textů (textových řetězců)

Pro spojování textových řetězců s jinými řetězci (nebo čísly) používáme symbol & (ampersand, ALT+0038, pravý ALT+C). Předběžně berte jako fakt, že pokud se má objevit znak/text ve vzorci, musí být uveden v uvozovkách. A jedním dechem dodávám, že mezera je znak jako jakýkoliv jiný.

1
2
3
4
5
6
="kolo"&"toč"
="Josef"&" "&"Spejbl"
="Smith"&"&"&"Wesson"
=B7&" bodů"
="Průměr hodnot: "&B3
="Průměr hodnot: "&PRŮMĚR(B3:B10)

Pozn.
Na chvíli se u příkladů zastavte. Nespěchejte, musíte je dostat pod kůži. Uvědomte si rozdíl mezi uvedením odkazu (adresy buňky) B7 a prostým textem „B7“, mezi operátorem & a textem „&“ (viz Smith & Wesson), mezi textem „Průměr“ a funkcí PRŮMĚR (zde pracující s oblastí B3:B10 uvedenou v závorkách).

Pozn.
Pamatujte si, že výsledkem takových spojení je vždy text, i kdyby elementy pro spojení tvořila jen čísla. Pro spojování řetězců Excel obsahuje i funkci s názvem CONCATENATE (v Excelu 2016 navíc i funkci TEXTJOIN).

Srovnávací (komparační, relační) operátory

symboly =, <, >, <=, >=, <> (< … ALT+0060, > … ALT+0062, případně pravý ALT + stejně označené klávesy)

1
2
3
4
5
6
=B2=C2 ... rovnost
=B2<C2 ... menší než
=B2>C2 ... větší než
=B2<=C2 ... menší nebo rovno
=B2>=C2 ... větší nebo rovno
=B2<>C2 ... různé od (tj. "nerovná se")

Pozn.
Stejná syntaxe se používá i ve VBA. Neuplatňují se zde zápisy typu ==, !, !=, &&, || běžné v jiných jazycích.

Tip
Není vám jasný zápis? První symbol rovnítka vlevo si v duchu zakryjte. V jeho případě se jedná o výše popsaný operátor přiřazení. V uvedených příkladech řešíme nějaký výrok (tvrzení, test, podmínku), jehož výsledkem je pravdivostní hodnota (PRAVDA, NEPRAVDA). Více v článku KDYŽ se řekne Excelu (1).

Vzorec - výrok vracející pravdivostní hodnotu
Vzorec – výrok vracející pravdivostní hodnotu

Pozn.
Pro úplnost dodávám, že ani zde se neuplatní korektní matematické symboly ≤, ≥ a ≠.

Logické operátory

Syntaxe ve vzorcích Excelu neumožňuje používání logických operátorů, mezi něž patří programátorům dobře známý AND, OR, NOT, XOR a další. Ty jsou v klasické podobě dostupné pouze pod VBA a ve vzorcích českého Excelu je zastupují funkce A, NEBO, NE. S funkcí XOR přišel na listu až Excel 2013. Více se jim budeme věnovat jindy.

Operátor oblasti

symbol : (dvojtečka, ALT+0058)

1
2
=SUMA(A1:A3)
=J5:L5*10

Dvojtečka vyjadřuje slovní „až, od-do“ (oblast A1 až A3).

Operátor explicitně zadaného průniku

symbol mezera

1
2
3
=J6:L6 K5:K7
=SUMA(J6:K7 K5:K7)
=Liberec leden

Mezera zde plní význam průsečíku, jinak řečeno průniku (množin). V posledním příkladu se jedná o průnik dvou námi pojmenovaných oblastí.

Operátor sjednocení

symbol ; (středník)

1
INDEX((J5:L5;J7:L7);1;2;2)

Pozn.
Středník zde uvedený mezi vnitřními závorkami má přeci jen trochu jiný význam, než ten samý symbol v roli oddělovače argumentů ve funkci.

Priorita operátorů

Dříve vzniklo mnoho debat o tzv. unárním znaménku minus a podivném chování v rámci priority operátorů. Zjednoduším to. Pokud si nechcete přidělávat práci a hledat chyby ve výpočtech, používejte závorky.

24+6/3 versus (24+6)/3

Jestli vás přesto priorita zajímá, pak platí následující pořadí (řazeno od nejvyšší po nejnižší):

: (dvojtečka)
(mezera)
; (středník)
(odkazovací operátory)
– (negace)
% (procenta)
^ (umocnění)
*, / (násobení a dělení)
+, – (sčítání a odčítání)
& (zřetězení)
= <> < > =< >= (relační operátory)

Operátory ve VBA

Operátory ve VBA se hodně podobají těm na listu. Namísto logických funkcí se zde vyskytují logické operátory, objevuje se zpětné lomítko pro celočíselné dělení spolu s operátorem Mod (na listu funkce MOD) vracející zbytek po dělení (modulo), a některá další klíčová slova v roli operátorů, jako je šikovný Like pro práci s textem nebo Is pro testování objektů.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Sub VBAOperatory()

'aritmetické operátory
'+, -, *, /, \, Mod

'sčítání
x = 10 + 4

'odčítání
x = 10 - 4

'násobení
x = 10 * 4

'dělení
x = 10 / 4

'celočíselné dělení
'10 / 3 = 3 (a zbytek 1)
x = 10 \ 3

'zbytek celočíselného dělení
'10 / 6 = (1) a zbytek 4
x = 10 Mod 6

'mocnina
'4^3, 4 * 4 * 4
x = 4 ^ 3

'logické operátory
'And, Or, Not, Xor, Eqv, Imp
'list: PRAVDA ... 1, NEPRAVDA ... 0
'VBA: True (PRAVDA) ... -1, False ... 0 (nenulová hodnota)
Dim b As Boolean

b = 0 'False
b = 1 'True
b = -3 'True

m = 3
n = 4

'And ... a zároveň platí, že ...
'tj. konjunkce
'True, jsou-li oba operandy True

'jestliže m = 3 a zároveň n = 4, tak ...
If (m = 3) And (n = 4) Then
'...
End If

'Or ... nebo platí, že ...
'tj. disjunkce
'True, je-li alespoň jeden operand True

'jestliže m = 3 nebo n = 4, tak
If (m = 3) Or (n = 4) Then
'...
End If

o = m = 3 'True

'Not
'negace výroku

b = False
b = Not b 'True

'Xor ... neekvivalence
'True, jsou-li oba operandy rozdílné

'Eqv ... ekvivalence
'True, jsou-li oba operandy stejné

'Imp ... implikace
'True kromě případu, kdy první operand je True a druhý False

'relační operátory
'=, <>, <, >, <=, >=

'číselné porovnání
p = 0 < 3 'True
p = 0 < "3" 'True, řetězec převeden na číslo
p = 0 < "3,14" 'True, řetězec převeden na číslo
'p = 0 < "3.14" 'chyba, řetězec nepřeveden na číslo
'p = 0 < "" 'chyba, řetězec nepřeveden na číslo

'řetězcové porovnání
r = "král" < "Král" 'False
r = "Princ" < "princ" 'True

'operand Null ... výsledek vždy Null
s = 0 < Null

'specifické operátory
'& ... zřetězení
RetezecA = "James " & " " & "Bond"
RetezecB = "00" & "7"
RetezecC = "Výsledek: " & x
RetezecD = 10 & 4

'Like
'test shody řetězce se vzorkem
t = "kolotoč" Like "kolo*" 'True

'Is
'test odkazu na stejný objekt v paměti

Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range

Set rng1 = Range("A1")
Set rng2 = Range("A1")
Set rng3 = rng1

u = rng1 Is rng2 'False
v = rng1 Is rng3 'True

'priority od nejvyšší po nejnižší:
'mocnina (^)
'negace (–)
'násobení a dělení (*, /)
'celočíselné dělení (\)
'modulo, tj. zbytek po dělení (Mod)
'sčítání a odčítání (+, –)
'řetězení (&)

End Sub