J'ai constamment des problèmes avec les 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 Exchange, qui contient une colonne avec les dates. Ils sont sortis au format américain même si 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é Date
, sélectionné English (United States)
comme paramètres régionaux et choisi le format de date correspondant dans la liste. Je clique sur OK et essaie de trier les données en fonction de cette colonne.
Dans le dialogue de tri que j'ai choisi dans cette colonne, sélectionnez de tri sur les valeurs, mais l'ordre ne me donne que des options pour A à Z, pas les plus anciennes aux plus récentes, comme je le pensais.
Cela trie à son tour les données de date par les deux premiers chiffres.
Je suis conscient que je pourrais reformater ces données au format ISO et que le tri de A à Z fonctionnerait, mais je n'aurais pas dû le faire aussi, il me manque évidemment quelque chose. Qu'Est-ce que c'est?
EDIT: Je me suis trompé la prime, mais cela aurait dû aller à @ r0berts answer, sa première suggestion de Text to Columns sans délimiteur et en choisissant «MDY» comme type de données. De plus, si vous avez une heure (c.-à-d. 04/21/2015 18:34:22
), Vous devez d'abord vous débarrasser des données de l'heure. Cependant, après cela, la méthode suggérée par @ r0berts fonctionne bien.
Réponses:
Le problème: Excel ne veut pas reconnaître les dates en tant que dates, même si vous essayez explicitement de lui indiquer qu'il s'agit de dates par "
mm/dd/yyyy
". Comme vous le savez; Quand Excel a reconnu quelque chose comme une date, il le stocke également sous forme de numéro - tel que "41004
" mais s'affiche sous forme de date en fonction du format que vous spécifiez. Pour ajouter à la confusion, Excel peut convertir uniquement une partie de vos dates, telle que 08/04/2009, mais en laisser d’autres, par exemple 07/28/2009 non converties.Solution: étapes 1 et 2
1) Sélectionnez la colonne de date. Sous Données, cliquez sur le bouton Texte en colonnes. Sur le premier écran, laissez le bouton radio sur " délimité " et cliquez sur Suivant . Décochez l'une des cases du délimiteur (les cases vides ; pas de cases à cocher) et cliquez sur Suivant . Dans le format de données de colonne, choisissez Date , sélectionnez MDY dans la liste déroulante adjacente, puis cliquez sur Terminer . Maintenant, vous avez les valeurs de date (c’est-à-dire qu'Excel a reconnu vos valeurs en tant que
Date
type de données), mais la mise en forme est probablement toujours la date locale, pas celle quemm/dd/yyyy
vous souhaitez.2) Pour que le format de date américain souhaité soit affiché correctement, vous devez d'abord sélectionner la colonne (si elle est désélectionnée), puis sous Cell Format - Number, choisissez Date AND et sélectionnez Locale: English (US) . Cela vous donnera un format comme "
m/d/yy
". Ensuite, vous pouvez sélectionner Personnalisé et vous pouvez taper "mm/dd/yyyy
" ou choisir ceci dans la liste des chaînes personnalisées.Alternative : utilisez LibreOffice Calc. Après avoir collé les données de l'article de Patrick, choisissez Coller spécial (
Ctrl+Shift+V
) et choisissez Texte non formaté. Cela ouvrira la boîte de dialogue "Importer du texte". Le jeu de caractères reste Unicode, mais pour la langue, choisissez Anglais (États-Unis). vous devez également cocher la case "Détecter les numéros spéciaux". Vos dates apparaissent immédiatement au format américain par défaut et peuvent être triées par date. Si vous souhaitez utiliser le format spécial américain MM / JJ / AAAA, vous devez le spécifier une fois par le biais du "formatage des cellules" - avant ou après le collage.On pourrait dire - Excel aurait dû reconnaître les dates dès que je l’ai dit via "Format cellule" et je ne pouvais pas être plus d’accord . Malheureusement, ce n’est que par l’étape 1 ci-dessus que j’ai pu faire en sorte que Excel reconnaisse ces chaînes de texte comme des dates. Évidemment, si vous faites cela souvent, vous aurez mal à la nuque et vous pourriez mettre sur pied une routine visuelle de base qui le ferait pour vous en appuyant simplement sur un bouton.
Les données | Texte en colonnes
Mise à jour sur l' apostrophe principale après le collage: vous pouvez voir dans la barre de formule que dans la cellule où la date n'est pas reconnue, il y a une apostrophe principale. Cela signifie que dans la cellule formatée sous forme de nombre (ou date), il y a une chaîne de texte. Vous pourriez dire que l’apostrophe principale empêche la feuille de calcul de reconnaître le nombre. Vous devez savoir qu'il faut regarder dans la barre de formule pour cela, car la feuille de calcul affiche simplement ce qui ressemble à un nombre aligné à gauche. Pour traiter 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 précédemment défini le format de la colonne comme type de données, vous n'en aurez pas besoin. La commande est vraiment destinée à diviser une colonne de texte en deux ou plus en utilisant un délimiteur, mais elle fonctionne aussi comme un charme pour ce problème. Je l'ai testé dans LibreOffice , mais il existe également le même élément de menu dans Excel .la source
Sélectionnez toutes les colonnes et allez à Rechercher et remplacer et remplacez simplement
"/"
par/
.la source
J'ai eu exactement le même problème avec les dates dans Excel. Le format correspond aux conditions requises pour une date dans Excel, mais si vous ne modifiez pas chaque cellule, il ne reconnaît pas la date. Lorsque vous traitez avec des milliers de lignes, il n'est pas pratique de modifier manuellement chaque cellule. La solution consiste à exécuter une recherche et à remplacer sur la rangée de dates où j'ai remplacé le cavalier par un trait d'union. Excel parcourt la colonne en remplaçant des éléments similaires, mais le facteur qui en résulte est qu’il reconnaît désormais les dates! FIXÉ!
la source
Je m'occupais d'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 norme "AAAA-MM-JJ" mais environ 10%, "MM- JJ-AAAA "). La modification manuelle de 650 lignes une fois par mois n’était pas une option.
Aucune (zéro ... 0 ... rien) des options ci-dessus n'a fonctionné. Oui, je les ai tous essayés. Copier dans un fichier texte ou exporter explicitement au format txt n’a, en quelque sorte, pas d’effet sur le format (ou son absence) des dates à 10% qui se tenaient tout simplement dans leur coin et refusaient de se comporter.
La seule façon de résoudre ce problème a été d'insérer une colonne vide à droite de la colonne de date qui se comportait mal et d'utiliser la formule simpliste suivante:
(en supposant que vos données se comportent mal
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 pouvais ensuite copier les résultats dans ma nouvelle colonne calculée au-dessus des dates qui se comportaient mal en collant "Valeurs" uniquement, après quoi je pouvais supprimer ma colonne calculée.
la source
Cela peut ne pas être pertinent pour le questionneur initial, mais cela peut aider quelqu'un d'autre qui est incapable de trier une colonne de dates.
J'ai découvert qu'Excel ne reconnaîtrait pas une colonne de dates antérieures à 1900, en 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 au XIXe siècle) pour les mettre dans les années 1900, par exemple 180 -> 190, 181 -> 191, etc. Le processus de tri a ensuite bien fonctionné. Finalement, j'ai fait un remplacement dans l'autre sens, par exemple 190 -> 180.
J'espère que cela aidera un autre historien.
la source
Il semble qu'Excel ne reconnaisse pas vos dates en tant que dates, mais leur texte. Par conséquent, vous obtenez les options de tri de A à Z. Si vous le faites correctement, vous devriez obtenir quelque chose comme ceci:
Il est donc important de s’assurer que Excel reconnaît la date. Le moyen le plus simple de le faire est d'utiliser le raccourci CTRL+SHIFT+3.
Voici ce que j'ai fait à vos données. Je l'ai simplement copié à partir de votre message ci-dessus et collé dans Excel. Ensuite, j'ai appliqué le raccourci ci-dessus et j'ai obtenu l'option de tri requise. Vérifiez l'image.
la source
04/08/2012
,04/09/2009
et04/01/2010
que 4 août 2012 , 4-Sep-2009 et 4-Jan-2010, respectivement, et traite04/21/2011
comme une chaîne de texte (car il n'y a pas de 21ème mois). Étant donné que certaines des valeurs sont du texte (et que certaines d'entre elles ont vraisemblablement été mal interprétées), le formatage (comme par le raccourci clavier Ctrl + Maj + 3) ne produira aucun résultat.Je soupçonne que le problème est que Excel ne parvient pas à comprendre le format ... Même si vous sélectionnez le format Date, il reste sous forme de texte.
Vous pouvez le tester facilement: lorsque vous essayez de mettre à jour le format de date, sélectionnez la colonne, cliquez dessus avec le bouton droit de la souris et choisissez le format de cellule (comme vous le faites déjà), mais choisissez l’option 2001-03-14 (au bas de la liste). Puis examinez le format de vos cellules.
Je suppose que seuls certains formats de date sont mis à jour correctement, ce qui indique qu'Excel le traite toujours comme une chaîne, et non comme une date (notez les différents formats présentés dans la capture d'écran ci-dessous)!
Il existe des solutions pour cela, mais aucune d'entre elles ne sera automatisée simplement parce que vous exportez à chaque fois. Je suggérerais d'utiliser VBA, où vous pouvez simplement exécuter une macro qui convertit du format de date américain au format de date britannique, mais cela signifierait copier et coller le VBA dans votre feuille à chaque fois.
Vous pouvez également créer un fichier Excel qui lit les feuilles Excel exportées nouvellement créées (à partir d’échange), puis exécutez la VBA pour mettre à jour le format de date pour vous. Je supposerai que le fichier Excel exporté aura toujours le même nom de fichier / répertoire et fournira un exemple de travail:
Donc, créez une nouvelle feuille Excel, appelée ImportedData.xlsm (excel activé). C'est le fichier dans lequel nous allons importer le fichier Excel exporté!
Ajouter ce VBA au fichier ImportedData.xlsm
Ce que j’ai également fait, c’est de mettre à jour le format de date en aaaa-mm-jj, car même si Excel vous donne le filtre de tri AZ au lieu des valeurs les plus récentes, cela fonctionne toujours!
Je suis sûr que le code ci-dessus contient 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 l'avez) et cela fonctionne très bien pour moi!
Comment ajouter VBA dans MS Office?
la source
https://support.office.com/en-us/article/Convert-dates-stored-as-text-to-dates-8df7663e-98e6-4295-96e4-32a67ec0a680
Solution simple ici - créez une nouvelle colonne, utilisez la formule = datevalue (cellule), puis copiez la formule dans vos autres lignes - quelques secondes pour corriger le problème.
la source
Je l'ai compris!
Il y a un espace au début et à la fin de la date.
la source
Si Excel refuse obstinément de reconnaître votre colonne comme date, remplacez-la par une autre:
Format
date
Paste Special
et collez uniquementvalues
la source
Je viens tout simplement de copier le nombre 1 (un) et de le multiplier dans la colonne de date (données) à l'aide de la fonction PASTE SPECIAL. Il passe ensuite à la mise en forme générale, c’est- à- dire 42102. Ensuite, appliquez la date sur la mise en forme et la reconnaît maintenant comme une date.
J'espère que cela t'aides
la source
Toutes les solutions ci-dessus - y compris les r0berts - ont échoué, mais ont trouvé cette solution bizarre qui s'est révélée être la solution la plus rapide.
J'essayais de trier les "dates" sur une feuille de calcul des transactions de compte téléchargée.
Cela avait été téléchargé via le navigateur CHROME. Aucune manipulation des "dates" ne les ferait reconnaître comme pouvant être triées de l’ancien au nouveau.
Mais ensuite, j'ai téléchargé via le navigateur INTERNET EXPLORER - incroyable - je pouvais trier instantanément sans toucher à une colonne.
Je ne peux pas expliquer pourquoi différents navigateurs affectent le formatage des données, à l'exception du fait que c'était clairement et était une solution très rapide.
la source
Ma solution au Royaume-Uni - J'avais mes dates avec des points comme ceux-ci:
J'ai résolu ceci avec ce qui suit:
14-03-12
(essentiel pour le mien d'avoir le tiret du milieu)Lors du tri de la colonne, toutes les dates de l'année sont triées.
la source
J'ai essayé les différentes suggestions, mais j'ai trouvé la solution la plus simple:
Voir les images 1 et 2 pour l'exemple ... (remarque - certains champs ont été masqués intentionnellement car ils ne contribuent pas à l'exemple). J'espère que ça aide...
Field C - un format mixte qui m'a rendu absolument fou. C'est ainsi que les données provenaient directement de la base de données et ne comportaient pas d'espaces supplémentaires ni de caractères fous. Lors de l'affichage sous forme de texte par exemple, le 01/01/2016 s'affiche sous la forme d'une valeur de type '42504', mélangée au 15/04/2006 qui s'affiche telle quelle.
Champ F - où j'ai obtenu la longueur du champ C (la formule LEN serait une longueur de 5 sur 10 en fonction du format de la date). Le champ est Format général pour plus de simplicité.
Champ G - obtenir le composant mois de la date mixte - en fonction du résultat de longueur dans le champ F (5 ou 10), j'obtiens le mois à partir de la valeur de date du champ C ou les caractères de mois dans la chaîne.
Champ H - obtention du composant jour de la date mixte - en fonction du résultat de longueur dans le champ F (5 ou 10), j'obtiens le jour à partir de la valeur de date du champ C ou les caractères du jour dans la chaîne.
Je peux le faire aussi pour l’année, puis créer une date cohérente à partir des trois composantes. Sinon, je peux utiliser les valeurs individuelles des jours, mois et années dans mon analyse.
Image 1: feuille de calcul de base indiquant les valeurs et les noms de champs
Image 2: feuille de calcul montrant les formules correspondant à l'explication ci-dessus
J'espère que ça aide.
la source
04/08
sont ambiguës.04/08
sera interprété comme le 8 avril dans certains endroits (comme les États-Unis) et le 4 août dans d’autres (comme l’Angleterre). Mais ceux-ci sont ambigus précisément parce que le nombre de mois et le jour du mois sont différents. … (Suite)01/01
dans votre réponse? (3) En fait, je ne suis pas sûr que vous compreniez le problème, ou que votre réponse fonctionne réellement, dans la mesure où votre feuille comporte des lignes où le numéro du mois est 15; cela semble être une erreur évidente. Et, étant donné que cela04/15
est sans ambiguïté - cela doit signifier le 15 avril - cela n'a pas de sens que votre méthode soit analysée01/11
comme le 1 er jour du 11 e mois. … (Suite)5/8
,5/08
,5/28
,05/8
et11/8
. Aussi - fait amusant - votre réponse échouera aux dates ≤ 17 mai 1927 et ≥ 17 octobre 2173. Peu importe le problème Y10K; nous pouvons commencer à avoir des problèmes dès 154 ans! (5) Vous dites: "Je peux le faire aussi pour l'année, puis créez une date cohérente à partir des trois composants." Alors pourquoi ne pas le montrer , et le montrer ? … (Suite)01/11/2016
ou11/01/2016
?) Et, si vous utilisiez vos propres données, il aurait été bien si vous aviez inclus des dates du même mois qui montrent (par exemple) comment1/11
et1/21
sont traitées différemment. Et pourquoi avoir des données en double? Vous avez gaspillé 19 lignes en utilisant les mêmes quatre valeurs plusieurs fois, réparties sur 23 lignes.PARTAGE D'UNE SOLUTION UNIQUE LONGUE MAIS TELLEMENT PLUS FACILE À SUJET ..... Pas besoin d'exécuter des macros ou des trucs geek ... .... simples formules MS Excel et l'édition.
dates mixtes excellent instantané:
#VALUE
result. - Enfin, à partir de la chaîne que nous avons créée - nous avons converti celles-ci en dates par la formule DATE.#VALUE
ont été choisis tels quels par IFERROR ajouté à la formule DATE et la colonne a été formatée comme il convient (ici, jj / mmm / aa)* CONSULTEZ L'INSTANTANÉ DE LA FEUILLE EXCEL AU-DESSUS (= dates mixtes, excellent cliché) *
la source
V
,W
etX
quand ils doivent se référer à colonnesB
,C
, etD
. … (Suite)5/8/2014
ou5/08/2014
). De plus, si vous utilisiez vos propres données, il aurait été bien que vous ayez inclus des dates du même mois pour montrer (par exemple) comment5/8
et5/28
sont traitées différemment. Et pourquoi avoir des données en double? Vous avez perdu six lignes en utilisant plusieurs fois les mêmes valeurs.Cela se produit tout le temps lors de l'échange de données de date entre des paramètres régionaux dans Excel. Si vous avez le contrôle sur le programme VBA qui exporte les données, je suggère d’exporter le nombre représentant la date au lieu de la date elle-même. Le nombre correspond de manière unique à une date unique, quels que soient le formatage et les paramètres régionaux. Par exemple, au lieu du fichier CSV du 24/09/2010, il indiquera 40445.
Dans la boucle d'exportation lorsque vous tenez chaque cellule, s'il s'agit d'une date, convertissez-la en nombre à l'aide de CLng (myDateValue). Voici un exemple de ma boucle parcourant toutes les lignes d'un tableau et exportée au format CSV (remarque: je remplace également les virgules dans les chaînes par une balise que je déshabille lors de l'importation, mais vous n'en avez peut-être pas besoin):
la source
Je n'avais aucune chance avec toutes les suggestions ci-dessus - j'ai proposé une solution très simple qui fonctionne à merveille. Collez les données dans Google Sheets, mettez en surbrillance la colonne de date, cliquez sur format, puis sur numéro et numéro à nouveau pour le changer en format numérique. Je copie et colle ensuite les données dans la feuille de calcul Excel, clique sur les dates, puis formate les cellules à ce jour. Très rapide. J'espère que cela t'aides.
la source
Ce problème me rendait fou, puis je suis tombé sur une solution facile. Au moins cela a fonctionné pour mes données. C'est facile à faire et à retenir. Mais je ne sais pas pourquoi cela fonctionne, mais changer de type comme indiqué ci-dessus ne fonctionne pas. 1. Sélectionnez la ou les colonne (s) avec les dates. 2. Recherchez une année parmi vos dates, par exemple 2015. Sélectionnez Remplacer tout avec la même année, 2015. 3. Répétez cette opération pour chaque année. Cela change les types en dates réelles, année par année.
Cela reste lourd si vous avez plusieurs années dans vos données. Plus rapide consiste à rechercher et à remplacer 201 par 201 (pour remplacer 2010 à 2019); remplacer 200 par 200 (pour remplacer 2000 à 2009); et ainsi de suite.
la source
Sélectionnez les dates et exécutez ce code dessus.
la source
J'utilise un mac.
Allez dans les préférences Excel> Édition> Options de date> Convertir automatiquement le système de date
Également,
Accédez à Tableaux et filtres> Groupe de dates lors du filtrage.
Le problème a probablement commencé lorsque vous avez reçu un fichier avec un système de date différent, ce qui a gâché votre fonction de date Excel.
la source
En général, je crée simplement une colonne supplémentaire à des fins de tri ou de totalisation, alors utilisez
year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1)
.Cela fournira un
yyyymmdd
résultat qui peut être trié. L'utilisation de cettelen(a1)
option permet d'ajouter un zéro supplémentaire pour les mois 1 à 9.la source