Dur Dur a trouver la formule

Résolu/Fermé
Devriendt - 28 févr. 2010 à 22:56
 Devriendt - 5 mars 2010 à 23:56
Bonjour,

Je suis sur la conception d'un tableau et je me confronte a une formule qui me résiste, donc me voila sur se forum pour trouver des personnes super doué sur Excel qui eux pourrons m'aider a résoudre mon gros probléme.

En vous remerciant d'avance pour l'aide qui me seras apporter.

Voisi se que je cherche a faire:

=SI(C3=ETT;SI(D3+E3+F3+G3+H3+I3>=2;"135€";"0€");SI(D3+E3+F3+G3+H3+I3>=4;"360€";"135€");SI(D3+E3+F3+G3+H3+I3>=6;"720€";"360€");SI(D3+E3+F3+G3+H3+I3>=8;"900€";"720€");SI(D3+E3+F3+G3+H3+I3>=10;"1260€";"900€");SI(D3+E3+F3+G3+H3+I3>=12;"1530€";"1260€");SI(D3+E3+F3+G3+H3+I3>=14;"1800€";"1530€");SINON(C3=ETL;SI(D3+E3+F3+G3+H3+I3>=3;"180€";"0€");SI(D3+E3+F3+G3+H3+I3>=5;"630€";"180€");SI(D3+E3+F3+G3+H3+I3>=7;"900€";"630€");SI(D3+E3+F3+G3+H3+I3>=10;"1260€";"900€");SI(D3+E3+F3+G3+H3+I3>=12;"1530€";"1260€");SI(D3+E3+F3+G3+H3+I3>=15;"1800€";"1530€");SI(D3+E3+F3+G3+H3+I3>=20;"2250€";"1800€");SI(D3+E3+F3+G3+H3+I3>=25;"2700€";"2250€");SI(D3+E3+F3+G3+H3+I3>=30;"3150€";"2700€");SI(D3+E3+F3+G3+H3+I3>=15;"3600€";"3150€");"0€")

Et voila mon big probléme.
Et félicitation a celui qui me arrive a me dépatrouiller de cette formule.
A voir également:

28 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
28 févr. 2010 à 23:37
Bonsoir,
Tu aurais pu faire un effort de mise en page pour faciliter la compréhension.
Est-ce une fonction que tu utilises plusieurs fois dans ton classeur ? La création d'une fonction personnalisée serait peut-être judicieuse.
0
Désolé pour la mise en page je suis pas abitué a poster sur les forums.

Pour ta question et bien oui je l'utilise a toute les lignes de mon tableur.

Et pour la personnaliser sa vas pas étre facil de le faire car sa fait déjà 4 jours que j'essaye de trouver l'astuce pour qu'elle fonctionne et j'en suis toujour au méme point.
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 096
1 mars 2010 à 04:10
Bonjour.
On va essayer de t'expliquer, pas à pas, tout ce qui ne va pas dans ta formule, qui ne risquait donc pas de marcher un jour ...
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 096
1 mars 2010 à 04:10
1) Sur quelle version d'Excel travailles-tu ?
Il y a des fonctions dans la version 2007 qui n'existaient pas avant, et surtout on peut imbriquer plus de 7 fonctions SI dans une formule.
2) En remplaçant D3+E3+F3+G3+H3+I3 par SOMME(D3:I3) ta formule prendrait moins de place.
3) Si tu mettais des valeurs numériques dans ta formule, et le résultat au format cellule "Monétaire", tu aurais le même résultat, et tu pourrais, en prime, effectuer des calculs sur les résultats trouvés, ce qui n'est pas le cas avec ta formule pleine de guillemets.
4) En appliquant les remarques 2 et 3 ci-dessus, ta formule
=SI(C3=ETT;SI(D3+E3+F3+G3+H3+I3>=2;"135€";"0€");SI(D3+E3+F3+G3+H3+I3>=4;"360€";"135€");SI(D3+E3+F3+G3+H3+I3>=6;"720€";"360€");SI(D3+E3+F3+G3+H3+I3>=8;"900€";"720€");SI(D3+E3+F3+G3+H3+I3>=10;"1260€";"900€");SI(D3+E3+F3+G3+H3+I3>=12;"1530€";"1260€");SI(D3+E3+F3+G3+H3+I3>=14;"1800€";"1530€");SINON(C3=ETL;SI(D3+E3+F3+G3+H3+I3>=3;"180€";"0€");SI(D3+E3+F3+G3+H3+I3>=5;"630€";"180€");SI(D3+E3+F3+G3+H3+I3>=7;"900€";"630€");SI(D3+E3+F3+G3+H3+I3>=10;"1260€";"900€");SI(D3+E3+F3+G3+H3+I3>=12;"1530€";"1260€");SI(D3+E3+F3+G3+H3+I3>=15;"1800€";"1530€");SI(D3+E3+F3+G3+H3+I3>=20;"2250€";"1800€");SI(D3+E3+F3+G3+H3+I3>=25;"2700€";"2250€");SI(D3+E3+F3+G3+H3+I3>=30;"3150€";"2700€");SI(D3+E3+F3+G3+H3+I3>=15;"3600€";"3150€");"0€")
s'écrit déjà
=SI(C3=ETT;SI(SOMME(D3:I3)>=2;135;0);SI(SOMME(D3:I3)>=4;360;135);SI(SOMME(D3:I3)>=6;720;360);SI(SOMME(D3:I3)>=8;900;720);SI(SOMME(D3:I3)>=10;1260;900);SI(SOMME(D3:I3)>=12;1530;1260);SI(SOMME(D3:I3)>=14;1800;1530);SINON(C3=ETL;SI(SOMME(D3:I3)>=3;180;0);SI(SOMME(D3:I3)>=5;630;180);SI(SOMME(D3:I3)>=7;900;630);SI(SOMME(D3:I3)>=10;1260;900);SI(SOMME(D3:I3)>=12;1530;1260);SI(SOMME(D3:I3)>=15;1800;1530);SI(SOMME(D3:I3)>=20;2250;1800);SI(SOMME(D3:I3)>=25;2700;2250);SI(SOMME(D3:I3)>=30;3150;2700);SI(SOMME(D3:I3)>=15;3600;3150);0)
on a quand même gagné 191 caractères ...
5) Où as-tu découvert la fonction SINON ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 096
1 mars 2010 à 04:21
Revenons à du plus technique :

=SI(C3=ETT;SI(SOMME(D3:I3)>=2;135;0);SI(SOMME(D3:I3)>=4;360;135);SI(SOMME(D3:I3)>=6;720;360);SI(....
ne respecte pas la syntaxe de la fonction, qui donnerait plutôt
=SI(C3=ETT;SI(SOMME(D3:I3)>=2;135;SI(SOMME(D3:I3)>=4;360;SI(SOMME(D3:I3)>=6;720;SI.... )))).

De plus
=SI(C3=ETT;SI(SOMME(D3:I3)>=2;135;0);SI(SOMME(D3:I3)>=4;360;135);SI(SOMME(D3:I3)>=6;720;360);SI(....
n'est pas logique ! Il faut raisonner dans le bon sens :
=SI(C3=ETT;SI(SOMME(D3:I3)<2;0;SI(SOMME(D3:I3)<4;135;SI(SOMME(D3:I3)<6;360;SI( .... )))))
0
Bonjour a toi Raymond,

Pour commencer je te remerci de répondre a ma demande d'aide, pour répondre a tes questions je travail sur la version Excel 2003 et pour la formule SINON je les mis pensant qu'elle excister ;)

Je viens d'essayer tes formules en ayant compléter le reste qui a donner:
=SI(C3=ETT;SI(SOMME(D3:I3)<2;0;SI(SOMME(D3:I3)<4;135;SI(SOMME(D3:I3)<6;360;SI(SOMME(D3:I3)<8;720;SI(SOMME(D3:I3)<10;900;SI(SOMME(D3:I3)<12;1260;SI(SOMME(D3:I3)<14;1530;SI(SOMME(D3:I3)>14;1800)))))))))

Qui ne veut non plus fonctionner.

Et comment embriquer la suite avec:
=SI(C3=ETL;SI(SOMME(D3:I3)<3;0;SI(SOMME(D3:I3)<5;180;SI(SOMME(D3:I3)<7;630;SI(SOMME(D3:I3)<10;900;SI(SOMME(D3:I3)<12;1260;SI(SOMME(D3:I3)<15;1530;SI(SOMME(D3:I3)>20;1800;SI(SOMME(D3:I3)>25;2250;SI(SOMME(D3:I3)>30;2700;SI(SOMME(D3:I3)>35;3150;SI(SOMME(D3:I3)>40;3600;SI(SOMME(D3:I3)<40;4500)))))))))
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
1 mars 2010 à 12:48
Bonjour,
Dans ta formule, tu as toujours le soucis soulevé par Raymond (bonjour) à savoir il faut raisonner dans le bon sens :
SI(SOMME(D3:I3)>30;2700;SI(SOMME(D3:I3)>35;3150;...

Veut dire si la somme est supérieure à 30, la valeur est 2700 ; sinon si la somme est supérieure à 35, la valeur est 3150 ; ... Or si la valeur est supérieure à 35, elle est nécessairement supérieure à 30. D'où l'écriture :
SI(SOMME(D3:I3)<30;0;SI(SOMME(D3:I3)<35;2700;...


Juste en complément de mon post, lorsque je parle de fonction personnalisée, il s'agit juste d'un code VBA qui te permettrait créer une fonction du type :
Ma_fonction(Valeur_testée ; plage_de_données)
qui serait plus facile à éditer. Dans ton cas, elle ressemblerait à :
=Ma_fonction(C3;D3:I3)

Si ça t'intéresse, fait moi signe.
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 096
1 mars 2010 à 12:57
Quand tu écris
=SI(C3=ETT;SI(SOMME(D3:I3)<2;0;SI(SOMME(D3:I3)<4;135;SI(SOMME(D3:I3)<6;360;SI(SOMME(D3:I3)<8;720;SI(SOMME(D3:I3)<10;900;SI(SOMME(D3:I3)<12;1260;SI(SOMME(D3:I3)<14;1530;SI(SOMME(D3:I3)>14;1800))))))) ) )
cela signifie pour Excel que ETT est le nom que tu as donné à une cellule ou à une plage.
Je crois plutôt qu'il s'agit d'une donnée texte contenue dans C3 ; dans ce cas il faut mettre cette valeur entre guillemets =SI(C3="ETT";SI...
Au départ, tu en avais donc mis là où il fallait pas (valeurs numériques), mais pas où il en fallait (saisies alphabétiques).
La fin de ta formule n'est pas logique non plus :
...;SI(SOMME(D3:I3)<14;1530;SI(SOMME(D3:I3)>14;1800))))))) ) )
en effet d'une part ton dernier SI ne propose de valeur_si_faux, et d'autre part l'avant dernier SI ayant épuisé tous les cas où SOMME(D3:I3) était <14, il n'y a pas lieu de faire un dernier test logique SI(SOMME(D3:I3)>14 ; donc ta formule se termine ainsi
...;SI(SOMME(D3:I3)<14;1530;1800))))))) )
Enfin ton tout premier SI, lorsque le test logique C3="ETT" est vrai, déclenche toute une imbrication d'autres SI ; mais tu dois, là encore, ajouter tout à la fin la valeur_si_faux, soit
...;SI(SOMME(D3:I3)<14;1530;1800))))))) ;"rien")

