Compréhension formules imbriquées
Raymond PENTIER Messages postés 58993 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je viens de reprendre un fichier excel et j'aimerai comprendre en "francais" ce qui est demandé au travers ces 3 formules:
=SI($I864="COMPANY NAME";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$4*Referentials!$C$12;SI($I864="FLWQ";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$5*Referentials!$C$12;SI($I864="Ext";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$6*Referentials!$C$13;SI($I864="AVIC";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$7*Referentials!$C$13;SI($I864="Blue Collar";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$8*Referentials!$C$12;SI($I864="White Collar";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$9*Referentials!$C$12;SI($I864="MTLS";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$11*Referentials!$C$12;SI($I864="MTLS_2";SOUS.TOTAL(9;$BF864:$BQ864)*Referentials!$C$10*Referentials!$C$12;SI($I864="N/A";"";SOUS.TOTAL(9;$BF864:$BQ864))))))))))
=SOMMEPROD((Budget_Updated!$K$6:$K$1104=INDIRECT("'Dashboard'!D"&LIGNE()))*(INDIRECT("'Budget_Updated'!$"&GAUCHE(ADRESSE(1;COLONNE(INDIRECT(ADRESSE(3;13+EQUIV($E$1;Budget_Updated!$M$3:$CO$3;1);1)));4);NBCAR(ADRESSE(1;COLONNE(INDIRECT(ADRESSE(3;13+EQUIV($E$1;Budget_Updated!$M$3:$CO$3;1);1)));4))-1)&"6:$CO"&Referentials!$B$46))*Budget_Updated!$DO$6:$DO$1104)
=SOMMEPROD((Budget_3.1!$K$6:$K$934=INDIRECT("'Dashboard'!D"&LIGNE()))*(Budget_3.1!$M$6:$CO$934)*(Budget_3.1!$DO$6:$DO$934))
Vous remerciant par avance,
- Excel a rencontré un problème au niveau d'une ou de plusieurs références de formules
- Formule moyenne excel plusieurs colonnes - Guide
- Formule excel si ou - Guide
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Déplacer une colonne excel - Guide
2 réponses
Bonjour à tous,
Pour la premiere :
Un sous.total sur une ligne, ça ne sert a rien
ta formule on fait le total de la plage $BF864:$BQ864 qui, en fonction du contenu de la cellule $I864, est multipliée par certains coefficients de la plage c4:c13
pour la deuxieme
On calcule la somme des cellules de la plage Budget_Updated!$DO$6:$DO$1104 qui repondent a la fois aux criteres definis dans une plage de la colonne Budget_Updated!D, et dans une plage de la colonne Budget_Updated'!C
pour la troisieme
On fait le produit des plages (Budget_3.1!$M$6:$CO$934)*(Budget_3.1!$DO$6:$DO$934)) si dans la plage Budget_3.1!$K$6:$K$934, il ya des cellules qui correspondent au critere qu'on va chercher dans la colonne D de la feuille 'Dashboard'!
sans fichier, difficile d'expliquer mieux !
Crdlmt
Bonjour.
Sans répondre directement à tes questions, je te signale que si, dans ta première formule qui est composée de 728 caractères, on remplaçait les 16 occurrences de "Referentials" par "Ref", juste en modifiant le nom de la feuille (dans l'onglet), on descendrait à 584 caractères ...
Si de plus on remplaçait les 9 occurrences de $BF864:$BQ864 par "pl", en créant un nom défini, on passerait à 498 caractères !
Autre possibilité; on pourrait mettre en facteur SOUS.TOTAL(9;$BF864:$BQ864) afin d'obtenir la formule
=SOUS.TOTAL(9;$BF864:$BQ864)* SI($I864="COMPANY NAME";ref!$C$4*ref!$C$12;
SI($I864="FLWQ";ref!$C$5*ref!$C$12; SI($I864="Ext";ref!$C$6*ref!$C$13;
SI($I864="AVIC";ref!$C$7*ref!$C$13; SI($I864="Blue Collar";ref!$C$8*ref!$C$12;
SI($I864="White Collar";ref!$C$9*ref!$C$12; SI($I864="MTLS";ref!$C$11*ref!$C$12;
SI($I864="MTLS_2";ref!$C$10*ref!$C$12; SI($I864="N/A";"";1)))))))))
qui, du coup, nous amène à une formule bien plus lisible de 376 caractères seulement !