Excel – IF imbriquées et alternatives

Merci de nous rejoindre! Vous recevrez un message de bienvenue dans quelques instants.

Un regard sur les instructions IF imbriquées et les alternatives qui sont plus faciles à faire et à comprendre plus tard.

par David Goodmanson

Dans mon dernier article, j’ai regardé une simple instruction IF Excel plus leur cousins utiles CountIf et SumIF. J’ai également abordé l’instruction IF imbriquée, où il y a beaucoup de fonctions IF dans une cellule.

Cette fois, nous examinerons le IF imbriqué plus en détail et en particulier les alternatives qui sont plus facile à faire et à comprendre plus tard.

Ensuite, nous examinerons d’autres façons d’utiliser l’instruction IF dans du code VBA (Visual Basic pour Applications), ainsi que l’instruction Select Case.

Le numéro d’évaluation dans la colonne B est transformé en une description textuelle dans la colonne C. Dans Excel, il existe toutes sortes de façons de faire Dans un exemple simple comme celui-ci, un IF imbriqué suffit, mais il existe d’autres options sont plus faciles à lire par d’autres personnes.

Personne n’a jamais entrepris de créer un long groupe de IF imbriquées. Cela envahit généralement tout le monde au fil du temps. Un IF imbriqué simple avec 2 ou 3 options peut croître avec de plus en plus de IF au point où il est illisible et sujet à des erreurs de codage. Voici un IF imbriqué ‘simple’ avec 40 niveaux:

=IF(A2="A",TRUE,IF(A2="B",TRUE,IF(A2="C",TRUE,IF(A2="D",TRUE,
IF(A2="E",TRUE,IF(A2="F",TRUE,IF(A2="G",TRUE,IF(A2="H",TRUE,
IF(A2="I",TRUE,IF(A2="J",TRUE,IF(A2="K",TRUE,IF(A2="L",TRUE,
IF(A2="M",TRUE,IF(A2="N",TRUE,IF(A2="O",TRUE,IF(A2="P",TRUE,
IF(A2="Q",TRUE,IF(A2="R",TRUE,IF(A2="S",TRUE,IF(A2="T",TRUE,
IF(A2="U",TRUE,IF(A2="V",TRUE,IF(A2="W",TRUE,IF(A2="X",TRUE,
IF(A2="Y",TRUE,IF(A2="Z",TRUE,IF(A2="AA",TRUE,IF(A2="AB",TRUE,
IF(A2="AC",TRUE,IF(A2="AD",TRUE,IF(A2="AE",TRUE,IF(A2="AF",TRUE,
IF(A2="AG",TRUE,IF(A2="AH",TRUE,IF(A2="AI",TRUE,
IF(A2="AJ",TRUE,IF(A2="AK",TRUE,IF(A2="AL",TRUE,IF(A2="AM",TRUE,
IF(A2="AN",TRUE,FALSE))))))))))))))))))))))))))))))))))))))))

Dans Excel 2007, vous pouvez avoir 64 IF imbriqués dans une formule, bien que bonne chance pour déboguer une telle ligne! Les IF imbriquées sont un peu plus faciles à contrôler dans les versions récentes d’Excel qui ont un code couleur de formule, etc. Malgré ces aides, il vaut mieux éviter les IF fortement imbriquées.

Si vous pensez que vos options imbriquées pourraient être étendues plus tard, envisagez l’une des alternatives dès le départ.

IF imbriqué

Premièrement, pour les fonctions IF imbriquées, la formule de la cellule C3 est indiquée ci-dessous.

=IF(B3=5, "Boom", IF(B3=4, "Recovery", IF(B3=3, "Turning Point",
IF(B3=2, "Recession", IF(B3=1, "Depression")))))

Le SI imbriqué fonctionne de gauche à droite en évaluant le test logique, par exemple B3 = 5, si cette note est vraie alors IF insère le texte « Boom ». Si B3 n’est pas égal à 5 alors IF regarde le test logique suivant (B3 = 4) et évalue chaque étape à son tour.

  • IF continue d’évaluer chaque test jusqu’à ce que le test logique soit satisfait, puis quitte la fonction.
  • Le signe égal à gauche du premier IF n’est requis qu’une seule fois pour ce premier IF, par la suite , pour chaque niveau d’imbrication, nous mettons simplement le texte IF. (Ceci est vrai pour toute fonction de feuille de calcul imbriquée).
  • Le nombre de crochets ouverts « ( » doit correspondre au nombre de crochets fermants « ) ». Dans l’exemple de formule ci-dessus, il y a 5 crochets ouverts, auxquels correspondent 5 crochets fermants à la fin. Les versions récentes d’Excel offrent de meilleures fonctionnalités de coloration et de vérification des erreurs pour garder les crochets et les guillemets droits, mais même si les IF imbriqués une gêne à résoudre.