Et comme je te l'ai indiqué au 1) du post 4, ce n'est qu'à partir de la version 2007 qu'Excel autorise plus de 7 imbrications de SI !
0
Bonjour

J'aurais d'abord créé une cellule somme, par exemple :

A1 = D3+E3+F3+G3+H3+I3

J'aurais ensuite 2 petits tableaux faciles à modifier dans un coin, par exemple :

A B C D E F G H
2: 0 2 4 6 8 10 12 14
3: 0 135 360 720 900 1260 1530 1800


A B C D E F G H I J K
5: 0 3 5 7 10 12 15 20 25 30 35
6: 0 180 630 900 1260 1530 1800 2250 2700 3150 3600


Et j'aurais utilisé la formule :

=SI(C3=ETT;RECHERCHEH(A1;A2:H3;2;1);SI(C3=ETL;RECHERCHEH(A1;A5:K6;2;1);0))
0
Et bien la formule de Raymond fonctionne:

=SI(C3="ETT";SI(SOMME(D3:I3)<2;0;SI(SOMME(D3:I3)<4;135;SI(SOMME(D3:I3)<6;360;SI(SOMME(D3:I3)<8;720;SI(SOMME(D3:I3)<10;900;SI(SOMME(D3:I3)<12;1260))))));"rien")

