Simplification de formule

Funky -  
Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai crée une formule sur excel qui me va rechercher dans un tableau un version de document selon l'information d'un autre tableau.

=SI(NBCAR((INDEX(TABLEAU1;EQUIV(GAUCHE(INDEX(TABLEAU2;EQUIV(F29;TABLEAU2;0);3);8);
TABLEAU1;0);2)))>9;DROITE((INDEX(TABLEAU1;EQUIV(GAUCHE(INDEX(TABLEAU2;EQUIV(F29;
TABLEAU2;0);3);8);TABLEAU1;0);2));2);DROITE((INDEX(TABLEAU1;
EQUIV(GAUCHE(INDEX(TABLEAU2;EQUIV(F29;TABLEAU2;0);3);8);TABLEAU1;0);2));1))

Pensez-vous que cela est simplifiable?

Merci

Funky
Configuration: Windows XP
Firefox 3.0.10

4 réponses

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    Bonjour,

    Est-ce que cette formule fonctionne ? ou bien si elle ne fonctionne pas quel est le résultat cherché ?
    Peut-être qu'en partant du besoin on pourra plus facilement proposer une solution.

    Moi je pense (mais je peux me tromper) que cette formule ne fonctionne pas. Si j'isole cette partie de la formule :
    INDEX(TABLEAU2;EQUIV(­F29;TABLEAU2;0);3)

    Il y a une incohérence car pour EQUIV "TABLEAU2" est obligatoirement un vecteur (ligne ou colonne) alors que pour INDEX c'est obligatoirement une matrice de x lignes et 3 colonnes.

    Donc (sauf erreur) il manque des explications

    A+
    0
  2. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
     
    Non, pilas31, je ne vois pas d'incohérence dans ton extraction.

    Oui, Funky, je vois une méga simplification, puisque ta formule comporte 3 fois l'expression
    INDEX(TABLEAU1;EQUIV(GAUCHE(INDEX(TABLEAU2;EQUIV(­F29;TABLEAU2;0);3);8);
    TABLEAU1;0);2)
    Il te suffit donc de donner un nom à cette expression. Tu vas dans Insertion/Nom/Définir, tu choisis comme Nom IndF29 et dans Fait référence à tu saisis
    =INDEX(TABLEAU1;EQUIV(GAUCHE(INDEX(TABLEAU2;
    EQUIV($F$29;TABLEAU2;0);3);8);TABLEAU1;0);2

    Ta formule devient donc
    =SI((NBCAR(IndF29))>9;DROITE((IndF29;2));DROITE((IndF29;1)))
    ce qui te permet de constater que tu as chaque fois 2 parenthèses superflues, d'où au final :
    =SI(NBCAR(IndF29)>9;DROITE(IndF29;2);DROITE(IndF29;1))
    0
  3. identifiant-comment Messages postés 351 Statut Membre 54
     
    Waw, je savais pas que je pouvais donner un nom à une formule ! Merci raymond !
    0
  4. Raymond PENTIER Messages postés 58219 Date d'inscription   Statut Contributeur Dernière intervention   17 485
     
    Ouais !
    Mais il y a encore peu, je ne le savais pas non plus ...
    C'est dans les discussions de ce forum que je l'ai appris, il y a quelques semaines !
    Merci CCM.
    0