web-dev-qa-db-fra.com

Conversion de date Excel de aaaammjj à mm / jj / aaaa

Je cherche depuis environ une heure à savoir comment procéder dans Excel.

J'ai un fichier Excel créé à partir d'un ancien système et je récupère les informations d'une base de données SQL Server. Je vais les saisir dans la base de données SQL Server et je voudrais que les dates correspondent.

J'ai essayé de créer un format personnalisé, mais je ne suis pas sûr de l'avoir fait correctement. J'ai trouvé plusieurs endroits où ils veulent aller dans l'autre sens mm/dd/yyyy à yyyymmdd mais ils n'ont pas été utiles.

Je ne connais pas bien l’utilisation de VBA dans les produits Microsoft, sinon je suis certain que ce serait une tâche simple.

J'ai deux colonnes distinctes qui doivent être modifiées.

Comment formater la colonne entière de (float)yyyymmdd à un (Date)mm/jj/aaaa

54
Malachi

Vous pouvez convertir la valeur en date à l'aide d'une formule comme celle-ci, située à côté de la cellule:

=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))

Où A1 est le champ que vous devez convertir.

Vous pouvez également utiliser ce code dans VBA:

Sub ConvertYYYYMMDDToDate()
   Dim c As Range
   For Each c In Selection.Cells
       c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
       'Following line added only to enforce the format.
       c.NumberFormat = "mm/dd/yyyy"
   Next
End Sub

Il suffit de mettre en surbrillance les cellules que vous souhaitez corriger et d’exécuter le code.

Notez que RJohnson mentionné dans les commentaires, ce code se trompera si l'une des cellules que vous avez sélectionnées est vide. Vous pouvez ajouter une condition sur c.value pour ignorer la mise à jour si elle est vide.

71
Daniel

Avez-vous des rangées de données (horizontales) comme vous l'avez indiqué ou COLUMNS (verticales)?

Si c'est le dernier cas, vous pouvez utiliser la fonctionnalité "Texte en colonnes" pour convertir une colonne entière "in situ" - pour ce faire:

Sélectionnez la colonne> Données> Texte en colonnes> Suivant> Suivant> Choisissez "Date" sous "Format de données de la colonne" et "AMJ" dans la liste déroulante> Terminer.

.... sinon vous pouvez convertir avec une formule en utilisant

=TEXT(A1,"0000-00-00")+0

et le format au format de date requis

26
barry houdini

pour convertir dd/mm/yyyy en mm/dd/yyyy

=DATE(RIGHT(a1,4),MID(a1,4,2),LEFT(a1,2))
6
user2027618

Voici une version nue:

Disons que vous avez une date dans la cellule A1 dans le format que vous avez décrit. Par exemple: 19760210.

Alors cette formule vous donnera la date que vous voulez:

=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).

Sur mon système (Excel 2010), cela fonctionne avec des chaînes ou des flottants.

6
Leo

Trouvé un autre (manuel) réponse qui a bien fonctionné pour moi

  1. Sélectionnez la colonne.
  2. Choisissez l'onglet Données
  3. Texte en colonnes - ouvre une nouvelle boîte
  4. (choisissez Délimité), Suivant
  5. (décochez toutes les cases, utilisez "none" pour le qualificateur de texte), Suivant
  6. utilisez l'option ymd dans le menu déroulant Date.
  7. Cliquez sur Terminer
1
rwb