XL 2010 Calcul en fonction des cellules au dessus

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Orson83

XLDnaute Impliqué
Bonsoir à tous,
Je rencontre un problème en fonction des valeurs des cellules au dessus selon une valeur de décalage.
En effet, si les cellules au dessus (selon valeur décalage) sont supérieures, alors Action 1 ou si les cellules au dessus (selon valeur décalage) sont inférieures, alors Action 2.
Si ce n'est pas l'un des 2 cas, alors VIDE.
Merci pour votre aide.
Je joins un fichier exemple dans ce ticket.
Bonne soirée 😉
 

Pièces jointes

Essaye :
Code:
=SIERREUR(SI(ET(C6="Calcul A";SOMMEPROD(N(DECALER(B6;-$D$2;;$D$2;1)<B6))=$D$2;OU($D$3=0;ABS(B6-DECALER(B6;-$D$2;))<$D$3));"Action 1";
SI(ET(C6="Calcul B";SOMMEPROD(N(DECALER(B6;-$D$2;;$D$2;1)>B6))=$D$2;OU($D$3=0;ABS(B6-DECALER(B6;-$D$2;))>$D$3));"Action 2";""));"")

Ou on peut réutiliser NB.SI
Code:
=SIERREUR(SI(ET(C6="Calcul A";NB.SI(DECALER(B6;-$D$2;;$D$2;1);"<"&B6)=$D$2;OU($D$3=0;ABS(B6-DECALER(B6;-$D$2;))<$D$3));"Action 1";
SI(ET(C6="Calcul B";NB.SI(DECALER(B6;-$D$2;;$D$2;1);">"&B6)=$D$2;OU($D$3=0;ABS(B6-DECALER(B6;-$D$2;))>$D$3));"Action 2";""));"")
 
Dernière édition:
Essaye :
Code:
=SIERREUR(SI(ET(C6="Calcul A";SOMMEPROD(N(DECALER(B6;-$D$2;;$D$2;1)<B6))=$D$2;OU($D$3=0;ABS(B6-DECALER(B6;-$D$2;))<$D$3));"Action 1";
SI(ET(C6="Calcul B";SOMMEPROD(N(DECALER(B6;-$D$2;;$D$2;1)>B6))=$D$2;OU($D$3=0;ABS(B6-DECALER(B6;-$D$2;))>$D$3));"Action 2";""));"")
Non, fonctionne q'avec 0.
Autre explication pour D21 : si le gain entre B21- B19 est inférieur à D3, alors pas d'affichage.
 
Pour ma compréhension, à quoi sert $D$3=0 ?
Voir post #11

Et pour chipoter, comment indiquer > ou = à $D$3 ? J'ai essayé ")>=$D$3));"Action" mais ça ne fonctionne pas. En effet, si j'indique 16,84 en D3 alors que la dif. est bien de 16,84, alors pas d'affichage.

En réalité tu n'as pas 16.84 mais 16.8399999999999
Donc il faut arrondir dans la formule

Code:
=SIERREUR(SI(ET(C6="Calcul A";NB.SI(DECALER(B6;-$D$2;;$D$2;1);"<"&B6)=$D$2;OU($D$3=0;ABS(ARRONDI(B6-DECALER(B6;-$D$2;);2))>=$D$3));"Action 1";
SI(ET(C6="Calcul B";NB.SI(DECALER(B6;-$D$2;;$D$2;1);">"&B6)=$D$2;OU($D$3=0;ABS(ARRONDI(B6-DECALER(B6;-$D$2;);2))>=$D$3));"Action 2";""));"")
 
Actuellement; si tu mets D3 à 0 cela sous entend que les valeurs doivent être égales à la cellule étudiée pour retourner l'action.
Donc, il faut ajouter que D3 doit être différent de 0 pour que l'argument 2 soit pris en compte.

Voir post #11



En réalité tu n'as pas 16.84 mais 16.8399999999999
Donc il faut arrondir dans la formule

Code:
=SIERREUR(SI(ET(C6="Calcul A";NB.SI(DECALER(B6;-$D$2;;$D$2;1);"<"&B6)=$D$2;OU($D$3=0;ABS(ARRONDI(B6-DECALER(B6;-$D$2;);2))>=$D$3));"Action 1";
SI(ET(C6="Calcul B";NB.SI(DECALER(B6;-$D$2;;$D$2;1);">"&B6)=$D$2;OU($D$3=0;ABS(ARRONDI(B6-DECALER(B6;-$D$2;);2))>=$D$3));"Action 2";""));"")
Si j'ai bien compris, il faut laisser $D$3=0 même si ça ne change rien en le supprimant ?
Ok pour l'arrondi, merci.
 
Effectivement, on peut sortir D3=0 - Je l'avais mis dans le fichier ex2 car cela était nécessaire selon la compréhension que j'avais de ta demande.

Code:
=SIERREUR(SI(ET(C6="Calcul A";NB.SI(DECALER(B6;-$D$2;;$D$2;1);"<"&B6)=$D$2;ABS(ARRONDI(B6-DECALER(B6;-$D$2;);2))>=$D$3);"Action 1";
SI(ET(C6="Calcul B";NB.SI(DECALER(B6;-$D$2;;$D$2;1);">"&B6)=$D$2;ABS(ARRONDI(B6-DECALER(B6;-$D$2;);2))>=$D$3);"Action 2";""));"")
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour