Simplification formule SI-DECALAGE-ET
Bonjour le forum,
J'ai un tableau avec des donnees sur 12 mois et 3 differentes variables par mois.
En fonction du choix que j'effectue dans une liste deroulante (je choisis le mois et une des trois variable), cela genere une donnee.
Je viens d'ecrire une formule pour generer cette donnee, et elle marche sans aucun pbm.
Seulement, elle est plutot tres longue comme vous pouvez le voir, et le decalage d'une cellule, le changement de nom de ma source ou autre changement me prend un temps fou a la readapter.
=IF(AND(SUMMARY!$E$7="APRIL-P1",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),'DATA SUM UP (3)'!$F$14,IF(AND(SUMMARY!$E$7="APRIL-P1",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),'DATA SUM UP (3)'!$F$15,IF(AND(SUMMARY!$E$7="APRIL-P1",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),'DATA SUM UP (3)'!$F$16,IF(AND(SUMMARY!$E$7="MAY-P2",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,6,1,1),IF(AND(SUMMARY!$E$7="MAY-P2",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,6,1,1),IF(AND(SUMMARY!$E$7="MAY-P2",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,6,1,1),IF(AND(SUMMARY!$E$7="JUNE-P3",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,12,1,1),IF(AND(SUMMARY!$E$7="JUNE-P3",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,12,1,1),IF(AND(SUMMARY!$E$7="JUNE-P3",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,12,1,1),IF(AND(SUMMARY!$E$7="JULY-P4",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,18,1,1),IF(AND(SUMMARY!$E$7="JULY-P4",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,18,1,1),IF(AND(SUMMARY!$E$7="JULY-P4",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,18,1,1),IF(AND(SUMMARY!$E$7="AUGUST-P5",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,24,1,1),IF(AND(SUMMARY!$E$7="AUGUST-P5",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,24,1,1),IF(AND(SUMMARY!$E$7="AUGUST-P5",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,24,1,1),IF(AND(SUMMARY!$E$7="SEPTEMBER-P6",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,30,1,1),IF(AND(SUMMARY!$E$7="SEPTEMBER-P6",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,30,1,1),IF(AND(SUMMARY!$E$7="SEPTEMBER-P6",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,30,1,1),IF(AND(SUMMARY!$E$7="OCTOBER-P7",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,36,1,1),IF(AND(SUMMARY!$E$7="OCTOBER-P7",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,36,1,1),IF(AND(SUMMARY!$E$7="OCTOBER-P7",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,36,1,1),IF(AND(SUMMARY!$E$7="NOVEMBER-P8",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,42,1,1),IF(AND(SUMMARY!$E$7="NOVEMBER-P8",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,42,1,1),IF(AND(SUMMARY!$E$7="NOVEMBER-P8",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,42,1,1),IF(AND(SUMMARY!$E$7="DECEMBER-P9",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,48,1,1),IF(AND(SUMMARY!$E$7="DECEMBER-P9",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,48,1,1),IF(AND(SUMMARY!$E$7="DECEMBER-P9",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,48,1,1),IF(AND(SUMMARY!$E$7="JANUARY-P10",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,54,1,1),IF(AND(SUMMARY!$E$7="JANUARY-P10",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,54,1,1),IF(AND(SUMMARY!$E$7="JANUARY-P10",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,54,1,1),IF(AND(SUMMARY!$E$7="FEBRUARY-P11",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,60,1,1),IF(AND(SUMMARY!$E$7="FEBRUARY-P11",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,60,1,1),IF(AND(SUMMARY!$E$7="FEBRUARY-P11",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,60,1,1),IF(AND(SUMMARY!$E$7="MARCH-P12",SUMMARY!$E$9<>"N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$14,0,66,1,1),IF(AND(SUMMARY!$E$7="MARCH-P12",SUMMARY!$E$9="N/A",SUMMARY!$E$11<>"N/A",SUMMARY!$E$13="N/A"),OFFSET('DATA SUM UP (3)'!$F$15,0,66,1,1),IF(AND(SUMMARY!$E$7="MARCHE-P12",SUMMARY!$E$9="N/A",SUMMARY!$E$11="N/A",SUMMARY!$E$13<>"N/A"),OFFSET('DATA SUM UP (3)'!$F$16,0,66,1,1),"FILTERS ERROR"))))))))))))))))))))))))))))))))))))
Comment pourrais-je simplifier cette formule et la raccourcir?
Pour le coup, cette fois je ne peux fournir une PJ. Je devrais tout reecrire pour l'adapter a un fichier exemple par souci de confidentialite. Je m'en excuse.
Globalement cette formule suit le meme principe, c'est une boucle: SI Mois 1 Si variable 1 Si variable 2 Si variable 3 et ca recommence avec le mois qui suit, soit 12*3=36 conditions
Si vous avez une idee...
Merci bcp
Bonsoir,
Pas sûr du tout que nous on ait le courage que tu n'as pas.
Surtout pour arriver à un fichier qui ne ressemblera pas forcément au tien, et donc une réponse inadaptée et du temps de perdu.
eric
Bonjour
Hard mais avec un bout de fichier de base et la maquette du résultat il y a peut être moyen de faire qq chose avec somme.si.ens et indirect()
Cordialement
FINDRH