J'ai un lot de données avec plusieurs colonnes dont la date est formatée comme ceci:
31 mai 2014.
J'essaie de trouver un moyen de convertir cela en un format de date utile. 31/05/2014. Des idées?
microsoft-excel
microsoft-excel-2013
cubanGuy
la source
la source
Réponses:
Il y a quelques bonnes étapes pour y parvenir. C'est une façon de le faire en utilisant des formules et des cellules auxiliaires. Si vous devez le faire sans cellules auxiliaires (c’est-à-dire que vous ne voulez pas de colonnes supplémentaires), vous devez le mentionner et je pourrais probablement utiliser du VBA pour effectuer cette tâche.
La première tâche consiste à diviser votre date en 3 parties: l'année, le mois, le jour. Une fois que vous avez ces trois, il est simple de les reconstituer.
Ceci est bien sûr en supposant que vos dates toujours suivez le format de date américain plutôt idiot © de MMM-jj-aaaa.
Cela a été fait en utilisant la page Microsoft Fractionner le texte entre les colonnes à l'aide de fonctions par exemple.
Séparer le mois:
Ceci est réalisé en utilisant le
search
fonction pour trouver le premier-
et l'outil de fractionnementLeft
pour le découper.=LEFT(A1, SEARCH("-",A1,1)-1)
qui retourne
May
de votre exemple.Séparer la journée:
Est-ce similaire mais une utilisation beaucoup plus compliquée de la
MID
la fonction est requise. Nous devons trouver le premier et le second-
puis soustrayez l'emplacement de la première de la seconde pour obtenir la longueur du texte requis. Cette fonction est une fonction assez longue:=MID(A1,SEARCH("-",A1,1)+1,SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1)
la
SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1)
renvoie la longueur pendant queSEARCH("-",A1,1)+1
obtient simplement le premier emplacement. laMID
outil les découpe et revient23
de votre exemple.Scission de l'année:
Le dernier outil dont nous avons besoin est le
RIGHT
outil.=RIGHT(A1,LEN(A1)-SEARCH("-",A1,SEARCH("-",A1,1)+1))
Cela obtient simplement la longueur de la chaîne, puis effectue une double recherche et renvoie tout ce qui reste (ou tout à droite).
Le problème est maintenant que vous avez toujours le mois dans un format de texte inutilisable. Pour rendre est utilisable, nous devons utiliser le
DATEVALUE
outil pour le convertir. Cet outil n'acceptera pas un mois seul, mais acceptera unMMM YY
chaîne. Ce que nous pouvons faire est ensuite d’analyser notre texte du mois en un nombre après que nous y avons concaténé une année.Obtenir le mois comme valeur numérique:
Par souci d'argumentation, disons que nous avons enregistré la première fonction dans la cellule B1.
DATEVALUE(B1 &" 01")
renverra la chaîne de valeur de date utilisée par excel en interne, nous pourrons ensuite envelopper cela dans unMONTH
fonction pour retourner la valeur numérique pour le mois:MONTH(DATEVALUE(B1 &" 01"))
On peut alors fusionner tout cela en un seul
DATE(year,month,day)
fonction et ainsi la convertir en une date réelle pouvant être utilisée par Excel. Le mois est dans la cellule B1, le jour dans la cellule C1 et l'année dans D1 suivant le Stupid American Date Format ™:DATE(D1, B1, C1)
reviendra ensuite
23/05/2014
dans la cellule.Si vous voulez vraiment avoir envie, vous pouvez combiner toutes les formules ci-dessus en une seule.
la source
Une autre approche simple consiste à prendre une chaîne comme 31 mai 2015 et le convertir en 31 mai 2015 . Cette conversion nous permettra d’utiliser le DATEVALUE () formule.
Donc, avec des données dans A1 , dans B1 entrer:
la source
Je sais que la question a été résolue et j'apprécie toutes les contributions. J'aimerais ajouter cette autre option au cas où cela serait utile à quiconque:
Cela convertira la date du format du 31 mai 2014 au format 31/05/2014. Notez que dans mon cas particulier, les mois ont été entrés avec seulement trois lettres (par exemple, juillet)
Merci!
la source
DATE
fonctionne avec des entrées similaires, mais dans un ordre différent, année - mois est requis=DATE(RIGHT(A1,4),MONTH(1&LEFT(A1,3)),MID(A1,5,2))
- cela fonctionnera dans n'importe quelle région