Texte Excel pour convertir le format de date


0

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?


Ici fiveminutelessons.com/learn-microsoft-excel/… ce qui explique plus sur le test à ce jour qui pourrait vous aider.
vembutech


Est-ce que le mois est toujours 3 lettres ou le mois entier - il est difficile de dire avec May comme exemple! - à quoi ressemblerait le 1er juin?
barry houdini

Réponses:


1

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.

  1. Séparer le mois:
    Ceci est réalisé en utilisant le search fonction pour trouver le premier - et l'outil de fractionnement Left pour le découper.

    =LEFT(A1, SEARCH("-",A1,1)-1)

    qui retourne May de votre exemple.

  2. 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 que SEARCH("-",A1,1)+1 obtient simplement le premier emplacement. la MID outil les découpe et revient 23 de votre exemple.

  3. 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 un MMM 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.

  1. 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 un MONTH fonction pour retourner la valeur numérique pour le mois:

    MONTH(DATEVALUE(B1 &" 01"))

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

  3. Si vous voulez vraiment avoir envie, vous pouvez combiner toutes les formules ci-dessus en une seule.

=DATE(RIGHT(A1,LEN(A1)-SEARCH("-",A1,SEARCH("-",A1,1)+1)),MONTH(DATEVALUE(LEFT(A1, SEARCH("-",A1,1)-1)&"  1")),MID(A1,SEARCH("-",A1,1)+1,SEARCH("-",A1,SEARCH("-",A1,1)+1)-SEARCH("-",A1,1)-1))

1

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:

=DATEVALUE(SUBSTITUTE(MID(A1,FIND("-",A1)+1,2),"-","") & "-" & LEFT(A1,3) & "-" & RIGHT(A1,4))

enter image description here


1

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:

=DATEVALUE(CONCATENATE(MID(A1,5,2),"-",LEFT(A1,3),"-",RIGHT(A1,4)))

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!


j'utiliserais 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
barry houdini
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.