Problème de longueur de formule
Résolu
DadKiller
Messages postés
10
Statut
Membre
-
DadKiller Messages postés 10 Statut Membre -
DadKiller Messages postés 10 Statut Membre -
Bonjour à toutes et à tous,
Dans mon tableau Excel 2003 j'ai un petit problème de formule trop longue.
La formule est la suivantes :
=SI(ET(A7="x";D7="AAAAA");(SOMME(R7)*Tarif!$D$33+SOMME(T7)*Tarif!$D$34+SOMME(V7)*Tarif!$D$35+SOMME(X7)*Tarif!$D$36+SOMME(Z7)*Tarif!$D$37+SOMME(AB7)*Tarif!$D$38+SOMME(AD7)*Tarif!$D$39+SOMME(AF7)*Tarif!$D$40+SOMME(AH7)*Tarif!$D$41+SOMME(AJ7)*Tarif!$D$42+SOMME(AL7)*Tarif!$D$43+SOMME(AN7)*Tarif!$D$44+SOMME(AP7)*Tarif!$D$45+SOMME(AR7)*Tarif!$D$46);SI(ET(A7="x";D7="BBBBB");(SOMME(R7)*Tarif!$I$33+SOMME(T7)*Tarif!$I$34+SOMME(V7)*Tarif!$I$35+SOMME(X7)*Tarif!$I$36+SOMME(Z7)*Tarif!$I$37+SOMME(AB7)*Tarif!$I$38+SOMME(AD7)*Tarif!$I$39+SOMME(AF7)*Tarif!$I$40+SOMME(AH7)*Tarif!$I$41+SOMME(AJ7)*Tarif!$I$42+SOMME(AL7)*Tarif!$I$43+SOMME(AN7)*Tarif!$I$44+SOMME(AP7)*Tarif!$I$45+SOMME(AR7)*Tarif!$I$46);SI(ET(A7="x";D7="CCCCC");(SOMME(R7)*Tarif!$J$33+SOMME(T7)*Tarif!$J$34+SOMME(V7)*Tarif!$J$35+SOMME(X7)*Tarif!$J$36+SOMME(Z7)*Tarif!$J$37+SOMME(AB7)*Tarif!$J$38+SOMME(AD7)*Tarif!$J$39+SOMME(AF7)*Tarif!$J$40+SOMME(AH7)*Tarif!$J$41+SOMME(AJ7)*Tarif!$J$42+SOMME(AL7)*Tarif!$J$43+SOMME(AN7)*Tarif!$J$44+SOMME(AP7)*Tarif!$J$45+SOMME(AR7)*Tarif!$J$46);SI(ET(A7="x";D7="DDDDD");(SOMME(R7)*Tarif!$K$33+SOMME(T7)*Tarif!$K$34+SOMME(V7)*Tarif!$K$35+SOMME(X7)*Tarif!$K$36+SOMME(Z7)*Tarif!$K$37+SOMME(AB7)*Tarif!$K$38+SOMME(AD7)*Tarif!$K$39+SOMME(AF7)*Tarif!$K$40+SOMME(AH7)*Tarif!$K$41+SOMME(AJ7)*Tarif!$K$42+SOMME(AL7)*Tarif!$K$43+SOMME(AN7)*Tarif!$K$44+SOMME(AP7)*Tarif!$K$45+SOMME(AR7)*Tarif!$K$46);""))))
Je n'ai pourtant utilisé que 4 SI et 4 ET imbriqués sur 7 autorisés.
Y a t il une solution soit en formule sachant que la formule est recopiée et incrémentée sur une centaine de lignes soit en VBA ?
Je voulais joindre une copie de la partie de mon fichier incriminé, mais je n'ai pas trouvé comment faire. Je pense que ce sera utile.
Merci par avance pour les réponses
Dad
Dans mon tableau Excel 2003 j'ai un petit problème de formule trop longue.
La formule est la suivantes :
=SI(ET(A7="x";D7="AAAAA");(SOMME(R7)*Tarif!$D$33+SOMME(T7)*Tarif!$D$34+SOMME(V7)*Tarif!$D$35+SOMME(X7)*Tarif!$D$36+SOMME(Z7)*Tarif!$D$37+SOMME(AB7)*Tarif!$D$38+SOMME(AD7)*Tarif!$D$39+SOMME(AF7)*Tarif!$D$40+SOMME(AH7)*Tarif!$D$41+SOMME(AJ7)*Tarif!$D$42+SOMME(AL7)*Tarif!$D$43+SOMME(AN7)*Tarif!$D$44+SOMME(AP7)*Tarif!$D$45+SOMME(AR7)*Tarif!$D$46);SI(ET(A7="x";D7="BBBBB");(SOMME(R7)*Tarif!$I$33+SOMME(T7)*Tarif!$I$34+SOMME(V7)*Tarif!$I$35+SOMME(X7)*Tarif!$I$36+SOMME(Z7)*Tarif!$I$37+SOMME(AB7)*Tarif!$I$38+SOMME(AD7)*Tarif!$I$39+SOMME(AF7)*Tarif!$I$40+SOMME(AH7)*Tarif!$I$41+SOMME(AJ7)*Tarif!$I$42+SOMME(AL7)*Tarif!$I$43+SOMME(AN7)*Tarif!$I$44+SOMME(AP7)*Tarif!$I$45+SOMME(AR7)*Tarif!$I$46);SI(ET(A7="x";D7="CCCCC");(SOMME(R7)*Tarif!$J$33+SOMME(T7)*Tarif!$J$34+SOMME(V7)*Tarif!$J$35+SOMME(X7)*Tarif!$J$36+SOMME(Z7)*Tarif!$J$37+SOMME(AB7)*Tarif!$J$38+SOMME(AD7)*Tarif!$J$39+SOMME(AF7)*Tarif!$J$40+SOMME(AH7)*Tarif!$J$41+SOMME(AJ7)*Tarif!$J$42+SOMME(AL7)*Tarif!$J$43+SOMME(AN7)*Tarif!$J$44+SOMME(AP7)*Tarif!$J$45+SOMME(AR7)*Tarif!$J$46);SI(ET(A7="x";D7="DDDDD");(SOMME(R7)*Tarif!$K$33+SOMME(T7)*Tarif!$K$34+SOMME(V7)*Tarif!$K$35+SOMME(X7)*Tarif!$K$36+SOMME(Z7)*Tarif!$K$37+SOMME(AB7)*Tarif!$K$38+SOMME(AD7)*Tarif!$K$39+SOMME(AF7)*Tarif!$K$40+SOMME(AH7)*Tarif!$K$41+SOMME(AJ7)*Tarif!$K$42+SOMME(AL7)*Tarif!$K$43+SOMME(AN7)*Tarif!$K$44+SOMME(AP7)*Tarif!$K$45+SOMME(AR7)*Tarif!$K$46);""))))
Je n'ai pourtant utilisé que 4 SI et 4 ET imbriqués sur 7 autorisés.
Y a t il une solution soit en formule sachant que la formule est recopiée et incrémentée sur une centaine de lignes soit en VBA ?
Je voulais joindre une copie de la partie de mon fichier incriminé, mais je n'ai pas trouvé comment faire. Je pense que ce sera utile.
Merci par avance pour les réponses
Dad
A voir également:
- $D$44 excel
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Excel mise en forme conditionnelle formule - Guide
- Formule somme excel colonne - Guide
8 réponses
Bonjour,
SOMME(R7)*Tarif!$D$33
s'écrit aussi :
R7*Tarif!$D$33
ça fait déjà des parenthèse inutiles en moins.
Edit : Tu peux peut-être utiliser SOMMEPROD()
Cordialement
Patrice
SOMME(R7)*Tarif!$D$33
s'écrit aussi :
R7*Tarif!$D$33
ça fait déjà des parenthèse inutiles en moins.
Edit : Tu peux peut-être utiliser SOMMEPROD()
Cordialement
Patrice
Bonjour.
Déjà, pourquoi compliquer inutilement ta formule en écrivant
SOMME(R7)*Tarif!$D$33 au lieu de mettre, comme tout le monde,
R7*Tarif!$D$33 ?
Pour joindre ton fichier
C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
Déjà, pourquoi compliquer inutilement ta formule en écrivant
SOMME(R7)*Tarif!$D$33 au lieu de mettre, comme tout le monde,
R7*Tarif!$D$33 ?
Pour joindre ton fichier
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
Bonsoir Raymond,
Merci pour la réponse.
Je vais essayé toutes vos réponses.
En attendant voici le lien pour télécharger le fichier.
https://www.cjoint.com/c/FIAo5UcbvBv
Dad
Merci pour la réponse.
Je vais essayé toutes vos réponses.
En attendant voici le lien pour télécharger le fichier.
https://www.cjoint.com/c/FIAo5UcbvBv
Dad
Bonsoir,
joint ton fichier voir, mais d'après ce que j'ai compris je te conseille de faire des cascades et de compléter chaque élément avec la condition fausse en fin de conditionnelle ;0) et relancer une nouvelle conditionnelle avec un + que j'ai mis en gras
replace dans la formule les bonnes cellules pour chaque conditionnelle BBBBB, CCCCC et DDDDD
A+
Mike-31
Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
joint ton fichier voir, mais d'après ce que j'ai compris je te conseille de faire des cascades et de compléter chaque élément avec la condition fausse en fin de conditionnelle ;0) et relancer une nouvelle conditionnelle avec un + que j'ai mis en gras
=SI(ET(A7="x";D7="AAAAA");(R7*Tarif!$D$33)+(T7*Tarif!$D$34)+(V7*Tarif!$D$35)+(X7*Tarif!$D$36)+(Z7*Tarif!$D$37)+(AB7*Tarif!$D$38)+(AD7*Tarif!$D$39)+(AF7*Tarif!$D$40)+(AH7*Tarif!$D$41)+(AJ7*Tarif!$D$42)+(AL7*Tarif!$D$43)+(AN7*Tarif!$D$44)+(AP7*Tarif!$D$45)+(AR7*Tarif!$D$46);0)+SI(ET(A7="x";D7="BBBBB");(R7*Tarif!$D$33)+(T7*Tarif!$D$34)+(V7*Tarif!$D$35)+(X7*Tarif!$D$36)+(Z7*Tarif!$D$37)+(AB7*Tarif!$D$38)+(AD7*Tarif!$D$39)+(AF7*Tarif!$D$40)+(AH7*Tarif!$D$41)+(AJ7*Tarif!$D$42)+(AL7*Tarif!$D$43)+(AN7*Tarif!$D$44)+(AP7*Tarif!$D$45)+(AR7*Tarif!$D$46);0)+SI(ET(A7="x";D7="CCCCC");(R7*Tarif!$D$33)+(T7*Tarif!$D$34)+(V7*Tarif!$D$35)+(X7*Tarif!$D$36)+(Z7*Tarif!$D$37)+(AB7*Tarif!$D$38)+(AD7*Tarif!$D$39)+(AF7*Tarif!$D$40)+(AH7*Tarif!$D$41)+(AJ7*Tarif!$D$42)+(AL7*Tarif!$D$43)+(AN7*Tarif!$D$44)+(AP7*Tarif!$D$45)+(AR7*Tarif!$D$46);0)+SI(ET(A7="x";D7="DDDDD");(R7*Tarif!$D$33)+(T7*Tarif!$D$34)+(V7*Tarif!$D$35)+(X7*Tarif!$D$36)+(Z7*Tarif!$D$37)+(AB7*Tarif!$D$38)+(AD7*Tarif!$D$39)+(AF7*Tarif!$D$40)+(AH7*Tarif!$D$41)+(AJ7*Tarif!$D$42)+(AL7*Tarif!$D$43)+(AN7*Tarif!$D$44)+(AP7*Tarif!$D$45)+(AR7*Tarif!$D$46);0)
replace dans la formule les bonnes cellules pour chaque conditionnelle BBBBB, CCCCC et DDDDD
A+
Mike-31
Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Avec excel 2003 tu as droit à 1024 caractères pour une formule (tu en as 1384). En élagant comme proposé plus haut on arrive à 1002 et tu peux encore en enlever quelques unes (avant et après les ";" -> attention pas ceux qui finissent les ET(...))
=SI(ET(A7="x";D7="AAAAA");(R7*Tarif!$D$33+(T7)*Tarif!$D$34+V7*Tarif!$D$35+(X7)*Tarif!$D$36+Z7*Tarif!$D$37+(AB7)*Tarif!$D$38+AD7*Tarif!$D$39+(AF7)*Tarif!$D$40+AH7*Tarif!$D$41+AJ7*Tarif!$D$42+AL7*Tarif!$D$43+AN7*Tarif!$D$44+AP7*Tarif!$D$45+AR7*Tarif!$D$46);SI(ET(A7="x";D7="BBBBB");(R7*Tarif!$I$33+T7*Tarif!$I$34+V7*Tarif!$I$35+(X7)*Tarif!$I$36+Z7*Tarif!$I$37+AB7*Tarif!$I$38+AD7*Tarif!$I$39+AF7*Tarif!$I$40+AH7*Tarif!$I$41+AJ7*Tarif!$I$42+AL7*Tarif!$I$43+AN7*Tarif!$I$44+AP7*Tarif!$I$45+AR7*Tarif!$I$46);SI(ET(A7="x";D7="CCCCC");(R7*Tarif!$J$33+(T7)*Tarif!$J$34+V7*Tarif!$J$35+X7*Tarif!$J$36+Z7*Tarif!$J$37+AB7*Tarif!$J$38+AD7*Tarif!$J$39+AF7*Tarif!$J$40+AH7*Tarif!$J$41+AJ7*Tarif!$J$42+AL7*Tarif!$J$43+AN7*Tarif!$J$44+AP7*Tarif!$J$45+AR7*Tarif!$J$46);SI(ET(A7="x";D7="DDDDD");(R7*Tarif!$K$33+T7*Tarif!$K$34+V7*Tarif!$K$35+X7*Tarif!$K$36+Z7*Tarif!$K$37+AB7*Tarif!$K$38+AD7*Tarif!$K$39+AF7*Tarif!$K$40+AH7*Tarif!$K$41+AJ7*Tarif!$K$42+AL7*Tarif!$K$43+AN7*Tarif!$K$44+AP7*Tarif!$K$45+AR7*Tarif!$K$46);""))))
RQ. Il y a peut ête des erreurs, mais tu peux arriver à moins de 1024 sans changer fondamentalement ta formule
Ce que ça donne dans ton fichier
http://www.cjoint.com/c/FIApv4lSA2q
Cdlmnt
Avec excel 2003 tu as droit à 1024 caractères pour une formule (tu en as 1384). En élagant comme proposé plus haut on arrive à 1002 et tu peux encore en enlever quelques unes (avant et après les ";" -> attention pas ceux qui finissent les ET(...))
=SI(ET(A7="x";D7="AAAAA");(R7*Tarif!$D$33+(T7)*Tarif!$D$34+V7*Tarif!$D$35+(X7)*Tarif!$D$36+Z7*Tarif!$D$37+(AB7)*Tarif!$D$38+AD7*Tarif!$D$39+(AF7)*Tarif!$D$40+AH7*Tarif!$D$41+AJ7*Tarif!$D$42+AL7*Tarif!$D$43+AN7*Tarif!$D$44+AP7*Tarif!$D$45+AR7*Tarif!$D$46);SI(ET(A7="x";D7="BBBBB");(R7*Tarif!$I$33+T7*Tarif!$I$34+V7*Tarif!$I$35+(X7)*Tarif!$I$36+Z7*Tarif!$I$37+AB7*Tarif!$I$38+AD7*Tarif!$I$39+AF7*Tarif!$I$40+AH7*Tarif!$I$41+AJ7*Tarif!$I$42+AL7*Tarif!$I$43+AN7*Tarif!$I$44+AP7*Tarif!$I$45+AR7*Tarif!$I$46);SI(ET(A7="x";D7="CCCCC");(R7*Tarif!$J$33+(T7)*Tarif!$J$34+V7*Tarif!$J$35+X7*Tarif!$J$36+Z7*Tarif!$J$37+AB7*Tarif!$J$38+AD7*Tarif!$J$39+AF7*Tarif!$J$40+AH7*Tarif!$J$41+AJ7*Tarif!$J$42+AL7*Tarif!$J$43+AN7*Tarif!$J$44+AP7*Tarif!$J$45+AR7*Tarif!$J$46);SI(ET(A7="x";D7="DDDDD");(R7*Tarif!$K$33+T7*Tarif!$K$34+V7*Tarif!$K$35+X7*Tarif!$K$36+Z7*Tarif!$K$37+AB7*Tarif!$K$38+AD7*Tarif!$K$39+AF7*Tarif!$K$40+AH7*Tarif!$K$41+AJ7*Tarif!$K$42+AL7*Tarif!$K$43+AN7*Tarif!$K$44+AP7*Tarif!$K$45+AR7*Tarif!$K$46);""))))
RQ. Il y a peut ête des erreurs, mais tu peux arriver à moins de 1024 sans changer fondamentalement ta formule
Ce que ça donne dans ton fichier
http://www.cjoint.com/c/FIApv4lSA2q
Cdlmnt
Re,
regarde ici l'astuce sur les imbrications quelque soit la version d'Excel
https://forums.commentcamarche.net/forum/affich-37641581-utiliser-plus-de-7-imbrications-si-dans-une-formule
et ta formule
regarde ici l'astuce sur les imbrications quelque soit la version d'Excel
https://forums.commentcamarche.net/forum/affich-37641581-utiliser-plus-de-7-imbrications-si-dans-une-formule
et ta formule
=SI(ET(A7="x";D7="AAAAA");(R7*Tarif!$D$33)+(T7*Tarif!$D$34)+(V7*Tarif!$D$35)+(X7*Tarif!$D$36)+(Z7*Tarif!$D$37)+(AB7*Tarif!$D$38)+(AD7*Tarif!$D$39)+(AF7*Tarif!$D$40)+(AH7*Tarif!$D$41)+(AJ7*Tarif!$D$42)+(AL7*Tarif!$D$43)+(AN7*Tarif!$D$44)+(AP7*Tarif!$D$45)+(AR7*Tarif!$D$46);0)+SI(ET(A7="x";D7="BBBBB");(R7*Tarif!$I$33)+(T7*Tarif!$I$34)+(V7*Tarif!$I$35)+(X7*Tarif!$I$36)+(Z7*Tarif!$I$37)+(AB7*Tarif!$I$38)+(AD7*Tarif!$I$39)+(AF7*Tarif!$I$40)+(AH7*Tarif!$I$41)+(AJ7*Tarif!$I$42)+(AL7*Tarif!$I$43)+(AN7*Tarif!$I$44)+(AP7*Tarif!$I$45)+(AR7*Tarif!$I$46);0)+SI(ET(A7="x";D7="CCCCC");(R7*Tarif!$J$33)+(T7*Tarif!$J$34)+(V7*Tarif!$J$35)+(X7*Tarif!$J$36)+(Z7*Tarif!$J$37)+(AB7*Tarif!$J$38)+(AD7*Tarif!$J$39)+(AF7*Tarif!$J$40)+(AH7*Tarif!$J$41)+(AJ7*Tarif!$J$42)+(AL7*Tarif!$J$43)+(AN7*Tarif!$J$44)+(AP7*Tarif!$J$45)+(AR7*Tarif!$J$46);0)+SI(ET(A7="x";D7="DDDDD");(R7*Tarif!$K$33)+(T7*Tarif!$K$34)+(V7*Tarif!$K$35)+(X7*Tarif!$K$36)+(Z7*Tarif!$K$37)+(AB7*Tarif!$K$38)+(AD7*Tarif!$K$39)+(AF7*Tarif!$K$40)+(AH7*Tarif!$K$41)+(AJ7*Tarif!$K$42)+(AL7*Tarif!$K$43)+(AN7*Tarif!$K$44)+(AP7*Tarif!$K$45)+(AR7*Tarif!$K$46);0)
Ta formule est effectivement bien trop longue, avec ses 1382 caractères !
=SI(ET(A7="x";D7="AAAAA");
contient une paire de parenthèses superflue ; comme cela se reproduit 4 fois, tu gagnes 8 caractères ...
En suivant la recommandation que Patrice et moi t'avons faite, tu économises 7 caractères 56 fois.
Au total tu raccourcis ta formule de 400 caractères !
Et si, en plus, tu changes le nom de la feuille en remplaçant "Tarif" par "Tf", tu gagnes encore 3 caractères à 56 reprises, et ta formule ne compte plus que 814 caractères ...
=SI(ET(A7="x";D7="AAAAA");
(SOMME(R7)*Tarif!$D$33+ ... +SOMME(AR7)*Tarif!$D$46
);SI(
contient une paire de parenthèses superflue ; comme cela se reproduit 4 fois, tu gagnes 8 caractères ...
En suivant la recommandation que Patrice et moi t'avons faite, tu économises 7 caractères 56 fois.
Au total tu raccourcis ta formule de 400 caractères !
Et si, en plus, tu changes le nom de la feuille en remplaçant "Tarif" par "Tf", tu gagnes encore 3 caractères à 56 reprises, et ta formule ne compte plus que 814 caractères ...
Bonsoir tout le monde,
Alors après essai j'ai opté pour la solution Raymond et Patrice.
Mais je regarderais les autres solution plus en détail.
Je remercie donc tous les bénévoles qui ont consacré du temps à mon problème. Il y a encore des endroit ou entraide veux dire quelque chose.
Merci encore et comme dit Patrice, C'est bien, la retraite ! même en Charente maritime...;-)
Dad.
Alors après essai j'ai opté pour la solution Raymond et Patrice.
Mais je regarderais les autres solution plus en détail.
Je remercie donc tous les bénévoles qui ont consacré du temps à mon problème. Il y a encore des endroit ou entraide veux dire quelque chose.
Merci encore et comme dit Patrice, C'est bien, la retraite ! même en Charente maritime...;-)
Dad.
Merci pour la réponse rapide.
Voici le lien pour télécharger le fichier Excel.
https://www.cjoint.com/c/FIAo5UcbvBv
Dad