Partager via

Formule Excel -Prendre en compte seulement un numéro de 7 chiffres dans une formule

Anonyme
2019-11-07T14:24:45+00:00

Hello à tous,

J’aimerais si possible améliorer cette fonction excel =IFERROR((MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)),7))*1,"")

afin de prendre en compte seulement un numéro de 7 chiffres dans la cellule A1 :

Example de contenu de la cellule A1 : TEST 1234567 à cela donne 1234567

J’aimerais que si il y a un numéro autre que 7 chiffre il le passe pour seulement prendre le numéro de 7 chiffres :

Pour l’instant si la cellule A1 contient :

Example de contenu de la cellule A1 : 123 Test 1234567 cela va rien prendre étant donné que le premier nombre n’as pas 7 chiffes et j’aimerais que cela me donne 1234567.

Merci d’avance pour ceux qui ont du temps afin de répondre à cette question.

Meilleures salutations,

guguf

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

12 réponses

  1. Hecatonchire 53,540 Points de réputation Modérateur bénévole
    2019-11-09T12:26:57+00:00

    Salut

    J'ai supposé que ta formule d'origine était à validation matricielle (vu qu'il y a une constante matricielle dedans {0,1,2,3,4,5,6,7,8,9} ), donc je ne t'ai pas précisé que pour valider mes formules il ne faut pas faire ENTER mais CTRL+MAJ+ENTER

    Si tu regardes les images tu remarquera dans la barre de formule des accolades{  }  qui englobent la formule. Elles sont générées par cette validation spécifique.

    Test plutôt la dernière qui préserve les 0 non significatifs mais renvoie du texte :

    =SIERREUR(STXT(A1;MAX(ESTNUM(STXT(SUBSTITUE(A1;" ";"A");LIGNE($1:$20);7)*1)*(NBCAR(STXT(A1;LIGNE($1:$20);7))=7)*LIGNE($1:$20));7);"")

    sinon pour du numérique (perte des 0 non significatifs : 0000231 devient 231)

    =SIERREUR(STXT(A1;MAX(ESTNUM(STXT(SUBSTITUE(A1;" ";"A");LIGNE($1:$20);7)*1)*(NBCAR(STXT(A1;LIGNE($1:$20);7))=7)*LIGNE($1:$20));7)*1;"")

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2019-11-08T18:34:20+00:00

    Hello,

    Merci pour ta réponse je l'avais testé en français chez moi mais en effet je sais pas si je fais quelque chose de faux mais elle ne marche pas dans les situations en jaune

    Le but étant que elle me détecte un chiffre a 7 digits et que il me l'affiche  et ce malgré que il soit attaché ou pas dans un texte 

    Si tu as une idée je suis preneur.

    Merci encore.

    Gugug

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Hecatonchire 53,540 Points de réputation Modérateur bénévole
    2019-11-08T18:15:05+00:00

    C'est sympa d'avoir pris le temps de tester ma formule (qui fonctionne dans même pour ta dernière demande) et de m'avoir répondu !

    Si ma formule était trop courte/simple, il fallait le dire ! :)

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2019-11-08T15:46:55+00:00

    Hello,

    Excellent la formule marche cependant si il y a quelque chose après elle marche plus, serait-il possible d'ajouter aussi cette dernière variable ? 

    4ème ligne.

    Merci beaucoup encore.

    Guguf

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2019-11-08T13:12:57+00:00

    Hello,

    Il n’est pas facile de trouver une formule complète (c’est-à-dire d’inclure tous les cas possibles). Cependant, essayez la formule ci-dessous. J'espère que cela fonctionne pour votre cas.

    =IF(LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))=0, RIGHT(A1,LEN(A1)-MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1/17))+1),RIGHT(MID(A1,FIND("@",SUBSTITUTE(TRIM(A1)," ","@",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))+1,100),LEN(MID(A1,FIND("@",SUBSTITUTE(TRIM(A1)," ","@",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))+1,100))+1-MIN(FIND({1,2,3,4,5,6,7,8,9,0},MID(A1,FIND("@",SUBSTITUTE(TRIM(A1)," ","@",LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ",""))))+1,100)&1/17))))*1

    Formule en français:

    =SI(NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))=0;DROITE(A1;NBCAR(A1)-MIN(TROUVE({1.2.3.4.5.6.7.8.9.0};A1&1/17))+1);DROITE(STXT(A1;TROUVE("@";SUBSTITUE(SUPPRESPACE(A1);" ";"@";NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))))+1;100);NBCAR(STXT(A1;TROUVE("@";SUBSTITUE(SUPPRESPACE(A1);" ";"@";NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))))+1;100))+1-MIN(TROUVE({1.2.3.4.5.6.7.8.9.0};STXT(A1;TROUVE("@";SUBSTITUE(SUPPRESPACE(A1);" ";"@";NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))))+1;100)&1/17))))*1

    Bonne journée.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire