Pb chaine de caracteres dasn EXcel

Résolu
lamarmotte613 Messages postés 7 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Voila j’ai un tableau Excel avec plusieurs colonnes lorsque la cellule de gauche a un chiffre celle de droite immédiate a un code
Ex : ( rien ,rien) (2 , NAN) (rien rien) (rien rien)(3 ,NAN) etc.…

Chaque ligne ne comporte pas le même code « ce code peut varier e 2 à 4 caractères »

Mon problème est de créer une colonne à l’extrême droite résumant ma ligne pour pouvoir y ajouter un filtre, le problème vient du nombre de caractère,

J’ai essayé la fonction CONCATENER dans une colonne et la fonction STXT dans la colonne a coté mais cela donne des code différent du faite de la différence du nombre de caractère

EX : 1ère ligne code PARA pas de problème
2ème ligne code CAN « CANC » qui ne correspond lus au code
Si une personne peut m’aider

Merci
Configuration: Windows XP
Firefox 2.0.0.12

7 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Pour ne pas être bloqué par les "SI" tu peux aussi utiliser les fonctions DECALER avec EQUIV
    =DECALER(A4;;EQUIV("z^z";A4:M4;1)-1;1;1)

    Si tu veux rajouter des colonnes,il suffit de changer "M4" et la fonction te fournit le dernier code texte de la ligne.
    tu pourrais d'ailleurs mettre ta colonne "filtre" en-tête en colonne A avec la formule
    =DECALER(B4;;EQUIV("z^z";B4:IV4;1)-1;1;1)

    ce qui te permet de rajouter toutes les colonnes désirées sans modification.
    1
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour gb,

      Bravo pour la réponse, la mienne ne me satisfaisait pas vraiment...
      Peux-tu expliquer le z^z stp?
      Merci et bonne journée à tout le monde

      eric
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Tu n'es pas très explicite sur comment tu fabriques ta clé ni sur ce que tu veux à quoi qu'elle ressemble...
    Mais pluisque ton pb est la longueur ramène tous tes codes à 4 caractères.
    Avec par exemple :
    =gauche(A1 & "____";4)

    Evite d'utiliser l'espace pour compléter tes chaines

    eric
    0
  3. lamarmotte613 Messages postés 7 Statut Membre
     
    Je vais essaye d’être plus explicite

    Une colonne où il y a nombre avec une colonne correspondante avec un code etc.

    Mes soucis à extrême droite une colonne avec un filtre sur le code

    1 PLUS
    1 PLA
    3 PLA 2 PLA
    1 PLUS 1 PLUS
    1 BES 1
    2 BES 3 BES

    si je fait un filtre sur 4 caractères
    la première ligne = PLUS
    la deuxieme = PLA
    La troisième = PLAP
    La quatrième PLUS
    La cinquième BES
    la sixième BESS

    voila mon problème

    Merci
    0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Déposes ton fichier sur www.cijoint.fr et colle le lien ici.
    Ensuite explique précisément ce que tu veux.
    'dans telles cellules j'ai ça et je voudrais avoir ça'
    ou bien 'je désire afficher les lignes qui répondent à tel et tel critère'

    eric
    0
    1. lamarmotte613 Messages postés 7 Statut Membre
       
      je te joins le liens
      encore une fois merci


      http://www.cijoint.fr/cjlink.php?file=cj200802/cij6362129815337.xls
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Je suppose que sur une même ligne ça sera tjs le même code.
    Tu peux saisir en N4 :
    =SI(B4<>"";B4;SI(D4<>"";D4;SI(F4<>"";F4;SI(H4<>"";H4;SI(J4<>"";J4;SI(L4<>"";L4;""))))))
    et recopier vers le bas.
    Ca te ramene la 1ère chaine (ou valeur) non vide rencontrée sur ces cellules.
    Par contre n'ajoute plus de colonne, tu atteinds presque la limite de SI imbriqués dans excel 2003 qui est de 7.

    eric
    0
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Peux-tu expliquer le stp?

    Tu avais déjà noté le 9^9 il me semble ?

    En fait, le "z^z" et l'équivalent en texte du 9^9 pour le numérique :
    Ces codes permettent de rechercher la dernière valeur numérique ou texte de la plage concernée.

    Ceux qui mettent le solde en bas de colonne par exemple peuvent ainsi le reporter facilement sur la période suivante.

    Je n'ai pas trouvé cette fonction dans l'aide excel car elle n'est peut-être pas documentée...
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonsoir gb,

      Le 9^9 je l'avais interprété comme un grand nombre 9 puissance 9 qui serait supérieur à tous ceux qu'on pourrait trouver sur la plage.
      Le z^z me trouble plus, à la base pour moi c'est une chaine commer une autre, je ne vois pas le rôle de ^ (joker ?).
      De plus equiv() réagit bizarrement, il retourne #NA si une cellule contient une chaine supérieure comme za alors qu'il devrait retourner la plus grande valeur inférieure ou égale soit tjs PLA...
      Bref, pas clair tout ça

      eric
      0
      1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        bonjour

        De plus equiv() réagit bizarrement, il retourne #NA si une cellule contient une chaine supérieure comme za alors qu'il devrait retourner la plus grande valeur inférieure ou égale soit tjs PLA...

        EQUIV ne retourne pas la plus grande valeur inférieure , il retourne la position de la dernière cellule texte

        Si dans la plage tu mets "zyz" puis "abc" tu obtiens la position de '"abc", la valeur de la cellule n'est pas prise en compte, c'est son type qui est utilisé.

        Cela équivaut au cells(65536,1).end(xlup).row avec en plus le test du type de valeur et je n'ai jamais eu de problème avec cette "fonction" : tu as #NA, si tu cherches du texte dans une plage montants.
        Cela fonctionne aussi d'ailleurs avec ta préférée recherchev : =RECHERCHEV("z^z";E5:E22;1;1) mais l'utilité doit être limitée ?
        0
  8. lamarmotte613 Messages postés 7 Statut Membre
     
    Bonsoir,

    merci mille fois à tous les deux pour ces réponses, la formule de gbinforme marche à merveille

    à bientôt sur le forum

    lamarmotte613
    0