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

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ;-)
 
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

bonjour




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)

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
 
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

Dernière édition:
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




ATTENTION !!!! LES ENTÊTES N ÉTAIENT PAS TOUT A FAIT IDENTIQUES J AI CORRIGE CE POINT
 
Dernière édition:
Merci beaucoup de m'avoir aidée, cela fonctionne très bien, et je peux "nettoyer" le not found... En théorie, la date est avant son intitulé dans la colonne DATES.

Ce forum est toujours très efficace.

Merci encore !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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