Comment puis-je déboguer ma formule complexe IF Excel?

Je suis un enseignant et je développe le système d'évaluation de mon école. Que dois-je faire pour corriger cette formule?

=IF(H3="SUR",IF(Subject!C3<2.7,"Not on track",IF(Subject!C3<=3.29,"On track",IF(Subject!C3>=3.3,"Above", IF(H3="MAS",IF(Subject!C3<2.2,"Not on track",IF(Subject!C3<=2.79,"On track",IF(Subject!C3>=2.8,"Above", IF(H3="EXP",IF(Subject!C3<1.7,"Not on track",IF(Subject!C3<=2.29,"On track",IF(Subject!C3>=2.3,"Above",IF(H3="EM3",IF(Subject!C3<1.2,"Not on track",IF(Subject!C3<=1.79,"On track",IF(Subject!C3>=1.8,"Above", IF(H3="EM2",IF(Subject!C3<0.7,"Not on track",IF(Subject!C3<=1.29,"On track",IF(Subject!C3>=1.3,"Above",IF(H3="EM1",IF(Subject!C3<0.23,"Not on track",IF(Subject!C3<=0.42,"On track",IF(Subject!C3>=0.43,"Above"))))))))))))))))))))))))

Le résultat dépend de ce qui est entré dans H_, et chaque catégorie a des plages spécifiques.

Comme on l'a dit dans les commentaires, créez une table:

entrez la description de l'image ici

Ensuite, vous utiliserez la formule Array suivante:

 =INDEX(O:O,MATCH(C3,IF($M$1:$M$18=H3,$N$1:$N$18))) 

Étant une formule de tableau, il doit être confirmé avec Ctrl-Shift-Enter au lieu d'Entrée lors de la sortie du mode d'édition. Si fait correctement, Excel mettra {} autour de la formule.

Chaque groupe doit être set et dans l'ordre croissant pour que cette méthode fonctionne.

Cela permet de modifier les critères et la sortie sans changer la formule codée.

entrez la description de l'image ici

Voici comment vous aider en 3 étapes.

Étape 1 – Agrandissez la barre de formule afin qu'elle contienne plus d'une rangée: entrez la description de l'image ici Étape 2 – Utilisez Alt+Enter pour rendre la formule compréhensible: entrez la description de l'image ici Étape 3 – Aller aux FormulasEvaluate Formula au ruban et appuyez sur Évaluer: entrez la description de l'image ici

Bonne chance, amuse toi bien! 🙂

Il devrait s'agir de deux searchs distinctes, car la search de text est exacte et la search de nombre est approximative. Si par exemple si vous avez ceci dans la gamme A1:D6 :

 EM1 0.23 0.43 Exp EM2 0.7 1.3 2 EM3 1.2 1.8 EXP 1.7 2.3 MAS 2.2 2.8 SUR 2.7 3.3 

Alors =VLOOKUP("EXP",A1:C6,2,0) aboutit à 1.7 et =VLOOKUP("EXP",A1:C6,3,0) en 2.3

 =IF(D2 < VLOOKUP(D1, A1:C6, 2, 0), "Not on track", IF(D2 < VLOOKUP(D1, A1:C6, 3, 0), "On track", "Above"))