2010-04-14 7 views
109

Dans une cellule dans la feuille Excel J'ai une valeur Date comme:Excel date de conversion chaîne

01/01/2010 14:30:00 

Je veux convertir cette date en texte et aussi le texte doit ressembler exactement à la date. Donc, une valeur de date de 01/01/2010 14:30:00 devrait ressembler à 01/01/2010 14:30:00 mais en interne, il devrait être texte.

Comment puis-je faire cela dans Excel?

+5

Beaucoup de programmeurs snobs soutiendraient excel n'est pas un environnement de programmation, donc pourrait fermer cette question. J'espère qu'ils ne le font pas, mais juste pour vous prévenir. –

+4

Excel n'est peut-être pas un IDE à part entière, mais si vous avez des données dans Excel et que vous avez besoin de résultats dans Excel, une programmation VBA prend tout son sens. – brichins

Répondre

217
=TEXT(A1,"DD/MM/YYYY hh:mm:ss") 

(temps de 24 heures)

=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM") 

(heure normale)

+0

Vous avez sauvé ma journée, merci! –

+0

Référence complète à la fonction TEXT en particulier pour savoir comment définir les formats: voir les directives pour les formats de date et d'heure sur cette page http://office.microsoft.com/fr-fr/excel-help/text-function-HP010062580.aspx – codea

+0

Lorsque j'essaie de faire cette conversion, il y a un "#AD?" texte et il dit que quelque chose ne va pas. – AloneInTheDark

4

Dans certains contextes, l'utilisation d'un caractère avant fonctionnera, mais si vous enregistrez au format CSV et que vous chargez de nouveau, c'est impossible.

'01/01/2010 14:30:00 
8

Voici une approche VBA:

Sub change() 
    toText Sheets(1).Range("A1:F20") 
End Sub 

Sub toText(target As Range) 
Dim cell As Range 
    For Each cell In target 
     cell.Value = cell.Text 
     cell.NumberFormat = "@" 
    Next cell 
End Sub 

Si vous êtes à la recherche d'une solution sans programmation, la question devrait être déplacé à SuperUser.

5

Voici une autre option. Utilisez l'assistant "Texte vers les colonnes" d'Excel. Il se trouve sous l'onglet Données dans Excel 2007.

Si vous avez sélectionné une colonne, les valeurs par défaut pour le type de fichier et les délimiteurs doivent fonctionner, puis il vous invite à modifier le format de données de la colonne. Le choix du texte le force au format texte, pour s'assurer qu'il n'est pas stocké en tant que date.

2

Si vous n'utilisez pas la programmation, puis procédez comme suit (1) sélectionnez la colonne (2) clic droit et sélectionnez les cellules Format (3) Sélectionnez "Personnalisé" (4) Un peu moins de "Type:" Type jj/mm/aaaa hh: mm: ss

0

Dans Excel 2010, marg's answer ne fonctionnait que pour certaines des données que j'avais dans ma feuille de calcul (elle était importée). La solution suivante a travaillé sur toutes les données.

Sub change() 
    toText Selection 
End Sub 

Sub toText(target As range) 
Dim cell As range 
Dim txt As String 
    For Each cell In target 
     txt = cell.text 
     cell.NumberFormat = "@" 
     cell.Value2 = txt 
    Next cell 
End Sub 
0

La réponse sélectionnée ne fonctionnait pas pour moi car Excel ne convertissait toujours pas le texte à ce jour. Voici ma solution.

Dites que dans la première colonne, A, vous avez des données de type 2016/03/25 21:20:00, mais elles sont stockées en tant que texte. Ensuite, dans la colonne B, écrivez =DATEVALUE(A1) et dans la colonne C, écrivez =TIMEVALUE(A1).

Ensuite, dans la colonne D, faites =B1+C1 pour ajouter les formats numériques de la date et de l'heure.

Enfin, copiez les valeurs de D dans la colonne E en cliquant avec le bouton droit de la souris dans la colonne E et sélectionnez Paste Special -> Paste as Values. Mettez en évidence les valeurs numériques dans la colonne E et modifiez le type de données à ce jour - Je préfère utiliser une date personnalisée de la forme YYYY-MM-DD HH:MM:SS

0

Je n'ai aucune idée de l'année de publication de la question; ça pourrait être vieux maintenant. Donc, je m'attends à ce que ma réponse soit plus une référence pour de futures questions similaires après mon post. Je ne sais pas si quelqu'un a déjà donné une réponse semblable à celle que je vais vous donner, ce qui pourrait être, je pense, le plus simple, le plus direct et le plus efficace: si quelqu'un a déjà donné Je m'excuse, mais je ne l'ai pas vu. Ici, ma réponse à l'aide CStr au lieu du texte:

cellules Asuming A1 contient une date et en utilisant le code VBA:

Dim strDate As String 

'Convert to string the value contained in A1 (a date) 
strDate = CStr([A1].Value) 

Vous pouvez, par la suite, le manipuler comme une chaîne en utilisant la chaîne ordinaire fonctions (MID, GAUCHE, DROITE, LEN, concaténer (&), etc.)

0

obtenir la formule ne pouvait pas TEXT() pour travailler

solutio Easiest n était de copier coller dans le Bloc-notes et de nouveau dans Excel avec la colonne définie au texte avant de coller retour

Ou vous pouvez faire la même chose avec une formule comme celle

=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)