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.

103voto

r0berts Points 1816

Le problème : Excel ne veut pas reconnaître les dates comme des dates, même si par le biais de "Format cells - Number - Custom" vous essayez explicitement de lui dire qu'il s'agit de dates par ". mm/dd/yyyy ". Comme vous le savez, lorsqu'Excel a reconnu quelque chose comme une date, il l'enregistre ensuite comme un nombre - tel que " ". 41004 "mais s'affiche comme une date selon le format que vous avez spécifié. Pour ajouter à la confusion, Excel peut ne convertir qu'une partie de vos dates, comme le 08/04/2009, mais laisser les autres, comme le 28/07/2009, non converties.

Solution : étapes 1 puis 2

1) Sélectionnez la colonne de date. Sous Données, choisissez le bouton Texte vers Colonnes. Sur le premier écran, laissez le bouton radio sur " délimité "et cliquez sur Suivant . Décliquez sur l'une des cases de délimitation (toute case vierge ; pas de coches) et cliquez sur Suivant . Sous format de données de la colonne, sélectionnez Date et sélectionnez MDY dans la boîte combo adjacente et cliquez sur Finition . Vous avez maintenant des valeurs de date (c'est-à-dire qu'Excel a reconnu vos valeurs en tant que Date ), mais le formatage est probablement encore la date de la locale, et non pas la mm/dd/yyyy que vous voulez.

2) Pour que le format de date américain souhaité s'affiche correctement, vous devez d'abord sélectionner la colonne (si elle n'est pas sélectionnée) puis, sous la rubrique Format des cellules - Numéro choisissez Date ET sélectionnez Locale : Anglais (US) . Cela vous donnera un format comme " m/d/yy ". Ensuite, vous pouvez sélectionner Custom et là, vous pouvez soit taper " mm/dd/yyyy "ou choisissez-la dans la liste des chaînes personnalisées.

Alternative 0 : utiliser LibreOffice Calc . Après avoir collé les données de l'article de Patrick, choisissez la fonction Collage spécial ( Ctrl+Shift+V ) et choisissez Texte non formaté. La boîte de dialogue "Importer du texte" s'ouvre alors. Le jeu de caractères reste Unicode mais pour la langue choisissez English(USA) ; vous devez également cocher la case "Detect special numbers". Vos dates apparaissent immédiatement dans le format américain par défaut et sont triables par date. Si vous souhaitez utiliser le format spécial américain MM/DD/YYYYY, vous devez le spécifier une fois par le biais de "format Cells" - avant ou après le collage.

On pourrait dire qu'Excel aurait dû reconnaître les dates dès que je le lui ai demandé via le "Format de cellule" et le "Format d'image". Je ne pourrais pas être plus d'accord . Malheureusement, ce n'est que grâce à l'étape 1 ci-dessus que j'ai pu faire en sorte qu'Excel reconnaisse ces chaînes de texte comme des dates. Évidemment, si vous faites cela souvent, c'est un casse-tête et vous pourriez mettre au point une routine Visual Basic qui le ferait pour vous en appuyant sur un bouton. Cela peut être aussi simple que ce code VBA dans Excel :

Sub RemoveApostrophe()

For Each CurrentCell In Selection
If CurrentCell.HasFormula = False Then    
CurrentCell.Formula = CurrentCell.Value
End If
Next

End Sub

Alternative 1 : Données | Texte en colonnes

Mise à jour sur apostrophe principale après le collage : Vous pouvez voir dans la barre de formule que dans la cellule où la date n'a pas été reconnue, il y a une apostrophe en tête. Cela signifie que dans la cellule formatée comme un nombre (ou une date), il y a une chaîne de texte que le programme pense vouloir préserver comme une chaîne de texte. On pourrait dire que l'apostrophe initiale empêche le tableur de reconnaître le nombre. Vous devez savoir qu'il faut chercher ce problème dans la barre de formule, car le tableur affiche simplement ce qui ressemble à un nombre aligné à gauche. Pour résoudre ce problème, sélectionnez la colonne que vous souhaitez corriger, choisissez dans le menu Data | Text to Columns et cliquez sur OK. Parfois, vous pourrez spécifier le type de données, mais si vous avez déjà défini le format de la colonne pour qu'il corresponde à votre type de données particulier, vous n'en aurez pas besoin. La commande est en fait destinée à diviser une colonne de texte en deux ou plusieurs en utilisant un délimiteur, mais elle fonctionne à merveille pour ce problème également. Je l'ai testée dans Libreoffice mais il y a le même élément de menu dans Excel aussi.

Alternative 2 : Editer Remplacer dans Libreoffice

C'est le moyen le plus rapide et le meilleur jusqu'à présent, mais cela ne fonctionne pas dans MsOffice pour autant que je sache. Libreoffice Calc dispose d'une option permettant de rechercher/remplacer en utilisant les éléments suivants Regexps (alias Expressions régulières) - Ce que vous faites, c'est trouver la cellule et la remplacer par la sienne. Dans le processus, Calc reconnaît à nouveau le nombre comme un nombre et se débarrasse de l'apostrophe de tête. Cela fonctionne très rapidement. Sélectionnez votre colonne. Ctrl-H ouvre le dialogue de recherche et de remplacement. Cochez 'Sélection actuelle' et 'Utiliser des expressions régulières'. Dans la boîte de recherche, entrez ^[0-9] - ce qui signifie trouver toute cellule ayant un chiffre de 0 à 9 dans sa première position. . Dans la boîte de remplacement, entrez & - ce qui, pour libreoffice, signifie pour le remplacement, utilisez la chaîne que vous avez trouvée dans le champ de recherche". . Cliquez sur Replace All - et vos valeurs sont reconnues pour les chiffres qu'elles représentent. La beauté de la chose, c'est qu'il fonctionne sur les cellules qui ne contiennent que des nombres avec une apostrophe en tête, rien d'autre - c'est-à-dire qu'il ne touchera pas les cellules qui contiennent une apostrophe - un espace (ou deux) - puis un nombre, ou les cellules qui contiennent un O majuscule au lieu d'un zéro ou toute autre anomalie que vous souhaitez corriger à la main.

20voto

Jair Bressani Points 169

Sélectionnez toute la colonne et allez dans Localiser et Remplacer et remplacez juste la colonne. "/" をもって / .

4voto

Lucster Points 51

J'ai été confronté à un problème similaire avec des milliers de lignes extraites d'une base de données SAP et, inexplicablement, deux formats de date différents dans la même colonne de date (la plupart étant notre standard "AAAA-MM-JJ" mais environ 10% étant "MM-JJ-AAAA"). La modification manuelle de 650 lignes une fois par mois n'était pas envisageable.

Aucune (zéro... 0... néant) des options ci-dessus n'a fonctionné. Oui, je les ai toutes essayées. La copie vers un fichier texte ou l'exportation explicite vers le format txt n'a toujours, d'une manière ou d'une autre, aucun effet sur le format (ou l'absence de format) des 10 % de dates qui sont simplement restées dans leur coin, refusant de se comporter.

La seule façon de résoudre ce problème a été d'insérer une colonne vierge à droite de la colonne de date et d'utiliser la formule suivante, plutôt simpliste :

(en supposant que vos données qui se comportent mal sont dans Column D )

=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))

Je pourrais alors copier les résultats dans ma nouvelle colonne calculée par-dessus les dates qui se comportent mal en collant "Valeurs" seulement, après quoi je pourrais supprimer ma colonne calculée.

3voto

nemith Points 480

J'ai eu exactement le même problème avec les dates dans Excel. Le format correspondait aux exigences d'une date dans Excel, mais sans modifier chaque cellule, la date n'était pas reconnue, et lorsque vous avez affaire à des milliers de lignes, il n'est pas pratique de modifier manuellement chaque cellule. La solution consiste à effectuer une recherche et un remplacement sur la ligne de dates où j'ai remplacé le trait d'union par un trait d'union. Excel parcourt la colonne en remplaçant ce qui est similaire par ce qui est similaire, mais le résultat est qu'il reconnaît maintenant les dates ! CORRIGÉ !

3voto

Sathya Ram Points 111

Cette question ne concerne peut-être pas l'auteur de la question initiale, mais elle peut aider quelqu'un d'autre qui ne parvient pas à trier une colonne de dates.

J'ai constaté qu'Excel ne reconnaissait pas une colonne de dates qui étaient toutes antérieures à 1900, insistant sur le fait qu'il s'agissait d'une colonne de texte (puisque 1/1/1900 a l'équivalent numérique 1, et que les nombres négatifs ne sont apparemment pas autorisés). J'ai donc fait un remplacement général de toutes mes dates (qui étaient dans les années 1800) pour les mettre dans les années 1900, par exemple 180 -> 190, 181 -> 191, etc. Le processus de tri a alors bien fonctionné. Enfin, j'ai effectué un remplacement dans l'autre sens, par exemple 190 -> 180.

J'espère que cela aidera d'autres historiens.

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