3 votes

Analyse des formats de date et d'heure dans Excel

J'ai une grande base de données que je copie et colle depuis un site web dans un document Excel 2007. Une colonne en particulier me pose toujours problème. Cette colonne est formatée sous la forme jj mmm hhmm pour le jour, le mois et l'heure (24 heures) :

18 NOV 2300

Le problème est qu'Excel interprète cette valeur comme jj mmm yyyy si le nombre à quatre chiffres est supérieur ou égal à 1900. Ainsi, la valeur ci-dessus est considérée comme étant le 18 novembre de l'année 2300, plutôt que le 11 novembre à 23h00 de l'année en cours. Cette valeur est ensuite formatée au format dd-mmm-yy (jour, mois et année à deux chiffres) pour être affichée. Je peux modifier ces valeurs, mais le système lit toujours l'heure comme une année lorsqu'elle est égale ou supérieure à 1900 et s'auto-formate en conséquence. Vous pouvez changer le format du bloc en texte et essayer de le copier-coller, mais Excel formatera toujours automatiquement la date et l'heure lorsque vous copiez-collerez la base de données dans Excel. Vous pouvez tester cela en copiant et collant simplement tout ce qui est dans ce format avec une heure supérieure à 1900. 10 FEV 2030 par exemple. J'ai besoin qu'Excel cesse de formater automatiquement de cette manière.

Je n'ai pas vraiment besoin 18 NOV 2300 à traduire par 11:00 PM le 11 novembre de l'année en cours ; j'ai juste besoin qu'il soit affiché comme 18 NOV 2300 .

2voto

Scott Points 20468

Êtes-vous prêt à utiliser une "colonne d'aide" ?  Si vous collez les données "dd mmm hhmm" dans la colonne  P (supposons que l'on commence à P2 et descendant), mettre

=TEXT(P2,"dd mmm yyyy")

en cellule Q2 et glisser/remplir vers le bas.  Cela inverse fondamentalement l'interprétation qu'Excel a faite de la chaîne d'entrée, reconstituant ce qui a été analysé comme le jour, le mois et l'année.  Chaînes qui n'ont pas été interprétées comme des dates (parce que le nombre à quatre chiffres est inférieur à 1900) sont simplement transmises inchangées.

Cela entraînera des cellules vides dans la colonne  P à traduire en 00 Jan 1900 .  Si vous n'aimez pas cela, utilisez

=IF(P2<>"", TEXT(P2,"dd mmm yyyy"), "")

à la place.

Cela représentera les mois avec la majuscule initiale typique (Mmm, par exemple, "Nov").  Si vous voulez qu'ils soient en majuscules, utilisez

=IF(P2<>"", UPPER(TEXT(P2,"dd mmm yyyy")), "")

0voto

Gary's Student Points 18946

Vous ne pouvez pas copier/coller directement dans Excel. Cela permettrait à Excel de formater le résultat comme bon lui semble. Collez plutôt dans quelque chose comme Bloc-notes et enregistrez le résultat dans un fichier texte. Vous pouvez ensuite utiliser l'assistant d'importation d'Excel pour lire le fichier texte. Vous pouvez indiquer à l'assistant la manière exacte dont le champ doit être interprété.

0voto

Mike Grace Points 197

Vous devriez être en mesure d'empêcher Excel d'essayer d'être "intelligent" avec les dates en collant seulement les valeurs, et aucune information de formatage. Ou si cela ne fonctionne pas, collez en utilisant le formatage de la source.

0voto

Jeorje Points 1

Puisque vous n'avez pas besoin (enfin, pas il y a sept ans) que l'entrée soit un temps réel disponible pour les calculs, la façon la plus simple de faire une telle entrée est de commencer simplement par taper une apostrophe, puis l'entrée littérale que vous souhaitez faire. Ainsi...

'18 NOV 2300

Inutile de recourir à des formules et de s'inquiéter de la manière dont Excel procède avec les dates et autres entrées numériques depuis 35 ans. Commencez simplement par l'apostrophe puis tapez ce que vous auriez de toute façon tapé.

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