Tout le monde sait à quel point l'instruction IF est polyvalente dans un programme scripté, mais saviez-vous que vous pouvez utiliser une grande partie de la même logique à l'intérieur d'une cellule dans Excel ?
Une définition de base d'une instruction IF dans un programme est qu'elle vous permet de sortir quelque chose de spécifique en fonction des résultats de plusieurs entrées. Vous pouvez effectuer des calculs entièrement différents en fonction de la sortie d'un autre calcul. Vous pouvez effectuer une mise en forme conditionnelle. Vous pouvez même baser votre sortie sur des recherches de chaînes de cellules d'entrée.
Si cela semble compliqué, ne vous inquiétez pas. Jetons un coup d'œil à quelques façons créatives d'utiliser les instructions IF dans Excel.
Lorsque la plupart des gens pensent à utiliser une instruction IF dans Excel, ils pensent à VBA. En effet, une instruction IF est généralement une logique utilisée dans le monde de la programmation. Cependant, vous pouvez utiliser cette même logique de programmation directement dans la cellule de la feuille de calcul elle-même.
Lorsque vous tapez "=IF(" dans la cellule, vous verrez à quoi la syntaxe de votre instruction IF doit ressembler pour fonctionner correctement. L'exigence de base est juste un "test logique". Par défaut, la sortie vers la cellule sera être TRUE ou FALSE, mais vous pouvez personnaliser cela en incluant des paramètres supplémentaires dans la fonction.
Examinons d'abord une fonction SI de base. Dans l'exemple de feuille de calcul ci-dessus, j'ai quatre activités que j'enregistre liées à ma voiture. J'enregistre la date à laquelle l'un des quatre événements se produit :une vidange d'huile, une réparation de voiture, une immatriculation ou un renouvellement d'assurance.
Disons que si la colonne "Réparé" contient un "OUI", alors je veux que le type d'événement ait "RÉPARATION". Sinon, il devrait être "NON-REPAIR". La logique de cette instruction IF est très simple :
=IF(C2="YES","Repair","Non-Repair")
Remplir toute la colonne avec cette formule renvoie les résultats suivants :
C'est une logique utile, mais dans ce cas particulier, cela n'a pas vraiment de sens. Tout ce que quelqu'un a à faire est de regarder la colonne "Réparé" pour identifier si cette date impliquait ou non une réparation.
Alors, explorons quelques instructions de fonction IF plus avancées pour voir si nous pouvons rendre cette colonne un peu plus utile.
Tout comme dans un programme normal, parfois pour examiner deux ou trois conditions qui dépendent l'une de l'autre, vous devez utiliser la logique ET. La même chose est vraie ici.
Définissons deux nouveaux types d'événements :planifiés ou non planifiés.
Pour cet exemple, nous allons nous concentrer uniquement sur le changement d'huile colonne. Je sais que je programme habituellement mes vidanges d'huile le 2e jour de chaque mois. Toute vidange d'huile qui n'a pas lieu le deuxième jour du mois était une vidange d'huile non planifiée.
Pour les identifier, nous devons utiliser la logique ET comme celle-ci :
=IF(AND(DAY(A2)=2,B2="YES"),"Planifié","Non planifié")
Les résultats ressemblent à ceci :
Cela fonctionne très bien, mais comme vous pouvez le voir, il y a un léger défaut logique. Cela fonctionne pour montrer quand les vidanges d'huile se produisent aux dates prévues - celles-ci apparaissent comme "prévues". Mais lorsque la colonne Oil Change est vide, la sortie doit également être vide. Cela n'a pas de sens de renvoyer un résultat dans ces cas car aucune vidange d'huile n'a jamais eu lieu.
Pour ce faire, nous allons passer à la prochaine leçon avancée sur la fonction SI :les instructions SI imbriquées.
En vous basant sur la dernière fonction, vous devrez ajouter une autre instruction IF à l'intérieur de l'instruction IF d'origine. Cela devrait renvoyer un blanc si la cellule de changement d'huile d'origine est vide.
Voici à quoi ressemble cette déclaration :
=IF(ISBLANK(B2),"",IF(AND(DAY(A2)=2,B2="YES"),"Planifié","Non planifié"))
Maintenant, la déclaration commence à paraître un peu complexe, mais ce n'est vraiment pas le cas si vous regardez attentivement. La première instruction IF vérifie si la cellule de la colonne B est vide. Si c'est le cas, il renvoie un blanc ou "".
S'il n'est pas vide, vous insérez la même instruction IF que nous avons utilisée dans la section ci-dessus, dans la partie False de la première instruction IF. De cette façon, vous ne vérifiez et n'écrivez que les résultats concernant la date du changement d'huile lorsqu'un changement d'huile réel a eu lieu. Sinon, la cellule est vide.
Comme vous pouvez l'imaginer, cela pourrait devenir terriblement complexe. Ainsi, lorsque vous imbriquez des instructions IF, procédez toujours une étape à la fois. Testez la logique des instructions IF individuelles avant de commencer à les imbriquer ensemble. Parce qu'une fois que vous en avez quelques-uns imbriqués, leur dépannage peut devenir un véritable cauchemar.
Maintenant, nous allons pousser la logique d'un cran. Disons que cette fois, ce que je veux faire, c'est retourner "l'entretien annuel" si un changement d'huile ou une réparation combiné avec l'enregistrement ou l'assurance est fait en même temps, mais juste "l'entretien de routine" si juste un changement d'huile a été fait. Cela semble compliqué, mais avec la bonne logique d'instruction IF, ce n'est pas difficile du tout.
Ce type de logique nécessite la combinaison d'une instruction IF imbriquée et de quelques instructions OR. Voici à quoi ressemblera cette déclaration :
=IF(OR(B2="YES",C2="YES"),IF(OR(D2="YES",E2="YES"),"Maintenance annuelle ","Entretien de routine"),"")
Voici à quoi ressemblent les résultats :
C'est remarquable le type d'analyse complexe que vous pouvez effectuer simplement en combinant divers opérateurs logiques à l'intérieur d'instructions IF imbriquées.
Il est souvent très utile de convertir des plages de valeurs en une sorte de résultat textuel. Cela pourrait être aussi simple que de convertir une température de 0 à 50 degrés F en "Froid", de 50 à 80 en "Chaud", et toute température supérieure à 80 en chaleur.
Les enseignants ont probablement le plus besoin de cette logique en raison des scores alphabétiques. Dans l'exemple suivant, nous allons explorer comment convertir une valeur numérique en texte en fonction d'une telle plage.
Supposons qu'un enseignant utilise les plages suivantes pour déterminer la note alphabétique :
Voici à quoi ressemblera ce type d'instruction IF multi-imbriquée :
=IF(B2>89,"A",IF(B2>79,"B",IF(B2>69,"C",IF(B2>59," D","F"))))
Chaque nid est la prochaine gamme de la série. Vous devez juste être très prudent pour fermer la déclaration avec le bon nombre de parenthèses ou la fonction ne fonctionnera pas correctement.
Voici à quoi ressemble la feuille résultante :
Comme vous pouvez le voir, cela vous permet de représenter n'importe quel nombre sous la forme d'une chaîne descriptive. Il sera également mis à jour automatiquement si la valeur numérique sur la feuille change.
En tant que programmeur, vous connaissez déjà la puissance des instructions IF. Ils vous permettent d'automatiser l'analyse logique dans n'importe quel calcul. C'est très puissant dans un langage de script, mais comme vous pouvez le voir, c'est tout aussi puissant dans les cellules d'une feuille de calcul Excel.
Avec un peu de créativité, vous pouvez faire des choses très impressionnantes avec la logique d'instruction IF et d'autres formules dans Excel.
Quel type de logique unique avez-vous trouvé en utilisant les instructions IF dans Excel ? Partagez vos propres idées et astuces dans la section des commentaires ci-dessous !