XL 2016 Formules fonction SI ET imbriqué

DJISA

XLDnaute Occasionnel
Bonjour la communauté. Je reviens avec un autre problème mais avec l'espoir que vous m'aiderez à trouver une solution.
Mon souhait est de réunir dans une même formule plusieurs conditions.
On ignore d'emblée la moyenne de l'élève c'est pourquoi il faut prévoir tous les cas de figure dans toutes les cellules.
J'ai envoyé ce fichier.
 

Pièces jointes

  • Classeur3.xlsm
    9.7 KB · Affichages: 8

Ethiryn - Glarilak

XLDnaute Nouveau
Voici une autre solution qui n'utilise pas de tableau supplémentaire mais qui peux être plus dure à lire et qui n'est pas facilement modulables (changement des paramètres), contrairement à celle avec tableau.

Les formules qui conviendrait serait "SI.MULTIPLE" ou "SI.CONDITION" que l'on peut voir sur ce lien Vidéo Docteur Excel, mais il semblerait qu'il faut EXCEL 2019 ou 365 pour les utiliser.
Si on n'a pas cette version d'EXCEL, il faudrait plus écrie des "SI" imbriquer les un dans les autres avec des "ET" et "OU" comme la formule si dessous. (Cela la complique et la rend peux lisible, contrairement au autres comme montrer dans la vidéo)
Rappel des formules :
SI(Condition;Valeur_Si_Vrai;Valeur_Si_Faux)
ET(Condition_1;Condition_2;...;Condition_n)
OU(Condition_1;Condition_2;...;Condition_n)
Formule :
Code:
=SI(E4>=12;"Satisfaisant. Doit continuer";SI(E4>=10;"Peut mieux faire";SI(OU(ET(E4>5;C4<16);ET(E4>5;C4>=16;D4="NON"));"Insuffisant. Risque de redoubler";SI(C4>=16;"Insuffisant. Risque l'exclusion";"CAS NON TRAITER"))))
Cette formule est construite en "SI", si la valeur est vraie alors on affiche le texte, sinon on teste le "SI" suivant. Les fonctions ET et OU servent quant il y a plusieurs conditions pour le même texte.

Attention la toute dernière valeur si faux renvoie "CAS NON TRAITER" car il pourrait y avoir des cas que vous nous avez pas énoncer dans le fichier, Ex : Age =< 16 et Moyenne >= 5. Il suffit de les ajouter de la même manière que les autres.

En espèrent avoir répondu au problème dans sont maximum.

Ethiryn - Glarilak
 
Dernière édition:

DJISA

XLDnaute Occasionnel
Voici une autre solution qui n'utilise pas de tableau supplémentaire mais qui peux être plus dure à lire et qui n'est pas facilement modulables (changement des paramètres), contrairement à celle avec tableau.

Les formules qui conviendrait serait "SI.MULTIPLE" ou "SI.CONDITION" que l'on peut voir sur ce lien Vidéo Docteur Excel, mais il semblerait qu'il faut EXCEL 2019 ou 365 pour les utiliser.
Si on n'a pas cette version d'EXCEL, il faudrait plus écrie des "SI" imbriquer les un dans les autres avec des "ET" et "OU" comme la formule si dessous. (Cela la complique et la rend peux lisible, contrairement au autres comme montrer dans la vidéo)
Rappel des formules :
SI(Condition;Valeur_Si_Vrai;Valeur_Si_Faux)
ET(Condition_1;Condition_2;...;Condition_n)
OU(Condition_1;Condition_2;...;Condition_n)
Formule :
Code:
=SI(E4>=12;"Satisfaisant. Doit continuer";SI(E4>=10;"Peut mieux faire";SI(OU(ET(E4>5;C4<16);ET(E4>5;C4>=16;D4="NON"));"Insuffisant. Risque de redoubler";SI(C4>=16;"Insuffisant. Risque l'exclusion";"CAS NON TRAITER"))))
Cette formule est construite en "SI", si la valeur est vraie alors on affiche le texte, sinon on teste le "SI" suivant. Les fonctions ET et OU servent quant il y a plusieurs conditions pour le même texte.

Attention la toute dernière valeur si faux renvoie "CAS NON TRAITER" car il pourrait y avoir des cas que vous nous avez pas énoncer dans le fichier, Ex : Age =< 16 et Moyenne >= 5. Il suffit de l'est ajouter de la même manière que les autres.

En espèrent avoir répondu au problème dans sont maximum.

Ethiryn - Glarilak
Bonjour Ethiryn - Glarilak!
Merci pour le soutien. Je l'essaie et ensuite je vous rend compte du résultat obtenu. A bientôt.
 

DJISA

