Connexion

Besoin d'aide ? Une question ? Un avis ? Rejoignez nous sur notre salon IRC pour clavarder

Forum

Logiciels » Bureautique Calc : convertir texte "mm/jj/aa" en nombre date Issu de format CSV

mabthera Membre non connecté

Rang

Avatar

Inscrit le : 10/06/2019 à 11h58

Localisation : Finistère

Messages: 212

Le 12/10/2020 à 18h25
Bonjour,
J'ai fait un export agenda Thunderbird en CSV pour le récupérer sous Calc. La colonne date apparait sous la forme texte par ex. 04/19/20 pour un évènement du 19 avril 2020. J'aimerais le transformer en nombre format date par une fonction Calc pour l'exploiter (tri, etc.). Comment faire ?

PS : les autres exports possibles sont ICS et html, mais cela ma paraît encore moins exploitable sous CALC.
   
Jybz Membre non connecté

Rang

Avatar

Modérateur Administrateur

Inscrit le : 10/10/2018 à 10h26

Messages: 3289

Le 12/10/2020 à 20h09
Avec calc, je ne sais pas.
Sinon, passes le par une commande shell (ou script), pour mettre la date dans un vrai format standard, genre iso-8601 :
2020-04-19
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 2872

Le 12/10/2020 à 20h14
Bonjour,

Et en démarrant calc depuis une console, précédé de la commande LC_ALL=C ? ;-)

Peut être que le LC_ALL est un peu violent... Edité par nic80 Le 12/10/2020 à 20h15
   
Ami age Membre non connecté

Rang

Avatar

Modérateur

Inscrit le : 18/08/2012 à 10h28

Localisation : France

Messages: 4623

Le 12/10/2020 à 20h29
poste un ficher avec une ligne concernée que l"on puisse essayer

En personnalisant le format de la colonne, ça devrait le faire je pense . Edité par Ami age Le 12/10/2020 à 20h30


.
_____________________________________ :silence: :silence: :silence:
::d . .Un petit clic pour Mageia ? =>> CLIQUEZ I C I :
.
Site web    
mabthera Membre non connecté

Rang

Avatar

Inscrit le : 10/06/2019 à 11h58

Localisation : Finistère

Messages: 212

Le 12/10/2020 à 20h53
Il y a bien une fonction de Calc qui permet de transformer un texte (caractères) en nombre ?
Je peux travailler la colonne en mode text pour la présenter différemment (en restant en mode text, supprimer les "/" ou la mettre au format 2020-04-19), ce n'est pas un problème. Le problème est le passage du text en nombre (standard, puis format date).
   
mabthera Membre non connecté

Rang

Avatar

Inscrit le : 10/06/2019 à 11h58

Localisation : Finistère

Messages: 212

Le 12/10/2020 à 21h47
Pour transformer la colonne, j'y suis allé comme un bourrin :
  • supprimer tous les / de la colonne (en mode texte) et obtenir des cellules avec 6 caractères
  • extraire les 4 premiers chiffres avec la fonction GAUCHE (A2;4)
  • extraire les 2 derniers chiffres DROITE(B2;4) --> JOUR
  • extraire les 2 premiers chiffres GAUCHE(B2;4) --> MOIS
  • extraire les 2 derniers chiffres DROITE(A2;4) --> ANNÉE
  • fonction =DATE(C2;D2;E2), soit JOUR + MOIS + ANNÉE,
  • pour le transformer en nombre, appliquer la fonction CNUM
  • faire copier/collage spécial nombre par écrasement pour avoir une colonne sans formule

Cela marche, mais il y a sans doute plus simple
Edité par mabthera Le 12/10/2020 à 21h53
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 2872

Le 12/10/2020 à 21h52
Bonjour,

Pas sur que ce soit moins " bourrin"

calc_-_conversion_date

Bon après auparavant j' avais fait ceci:

calc_-_conversion_1

Peut être que ça aide...

DATEVAL:
calc-conversion_2 Edité par nic80 Le 12/10/2020 à 21h58
   
mabthera Membre non connecté

Rang

Avatar

Inscrit le : 10/06/2019 à 11h58

Localisation : Finistère

Messages: 212

