J'ai une chaîne au format suivant:
StockCode Country Date Price equity
par exemple:
1 hk 10/31/12 C70.5 equity
101 hk 11/21/13 P63 equity
388 hk 10/17/12 P100 equity
Je peux extraire Date par cette commande Excel:
LEFT(RIGHT(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)),
LEN(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))-FIND(" ",
RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))),FIND(" ",
RIGHT(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)),
LEN(RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1)))-FIND(" ",
RIGHT(LEFT(A1,LEN(A1)-7),LEN(LEFT(A1,LEN(A1)-7))-FIND(" ",A1))))))
(sauts de ligne pour la lisibilité)
résultat: 10/31/12
Quelqu'un a une meilleure solution pour cela?
voici quelques uns de mes codes:
comment obtenir "C" et "P":
TRIM(MID(A1,IFERROR(FIND("P",A1),FIND("C",A1)),1))
comment obtenir le prix de grève:
TRIM(SUBSTITUTE(RIGHT(A1,LEN(A1)-IFERROR(FIND("P",A1),
FIND("C",A1))),"equity",""))
Essayez ceci, je pense que cela devrait fonctionner pour toutes les dates avec une année de 2 caractères:
=TRIM(MID(A1,FIND("/",A1)-2,8))
Je vous recommande d'exécuter Text to Columns à partir de l'onglet Données. Choisissez Délimité et indiquez un espace comme délimiteur. Cela placera votre chaîne dans cinq colonnes, la troisième étant la date et vous pourrez ensuite utiliser librement les données directement.
Sinon, je regarderais l'exemple de Lajos :( (=TRIM(MID(A1,FIND("!^!",SUBSTITUTE(A1," ","!^!",2)),8))
) ou la réponse de John.
Si vous pouvez utiliser une macro UDF, c'est simple.
Function STR_SPLIT(str as String, sep as String, n as Long)
Dim Arr() as String
Arr = Split(str, sep)
STR_SPLIT = Arr(n - 1)
End Function
str est la chaîne à scinder, SEP est le caractère à scinder - "" dans votre cas - et n est le numéro de colonne que vous recherchez. So = STR_SPLIT (A1, "", 3) renverrait la date par exemple.
Vous pouvez scinder chaque partie en colonnes dans Excel en accédant à Données> Texte en colonnes et en utilisant l'espace comme délimiteur.
Cette formule devrait également donner le résultat souhaité, même si l'année comporte 4 caractères.
=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),198,99))
Votre date est entre le deuxième et le troisième espace dans tous vos exemples. Vous pouvez remplacer votre troisième espace par "! ^!" par exemple, puis obtenez la sous-chaîne jusqu'à la première occurrence de "! ^!". Après cela, il ne vous reste plus qu'à extraire la sous-chaîne après le deuxième espace. Veuillez lire plus ici .
Merci John
voici quelques uns de mes codes:
comment obtenir "C" et "P":
TRIM (MID (A1, IFERROR (TROUVER ("P", A1), TROUVER ("C", A1)), 1))
comment obtenir le prix de grève:
TRIM (SUBSTITUTE (RIGHT (A1, LEN (A1) -IFERROR (FIND ( "P", A1), trouver ( "C", A1))), "l'équité", ""))