XLDnaute Occasionnel
Voici une autre solution qui n'utilise pas de tableau supplémentaire mais qui peux être plus dure à lire et qui n'est pas facilement modulables (changement des paramètres), contrairement à celle avec tableau.

Les formules qui conviendrait serait "SI.MULTIPLE" ou "SI.CONDITION" que l'on peut voir sur ce lien Vidéo Docteur Excel, mais il semblerait qu'il faut EXCEL 2019 ou 365 pour les utiliser.
Si on n'a pas cette version d'EXCEL, il faudrait plus écrie des "SI" imbriquer les un dans les autres avec des "ET" et "OU" comme la formule si dessous. (Cela la complique et la rend peux lisible, contrairement au autres comme montrer dans la vidéo)
Rappel des formules :
SI(Condition;Valeur_Si_Vrai;Valeur_Si_Faux)
ET(Condition_1;Condition_2;...;Condition_n)
OU(Condition_1;Condition_2;...;Condition_n)
Formule :
Code:
=SI(E4>=12;"Satisfaisant. Doit continuer";SI(E4>=10;"Peut mieux faire";SI(OU(ET(E4>5;C4<16);ET(E4>5;C4>=16;D4="NON"));"Insuffisant. Risque de redoubler";SI(C4>=16;"Insuffisant. Risque l'exclusion";"CAS NON TRAITER"))))
Cette formule est construite en "SI", si la valeur est vraie alors on affiche le texte, sinon on teste le "SI" suivant. Les fonctions ET et OU servent quant il y a plusieurs conditions pour le même texte.

Attention la toute dernière valeur si faux renvoie "CAS NON TRAITER" car il pourrait y avoir des cas que vous nous avez pas énoncer dans le fichier, Ex : Age =< 16 et Moyenne >= 5. Il suffit de l'est ajouter de la même manière que les autres.

En espèrent avoir répondu au problème dans sont maximum.

Ethiryn - Glarilak
 

Morpheus95

XLDnaute Nouveau
Bonjour a tous, j'ai besoin d'aide pour mon tableau : est il possible via une formule que, si ce qu'il est écrit dans A2 est identique a ce qu'il est écrit dans I2, alors cela m'inscrit automatiquement dans E2 ce qu'il est écrit dans J2 mais également que cela m'incrive automatiquement en G2 ce qu'il est écrit en K2 et enfin que cela m'incrive automatiquement en F2 ce qu'il est écrit en L2 ?

Merci beaucoup pour votre aide

PS : j'ai besoin de conserver les colonnes B et D malgré qu'elle soient vides, je vous joint mon fichier
 

Pièces jointes

  • Bon de livraison F.xlsm
    12.5 KB · Affichages: 8

Ethiryn - Glarilak

XLDnaute Nouveau
Bonjour Morpheus95,
Il suffit d'entrer la formule =SI($A$2=$I$2;Valeur si vrai,Valeur si faux).
Il faut entrer la formule si-dessus dans la cellule E2 pour est mettre la valeur si vrai correspondante, d'après ce que tu as dit
E2 ce qu'il est écrit dans J2
La formule pour E2 serait donc =SI($A$2=$I$2;J2)
Et tu fais pareille pour toutes les cellules que tu as demander, F2 => Valeur si vrai = I2, ...

Mais attention si tu change une valeur en A2 ou I2, est quelle ne sont plus égale la formule renverra FAUX. Si tu as une valeur à entrer à la place, il suffi de la rentrer dans la partie Valeur si faux.
Exemple : =SI($A$2=$I$2;J2;"Les cellules A2 et I2 ne sont pas égale"), mais on peux mettre ce que l'on veux.

J'espère que la réponse convient à ta demande;

Ethiryn - Glarilak
 

Morpheus95

XLDnaute Nouveau
Bonjour Morpheus95,
Il suffit d'entrer la formule =SI($A$2=$I$2;Valeur si vrai,Valeur si faux).
Il faut entrer la formule si-dessus dans la cellule E2 pour est mettre la valeur si vrai correspondante, d'après ce que tu as dit

La formule pour E2 serait donc =SI($A$2=$I$2;J2)
Et tu fais pareille pour toutes les cellules que tu as demander, F2 => Valeur si vrai = I2, ...

Mais attention si tu change une valeur en A2 ou I2, est quelle ne sont plus égale la formule renverra FAUX. Si tu as une valeur à entrer à la place, il suffi de la rentrer dans la partie Valeur si faux.
Exemple : =SI($A$2=$I$2;J2;"Les cellules A2 et I2 ne sont pas égale"), mais on peux mettre ce que l'on veux.

J'espère que la réponse convient à ta demande;