Le 12/10/2020 à 21h56
Avec CNUM, on peut transformer un texte en nombre, puis copie/colle format nombre avec écrasement (j'ai complété mon post précédent).

Édit : avec DATEVAL, j'obtiens une erreur, c'est pourquoi j'ai cherché une autre méthode. Mais tu as raison, il y a sans doute des paramètres à revoir Edité par mabthera Le 12/10/2020 à 22h00
   
mabthera Membre non connecté

Rang

Avatar

Inscrit le : 10/06/2019 à 11h58

Localisation : Finistère

Messages: 212

Le 12/10/2020 à 22h03
YES ! Merci pour les paramètres, cela marche !
En revanche, je pensais que CNUM marchait, mais non, je crois que cela reste du texte Edité par mabthera Le 12/10/2020 à 22h09
   
nic80 Membre non connecté

Rang

Avatar

Inscrit le : 06/08/2018 à 23h52

Messages: 2872

Le 12/10/2020 à 22h09
Bonjour,

Dans mon exemple, j' ai rajouté le type de format M/D/Y ( mois/jour/année). Je pense que sans ça, 04/19/20 n' est pas une date valide (je n' ai pas croisé de mois 19 récemment sur le calendrier ! ;-) ).

edit: nos post se sont croisés... Edité par nic80 Le 12/10/2020 à 22h10
   
mabthera Membre non connecté

Rang

Avatar

Inscrit le : 10/06/2019 à 11h58

Localisation : Finistère

Messages: 212

Le 12/10/2020 à 22h11
Oui, c'est cela. Il me reste à changer le texte en nombre
   
mabthera Membre non connecté

Rang

Avatar

Inscrit le : 10/06/2019 à 11h58

Localisation : Finistère

Messages: 212

Le 12/10/2020 à 22h27
J'ai trouvé autre chose : quand je copie 04/19/20 et colle spécial "texte non formaté", il me propose de répartir le texte sur plusieurs colonnes avec le séparateur de mon choix, ici le "/" et j'obtiens mes 3 colonnes avec les champs séparés et je peux appliquer la fonction DATE(ANNÉE;MOIS;JOUR).

Cela servira peut être avec les colonnes : 10:45:00 AM
Je ne sais pas si Calc sait traiter les heures comme les dates.
   
Jybz Membre non connecté

Rang

Avatar

Modérateur Administrateur

Inscrit le : 10/10/2018 à 10h26

Messages: 3289

Le 13/10/2020 à 02h12
Sinon, date+heure, tu peux obtenir le nombre de secondes depuis epoch directement.
   
ducyp9 Membre non connecté

Rang

Avatar

Inscrit le : 23/05/2011 à 21h29

Localisation : Nancy

Messages: 54

Le 13/10/2020 à 12h12
mabthera :
Je ne sais pas si Calc sait traiter les heures comme les dates.

Pour les heures il y a TEMPS(HEURES;MINUTES;SECONDES).
mabthera :
Pour transformer la colonne, j'y suis allé comme un bourrin :

supprimer tous les / de la colonne (en mode texte) et obtenir des cellules avec 6 caractères
extraire les 4 premiers chiffres avec la fonction GAUCHE (A2;4)
extraire les 2 derniers chiffres DROITE(B2;4) --> JOUR
extraire les 2 premiers chiffres GAUCHE(B2;4) --> MOIS
extraire les 2 derniers chiffres DROITE(A2;4) --> ANNÉE
fonction =DATE(C2;D2;E2), soit JOUR + MOIS + ANNÉE,
pour le transformer en nombre, appliquer la fonction CNUM
faire copier/collage spécial nombre par écrasement pour avoir une colonne sans formule

Voici une possibilité en utilisant la fonction STXT(texte;début;nombre). Elle permet d'extraire dans l'ordre jour, mois et année en évitant les fonctions DROITE ET GAUCHE.
la cellule A1 contient 04/19/20 sous la forme de texte.
la cellule B1 contient la formule =(CNUM(CONCATENER(STXT(A1;4;2);"/";STXT(A1;1;2);"/";STXT(A1;7;2))))
recopie de la formule
faire copier/collage spécial nombre par écrasement pour avoir une colonne sans formule

   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie