日付形式を変更するこんにちは、
列に「dd.mm.yy」、つまり「03.10.14」という日付が記載された .xlsx データシートを受け取りました。
データを JMP にコピーした後、日付の数値を取得する新しい列を作成し、日付を数値日付型の 1 に変換しました。
2. 通常のモデリングタイプと
3. 「yyyy-mm-dd」の形式にします。
ただし、一部の日付「20.10.15」が新しい列に表示されません。 定義の矛盾はありますか?
この問題を克服する方法を教えてください。
Re: 日付形式を変更する変換を完了するために必要な手順が表示されます。
問題が解決しました。 ありがとう!Re: 日付形式を変更するあなたの問題は、最初の日付フィールドを間違って読んでいることです。最初の日付フィールドの形式は次のとおりです。 「dd.mm.yy」そしてあなたは「mm.dd.yy」であるかのように読みます。numdate 値が newdate 値と一致しないことがわかるデータテーブルを添付しました。データ テーブルに、Character Date 列を作成しました。この列は、数式で format() 関数を使用して文字値を計算します。
Re: 日付形式を変更する長文のご返信ありがとうございます。
データシートで作業し、「文字日付」を数値日付、列「numdate」に変換しました。 その後、数値日付を希望の形式、列「newdate」に変換します。 ただし、何らかの理由で、「日付」列に記載されている一部の日付では新しい日付が表示されません。 特定の日付 (12.11.14 など) を取得せず、numdate 値を新しい形式に変換しないのはなぜですか?
実際にデータを確認できるように、データを含む jmp テーブルを添付しました。 これが問題の解決に役立つことを願っています。
よろしくお願いします、マーク
<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: 日付形式を変更するあなたの回答と質問は、JMP が日付値をどのように処理するかを理解していないように思えます。JMP は、1904 年 1 月 1 日午前 0 時からの秒数に等しい数値を使用して日付と時刻を処理します。JMP がこれを 09Feb2015 や 02/09/2015 などの表示に変換する方法は、数値を含む列に JMP 形式を設定することです。
したがって、「25.04.15」のような値を持つ「Date」という名前の文字列があり、それを JMP Date 値に変換したい場合は、新しい列を作成し、次の式を適用すると、
Date DMY(
Num( Left( Char( :Date ), 2 ) ),
Num( Substr( Char( :Date ), 4, 2 ) ),
Num( "20" || Right( Char( :Date ), 2 ) )
)
の文字値を受け取ります「25.04.15」そしてそれをに変換します3512764800 。これは、1904 年 1 月 1 日午前 0 時から 2015 年 4 月 25 日午前 0 時までの秒数です。ここで欠けているのは、データを秒数で表示したくないということです。必要なのは、2015 年 4 月 25 日にデータ テーブルとレポートに値が表示されることです。これを行うには、列の形式を「yyyy-mm-dd」に設定するだけです。この数値形式で日付を保存する利点は、データを日付順に並べ替えたり、値の加算や減算を実行したり、平均日付などを計算したりできることです。
以下は、実行すると、dd.mm.yy の構造を持つ 1 文字の列を持つデータ テーブルを作成する小さなスクリプトです。次に、スクリプトは数値の JMP Date 列を作成し、表示構造を yyyy-mm-dd に変更します。 次に、ストリップは続行して文字列を作成し、文字列の日付列の値を操作して「yyy-mm-dd」構造の新しい文字列を作成します。
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: 日付形式を変更する

Re: 日付形式を変更する1. 元の日付列: 文字、序数
2.dd.mm.yyyy
文字列の変更について詳しく調べなくても、空の新しい列を再度作成しないと別のデータ型/モデリング型に変更できないため、数式によって自動的に文字列が書式設定されたと思います。
Re: 日付形式を変更するこのような文字の日付構造が出力できることに自信を持っています。いくつか質問があります。
- 元の列の形式は何ですか?
- 数字/文字
- キャラクターの場合、その構造は何ですか、20JUL2019 または 07/20/2019 または何ですか?
- 新しい列を文字列にする必要があるのはなぜですか?
Re: 日付形式を変更するジム、
もう 1 つマイナーですが重要な点ですが、データ型「char」を使用すると、yyyy-mm-dd のような数値出力日付を取得できない可能性がありますか? 上記のように、文字型の日付を含む新しい列を出力に変更するために別の列を確立しようとしましたが、作成できませんでした。
追加の解決策があれば教えてください。
ありがとう、
マルク
Re: 日付形式を変更するこんにちは、ジムさん
出来た! ありがとう! 私がしなければならなかったのは、式から DMY を削除することだけでした。
素晴らしい。
ありがとうございました、
マルク
Re: 日付形式を変更するここでは、入力した列の適切な部分が日、月、年に対して確実に選択されるようにするために必要なことを行う簡単な方法を示します。
データを入力してください
新しい数値列を作成し、列情報で必要な日付形式を使用するように指定します。
列で次の式を使用して、元の列のデータを JMP 数値日付列に変換します。
Date DMY(
Num( Left( Char( :yourcolname ), 2 ) ),
Num( Substr( Char( :yourcolname ), 4, 2 ) ),
Num( "20" || Right( Char( :yourcolname ), 2 ) )
)
Re: 日付形式を変更するこんにちは、ジムさん
JMP で xlsx ファイルを直接開くことができるとは思っていませんでしたが、試してみましたが、開くことができませんでした。
「日付」列は文字/序数です。 新しい列では、数値/序数に変更し、yyyy-mm-dd にフォーマットしました。 数値に変更すると数値が得られ、それを yyyy-mm-dd にフォーマットしました。
JMP を文字列 = 月の値であると認識して変更するにはどうすればよいですか?
ご協力ありがとうございました、
マルク
Re: 日付形式を変更するいくつか質問があります:
- xlsx データを JMP に取り込むにはどうすればよいですか?「コピーしてから」って言うんです。これはコピーして新しい JMP データ テーブルに貼り付けるものですか?File==>Open だけを実行してから、xlsx ファイルを指定してその方法で開いてみましたか?
- データを JMP に「コピー」したら、「03.10.14」データが含まれる列のデータ型は何ですか?
- 「03.10.14」データのデータ型が文字であると仮定すると、新しい列でそれを数値データ型に変換するためにどのような手順を使用していますか?
「20.10.15」の値に関する問題は、どういうわけか JMP が文字列の最初の値が日の値ではなく月の値であると考えていることだと思います。