Ethiryn - Glarilak

Je te remercie pour ta réponse car cela fonctionne bien pour la cellule A2 car elle est identique a la cellule I2, mais effectivement la cellule A2 change continuellement, est il possible de demander a excel que si il trouve dans les cellules i2 jusqu’à I23 la mème chose que ce qu'il est écrit dans A2 il inscrit le code barre, l'article et le tarif correspondant ?
 

Ethiryn - Glarilak

XLDnaute Nouveau
Oui cela est tout à fait possible, avec la formule suivante =INDEX($I$2:$L$23;EQUIV($A2;$I$2:$I$23;0);2)
Il faut changer le "2" en fin de formule selon la colonne qui doit renvoyer la réponse, je m'explique...
- La fonction INDEX renvoie la valeur d'une cellule dans une plage selon la ligne de la cellule dans la plage, et la colonne de la cellule dans la plage, exemple =INDEX($I$2:$L$23;2;2) renvoie la valeur de la cellule J2.
- La fonction EQUIV renvoie la ligne ou la colonne (selon la plage sélection), ou la première occurrence du texte cherche est trouvé, exemple =EQUIV($A2;$I$2:$I$23;0) revoie 1 si ta cellule A2 = AHDM715NSG.

Associé ensemble les deux formules font une recherche dans la plage de donner, la seul modifications à faire dans la formule pour chaque colonne est le numéro de la colonne renvoyé. Dans ta colonne E c'est la colonne 2 de la plage que tu souhaite renvoyer, la 4 pour la colonne F, ...

