Aide compréhension d'une formule excel

Fermé
Xertix - 30 janv. 2023 à 11:57
Raymond PENTIER Messages postés 58732 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 29 novembre 2024 - 31 janv. 2023 à 02:15

Bonjour,

Je cherche une personne qui pourrait m'aider à comprendre une formule excel.

Merci à ceux qui pourront m'éclairer :

=SIERREUR(((SI(D45="";"";INDEX('ZZZ COUT MACHINE ET PERSONNEL'!A:K;EQUIV(D45;'ZZZ COUT MACHINE ET PERSONNEL'!A:A;0);10))))*((SI(D45="";"";INDEX('ZZZ COUT MACHINE ET PERSONNEL'!A:K;EQUIV(D45;'ZZZ COUT MACHINE ET PERSONNEL'!A:A;0);11)))*'ZZZ COUT MACHINE ET PERSONNEL'!$N$22)+(((SI(D45="";"";INDEX('ZZZ COUT MACHINE ET PERSONNEL'!A:K;EQUIV(D45;'ZZZ COUT MACHINE ET PERSONNEL'!A:A;0);10))))*(SI(D45="";"";INDEX('ZZZ COUT MACHINE ET PERSONNEL'!A:K;EQUIV(D45;'ZZZ COUT MACHINE ET PERSONNEL'!A:A;0);9)))*'ZZZ COUT MACHINE ET PERSONNEL'!$N$23);"")

Cordialement,

Simon Muller


Windows / Chrome 109.0.0.0

A voir également:

2 réponses

Raymond PENTIER Messages postés 58732 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 29 novembre 2024 17 247
31 janv. 2023 à 02:15

Bonjour Simon.

C'est vrai que rien qu'à regarder cette formule de 539 caractères, on est rebuté et on ne voit pas comment l'analyser.

La première chose à faire consiste, comme cela est toujours vivement recommandé, à réduire drastiquement le nom des feuilles ! Ainsi il faut renommer "ZZZ COUT MACHINE ET PERSONNEL" (qui apparaît 10 fois) en "CMP" ; du coup ta formule devient :

=SIERREUR(((SI(D45="";"";INDEX('CMP'!A:K;EQUIV(D45;'CMP'!A:A;0);10))))*SI(D45="";"";INDEX('CMP'!A:K;
EQUIV(D45;'CMP'!A:A;0);11)))*'CMP'!$N$22) + (((SI(D45="";"";INDEX('CMP'!A:K;EQUIV(D45;'CMP'!A:A;0);10)))) *SI(D45="";""; INDEX('CMP'!A:K;EQUIV(D45;'CMP'!A:A;0);9)))*'CMP'!$N$23);"") 

avec seulement 279 caractères. 

Si tu veux aller un peu plus loin, tu définis une formule nommée, à l'aide de l'outil
FORMULES/Noms définis/Nouveau nom, en saisissant comme nom EQ et dans la fenêtre [ Fait référence à ] l'expression ="CMP!A:K;EQUIV(D45;CMP!A:A;0)"

Puis tu utilises Ctrl+H pour remplacer  
CMP!A:K;EQUIV(D47;CMP!A:A;0)
par EQ
et tu obtiens la formule finale :

=SIERREUR(((SI(D47="";"";INDEX(EQ;10))))*((SI(D47="";"";INDEX(EQ;11)))*CMP!$N$22)+(((SI(D47="";"";INDEX(EQ;10))))*(SI(D47="";"";INDEX(EQ;9)))*CMP!$N$23);"")

avec 155 caractères. 

Il devient alors beaucoup plus facile de distinguer la structure de la formule et d'en analyser le fonctionnement, tel que mon ami DjiDji te l'a indiqué.


1
DjiDji59430 Messages postés 4150 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 29 novembre 2024 679
30 janv. 2023 à 23:14

Bonjour à tous

On va chercher dans le tableau A:K la valeur situee a la ligne donnée par EQUIV(D45;'ZZZ COUT MACHINE ET PERSONNEL'!A:A;0) et a la 10 éme colonne (colonne J)  mutiplié par la valeur de la cellule adjacente multiplié par N22

+

On va chercher dans le tableau A:K la valeur situee a la ligne donnée par EQUIV(D45;'ZZZ COUT MACHINE ET PERSONNEL'!A:A;0) et a la 10 éme colonne (colonne J) mutiplié par la valeur de la cellule predente multiplié par N23


Crdlmt

0