Aide compréhension d'une formule excel

Xertix -  
Raymond PENTIER Messages postés 58988 Date d'inscription   Statut Contributeur Dernière intervention   -

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 58988 Date d'inscription   Statut Contributeur Dernière intervention   17 352
 

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 4253 Date d'inscription   Statut Membre Dernière intervention   700
 

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