Mes voila comme Raymond tu me la signalé sa fonctionne que sur un embriquement de 7 SI
Et tant que je n'aurais pas la version Excel 2007 sa ne fonctionneras pas pour moi.

Alors voila albert tu commence a m'intéresser avec ta formule ;)
Peut tu m'en dire plus.

Encore merci a vous pour l'entraide.
0
Pas grand chose à ajouter, à part les espaces supprimés lors de l'envoi,
pour une meilleure compréhension, et mettre les références en absolu.

A1 = SOMME(D3:I3)

........A........ B........ C........ D........ E........ F........ G........ H.........I.........J.........K
1: = SOMME(D3:I3)
2:.... 0 ........2 .........4 ........6 ........8 .......10...... 12 .......14
3: ....0 ......135 .....360 .....720..... 900... 1260 ...1530 ...1800
4:
5: ....0 ........3 ........5 ........7 ........10 ......12 ......15 .......20 ......25...... 30 .....35
6: ....0 ......180 ....630 .....900 .....1260 ..1530 ...1800... 2250... 2700 ...3150.. 3600


=SI(C3=ETT;RECHERCHEH($A$1;$A$2:$H$3;2;1);SI(C3=ETL;RECHERCHEH($A$1;$A$5:$K$6;2;1);0))
0
Je viens de faire mon petit tableau avec mes féférences et j'ai fait la formule que voici:

