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

Rechercher des sujets similaires à "simplification formule decalage"