Intégration de la fonction décaler dans formule trop longue

Bonjour le forum!

Je viens à nouveau chercher un petit coup de main pour :-

  • Intégrer la fonction décaler afin de rendre la plage de base dynémique (contrat! $A$3::$AG$101), je me perds dans les parenthèses.
  • éventuellement simplifier la formule ci-dessous :

'=SI(Q2313="MDRO";INDEX(Contrat!$A$3:$AG$101;EQUIV(AD2313;Contrat!$A$3:$A$101;0);13);SI(Q2313="GUIDE-E";INDEX(Contrat!$A$3:$AG$101;EQUIV(AD2313;Contrat!$A$3:$A$101;0);15);SI(Q2313="GUIDE-M";INDEX(Contrat!$A$3:$AG$101;EQUIV(AD2313;Contrat!$A$3:$A$101;0);15);SI(Q2313="XG-AT-VIT";INDEX(Contrat!$A$3:$AG$101;EQUIV(AD2313;Contrat!$A$3:$A$101;0);16);SI(Q2313="LETAR";INDEX(Contrat!$A$3:$AG$101;EQUIV(AD2313;Contrat!$A$3:$A$101;0);17);INDEX(Contrat!$A$3:$AG$101;EQUIV(AD2313;Contrat!$A$3:$A$101;0);8))))))

Merci d'avance pour votre aide.

Fabienne

Salut Fabienne,

Sans regarder ta formule, ce que tu peux faire c'est de nommer ta plage de données Contract!. Pour la rendre dynamique tu insères la fonction décaler directement dans le nom:

Contract : =DECALER(A$3;X;X;nbval( etc ); nbval())

Je pense que ça te simplifiera la vie , si tu veux un coup de mains tu devrais mettre un fichier exemple anonymisé en ligne

Corentin

Bonjour et merci Corentin,

Je connais effectivement cette fonction mais je ne dois pas mettre les parenthèses au bon endroit (j'ai toujours un problème avec ça)

Je suis consciente qu'un fichier est mieux mais il va me falloir du temps pour le préparer en "anonymisé".

Je vais néanmoins essayer.

Merci pour ta réponse

Fabienne

Re!

Voilà ce que je voulais écrire mais même zippé, le fichier ne passe pas. Comment puis-je faire?

Voici un extrait simplifié du fichier.

Formule à essayer de simplifier en colonne L.

Mais il s'agit d'une base de donnée récupérée. Peutèêtre vaudrait-il mieux que je la refasse plus simplement?

Quoi qu'il en soit, merci d'avance!

Fabienne

Salut Fabienne,

Fournit juste un fichier très simplifier, et je te donnerai un exemple avec la fonction decaler que tu pourra ré-appliquer.

Après si tu ne te souviens plus comment on construit cette fonction, tu la tape dans le barre de formule ou dans l'aide ^^

=decaler(réf;lignes;colonnes;hauteur;largeur)

Corentin

Bonjour

Exemple:

Tu nommes Contrats la fonction

=DECALER(contrat!$A$3;;;NBVAL(contrat!$A:$A)-1)

(si tu as 1 ligne pour le titre en colonne A (ou -2 si A1 et A2 contiennent quelque chose toutes les 2)

et ensuite, tu nommes Base la formule

=DECALER(contrat!$A$3:$AG$3;;;NBVAL(Contrats))

Ta formule devient

=SI(Q2313="MDRO";INDEX(Base;EQUIV(AD2313;Contrats;0);13);
SI(Q2313="GUIDE-E";INDEX(Base;EQUIV(AD2313;Contrats;0);15);
SI(Q2313="GUIDE-M";INDEX(Base;EQUIV(AD2313;Contrats;0);15);
SI(Q2313="XG-AT-VIT";INDEX(Base;EQUIV(AD2313;Contrats;0);16);
SI(Q2313="LETAR";INDEX(Base;EQUIV(AD2313;Contrats;0);17);INDEX(Base;EQUIV(AD2313;Contrats;0);8))))))

ou

=SI(Q2313="MDRO";INDEX(Base;EQUIV(AD2313;Contrats;0);13);
SI(OU(Q2313="GUIDE-E";Q2313="GUIDE-M");INDEX(Base;EQUIV(AD2313;Contrats;0);15);
SI(Q2313="XG-AT-VIT";INDEX(Base;EQUIV(AD2313;Contrats;0);16);
SI(Q2313="LETAR";INDEX(Base;EQUIV(AD2313;Contrats;0);17);INDEX(Base;EQUIV(AD2313;Contrats;0);8)))))

Cordialement

Bonjour Amadeus et merci beaucoup!

C'est exactement ce que je cherchais à faire sans savoir par quel bout le prendre.

Si j'ai bien compris, l'astuce consiste en fait à nommer la formule décaler faisant référence à la base contrat afin de simplifier l'ensemble!

Merci aussi à Corentin pour avoir essayé de m'aider (j'étais en train de faire un fichier ultra simplifié)

Très bonne journée à vous et à tout le forum!

Fabienne

Rechercher des sujets similaires à "integration fonction decaler formule trop longue"