Echec de traitement d'une chaine de caractères

Bonjour à tous,

J'ai importé un fichier csv comportant une colonne contenant un timestamp par exemple "11/12/2019 09:10:12".

Je cherche à convertir la date en AAAA/MM/JJ hh:mm:ss.

Pas compliqué me direz-vous, j'insère une colonne à sa droite et je mets la formule :

=CONCATENER(STXT(J3;7;4);STXT(J3;3;4);GAUCHE(J3;2);DROITE(J3;9))

Ce qui est incroyable, c'est que j'obtiens un numérique du genre 0201736,42388889 !

Avez-vous une piste ?

Je mettrais tout simplement une fonction perso :

7fperso12.xlsm (14.58 Ko)

Bonjour à tous,

Déjà ta formule, si elle fonctionnait, te sortirait un texte et pas une date.

Ensuite ça vient d'un fichier csv et on ne sait pas comment c'est écrit à l'origine. (des fois, c'est bizarre !)

Mets donc un morceau de fichier sur le forum, que les intervenants puissent su rendre compte.

Crdlmt

Bonjour tout le monde !

Tes dates actuelles sont certainement reconnues par Excel comme des dates valides. L'affichage "11/12/2019 09:10:12" ne correspond pas à la valeur contenue dans la cellule, mais simplement un format visuel. Une date valide correspond à un nombre de jours écoulés depuis une date de référence, la partie décimale correspond à l'heure. C'est actuellement ce nombre que tu manipules, ce qui explique le résultat incohérent obtenu.

Autre proposition pour une date en A1 :

=TEXTE(A1;"YYYY/MM/DD HH:MM:SS")

Merci à tous,

Chacun m'a fourni une part de la solution.

Effectivement le fichier csv doit avoir un problème.

A cause de ce problème, Excel interprète la chaine de caractères (pourtant forcée comme 'Texte' à l'importation) comme un date, donc un nombre.

Bizarrement, la formule proposée par Pedro22 ne fonctionne pas mais elle m'a inspiré la solution gagnante :

  • scinder la cellule concernée (bizarrement le bouton d'Excel s'appelle 'Convertir') en 2 (Date et heure)
  • recoller les 2 dans une 3° cellule :
=CONCATENER(TEXTE(J2;"AAAA/MM/JJ");" ";TEXTE(K2;"hh:mm:ss"))
02/11/2017 12:13:1402/11/201712:13:142017/11/0212:13:14

Et voilà le travail.

Seule frustration, je n'ai toujours pas compris la nature de l'origine du problème.

Merci encore à tous

Seule frustration, je n'ai toujours pas compris la nature de l'origine du problème.

Du coup, comme tu n'as pas mis de morceau de fichier, nous non plus !

Crdlmt

Rien d'anormal que tu trouves un nombre à virgule flottante.
44323,42157, par exemple se décompose en 44323 (07/05/2021) et 0,42157, soit 86400 secondes * 0,42157 = ~36423 secondes, soit 10h07'03"

NB : 86400" dans 1 jour.

Ce qui n'est pas normal, c'est qu'Excel ait considéré cette Colonne comme des Dates alors qu'à l'importation, j'avais imposé que ce soit un texte.
Et après, quand j'ai voulu l'imposer comme texte avec Accueil/Format Texte, c'est le numérique qu'il me convertit en alphanumérique.

Bonjour à tous

On a beau le répéter à longueur d'année : on n'ouvre pas un csv que Excel cuisine à la sauce US, donc mal et comme tout plat raté c'est difficile à récurer

On doit l'importer en paramétrant l'import

En plus tu as 365 où l'import se fait via PowerQuery qui peut très facilement utiliser les bon paramètres...

Rechercher des sujets similaires à "echec traitement chaine caracteres"