Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 récupérer les dates dans une chaine (formule excel)

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
je vais commencer a me faire un recueil d'exemple de formule excel pour le texte

aujourd'hui je cherche une formule qui pourrait me donner la Nieme( de 1 à x) date dans une chaine
à l'heure actuelle j'ai la première simplement avec STXT ET CHERCHE
=STXT(A1;CHERCHE("??/??/????";A1;1);10)
j'aimerais trouver une formule qui me permette d'avoir la 2d , la 3eme etc...
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous ,

Comme assez régulièrement, je viens sans doute après la bataille.
Je précise que je n'ai regardé aucune formule précédente de ce fil ; j'espère que ma formule ne fait pas double-emploi avec une formule déjà publiée . Je ne voudrais froisser personne.

C'est une formule matricielle. Le texte est en A2, l'occurrence N à trouver en A6.

Voici la formule en A10 :
=SIERREUR(STXT($A$2;PETITE.VALEUR(SI(ESTNUM(DATEVAL(SI(ESTNUM(--STXT($A$2;LIGNE($2:$258);2)) * (STXT($A$2;LIGNE($2:$258)+2;1)="/")* ESTNUM(--STXT($A$2;LIGNE($2:$258)+3;2)) * (STXT($A$2;LIGNE($2:$258)+5;1)="/") * ESTNUM(--STXT($A$2;LIGNE($2:$258)+6;4));STXT($A$2;LIGNE($2:$258);10);"")));LIGNE($2:$258);"");A6);10);"")

Notez :
  • on fait une vérification de la date. C'est pourquoi, dans l'exemple, la formule ne trouvera que 3 occurrences (29/02/1999 n'étant pas une date correcte, ce n'est pas une occurence).
  • la valeur 258 peut-être augmentée ou diminuée. Cette valeur doit être supérieure au nombre de caractères possibles du texte
  • les dates doivent être au format 10 caractères : jj/mm/aaaa
 

Pièces jointes

  • patricktoulon- Extraction nième Date- v1.xlsx
    11 KB · Affichages: 5
Dernière édition:

JHA

XLDnaute Barbatruc
Bonjour à tous,

Je me permets une petite remarque.
J'ai essayé la formule de job75 que je félicite avec des espaces dans la phrase et cela ne donne pas satisfaction. J'ai donc enlevé les espaces avec la fonction substitue.

VB:
=STXT(SUBSTITUE(A2;" ";"");PETITE.VALEUR(SI(ESTNUM(--STXT(SUBSTITUE(A2;" ";"");LIGNE(INDIRECT("1:"&NBCAR(SUBSTITUE(A2;" ";""))));10));LIGNE(INDIRECT("1:"&NBCAR(SUBSTITUE(A2;" ";"")))));A6);10)

JHA
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour @JHA
plutôt que faire un substitue dans tout les segments des antécédents
on peut faire un SUPPRESPACE global
Code:
=SUPPRESPACE(SIERREUR(STXT(A2;PETITE.VALEUR(SI(ESTNUM(--STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));10));LIGNE(INDIRECT("1:"&NBCAR(A2))));A6);10);"-"))
 

patricktoulon

XLDnaute Barbatruc
re
ha bon ?
bon ben on garde la tienne alors puisqu'elle fonctionne sur les deux
allez une dernière ligne droite
comment faire pour la rendre étirable vers le bas ou vers la droite
j'ai essayé ligne(A1) à la place de A6 mais ça ne fonctionne pas
 

Pièces jointes

  • Extraction nième Date(1)ex_@JOB75.xlsx
    11.8 KB · Affichages: 0

job75

XLDnaute Barbatruc
Bonjour à tous,

Eh oui si l'on insère un espace après "1999" ma formule renverra "9/02/1999 "

Pourquoi serait-ce gênant ?

De même #NOMBRE! n'est pas gênant, SIERREUR est bien inutile.

A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…