=SI(C3="ETT";RECHERCHEH('$'!A1:A;'$'!A2:H3;2;1);SI(C3="ETL";RECHERCHEH('$'!A1;'$'!A5:L6;2;1);SI(C3="TC";RECHERCHEH('$'!A1;'$'!A8:J9;2;1);"0")))

Et elle fontionne fonctionne mes me marque erreure des que je rentre les donnés !!!!!!
0
C3 est compris dans le premier tableau A2:H3
Je ne connais pas le symbole $ entre ' ?, comme indiqué, cela fonctionne bien.
Pourqoi 0 en texte à la fin ?
0
C3 et compris dans le premier tableau A2:H3 ?
Je ne vois pas se que tu veut dire ?

Le symbole $ et le nom de la feuille ou j'ai mis le petit tableau avec toute les source pour la formule

J'ai mis 0 en fin pour finir la formule
0
Raymond je viens d'essayer de faire la formule
=SI(C3="ETT";SI(SOMME(D3:I3)<2;0;SI(SOMME(D3:I3)<4;135;SI(SOMME(D3:I3)<6;360;SI(SOMME(D3:I3)<8;720;SI(SOMME(D3:I3)<10;900;SI(SOMME(D3:I3)<12;1260;SI(SOMME(D3:I3)<14;1530;180)))))));"rien")
Sur le pc d'un amis qui a la version de Excel 2007 et il me dit que j'ai dépasser la limite d'embriquement.
0
A2:H3 comprend :
A2,B2,C2,D2,E2,F2,G2,H2
A3,B3,<gras>C3</gras>,D3,E3,F3,G3,H3

C3 ne peut pas contenir à la fois une valeur alphabétique : ETT,ETL ou TC
et une valeur numérique du tableau, 360 dans ce cas.

Ok pour le nom de la feuille, mais évites ce genre de nom qui peut prêter à confusion
et ça ne te dispense pas des symboles $ d'adresse absolue car le tableau est le même pour tous les calculs éventuels.

Ok pour le O qui ne devrait jamais être atteint, sauf si ta chaine test n'est ni ETT, ni ETL, ni TC.
Une validation de cette chaine serait peut-être utile.
0
Albert,

Je crois que la je suis arriver a mes limite ;)

Pour la feuille avec le nom $ c pas grave je pourais la changer plus tard pour le 0 de fin de formule sa ne dérange pas

mes explique toi pour pour le C3 je n'arrive pas voir de quoi l'on parle
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 096
1 mars 2010 à 22:11
Bonjour à tous les deux.

Je me suis appliqué, dans mes premiers posts, à signaler à Devriendt quelles étaient les erreurs de conception et d'écriture de sa formule, ainsi que les limitations d'Excel. Et à la lecture de son post 11, je suis heureux de constater qu'il a compris.

Albert a bien voulu prendre le relais pour proposer une autre approche au post 10, en substituant à la fonction SI la fonction RECHERCHEH, ce qui est effectivement beaucoup mieux.

Devriendt a adapté au post 13 la formule donnée par Albert au post 10, sans préciser quelle formule il a mise en "$"!A1 ; il faudrait nous envoyer ton fichier pour qu'on vérifie comment tu as disposé tes données. Mais déjà, tu te faciliterais la vie en donnant des noms à tes zones : "ref" pour A1, "MatETT" pour A2:H3, "MatETL" pour A5:L6 et "MatTC" pour A8:J9, ce qui te donnerait pour formule
=SI(C3="ETT";RECHERCHEH(ref;MatETT;2;1);SI(C3="ETL";RECHERCHEH(ref;MatETL;2;1);SI(C3="TC";RECHERCHEH(ref;MatTC;2;1);0)))
0
Ok si tu travailles sur 2 feuilles, le C3 du test est sur une feuille et la tableau sur une autre.
Excuses moi.
0
Je veut bien vous envoyer mon fichier pour que vous compreniez mieux le probléme.

Voici mon adresse mail pour me faire la demande et que la votre d'adresse ne soit pas visible ici.

devriendt.jeansebastien@hotmail.fr
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
2 mars 2010 à 20:49
Bonjour,
Je ne pense pas que ce soit une bonne idée de mettre ton mail comme ça. Utilise plutôt des sites du type cijoint.fr mais bon, c'est juste mon avis :-)
0