Logické Operátory
Iif
Sekce “Iif”Definice
Sekce “Definice”Provede podmíněné vyhodnocení výrazu a vrátí jednu ze dvou hodnot podle výsledku.
Praktické vysvětlení
Sekce “Praktické vysvětlení”Do funkce lze vkládat jakékoliv další VBA nebo Excel funkce pro lepší možnost získání požadovaného výsledku.
Vzorec
Sekce “Vzorec”IIf(Expression, TruePart, FalsePart)Argumenty
Sekce “Argumenty”Expression (povinný) – Logický výraz, který se vyhodnocuje jako True (pravda) nebo False (nepravda).
TruePart (povinný) – Hodnota, která se vrátí, pokud je Expression True.
FalsePart (povinný) – Hodnota, která se vrátí, pokud je Expression False.
Použití
Sekce “Použití”result = IIf(5 > 3, „Ano“, „Ne“) – Výsledkem bude „Ano“, jelikož je podmínka splněna.
Použití s ostatními funkcemi
Sekce “Použití s ostatními funkcemi”result = IIf(Len(Range(„A1“).Value) > 5, „Dlouhý text“, „Krátký text“) – Pokud bude délka hodnoty (např. textového řetězce) v buňce A1, vyšší než 5, bude vrácen text „Dlouhý text“, jinak „Krátky text. Délka je zjištěna pomocí funkce Len.
Not
Sekce “Not”Definice
Sekce “Definice”Převrací logickou hodnotu – pokud je hodnota True, vrátí False a naopak.
Praktické vysvětlení
Sekce “Praktické vysvětlení”Funkce se hodí v případě, kdy je nutné obrátit logiku např. funkce, která vrátí určitý výsledek a je nutné udělat obrácenou logiku. Funkce je často používána s podmínkou If. Pokud mají být použité v podmínkové logice příkazy And, Or, Xor zároveň s Not, je nutné myslet na prioritu vyhodnocování:
-
Not – Nejvyšší priorita.
-
And – Vyhodnotí se hned poté.
-
Or – Vyhodnotí se následně.
-
Xor – Vyhodnotí se jako poslední
Pokud má být změněno pořadí vyhodnocování, lze vyhodnocovací výrazy zadat do závorek společně s jednotlivými operátory.
Vzorec
Sekce “Vzorec”Not ExpressionArgumenty
Sekce “Argumenty”Expression – Libovolný logický výraz.
Použití
Sekce “Použití”vysledek = Not (5 > 3) – Výsledek bude False, jelikož podmínka je pravdivá, ale díky obrácené logice bude výsledkem False.
Použití s ostatními funkcemi
Sekce “Použití s ostatními funkcemi”Nejprve je vyhodnocena podmínka v závorkách s argumentem Or, která je vyhodnocena jako „True“, jelikož stačí pouze jedna podmínka aby byla splněna. Následně bude podmínka za „Not“ vyhodnocena jako „False“, jelikož podmínka 7 > 6 je pravdivá, ale kvůli obrácené logice operátoru „not“ se bude jednat o False. Celkovým výsledkem bude „False“, jelikož obě vyhodnocené podmínky musí platit zároveň.
result = Not 7 > 6 And (6 > 7 Or 8 > 7)
Pokud hodnota v buňce A1 nebude prázdná, přičemž zdali je buňka prázdná je zjištěna funkcí IsEmpty, bude výplň buňky naformátována zelenou barvou. Funkce „Not“ je navíc v rámci podmínky If.
If Not IsEmpty(Range(„A1„).Value) then
Range(„A1„).Interior.Color = vbGreen
End If
Pokud se datum nerovná dnešnímu datu zjištěného funkcí Date a zároveň pokud je 7 větší nebo rovna 6, mají se k zadanému datu přidat 2 měsíce pomocí funkce DateAdd. Obě podmínky musí platit zároveň pomocí příkazu And.
If Not („15.11.2025“ = Date) And (7 >= 6) then
DateAdd(„m“, 2, „15.11.2025“)
End If
And
Sekce “And”Definice
Sekce “Definice”Operátor vrací True, pokud obě podmínky nebo více podmínek jsou splněny zároveň (True).
Praktické vysvětlení
Sekce “Praktické vysvětlení”Operátor lze využívat několikrát za sebou, tedy není nutné porovnávat pouze 2 podmínky. Výstupem je vždy buďto True nebo False. Výstup může být zapsán do proměnné nebo může být operátor využit v rámci podmínek. Zároveň lze použit i s dalšími logickými operátor jako Or nebo Not. Pokud mají být použité v podmínkové logice příkazy And, Or, Xor zároveň s Not, je nutné myslet na prioritu vyhodnocování:
-
Not – Nejvyšší priorita.
-
And – Vyhodnotí se hned poté.
-
Or – Následné vyhodnocení.
-
Xor – Vyhodnotí se jako poslední.
Pokud má být změněno pořadí vyhodnocování, lze vyhodnocovací výrazy zadat do závorek společně s jednotlivými operátory.
Vzorec
Sekce “Vzorec”Expression1 And Expression2Argumenty
Sekce “Argumenty”Expression1, Expression2 – Logické výrazy, které se vyhodnocují.
Použití
Sekce “Použití”result = (4 > 3) And (7 < 8) – Výstupem bude „True“, jelikož obě podmínky platí zároveň.
result = (2 > 3) And (7 < 8) – Výstupem bude „False“, jelikož platí pouze jedna podmínka a ne obě.
result = (4 > 3) And (7 < 8) And („Text“ = „Text“) – Výstupem bude „True“, jelikož všechny 3 podmínky platí zároveň.
result = (4 > 3) And (7 < 8) And („Text“ = „Ahoj“) – Výstupem bude „False“, jelikož poslední podmínka neplatí, text „Text“ se nerovná textu „Ahoj“.
Použití s ostatními funkcemi
Sekce “Použití s ostatními funkcemi”Následující příklad se vyhodnotí jako „True“, jelikož operátor Or bude vyhodnocen jako poslední. Nejprve tak budou porovnány první 2 podmínky, jejichž výstup je „False“. Až následně bude „False“ porovnáno s podmínkou za Or, která je pravdivá. Jelikož stačí alespoň jedna pravdivá podmínka, tak výstupem bude „True“
result = 5 > 6 And 6 > 7 Or 8 > 7
Následující příklad bude vyhodnocen jako „False“, jelikož nejprve se vyhodnotí operátor Or, protože je v závorkách (ten je „True“). Následně bude výstup ze závorek porovnán s výrokem před And, který je ale „False“. Jelikož oba výroky musí být pravdivé z důvodu operátoru And, výstupem je „False“.
result = 5 > 6 And (6 > 7 Or 8 > 7)
Pokud bude extrahovaný den funkcí Day z aktuálního data zjištěné funkcí Date větší než 1 a zároveň menší než 5, bude buňka A1 vybarvena zeleně.
If (Day(Date) > 1 And Day(Date) < 5) Then
ws.Range(„A1“).Interior.Color = vbGreen
End If
Pokud bude den extrahovaný pomocí funkce Day z aktuálního data zjištěného funkcí Date vyšší než 1 a zároveň nižší než 5, NEBO pokud bude aktuální měsíc extrahovaný pomocí funkce Month z aktuálního data funkcí Date, tak bude výplň buňky A1naformátována zelenou barvou. Podmínky, které mají platit zároveň, je nutné dát do závorek, aby se nejprve nevyhodnotil příkaz Or.
If (Day(Date) > 1 And Day(Date) < 5) Or (Month(Date) = 12) Then
ws.Range(„A1“).Interior.Color = vbGreen
End If
Definice
Sekce “Definice”Operátor vrací True, pokud alespoň jedna podmínka je splněna.
Praktické vysvětlení
Sekce “Praktické vysvětlení”Operátor lze využívat několikrát za sebou, tedy není nutné porovnávat pouze 2 podmínky. Výstupem je vždy buďto True nebo False. Výstup může být zapsán do proměnné nebo může být operátor využit v rámci podmínek. Zároveň lze použit i s dalšími logickými operátor jako And nebo Not. Pokud mají být použité v podmínkové logice příkazy And, Or, Xor zároveň s Not, je nutné myslet na prioritu vyhodnocování:
-
Not – nejvyšší priorita.
-
And – vyhodnotí se hned poté.
-
Or – Následné vyhodnocení.
-
Xor – Vyhodnotí se jako poslední.
Pokud má být změněno pořadí vyhodnocování, lze vyhodnocovací výrazy zadat do závorek společně s jednotlivými operátory.
Vzorec
Sekce “Vzorec”Expression1 Or Expression2Argumenty
Sekce “Argumenty”Expression1, Expression2 – Logické výrazy, které se vyhodnocují.
Použití
Sekce “Použití”result = (4 > 3) Or (9 < 8) – Výstupem bude „True“, jelikož alespoň jedna podmínka je splněna.
result = (2 > 3) Or (9 < 8) – Výstupem bude „False“, jelikož neplatí žádná z podmínek.
result = (4 > 3) Or (7 < 8) Or („Text“ = „Text“) – Výstupem bude „True“, jelikož všechny 3 podmínky platí zároveň.
result = (4 > 3) Or (7 < 8) Or („Text“ = „Ahoj“) – Výstupem bude „True“, jelikož alespoň jedna podmínka je splněna.
Použití s ostatními funkcemi
Sekce “Použití s ostatními funkcemi”Následující příklad se vyhodnotí jako „True“, jelikož operátor Or bude vyhodnocen jako poslední. Nejprve tak budou porovnány první 2 podmínky mezi And, jejichž výstup je „False“. Až následně bude „False“ porovnáno s podmínkou za Or, která je pravdivá. Jelikož stačí alespoň jedna pravdivá podmínka, tak výstupem bude „True“
result = 5 > 6 And 6 > 7 Or 8 > 7
Následující příklad bude vyhodnocen jako „False“, jelikož nejprve se vyhodnotí operátor Or, protože je v závorkách (ten je „True“). Následně bude výstup ze závorek porovnán s výrokem před And, který je ale „False“. Jelikož oba výroky musí být pravdivé z důvodu operátoru And, výstupem je „False“.
result = 5 > 6 And (6 > 7 Or 8 > 7)
Pokud je aktuální den extrahovaný pomocí funkce Day z aktuálního data zjištěného funkcí Date nižší než 15 nebo buňka A1je prázdná zjištěním pomocí funkce isEmpty, buňka A1 bude vyplněna červenou barvou.
If Day(Date) < 15 Or IsEmpty(Range(„A1„).Value) then
Range(„A1„).Interior.Color = vbRed
End If
Pokud bude den extrahovaný pomocí funkce Day z aktuálního data zjištěného funkcí Date vyšší než 1 a zároveň nižší než 5, NEBO pokud bude aktuální měsíc extrahovaný pomocí funkce Month z aktuálního data funkcí Date, tak bude výplň buňky A1naformátována zelenou barvou. Podmínky, které mají platit zároveň, je nutné dát do závorek, aby se nejprve nevyhodnotil příkaz Or před And.
If (Day(Date) > 1 And Day(Date) < 5) Or (Month(Date) = 12) Then
ws.Range(„A1“).Interior.Color = vbGreen
End If
Xor
Sekce “Xor”Definice
Sekce “Definice”Operátor vrací True, pokud přesně jedna ze dvou podmínek je pravdivá, ale ne obě.
Praktické vysvětlení
Sekce “Praktické vysvětlení”Operátor lze využívat několikrát za sebou, tedy není nutné porovnávat pouze 2 podmínky. Výstupem je vždy buďto True nebo False. Výstup může být zapsán do proměnné nebo může být operátor využit v rámci podmínek. Zároveň lze použit i s dalšími logickými operátor jako And nebo Not. Pokud mají být použité v podmínkové logice příkazy And, Or, Xor zároveň s Not, je nutné myslet na prioritu vyhodnocování:
-
Not – nejvyšší priorita.
-
And – vyhodnotí se hned poté.
-
Or – Vyhodnotí se následně.
-
Xor – Vyhodnotí se jako poslední.
Pokud má být změněno pořadí vyhodnocování, lze vyhodnocovací výrazy zadat do závorek společně s jednotlivými operátory.
Vzorec
Sekce “Vzorec”Expression1 Xor Expression2Argumenty
Sekce “Argumenty”Expression1, Expression2 – Logické výrazy, které se vyhodnocují.
Použití
Sekce “Použití”result = (4 > 3) Xor (7 < 8) – Výstupem bude „Fsle“, jelikož obě podmínky platí zároveň a ne pouze jedna.
result = (2 > 3) Xor (9 < 8) – Výstupem bude „True“, jelikož platí přesně jedna podmínka.
result = (4 > 3) Xor (7 < 8) Xor („Text“ = „Text“) – Výstupem bude „False“, jelikož všechny 3 podmínky platí zároveň a ne pouze jedna.
Použití s ostatními funkcemi
Sekce “Použití s ostatními funkcemi”Následující příklad se vyhodnotí jako „True“, jelikož operátor Xor bude vyhodnocen jako poslední. Nejprve tak budou porovnány první 2 podmínky mezi And, jejichž výstup je „False“. Až následně bude „False“ porovnáno s podmínkou za Xor, která je pravdivá. Jelikož je přesně jedna pravdivá podmínka, tak výstupem bude „True“
result = 5 > 6 And 6 > 7 Xor 8 > 7
Následující příklad bude vyhodnocen jako „True“, jelikož nejprve se vyhodnotí operátor Xor, protože je v závorkách (ten je „True“). Následně bude výstup ze závorek porovnán s výrokem před And, který je ale „False“. Jelikož oba výroky musí být pravdivé z důvodu operátoru And, výstupem je „False“.
result = 5 > 6 And (6 > 7 Xor 8 > 7)
Pokud je aktuální den extrahovaný pomocí funkce Day z aktuálního data zjištěného funkcí Date nižší než 15 a buňka A1 nebude prázdná zjištěním pomocí funkce isEmpty, buňka A1 bude vyplněna červenou barvou. Popř. může být den vyšší než 15 ale buňka A1 může být prázdná. Důležité je, aby platila pouze jedna podmínka, aby se příkaz výplně provedl.
If Day(Date) < 15 Xor IsEmpty(Range(„A1„).Value) then
Range(„A1„).Interior.Color = vbRed
End If
Switch
Sekce “Switch”Definice
Sekce “Definice”Umožňuje vyhodnotit více podmínek a vrátit odpovídající hodnotu první splněné podmínky.
Praktické vysvětlení
Sekce “Praktické vysvětlení”Jednotlivých podmínek může být několik, stejně jako druhů výsledků. Jedná se o podobnou metodu jako If, ElseIf.
Vzorec
Sekce “Vzorec”Switch(Expression1, Result1, Expression2, Result2, …, ExpressionN, ResultN)Argumenty
Sekce “Argumenty”Expression1, Expression2, …, ExpressionN – Podmínky, které se vyhodnocují.
Result1, Result2, …, ResultN – Výsledky odpovídající jednotlivým podmínkám.
Použití
Sekce “Použití”result = Switch(5<4, „Splněno1“, 3<4, „Splněno2“) – První podmínka nebude splněna, jelikož není pravdivá. 2. podmínka je pravdivá, takže výstupem do proměnné bude „Splněno2“.
Použití s ostatními funkcemi
Sekce “Použití s ostatními funkcemi”Zjištění délky hodnoty v buňce A1 pomocí funkce Len. Do proměnné „result“ se následně uloží první splněná podmínka.
result = Switch( _
Len(Range(„A1“).Value) = 0, „Prázdný“, _
Len(Range(„A1“).Value) < 10, „Krátký text“, _
Len(Range(„A1“).Value) >= 10, „Dlouhý text“ _
)
© 2026 Excelland