Table de recherche

Une façon de contourner la complexité du IF imbriqué consiste à utiliser RECHERCHEV lié à une table de référence autrement où dans la feuille de calcul.

Notre tableau ressemblerait à ceci:

La fonction dans la colonne C de la table d’origine se lit maintenant:

=VLOOKUP(B3,$G$2:$H$6,2,FALSE)

Habituellement, vous placez la table de recherche dans un autre onglet de la même feuille de calcul, mais les données peuvent provenir de n’importe où.

VBA – l’instruction IF

Une alternative est de créer une fonction VBA personnalisée et de mettre toute la logique IF dans le code VBA.

Cela présente l’avantage de étant beaucoup plus facile à lire et à comprendre.

L’inconvénient est le besoin de sécurité du code et le souci que le code VBA est légitime et non un virus. Si vos utilisateurs ne sont pas habitués à obtenir des feuilles de calcul avec du code joint, vous voudrez peut-être éviter les options VBA.

Voici un extrait de code, c’est la même logique que le IF imbriqué au début de cet article mais, comme vous peut voir, est beaucoup plus facile à lire:

" Using a VBA if statement structure
" ==================================
If Rating = 5 Then
Prediction = "Boom"
ElseIf Rating = 4 Then
Prediction = "Recovery"
ElseIf Rating = 3 Then
Prediction = "Turning Point"
ElseIf Rating = 2 Then
Prediction = "Recession"
ElseIf Rating = 1 Then
Prediction = "Depression"
End If

VBA: Select Case

Enfin, une structure encore plus facile à lire est l’instruction Select Case.

"Using a Select Case structure
"=============================
Select Case Rating
Case 5
Prediction = "Boom"
Case 4
Prediction = "Recovery"
Case 3
Prediction = "Turning Point"
Case 2
Prediction = "Recession"
Case 1
Prediction = "Depression"
End Select

L’instruction Select Case est une autre structure VBA qui fournit un moyen d’évaluer une gamme d’alternatives avec un minimum de saisie répétitive requise . Il est aussi plus simple et plus facile à lire et doit être utilisé lorsqu’il y a plus de 3 alternatives de la variable d’intérêt.

VBA: et au-delà…

Enfin pour vous donner une idée de la plus grande puissance de Select Case, voici une version étendue de Select Case:

Select Case Rating
Case 4.5 To 10
Prediction = "Boom"
Case 3.5 To 4.49
Prediction = "Recovery"
Case 2.5 To 3.49
Prediction = "Turning Point"
Case 1.5 To 2.49
Prediction = "Recession"
Case 0.5 To 1.4
Prediction = "Depression"
Case 0 To 0.49
Prediction = "Money under the Mattress"
Case Else
Prediction = "No prediction - there"s no economy left!"
End Select

Cette version teste des plages de valeurs (par exemple, une note supérieure ou égale à 3,5 mais inférieure ou égale à 4,5) et permet à quelqu’un offrant une note fractionnaire comme 2.5.

De plus, en bas de la structure se trouve le contrôle « Else ». Fondamentalement, il couvre ev tout ce que nous n’avons pas couvert dans nos Elseifs précédents. Si rien n’équivaut à la note, alors la partie Else de la structure fournit un contrôle alternatif.

Eh bien, c’est tout pour la série de fonctions IF. Continuez à recevoir vos commentaires, questions et suggestions. À la prochaine fois.

Voir aussi

  • Le SUM d’Excel, c’est bien plus
  • Créer un Excel complexe cellule facile à utiliser
  • Plus d’options IF imbriquées
  • L’option CHOOSE dans Excel
  • Fonction IF d’Excel
Merci de nous rejoindre! Vous recevrez un message de bienvenue dans quelques instants.

Leave a Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *