changer le format de la dateSalut,
J'ai reçu une fiche technique .xlsx avec la date suivante "jj.mm.aa" dans une colonne, soit "03.10.14".
Après avoir copié les données dans JMP, j'ai créé une nouvelle colonne pour obtenir le numéro numérique de la date et j'ai converti la date en 1. un type de date numérique avec
2. un type de modélisation ordinale et
3. formatez au format « aaaa-mm-jj ».
Cependant, certaines dates "20.10.15" n'apparaissent pas dans ma nouvelle colonne. Y a-t-il un conflit de définition ?
Veuillez indiquer comment je peux surmonter ce problème.
Re : changer le format de la dateJe vois l'étape nécessaire pour terminer la conversion.
Problème résolu. Merci!Re : changer le format de la dateVotre problème est que vous lisez mal le champ de date initial.Le champ de date initial est au format "jj.mm.aa" et vous êtes en le lisant comme s'il s'agissait de "mm.jj.aa".J'ai joint votre tableau de données où l'on peut voir que la valeur numdate ne correspond pas à votre valeur newdate.Dans le tableau de données, j'ai créé une colonne Date de caractère, qui utilise une fonction format() dans la formule pour déterminer la valeur du caractère.
Re : changer le format de la dateMerci pour votre réponse étendue.
J'ai travaillé sur la fiche technique et converti la "date du caractère" en une date numérique, colonne "numdate". Ensuite, j'ai converti la date numérique dans le format que je voulais, colonne "newdate". Cependant, pour une raison quelconque, la nouvelle date ne s'affiche pas pour certaines dates indiquées dans la colonne « date ». Pourquoi ne prend-il pas certaines dates, par exemple 12.11.14, et ne convertit-il pas la valeur numdate dans le nouveau format ?
J'ai joint un tableau jmp avec les données pour que vous puissiez réellement voir les données. J'espère que cela pourrait aider à résoudre le problème.
Merci d'avance Marc
<SPAN class="token function">Date DMY</SPAN><SPAN class="token punctuation">(</SPAN>
<SPAN class="token function">Num</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Left</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Char</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Date <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">2</SPAN> <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">Num</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Substr</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Char</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Date <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">4</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">2</SPAN> <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">Num</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token string">"20"</SPAN> <SPAN class="token operator">||</SPAN> <SPAN class="token function">Right</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token function">Char</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Date <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">2</SPAN> <SPAN class="token punctuation">)</SPAN> <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN>
Re : changer le format de la dateVos réponses et questions me semblent indiquer que vous ne comprenez pas comment JMP gère les valeurs de date.JMP gère les dates et les heures en utilisant une valeur numérique égale au nombre de secondes écoulées depuis minuit, le 1er janvier 1904.La façon dont JMP convertit cela en l'un des affichages du 09 février 2015, ou du 02/09/2015, etc. consiste à définir un format JMP sur la colonne contenant les valeurs numériques.
Par conséquent, si vous avez une colonne de caractères, appelée "Date", avec des valeurs telles que "25.04.15", et que vous souhaitez la convertir en valeur de date JMP, vous pouvez créer une nouvelle colonne et si vous appliquez la formule suivante :
Date DMY(
Num( Left( Char( :Date ), 2 ) ),
Num( Substr( Char( :Date ), 4, 2 ) ),
Num( "20" || Right( Char( :Date ), 2 ) )
)
il prendra la valeur de caractère de "25.04.15" et convertissez-le en 3512764800 . Il s'agit du nombre de secondes entre minuit le 1er janvier 1904 et minuit le 25 avril 2015. Maintenant, ce qui manque, c'est que vous ne voulez pas que les données soient affichées en nombre de secondes.Ce que vous souhaitez, c'est que la valeur soit affichée dans le tableau de données et sur vos rapports le 25/04/2015. Pour ce faire, il vous suffit de définir le format de la colonne sur « aaaa-mm-jj ».L'avantage de stocker les dates sous cette forme numérique est que l'on peut ensuite trier les données par date, et faire des additions et des soustractions sur les valeurs, ou même calculer la date moyenne, etc.
Vous trouverez ci-dessous un petit script qui, lorsque vous l'exécuterez, créera une table de données avec une seule colonne de caractères ayant la structure jj.mm.aa.Le script crée ensuite une colonne de date JMP numérique en modifiant la structure d'affichage en aaaa-mm-jj. Le stript continue ensuite et crée une colonne de caractères, qui manipule la valeur des colonnes de caractères Date dans une nouvelle chaîne de caractères de la structure "aaa-mm-jj".
Names Default To Here( 1 );
// Create a beginning data table
dt = New Table( "Dates",
New Column( "Date",
Character,
ordinal,
Values( {"25.04.15", "22.09.15", "03.11.15"} )
)
);
// Create a new numeric column that contains a JMP date value
// and tell JMP to format the numeric value using a
// yyy-mm-dd structure
dt << New Column( "Numeric Date",
formula(
Date DMY(
Num( Left( Char( :Date ), 2 ) ),
Num( Substr( Char( :Date ), 4, 2 ) ),
Num( "20" || Right( Char( :Date ), 2 ) )
)
),
format("yyyy-mm-dd")
);
// Create a new character column that rearanges the data from
// from the character column "Date"
dt << New Column( "Character Date",
character,
formula(
"20" || Right( Char( :Date ), 2 ) || "-" ||
Substr( Char( :Date ), 4, 2 ) || "-" || Left( Char( :Date ), 2 )
)
);Re : changer le format de la date

Re : changer le format de la date1. colonne de date originale : caractère, ordinal
2. jj.mm.aaaa
Sans chercher plus loin dans la modification de la colonne de caractères, je crois que la formule l'a formatée automatiquement en caractère, car je ne peux pas passer à un autre type de données/type de modélisation sans avoir à nouveau une nouvelle colonne vide.
Re : changer le format de la dateJe suis convaincu qu'une telle structure de date de caractère peut être générée.J'ai quelques questions.
- Quel est le format de la colonne d'origine ?
- Numérique/Caractère
- Si Personnage, quelle est sa structure, 20 JUILLET 2019 ou 20/07/2019, ou quoi ?
- Pourquoi avez-vous besoin que la nouvelle colonne soit une colonne de caractères ?
Re : changer le format de la dateJim,
encore un point mineur mais important, est-il possible que lors de l'utilisation du type de données "char", je ne puisse pas obtenir une date de sortie numérique comme aaaa-mm-jj ? J'ai essayé d'établir une autre colonne pour passer de la nouvelle colonne avec une date de caractère à une sortie comme mentionné ci-dessus mais je n'ai pas pu la créer.
S'il vous plaît laissez-moi savoir si vous avez une solution supplémentaire!
Merci,
Marc
Re : changer le format de la dateSalut Jim,
Ça a marché! Merci! La seule chose que je devais faire était de supprimer DMY de la formule !
Génial.
Merci encore,
Marc
Re : changer le format de la dateVoici un moyen simple de faire ce dont vous avez besoin pour garantir que les parties appropriées de votre colonne saisie sont sélectionnées pour le jour, le mois et l'année.
Saisissez vos données
Créez une nouvelle colonne numérique et spécifiez dans Col Info d'utiliser le format de date souhaité.
Utilisez la formule suivante dans la colonne pour convertir les données de votre colonne d'origine en une colonne de date numérique JMP.
Date DMY(
Num( Left( Char( :yourcolname ), 2 ) ),
Num( Substr( Char( :yourcolname ), 4, 2 ) ),
Num( "20" || Right( Char( :yourcolname ), 2 ) )
)
Re : changer le format de la dateSalut Jim,
Je n'ai jamais pensé pouvoir ouvrir un fichier xlsx directement dans JMP, j'ai essayé et je n'ai pas pu l'ouvrir.
La colonne "date" est un caractère/ordinal. Dans la nouvelle colonne, je l'ai changé en numérique/ordinal et formaté en aaaa-mm-jj. Le changement en numérique a abouti à la valeur numérique, que j'ai ensuite formatée en aaaa-mm-jj.
Que dois-je faire pour changer JMP en pensant qu'il s'agit d'une chaîne = valeur mensuelle ?
Merci pour votre aide,
Marc
Re : changer le format de la dateJ'ai quelques questions:
- Comment importer vos données xlsx dans JMP ?Vous dites "Après la copie".S'agit-il d'un copier-coller dans une nouvelle table de données JMP ?Avez-vous simplement essayé un File==>Open, puis en pointant vers le fichier xlsx et en l'ouvrant de cette façon ?
- Une fois que vous avez « copié » les données dans JMP, quel est le type de données de la colonne contenant les données « 03.10.14 » ?
- En supposant que les données « 03.10.14 » ont un type de données Caractère, quelles sont les étapes que vous utilisez dans la nouvelle colonne pour les convertir en type de données Numérique ?
Je soupçonne que votre problème avec les valeurs "20.10.15" est que JMP pense que les premières valeurs de la chaîne sont la valeur du mois et non la valeur du jour.