Excel からファイルをインポートした後に日付を変換する問題組織内の全員が会社のデータベースにアクセスできるわけではないため、多くのユーザーは Excel を使用してデータを保存していると思います。
日付列の行間にデータが欠落していると、日付が正しくインポートされないことがわかりました (JMP が同じ列内のテキストと数値を処理できないということですか?)。
Excel のインポート後に日付形式が 01/01/1904 に戻ることに関するいくつかの議論を要約します (Excel からのインポート - 文字としての日付の問題)。
1) https://community.jmp.com/t5/Discussions/Need-help-converting-a-date-format-from-character-to-numeric-in/mp/356131#M60603
2) https://community.jmp.com/t5/Discussions/probl%C3%A8me-importation-date-%C3%A0-partir-d-excel/mp/601264#M80458
例:
変換したい数値 45008.078125 (Excel からインポート後の JMP 数値) を 2023 年 3 月 23 日 1:52:30 AM (Excel の実際のデータに従って) に変換します。
JMP から受け取った最初の解決策は、以下のリンクにあるアドインをインストールすることです。
https://community.jmp.com/t5/JMP-Add-Ins/Data-Table-Tools-Add-in/tac-p/653491#M1772
(ただし、この場合アドインは使用できないため、日付式を使用することが提案されました。正しい日付を取得するには、マイナス 2 日を使用して式を編集する必要があります)
手順:
1) 日付列を文字から数値にフォーマットします。
2) 以下のように新しい列式を作成します。
As Date( In Days( :Diebond End Date JMPImport) + Informat ("1/1/1900", "<MM><D><YYYY><HH><:><MM><:><SS><AMPM>")) - In Days( 2 )</AMPM></SS></MM></HH></YYYY></D></MM>
JMP の式では 1900 年 1 月 1 日を使用することになっていますが、どういうわけか 2 日を超えています。 どうしてこんなことに?
3) フォーマットパターンを希望のフォーマットに設定します
フォーマットパターンを設定しました: <:><:>
添付ファイルの JMP ファイルの例 (ダイボンド終了日 Excel の 5 つの空のセル)
JMP17.0.0を使用しています。
JMP 17.1 でこの問題が解決されたかどうかはわかりません。
自動化とスクリプト作成データのブレンディングとクリーンアップRe: Excel からファイルをインポートした後に日付を変換する問題こんにちは@WebDesignesCrow , (アドインページにも投稿しました)
JMP の計算は正しいです。たとえば、1900 年 1 月 1 日の 0000 から 45008 日は、2023 年 3 月 23 日ではなく、2023 年 3 月 25 日の 0000 になります。
その理由は次のとおりです。
1900 年から 2019 年までは、それぞれ 4 年間の 30 の「ブロック」を表します。 各「ブロック」には、1900 年のブロックを除いて、(366 + 365 + 365 + 365) = 1461 日が含まれます。年が 100 で割り切れるが 400 で割り切れない場合、その年はうるう年ではないため、1900 年はうるう年ではありません。うるう年。
したがって、1900 年から 2019 年までは 1461 * 30 - 1 = 43829 日になります。
2020、2021、2022 には (366 + 365 + 365) 日が加算されます。
2023 年の 1 月、2 月には (31 + 28) 日が追加されます。
2023 年 3 月には 24 日追加され、25 日に 0000 になります。
この合計は、43829 + 366 + 365 + 365 + 31 + 28 + 24 = 45008 となります。 残りの小数部分は、2023 年 3 月 25 日の時、分、秒を示します。
Excel で何が行われているのかはわかりませんが、日付範囲を手動で計算するときに (Excel ファイルの場合と同様に) よくあるエラーがいくつかあります。
a) 100 で割り切れるすべての年を閏年として扱います。
b) 400 で割り切れる年を閏年として扱わない。
c) エンドポイントの誤用により、カウントする日数が少なすぎる、または多すぎる。 例えば、
-- 1 月 1 日の午前 0 時から 1 日は、1 月 1 日ではなく 1 月 2 日になります。
-- 20 日から 24 日までは 5 日を表し、24-20 = 4 日ではありません...など。
これがお役に立てば幸いです、
ブレイディ
Re: Excel からファイルをインポートした後に日付を変換する問題あなたはこう尋ねました、「 JMP では同じ列内のテキストと数値を処理できないということでしょうか?」
それは正しいです。 Excel は表計算アプリケーションです。 スプレッドシートはセルに基づいています。 JMP は統計アプリケーションです。 これは、変数 (列) と観測値 (行) を含むデータ テーブルに基づいています。 変数には 1 つのデータ型とモデリング型のみを含めることができます。
Re: Excel からファイルをインポートした後に日付を変換する問題Microsoft Excel は 1900 年をうるう年のままにしました (1900 年がうるう年だったため)ロータス 1-2-3)あまりにも多くのものを壊すことになるので、意図的に。 からもう少し詳しく読むことができますExcel は 1900 年をうるう年と誤って想定します (learn.microsoft.com)
Re: Excel からファイルをインポートした後に日付を変換する問題ああ!
説明ありがとうございます@jthi