Recherche 1er valeur contenant du texte

Bonjour le forum,

J'ai sur des lignes (ex A1 à A10) des valeurs égale à 0 ou à du texte. La plupart du temps je n'ai qu'une cellule avec du texte. C'est ce texte que je cherche à récupérer. 

Savez-vous quelle formule je peux utiliser pour faire ressortir la 1er cellule contenant du texte sur une plage définie ?

Merci de votre aide.


Windows / Edge 123.0.0.0

9 réponses

Résumé de la discussion

La problématique consiste à récupérer la première cellule contenant du texte dans une plage A1:A10 lorsque les valeurs peuvent être 0 ou du texte, le texte pouvant résulter d'une formule. Pour Excel 2021 ou Microsoft 365, la solution directe est =INDEX(FILTRE(A1:A10;ESTTEXTE(A1:A10));1), qui renvoie uniquement la première valeur texte. En version plus ancienne d'Excel, une alternative consiste à utiliser ESTTEXTE avec LIGNE et GRANDE.VALEUR combinés à INDEX, comme =INDEX($A$1:$A$10;GRANDE.VALEUR((ESTTEXTE($A$1:$A$10)*LIGNE($A$1:$A$10));SOMMEPROD(ESTTEXTE($A$1:$A$10)*1))). Un cas particulier évoqué porte sur des données disposées en ligne plutôt qu'en colonne, ce qui requiert une adaptation de l'approche.

Bobot (l’IA à votre service)
  1. Bonjour,

    Un essai avec une colonne de calcul intermédiaire à masquer par la suite.

    Cordialement

    0
    1. Merci pour votre retour, malheureusement mes données sont en ligne et non en colonne, et je ne peux pas rajouter une ligne sous chacune d'entres elles (j'en ai trop ????).

      Avez-vous une autre idée ?

      0
    2. @Yuyu33

      --/ Je te cite "J'ai sur des lignes (ex A1 à A10)" c'est complètement contradictoire j'ai donc choisi la colonne A1 à A10 - 

      A ta prochaine demande il faut joindre un fichier exemple.

      Cordialement

      0
  2. Bonjour,

    Une solution direct : 

    =INDEX($A$1:$A$10;GRANDE.VALEUR((ESTTEXTE($A$1:$A$10)*LIGNE($A$1:$A$10));SOMMEPROD(ESTTEXTE($A$1:$A$10)*1)))

    0
    1. Merci de votre retour, j'ai une erreur de type #valeur, j'ai oublié de préciser que le texte et la valeur 0 sont issue d'une formule. 

      Cela peut-il créer cette erreur ?

      0
  3. Bonjour,

    Autre solution, si tu disposes d'une version Excel 2021 ou 365

    =FILTRE(A1:A10;ESTTEXTE(A1:A10))

    Bonne fin d'apm

    Edit, cette formule te donnera toutes les données "Texte" de A1:A10

    Si tu ne veux que la première :

    =INDEX(FILTRE(A1:A10;ESTTEXTE(A1:A10));1)

    0
    1. Merci bcp, j'ai essayé avec la version web, celle-ci fonctionne bien. Je l'utiliserai si il n'y a pas d'autres options. Merci de votre retour

      0
  4. Bonjour à tous

    La formule de Le Pingou fonctionne bien mais l'as tu essayé en matricielle (à valider avec Ctrl+Maj+Entrée)

    Cdlmnt

    0
    1. Bonjour Yuyu33,

      Votre demande du début parle de colonne A1:A10 et il semble que ce n'est pas la réalité selon votre réponse au poste 5.

      Merci de mettre un exemple correct sur un fichier  que vous mettez  sur Accueil de Cjoint.com et poster le lien.


      0
      1. Bonjour à tous,

        Merci pour vos retours, en effet, je n'ai pas été suffisamment clair dans mes explications. Voici un extrait du fichier. 

        https://www.cjoint.com/c/NEphRyh5J7Z

        0
        1. Hello,

          Pour compléter la réponse de Le Pingou, hello !

          Une proposition formule unique pour tout le tableau et pour Excel 365 :

          =BYROW(A2:L34;LAMBDA(p;INDEX(FILTRE(p;ESTTEXTE(p));1)))

          Une proposition toutes versions, formule matricielle à valider par Ctrl+Maj+Entrée :

          =INDEX(A2:K2;EQUIV(VRAI;ESTTEXTE(A2:K2);0))

          Une proposition version >=2010 à validation normale :

          =INDEX(A2:K2;AGREGAT(15;6;COLONNE(A2:K2)/ESTTEXTE(A2:K2);1))
          0