XL pour MAC Trouver des chaînes de caractères (longueur variable)

agnesd

XLDnaute Occasionnel
Bonjour à tous,

Je cherche à répartir des données d'une seule cellule dans un tableau, j'ai pu extraire les premières données grâce à GAUCHE, et celles en fin de cellule grâce à DROITE mais pour les données restantes, je sèche, entre STXT, TROUVE, etc.

https://cjoint.com/c/IIzmCQx0UQe

Pourriez-vous svp m'aider (et m'expliquer) ? Je travaille sur excel pour mac.

Merci ;-)
 

agnesd

XLDnaute Occasionnel
Bonjour et merci de vos retours, Danielco,

J'ai mis un fichier exemple, les titres des colonnes indiquent les données que je souhaite récupérer dans la colonne "DATES" :
Opening date​
Earlybird​
Regular deadline​
Late deadline​
Final deadline​
Extended deadline​
Notification date​

Idéalement j'aurais voulu trouver une formule en me servant du texte "repère" à droite, et du point virgule à gauche de la date à récupérer, qu'en pensez-vous ?


Merci en tout cas et bonne journée à vous !
 

Pièces jointes

  • exempleexcel.xlsx
    10.1 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
bonjour


Capture.JPG


sinon une fonction vba toute simple que tu peux utiliser en formule et tu adapte l'index dans la formule
VB:
Function PartOfText(obj As Range, index As Long)
PartOfText = Split(obj.Text, ";")(index)
End Function

formule
exemple en B2
=PartOfText(A2;0)
Capture2.JPG

l'index en rouge doit être changé en fonction de ce que tu veux exemple 2 pour december 1,2019

sachant que les index de donnée sont 0,2,4,6
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @agnesd, @danielco :),

Un essai par formules. Pour cela:
  • nous avons inséré des colonnes après la colonne A (autant de colonnes que de rubriques "dates")
  • une formule a été placée dans la cellule B2: =CHERCHE(I$1;$A2)
  • cette formule a été recopiée jusqu'en colonne H
  • une autre formule a été placée en colonne I2: =SIERREUR(SUPPRESPACE( DROITE(SUBSTITUE(GAUCHE(";"&$A2;B2-1);";";REPT(" ";255));255));"")
  • cette formule a été recopiée jusqu'en colonne O
  • ensuite les formules des colonnes B à O ont été recopiées vers le bas
=> La dernière date n'est jamais extraite puisqu'elle n'est pas qualifiée à sa droite par un terme du type ;xxxxxxxx
Les colonnes B à H peuvent être masquées.

nota: on pourrait ne pas insérer de colonnes; mais ce sera moins compréhensible.
 

Pièces jointes

  • agnesd- Extraction texte- v1.xlsx
    11.8 KB · Affichages: 3
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
j'ai revu la fonction
elle renvoie notfound!! si ca n'y est pas
utilisation de l'entete dans la fonction
reste a savoir la regle car je n'ai toujours pas eu de réponse
a savoir c'est quoi la donnée avant l'expression ou après c'est pas clair dans l’énonce

toujours est il que si je considere que c'est la donnée avant l'expression ca donne
VB:
Function PartOfText2(obj As Range, obj2 As Range) As String
    Dim txt$, d&
    If Not obj.Text Like "*" & obj2.Text & "*" Then PartOfText2 = "NotFound!!!": Exit Function
    txt = Split(obj.Text, ";" & obj2.Value)(0)
    d = InStrRev(txt, ";") + 1: If d > 1 Then d = d - 1
    PartOfText2 = "'" & Mid(txt, d, 100)
End Function

la formule
exemple en B2
=PartOfText2($A$2;B1)
et étendre la formule sur la ligne
et le 1er précédents de la formule est absolu!!!
resultat
Capture.JPG




ATTENTION !!!! LES ENTÊTES N ÉTAIENT PAS TOUT A FAIT IDENTIQUES J AI CORRIGE CE POINT
 
Dernière édition:

Discussions similaires