Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Calcul en fonction des cellules au dessus

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

  • Ex 1.xlsx
    11.9 KB · Affichages: 9

Chris401

XLDnaute Accro
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:

Orson83

XLDnaute Impliqué
Non, fonctionne q'avec 0.
Autre explication pour D21 : si le gain entre B21- B19 est inférieur à D3, alors pas d'affichage.
 

Chris401

XLDnaute Accro
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";""));"")
 

Orson83

XLDnaute Impliqué

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.
 

Chris401

XLDnaute Accro
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";""));"")
 

Discussions similaires

Réponses
46
Affichages
876
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…