Condition sur la valeur des décimales d'un nombre

Résolu/Fermé
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 - 5 août 2015 à 05:22
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 - 5 août 2015 à 15:50
Bonjour,

Je créé une application avec Excel 2010, et pour une de mes formules j'aurai besoin que le logiciel exécute une opération (une division) en fonction de la valeur des décimales d'un nombre (que je note ici "n" et qui correspond à la cellule D84 de ma feuille) et ("a une décimale" qui serai à remplacé par une fonction)

Voici un aperçu de la formule que j'aimerai réussir à écrire :

=Si(D84="a une décimale"<n.25;C84*n+C84/4;Si(D84="a une décimale"?n.33;?n.25;C84*n+C84/3;Si(D84="a une décimale"?n.50;?n.33;C84*n+(C84/2);Si(D84="a une décimale">n.50;ARRONDI.SUP(D84*C84);"No data"))))

Je ne sais pas si cela est possible, en attendant je vous remercie d'avance de m'avoir lu.

Cordialement,

2 réponses

eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
5 août 2015 à 08:10
Bonjour,

Pas bien clair. C'est quoi les ? ?
Sinon pour avoir les décimales : =mod(A1;1)

eric
0
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 2
5 août 2015 à 14:45
Bonjour eric,

Alors les ?? c'est une erreur avec un copié coller tout simplement.

Merci pour ce renseignement, je me suis renseigné sur cette fonction, elle semble permettre d'obtenir le reste d'une division entière, mais dans ce cas ci ce n'est pas ce que je recherche.

Il est vrai que mon énoncé était un petit peu brouillon...
En fait la cellule G84 représente la longueur d'une clôture.
Je divise cette longueur par la longueur d'un panneau : 1.835 mètre
J'obtiens alors le nombre de panneaux dans une autre cellule, la D84.
Or le nombre de panneaux obtenu est rarement un entier...
Donc lorsque j'obtiens le nombre : 8.66 en D84
Alors cela me donne 8 panneaux et 2/3 d'un 9ème panneau
Dans ce cas ci j'arrondis a 9 panneaux.

Mais si j'obtiens le nombre : 8.50 en D84
Alors cela me donne 8 panneaux et 1/2 d'un 9ème panneau
=>L'astuce c'est que les éléments composant les panneaux sont des lames en alu, donc lorsque le nombre en D84 a une décimale <= à 0.50, je peux recouper les lames en 2 sur le 9ème panneau (et seulement le 9ème !) et donc économiser 1 élément.

Même principe lorsque la décimale devient <= 0.33
Alors je peux recouper les éléments du dernier panneau en 3 (et donc en économiser 2)

Même principe lorsque la décimale devient <= 0.25
Alors je peux recouper les éléments du dernier panneau en 4 (et donc en économiser 3)

J'espers avoir été assez précis et compréhensible, dans l'attente d'une solution je reste à votre disposition pour tout renseignements...

Cordialement,
SE.
0
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
Modifié par eriiic le 5/08/2015 à 15:39
je me suis renseigné sur cette fonction, elle semble permettre d'obtenir le reste d'une division entière
C'est tout à fait ça.
Et si tu testes tu obtiens quoi ?

eric
0
SE44fr Messages postés 29 Date d'inscription mercredi 5 août 2015 Statut Membre Dernière intervention 29 novembre 2015 2
5 août 2015 à 15:50
Alors j'ai effectuer d'autres recherches, je n'avais pas écris correctement la formule, mais tu as raison :

=MOD(D84;1)
et
=D84-ENT(D84)

permettent de sortir la décimale, il a fallut faire un peu d'écriture, cela donne :

=SI(MOD(D86;1)<=0,25;ARRONDI.SUP(C86*ARRONDI.INF(D86;0)+(C86/4);0);SI(ET(MOD(D86;1)<=0,33;MOD(D86;1)>0,25);ARRONDI.SUP(C86*ARRONDI.INF(D86;0)+(C86/3);0);SI(ET(MOD(D86;1)<=0,5;MOD(D86;1)>0,33);ARRONDI.SUP(C86*ARRONDI.INF(D86;0)+(C86/2);0);SI(MOD(D86;1)>0,5;C86*ARRONDI.SUP(D86;0);"No data"))))

Et le calcul fonctionne à merveille !

Merci beaucoup Eric !

Au plaisir,

Cordialement,
SE.
0