Une chose auquel il faut faire attention c'est s'y il ne trouve pas du tout d’occurrence (Le code article n'est pas présent dans ta liste), alors il affichera une erreur. Pour se prémunir de cette erreur, il suffi de mettre ta formule dans une autre formule SIERREUR
ce qui donne =SIERREUR(INDEX($I$2:$L$23;EQUIV($A2;$I$2:$I$23;0);2);"Le code article n'existe pas"). Evidemment le texte est personalisable.

Bonne suite de journée Morpheus95

Ethiryn - Glarilak
 
Dernière édition:

Morpheus95

XLDnaute Nouveau
Oui cela est tout à fait possible, avec la formule suivante =INDEX($I$2:$L$23;EQUIV($A2;$I$2:$I$23;0);2)
Il faut changer le "2" en fin de formule selon la colonne qui doit renvoyer la réponse, je m'explique...
- La fonction INDEX renvoie la valeur d'une cellule dans une plage selon la ligne de la cellule dans la plage, et la colonne de la cellule dans la plage, exemple =INDEX($I$2:$L$23;2;2) renvoie la valeur de la cellule J2.
- La fonction EQUIV renvoie la ligne ou la colonne (selon la plage sélection), ou la première occurrence du texte cherche est trouvé, exemple =EQUIV($A2;$I$2:$I$23;0) revoie 1 si ta cellule A2 = AHDM715NSG.

Associé ensemble les deux formules font une recherche dans la plage de donner, la seul modifications à faire dans la formule pour chaque colonne est le numéro de la colonne renvoyé. Dans ta colonne E c'est la colonne 2 de la plage que tu souhaite renvoyer, la 4 pour la colonne F, ...

Une chose auquel il faut faire attention c'est s'y il ne trouve pas du tout d’occurrence (Le code article n'est pas présent dans ta liste), alors il affichera une erreur. Pour se prémunir de cette erreur, il suffi de mettre ta formule dans une autre formule SIERREUR
ce qui donne =SIERREUR(INDEX($I$2:$L$23;EQUIV($A2;$I$2:$I$23;0);2);"Le code article n'existe pas"). Evidemment le texte est personalisable.

Bonne suite journée Morpheus95

Ethiryn - Glarilak

Tu m'as refait ma journée, ça fonctionne parfaitement, merci beaucoup
 

Ethiryn - Glarilak

XLDnaute Nouveau
De rien, si sa t'intéresse tu peux même ajouter une liste déroulante avec tout les choix de code article dans les cellules de la colonne 1.

Voici comment faire :
- Tu sélectionne la plage sur laquelle tu veux mettre la liste déroulante ($A$2:$A$23 dans ton fichier)
- Tu vas dans l'onglet Données
- Dans le cadre Outils de Données tu clique sur Validation des données.
- Dans la fenêtre qui s'ouvre tu choisis dans Options, Autoriser, Liste
- Dans source tu rentre la colonne avec les références ($I$2:$I$23 dans ton fichier)
- Tu clique sur Ok
- Maintenant quant tu clique sur une cellule de la colonne A tu as une petite flèche à droite qui ouvre une liste avec toutes les références possible.
- Le plus de cette méthode, tu ne peut plus entrer une valeur non référencé, ce qui supprime l'erreur avec la formule INDEX et EQUIV

Voilà j'espère que sa te sera utile ;) .

Ethiryn - Glarilak
 
Dernière édition:

Morpheus95

XLDnaute Nouveau
Bonjour Ethiryn - Glarilak, J'ai encore besoin de tes compétences, j'ai passé hier toute l'aprés midi et toute cette mâtiné à essayer de trouver la solution mais en vain, les cellules F545 à F572 m'affiche #N/A alors que les cellules F573, F574, F592, F602 et F611 affichent le bon résultat, et toutes les autres cellules en rouges n'afiche pas le bon resultat, pourtant (sauf erreur de ma part) la formule est correctement entré
 

Pièces jointes

  • CONSTRUCTION POUR BL TEST ERREUR.xlsm
    69.2 KB · Affichages: 8

Ethiryn - Glarilak

XLDnaute Nouveau
Le souci provient de la formule RECHERCHEV qui fait une recherche dans l'ordre à l’alphabétique, les valeurs de ta colonne J ne sont pas dans l'ordre alphabétique, d'où l'erreur.
Il y a 2 solutions à se problème, soit on mais dans l'ordre alphabétique la liste de données.
Soit on utilise la fonction que je t'avais donner dans un des post précédents (J'avais utilisé c'est formule parce qu’elle contourne le problème de la fonction RECHERCHEV) Le problème existe aussi avec la fonction RECHERCHEH et la fonction RECHERCHE.

Le plus simple pour ne pas à avoir à remettre dans l'ordre alphabétique à chaque ajout de ligne dans le tableau données, est de choisir les fonctions INDEX et EQUIV.
Oui cela est tout à fait possible, avec la formule suivante =INDEX($I$2:$L$23;EQUIV($A2;$I$2:$I$23;0);2)
Il faut changer le "2" en fin de formule selon la colonne qui doit renvoyer la réponse, je m'explique...
- La fonction INDEX renvoie la valeur d'une cellule dans une plage selon la ligne de la cellule dans la plage, et la colonne de la cellule dans la plage, exemple =INDEX($I$2:$L$23;2;2) renvoie la valeur de la cellule J2.
- La fonction EQUIV renvoie la ligne ou la colonne (selon la plage sélection), ou la première occurrence du texte cherche est trouvé, exemple =EQUIV($A2;$I$2:$I$23;0) revoie 1 si ta cellule A2 = AHDM715NSG.

Associé ensemble les deux formules font une recherche dans la plage de donner, la seul modifications à faire dans la formule pour chaque colonne est le numéro de la colonne renvoyé. Dans ta colonne E c'est la colonne 2 de la plage que tu souhaite renvoyer, la 4 pour la colonne F, ...

Une chose auquel il faut faire attention c'est s'y il ne trouve pas du tout d’occurrence (Le code article n'est pas présent dans ta liste), alors il affichera une erreur. Pour se prémunir de cette erreur, il suffi de mettre ta formule dans une autre formule SIERREUR
ce qui donne =SIERREUR(INDEX($I$2:$L$23;EQUIV($A2;$I$2:$I$23;0);2);"Le code article n'existe pas"). Evidemment le texte est personalisable.

Bonne suite de journée Morpheus95

Ethiryn - Glarilak

Autre chose, pour éviter de devoir mettre la formule à jour à chaque ajout de ligne il faudrait crée deux noms comme dans le poste suivant :
- Dans l'onglet Formules Cliquer sur Gestionnaire des Noms, Nouveau entrer un le titre suivant "Libelle", puis dans la case Fait référence à entrer =DECALER(Feuil1!$C$2;;;NBVAL(Feuil1!$C:$C)-1;1)
- Puis refaire pareille en entrant le titre "Tableau_données" et la formule =DECALER(Feuil1!$C$2;;;NBVAL(Feuil1!$C:$C)-1;2).
C'est deux formules permette de définir le tableau de donnés pour la formules en dessous.

Les noms à mettre peuvent par exemple être :
- Code_Barre : en entrant cette formules =DECALER(Feuil2!$J$2;;;NBVAL(Feuil2!$J:$J)-1;1)
- Donnees_Articles : formules =DECALER(Feuil2!$J$2;;;NBVAL(Feuil2!$J:$J)-1;5)

La formule deviendrait en F2 : =INDEX(Donnees_Article;EQUIV($A2;Code_Barre;0);3), il ne reste plus qu'a l'étirer dans tout les cellules.


Ethiryn - Glarilak
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 109
Messages
2 085 383
Membres
102 878
dernier inscrit
asmaa