Fonctions conditionnelles
Les fonctions conditionnelles permettent de créer des formules qui s'adaptent selon les valeurs des champs. Vous pouvez ainsi afficher différents résultats ou effectuer différents calculs selon des conditions.
Fonction SI / IF
La fonction SI (ou IF en anglais) est la fonction conditionnelle de base.
Syntaxe
SI(condition, valeur_si_vrai, valeur_si_faux)
Paramètres :
- condition : Expression à évaluer (vrai ou faux)
- valeur_si_vrai : Valeur retournée si la condition est vraie
- valeur_si_faux : Valeur retournée si la condition est fausse
Exemples simples
Vérifier un montant :
SI({Montant} > 1000, "Éligible", "Non éligible")
- Si Montant = 1500 → "Éligible"
- Si Montant = 500 → "Non éligible"
Appliquer une remise conditionnelle :
SI({Montant} > 5000, {Montant} * 0.9, {Montant})
- Si Montant = 6000 → 5400 (remise de 10%)
- Si Montant = 4000 → 4000 (pas de remise)
Vérifier un champ Oui/Non :
SI({Accepté}, "Demande acceptée", "Demande refusée")
- Si Accepté = Oui → "Demande acceptée"
- Si Accepté = Non → "Demande refusée"
Opérateurs de comparaison
Les conditions utilisent des opérateurs de comparaison :
| Opérateur | Signification | Exemple |
|---|---|---|
= |
Égal à | {Montant} = 1000 |
<> ou != |
Différent de | {Montant} <> 0 |
< |
Inférieur à | {Montant} < 1000 |
<= |
Inférieur ou égal | {Montant} <= 1000 |
> |
Supérieur à | {Montant} > 1000 |
>= |
Supérieur ou égal | {Montant} >= 1000 |
Exemples :
SI({Quantité} >= 10, "Commande en gros", "Commande au détail")
SI({Prix} <> 0, {Total} / {Prix}, 0)
SI({Score} = 100, "Parfait !", "À améliorer")
Fonctions logiques
ET
Vérifie que toutes les conditions sont vraies.
Syntaxe :
ET(condition1, condition2, ...)
Paramètres : - Accepte 2 ou plusieurs conditions - Retourne vrai si toutes les conditions sont vraies
Exemples :
SI(ET({Montant} > 1000, {Montant} <= 5000), "Tranche 1", "Autre")
- Si Montant = 3000 → "Tranche 1" (1000 < 3000 ≤ 5000)
- Si Montant = 6000 → "Autre"
SI(ET({Age} >= 18, {Accepté}), "Éligible et accepté", "Non éligible")
- Si Age = 25 ET Accepté = Oui → "Éligible et accepté"
- Si Age = 16 OU Accepté = Non → "Non éligible"
Avec plusieurs conditions :
ET({Age} >= 18, {Montant} <= 50000, {Accepté})
→ Vrai seulement si les 3 conditions sont vraies
OU
Vérifie qu'au moins une des conditions est vraie.
Syntaxe :
OU(condition1, condition2, ...)
Paramètres : - Accepte 2 ou plusieurs conditions - Retourne vrai si au moins une condition est vraie
Exemples :
SI(OU({Montant} < 100, {Montant} > 10000), "Hors critères", "OK")
- Si Montant = 50 → "Hors critères" (< 100)
- Si Montant = 15000 → "Hors critères" (> 10000)
- Si Montant = 5000 → "OK"
SI(OU({Prioritaire}, {Urgent}), "Traitement rapide", "Traitement normal")
- Si Prioritaire = Oui OU Urgent = Oui → "Traitement rapide"
Avec plusieurs conditions :
OU({Score} < 5, {Score} > 18, {Dispensé})
→ Vrai si au moins une condition est vraie
NON
Inverse une condition.
Syntaxe :
NON(condition)
Paramètres : - Une seule condition - Retourne l'inverse : vrai devient faux, faux devient vrai
Exemples :
SI(NON({Accepté}), "Refusé", "Accepté")
- Si Accepté = Non → "Refusé"
- Si Accepté = Oui → "Accepté"
SI(NON({Montant} > 1000), "Montant faible", "Montant élevé")
- Si Montant = 500 → "Montant faible" (NON(500 > 1000) → vrai)
Conditions imbriquées
Vous pouvez imbriquer des fonctions SI pour gérer plusieurs cas.
Exemple : Tranches de montant
SI({Montant} <= 1000, "Petite", SI({Montant} <= 5000, "Moyenne", "Grande"))
Évaluation : 1. Si Montant ≤ 1000 → "Petite" 2. Sinon, si Montant ≤ 5000 → "Moyenne" 3. Sinon → "Grande"
| Montant | Résultat |
|---|---|
| 500 | Petite |
| 3000 | Moyenne |
| 8000 | Grande |
Exemple : Taux de subvention progressif
SI({Coût} <= 10000, {Coût} * 0.6, SI({Coût} <= 20000, {Coût} * 0.5, {Coût} * 0.4))
Taux : - Coût ≤ 10000 → 60% - 10000 < Coût ≤ 20000 → 50% - Coût > 20000 → 40%
| Coût | Subvention |
|---|---|
| 8000 | 4800 (60%) |
| 15000 | 7500 (50%) |
| 25000 | 10000 (40%) |
Valeurs considérées comme fausses
En logique booléenne, les valeurs suivantes sont considérées comme fausses :
0(zéro)""(chaîne vide)false(faux)- Champ non rempli
Toutes les autres valeurs sont considérées comme vraies.
Exemples :
SI({Montant}, "Montant renseigné", "Montant vide")
- Si Montant = 100 → "Montant renseigné"
- Si Montant = 0 → "Montant vide"
- Si Montant non rempli → "Montant vide"
Combiner plusieurs fonctions
ET et OU ensemble
SI(OU(ET({Montant} >= 1000, {Montant} <= 5000), {Prioritaire}), "Accepté", "Refusé")
Interprétation : - Accepté si (1000 ≤ Montant ≤ 5000) OU Prioritaire = Oui - Sinon refusé
Exemples : - Montant = 3000, Prioritaire = Non → "Accepté" (dans la tranche) - Montant = 8000, Prioritaire = Oui → "Accepté" (prioritaire) - Montant = 8000, Prioritaire = Non → "Refusé"
Conditions complexes
SI(ET({Age} >= 18, OU({Montant} > 5000, {Garantie})), "OK", "KO")
Interprétation : - OK si : Age ≥ 18 ET (Montant > 5000 OU Garantie = Oui)
| Age | Montant | Garantie | Résultat |
|---|---|---|---|
| 25 | 6000 | Non | OK |
| 25 | 3000 | Oui | OK |
| 16 | 6000 | Oui | KO (âge) |
| 25 | 3000 | Non | KO |
Exemples pratiques
Éligibilité multi-critères
SI(ET({Age} >= 18, {Montant} <= 50000, {Accepté}), "ÉLIGIBLE", "NON ÉLIGIBLE")
Conditions : - Majeur (≥ 18 ans) - Montant ≤ 50000 - Acceptation = Oui
Message personnalisé selon tranche
SI({Score} >= 18, "Excellent", SI({Score} >= 14, "Bien", SI({Score} >= 10, "Moyen", "Insuffisant")))
| Score | Message |
|---|---|
| 19 | Excellent |
| 15 | Bien |
| 12 | Moyen |
| 8 | Insuffisant |
Calcul avec condition multiple
SI(ET({Type} = "A", {Quantité} > 10), {Prix} * {Quantité} * 0.9, {Prix} * {Quantité})
Interprétation : - Remise de 10% si Type = "A" ET Quantité > 10 - Sinon prix normal
Bonnes pratiques
✅ À faire
- Utiliser des parenthèses pour clarifier les conditions complexes
- Tester toutes les branches de vos conditions
- Prévoir un cas par défaut (valeur si toutes les conditions sont fausses)
❌ À éviter
- Imbriquer trop de
SI(difficile à lire au-delà de 3 niveaux) - Oublier la valeur si faux :
SI(condition, "Oui")→ ❌ manque le 3ème paramètre - Confondre
=(égalité) avec==(non supporté, utiliser=) - Mélanger syntaxe fonction
ET(...)et opérateurAND(préférer toujours la fonction)