L'essentiel —
ANDetORprennent plusieurs testsTRUE/FALSEet renvoient un seul verdict.AND(…)estTRUEuniquement quand chaque test passe ;OR(…)estTRUEdès qu'au moins un passe. Ils ne décident rien par eux-mêmes — leur rôle est d'alimenter le premier argument d'unIF, une règle de mise en forme conditionnelle ou un filtre. Placez-les à l'intérieur du test, pas autour de IF séparés :=IF(AND(B2>=60, C2="Yes"), "Pass", "Fail"). Deux choses mordent : un=AND(...)isolé dans une cellule n'affiche que le motTRUE, et Excel n'évalue pas en court-circuit — il calcule chaque argument, si bien queAND(A2<>0, B2/A2>1)peut quand même lever#DIV/0!. Fonctionne dans toutes les versions.
=IF(AND(B2>=60, C2="Yes"), "Pass", "Fail") ' les deux doivent être vrais
=IF(OR(B2>=90, C2="VIP"), "Priority", "Normal") ' l'un ou l'autre suffit
AND et OR ressemblent aux fonctions les plus élémentaires d'Excel, et prises
isolément elles le sont. Mais presque tous les vrais bugs qu'on rencontre avec
elles viennent d'un seul malentendu : les gens les traitent comme si elles
prenaient une décision, alors qu'elles se contentent de compter les voix et
de rendre une seule réponse. Ancrez ce modèle mental et l'imbrication, le
TRUE égaré et le #DIV/0! surprise cessent tous de se produire.
Remarque : dans une interface Excel en français, les fonctions s'appellent ET (AND) et OU (OR). Apparentées : IF = SI, IFERROR = SIERREUR, EXACT = EXACT, SUMPRODUCT = SOMMEPROD, SUMIFS = SOMME.SI.ENS, FILTER = FILTRE. Dans Excel en français, les codes d'erreur s'affichent #N/A, #REF!, #NOM?, #VALEUR!, #DIV/0!. Les formules ci-dessous utilisent les noms anglais — le comportement est identique.
Ce que vous allez apprendre
- Le modèle mental :
AND/ORsont des compteurs de voix, pas des décideurs - Pourquoi ils se logent à l'intérieur du premier argument de
IF, et non autour de IF imbriqués - Lequel signifie « entre » et lequel signifie « l'un ou l'autre » — et pourquoi on les intervertit
- La surprise de la formule isolée : une cellule qui affiche juste
TRUE - Le piège du programmeur : Excel n'évalue pas en court-circuit, il peut donc encore erreur
- La puissance matricielle — tester toute une colonne — et le mur où
AND/ORne peuvent pas aller
Le modèle mental : un compteur de voix, pas un décideur
Imaginez AND et OR en train de dépouiller un vote à main levée. Chaque
argument est un votant qui lève la main pour TRUE ou la laisse baissée pour
FALSE. AND rapporte « unanimité ? » — TRUE seulement si personne n'a
gardé la main baissée. OR rapporte « qui que ce soit ? » — TRUE dès qu'au
moins une main s'est levée.
=AND(B2>=60, C2="Yes", D2<100) ' TRUE seulement si les trois passent
=OR(B2>=90, C2="VIP") ' TRUE si l'un ou l'autre passe
C'est toute la fonction. Elle prend une salle entière de conditions et les réduit
à un seul TRUE/FALSE. Elle ne choisit pas de résultat, n'affiche pas de
libellé et n'entreprend aucune action — elle remet son unique verdict à qui le lui
a demandé. Gardez cette image et la règle suivante devient évidente : si AND/OR
ne produisent qu'un verdict, il faut bien que quelque chose d'autre l'utilise.
La règle n° 1 : ils vivent dans le test de IF, pas autour
La forme la plus courante vers laquelle les gens tendent la main est une tour de
IF imbriqués, alors qu'il ne leur fallait qu'un seul AND à l'intérieur d'un seul
IF :
' La pyramide imbriquée — ça marche, mais c'est plus dur à lire et à modifier
=IF(B2>=60, IF(C2="Yes", "Pass", "Fail"), "Fail")
' AND à l'intérieur du test — un seul embranchement bien net
=IF(AND(B2>=60, C2="Yes"), "Pass", "Fail")
Les deux donnent la même réponse, mais la seconde dit exactement ce que vous
pensez — « les deux doivent être vrais pour réussir » — en une seule ligne
lisible. C'est là la division du travail qui compte : AND/OR calculent la
condition ; IF calcule le résultat. Chaque
fois que vous vous surprenez à imbriquer un IF uniquement parce que vous avez
« deux choses qui doivent toutes deux être vraies », vous n'avez pas besoin d'un
IF plus gros — vous avez besoin d'un AND dans son premier argument. Le même test
combiné se glisse tel quel dans une règle de mise en forme
conditionnelle ou dans les critères d'un
FILTER, sans aucun IF.
« Entre », c'est AND ; « l'un ou l'autre », c'est OR (celui qu'on intervertit)
L'erreur de logique la plus fréquente, et de loin, c'est de tendre la main vers le
mauvais connecteur pour un test d'intervalle. « La valeur est-elle entre 10 et
20 » est constitué de deux conditions qui doivent toutes deux tenir — c'est
AND, pas OR :
=IF(AND(A2>=10, A2<=20), "In range", "Out") ' JUSTE — entre
=IF(OR(A2>=10, A2<=20), "In range", "Out") ' FAUX — toujours TRUE
La version OR est toujours TRUE : tout nombre est soit ≥ 10, soit ≤ 20 (la
plupart sont les deux). Réservez OR à « appartient à l'un quelconque de ces
groupes » — OR(Region="EU", Region="UK") — où les conditions sont réellement des
alternatives. Un test rapide de bon sens : si vos deux tests pointent dans des
directions opposées sur la même valeur, c'est presque à coup sûr AND qu'il
vous faut.
La surprise de la formule isolée : une cellule qui affiche juste TRUE
Tapez =AND(B2>=60, C2="Yes") seul dans une cellule et Excel fait exactement ce
que la fonction promet — il vous montre le verdict, le mot littéral TRUE ou
FALSE :
=AND(B2>=60, C2="Yes") ' la cellule affiche TRUE (ou FALSE)
Ce n'est pas un bug ; c'est la fonction qui travaille comme prévu. C'est le signe
que vous avez oublié l'étape de décision. Un TRUE brut dans une colonne de
résultats signifie presque toujours « je voulais l'envelopper dans un IF (ou une
règle) et je ne l'ai pas fait ». Le remède n'est pas de changer AND — c'est de
donner un consommateur à son verdict.
Le piège du programmeur : Excel n'évalue pas en court-circuit
Si vous venez de VBA, Python ou C, vous vous attendez à ce que AND s'arrête au
premier FALSE — A2<>0 AND B2/A2>1 ne devrait jamais diviser quand A2 vaut
0. Excel ne fonctionne pas ainsi. AND et OR évaluent chaque argument
avant de les combiner, donc la division s'exécute quand même et lève quand même
l'erreur :
=IF(AND(A2<>0, B2/A2>1), "OK", "No") ' A2=0 -> calcule quand même B2/0 -> #DIV/0!
Il n'y a pas de garde AndAlso/&& ici. Pour protéger un calcul risqué, vous
devez imbriquer — placez la garde dans un IF externe pour que la partie
dangereuse ne soit jamais atteinte :
=IF(A2=0, "No", IF(B2/A2>1, "OK", "No")) ' A2=0 court-circuite avant la division
C'est l'unique cas où l'imbrication est correcte et où AND a tort. Si un
argument peut errer lorsqu'un autre est faux, AND/OR ne peuvent pas vous
protéger — un IF externe (ou un enveloppement IFERROR
en dernier recours) le peut.
La puissance matricielle — et le mur où AND/OR butent
Les deux fonctions acceptent des plages, et AND(A2:A100>0) teste si la colonne
entière est positive d'un seul coup — un geste réellement utile et sous-exploité
pour un unique contrôle « tout est-il valide ? » qui se déverse dans l'Excel
moderne.
Mais c'est aussi là que leur nature mord. Parce que AND/OR réduisent tout à
un seul verdict, vous ne pouvez pas les utiliser pour construire un masque
ligne par ligne. Ceci a l'air raisonnable et pourtant c'est faux :
=SUMPRODUCT((Region="EU") * AND(Amount>0)) ' FAUX — AND écrase la matrice en une seule valeur
Quand il vous faut un TRUE/FALSE pour chaque ligne — le moteur derrière
SUMPRODUCT,
SUMIFS et
FILTER — vous abandonnez AND/OR et faites
de l'arithmétique sur les matrices booléennes à la place : * pour AND, +
pour OR.
=SUMPRODUCT((Region="EU") * (Amount>0), Amount) ' * = AND ligne par ligne
=FILTER(Data, (Region="EU") + (Region="UK")) ' + = OR ligne par ligne
La règle empirique : AND/OR quand vous voulez une seule réponse sur un
ensemble de conditions ; */+ quand vous voulez une réponse par ligne.
Confondre les deux est à l'origine de la moitié des questions « ma formule
matricielle ne renvoie qu'un seul nombre ».
La surprise de l'insensibilité à la casse, comme pour IF
Les comparaisons à l'intérieur de AND/OR utilisent le = habituel d'Excel,
qui ignore la casse — C2="yes" correspond aussi bien à "Yes", "YES" qu'à
"yes". Généralement utile ; parfois non. Pour un test sensible à la casse
(distinguer un code comme ID de id), enveloppez la comparaison dans
EXACT :
=IF(AND(EXACT(C2,"Yes"), B2>=60), "Pass", "Fail") ' "Yes" uniquement, pas "yes"
Le jugement : AND/OR, IF imbriqué ou masques +/*
Trois formes, une seule décision :
AND/ORà l'intérieur d'un IF — le choix par défaut pour « N conditions, un résultat ». Lisible, modifiable, correct dans presque tous les cas.- IF imbriqué — seulement quand un test ultérieur peut errer si un test antérieur est faux (le cas du court-circuit), ou quand les branches posent des questions réellement différentes.
+/*sur des matrices booléennes — quand il vous faut un verdict par ligne pour alimenterSUMPRODUCT,SUMIFS,FILTERou un résultat déversé.
Le savoir-faire, ce n'est pas de mémoriser les fonctions — c'est de reconnaître, à la forme du problème, laquelle de ces trois vous tenez réellement entre les mains.
Comment ExcelMaster aide
Les règles métier arrivent sous forme de phrases — signaler toute commande UE ou
UK de plus de 1 000 $ qui n'est pas déjà approuvée — un mélange de AND et de OR
qu'il est facile de câbler à l'envers. ExcelMaster transforme cette phrase en
la bonne structure : un AND/OR à l'intérieur d'un IF quand vous voulez un
seul drapeau, ou un masque matriciel */+ quand la même logique doit piloter un
SUMIFS ou un FILTER. Vous décrivez la condition en termes simples ; il choisit
la forme qui ne renverra pas en silence « toujours TRUE » ni un #DIV/0! égaré.
Questions fréquentes
Quelle est la différence entre AND et OR dans Excel ?
AND renvoie TRUE uniquement quand chaque condition est vraie ; OR renvoie
TRUE dès qu'au moins une l'est. Utilisez AND pour « toutes ces conditions
doivent tenir » (y compris « entre X et Y ») et OR pour « l'une quelconque de
ces conditions suffit ».
Comment utiliser AND avec IF dans Excel ?
Placez AND dans le premier argument de IF :
=IF(AND(B2>=60, C2="Yes"), "Pass", "Fail"). AND produit un seul verdict
TRUE/FALSE et IF le transforme en vos deux résultats. N'imbriquez pas un IF
distinct pour chaque condition.
Pourquoi ma formule AND n'affiche-t-elle que TRUE ou FALSE ?
Parce que c'est tout ce que AND renvoie — un verdict. Vous avez oublié de
l'envelopper dans quelque chose qui agit sur ce verdict. Placez-le dans un IF
(=IF(AND(...), "Yes", "No")) ou utilisez-le comme règle de mise en forme
conditionnelle / de validation des données.
La fonction AND d'Excel évalue-t-elle en court-circuit comme les autres langages ?
Non. Excel évalue chaque argument, donc AND(A2<>0, B2/A2>1) divise quand
même par A2 même lorsque A2 vaut 0, produisant #DIV/0!. Pour protéger un
calcul risqué, imbriquez-le dans un IF externe plutôt que de compter sur AND.
Comment combiner AND et OR pour une condition ligne par ligne ?
À l'intérieur de IF, vous pouvez les imbriquer — AND(x, OR(y, z)). Mais quand
il vous faut un résultat pour chaque ligne (pour SUMPRODUCT, SUMIFS ou
FILTER), utilisez de l'arithmétique sur les matrices booléennes : * pour AND et
+ pour OR, par exemple (Region="EU") * (Amount>0).
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 04/07/2026.
Guides associés : Excel IF · Excel IFS & SWITCH · Excel IFERROR · Excel SUMPRODUCT · Excel FILTER
