64 votes

Impossible de faire en sorte qu'Excel reconnaisse la date dans une colonne

J'ai constamment des problèmes pour travailler avec des dates dans Excel, je dois faire quelque chose de mal mais je ne comprends pas quoi.

J'ai une feuille de calcul, exportée de notre serveur d'échange, qui contient une colonne avec des dates. Elles sont sorties au format américain alors que je suis au Royaume-Uni.

La colonne en question ressemble à ceci

04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011

Dans Excel, j'ai mis en évidence la colonne et sélectionné Format Cells... . Dans cette boîte de dialogue, j'ai sélectionné le Date sélectionné English (United States) en tant que paramètre local et choisi le format de date correspondant dans la liste. Je clique sur OK et j'essaie de trier les données par cette colonne.

Dans la boîte de dialogue de tri, je choisis cette colonne, je sélectionne le tri sur les valeurs, mais l'ordre ne me donne que des options de A à Z, et non de la plus ancienne à la plus récente comme je m'y attendrais.

Cela permet de trier les données de la date en fonction des deux premiers chiffres.

Je suis conscient que je pourrais reformater ces données en ISO et que le tri de A à Z fonctionnerait, mais je ne devrais pas avoir à le faire, il y a manifestement quelque chose qui m'échappe. Qu'est-ce que c'est ?

EDITAR: Je me suis trompé dans la prime mais cela aurait dû aller à @r0berts Dans sa réponse, sa première suggestion de transformer le texte en colonnes sans délimiteur et en choisissant "MDY" comme type de données fonctionne. En outre, si vous disposez d'une heure (c.-à-d. 04/21/2015 18:34:22 ), vous devez d'abord vous débarrasser des données temporelles. Cependant, après cela, la méthode suggérée par @r0berts fonctionne bien.

2voto

James Howard Points 101

Il semble qu'Excel ne reconnaisse pas vos dates comme des dates, mais comme du texte, d'où les options de tri de A à Z. Si vous procédez correctement, vous devriez obtenir quelque chose comme ceci :

http://i.stack.imgur.com/Qb4Pj.png

Il est donc important de s'assurer qu'Excel reconnaît la date. La manière la plus simple de le faire est d'utiliser le raccourci CTRL+SHIFT+3 .

Voici ce que j'ai fait à vos données. Je les ai simplement copiées de votre message ci-dessus et collées dans Excel. Puis j'ai appliqué le raccourci ci-dessus, et j'ai obtenu l'option de tri requise. Regarde l'image.

http://i.stack.imgur.com/yAa6a.png

2voto

Dave Points 25050

Je pense que le problème est dû au fait qu'Excel n'est pas en mesure de comprendre le format... Bien que vous sélectionniez le format Date, il reste en tant que Texte.

Vous pouvez tester cela facilement : Lorsque vous essayez de mettre à jour le format des dates, sélectionnez la colonne, faites un clic droit dessus et choisissez le format des cellules (comme vous le faites déjà) mais choisissez l'option 2001-03-14 (tout en bas de la liste). Examinez ensuite le format de vos cellules.

Je soupçonne que seuls certains formats de date s'actualisent correctement, ce qui indique qu'Excel traite toujours la date comme une chaîne de caractères et non comme une date (notez les différents formats dans la capture d'écran ci-dessous) !

enter image description here

Il existe des solutions de contournement, mais aucune d'entre elles ne sera automatisée simplement parce que vous exportez à chaque fois. Je vous suggère d'utiliser VBa, où vous pouvez simplement exécuter une macro qui convertit le format de date américain en format britannique, mais cela implique de copier et de coller la VBa dans votre feuille à chaque fois.

Sinon, vous créez un Excel qui lit les feuilles Excel exportées nouvellement créées (à partir d'exchange) et exécute ensuite la VBa pour mettre à jour le format de date pour vous. Je vais supposer que le fichier Excel exporté d'Exchange aura toujours le même nom de fichier/répertoire et fournir un exemple de travail :

Donc, créez une nouvelle feuille Excel, appelée ImportedData.xlsm (excel enabled). C'est le fichier dans lequel nous allons importer le fichier Excel d'Exchange exporté !

Ajoutez cette VBa au fichier ImportedData.xlsm

Sub DoTheCopyBit()

Dim dateCol As String
dateCol = "A"        'UPDATE ME TO THE COLUMN OF THE DATE COLUMN

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\Dave\Desktop\"                   'UPDATE ME
fileName = Dir(directory & "ExportedExcel.xlsx")       'UPDATE ME (this is the Exchange exported file location)

Do While fileName <> ""

'MAKE SURE THE EXPORTED FILE IS OPEN
Workbooks.Open (directory & fileName)

Workbooks(fileName).Worksheets("Sheet1").Copy _

Workbooks(fileName).Close

fileName = Dir()

Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Dim row As Integer
row = 1
Dim i As Integer
Do While (Range(dateCol & row).Value <> "")

     Dim splitty() As String
     splitty = Split(Range(dateCol & row).Value, "/")
     Range(dateCol & row).NumberFormat = "@"
     Range(dateCol & row).Value = splitty(2) + "/" + splitty(0) + "/" + splitty(1)
     Range(dateCol & row).NumberFormat = "yyyy-mm-dd"
     row = row + 1
Loop

End Sub

J'ai également mis à jour le format de la date en yyyy-mm-dd car de cette façon, même si Excel vous donne le filtre de tri A-Z au lieu des valeurs les plus récentes, cela fonctionne toujours !

Je suis sûr que le code ci-dessus comporte des bogues, mais je n'ai évidemment aucune idée du type de données que vous avez, mais je l'ai testé avec une seule colonne de dates (comme vous) et il fonctionne bien pour moi !

Comment ajouter VBA dans MS Office ?

2voto

Mike Points 21

https://support.office.com/en-us/article/Convert-dates-stored-as-text-to-dates-8df7663e-98e6-4295-96e4-32a67ec0a680

Solution simple : créer une nouvelle colonne et utiliser la formule =datevalue(cell), puis copier la formule dans les autres lignes - il suffit de quelques secondes pour résoudre le problème.

1voto

JailDoctor Points 11

J'ai trouvé !

Il y a un espace au début et à la fin de la date.

  1. Si vous utilisez la recherche et le remplacement et que vous appuyez sur la barre d'espacement, cela NE VA PAS fonctionnera pas.
  2. Vous devez cliquer juste avant le numéro du mois, appuyer sur shift et la flèche gauche pour sélectionner et copier. Parfois, vous devez utiliser la souris pour sélectionner l'espace.
  3. Puis collez ceci comme l'espace dans find et remplacer et toutes vos dates deviendront des dates.
  4. S'il y a un espace et une date Sélectionnez Données>Aller à Données>Texte à colonnes>Délimité>Espace comme séparateur et ensuite terminer.
  5. Tous les espaces seront supprimés.

0voto

harrymc Points 394411

Si Excel refuse obstinément de reconnaître votre colonne comme date, remplacez-la par une autre :

  • Ajouter une nouvelle colonne à droite de l'ancienne colonne
  • Cliquez avec le bouton droit de la souris sur la nouvelle colonne et sélectionnez Format
  • Définissez le format sur date
  • Mettez en surbrillance toute l'ancienne colonne et copiez-la
  • Mettez en surbrillance la cellule supérieure de la nouvelle colonne et sélectionnez Paste Special et seulement coller values
  • Vous pouvez maintenant supprimer l'ancienne colonne.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X