从 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 数值)转换为 3/23/2023 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 公式假设使用 01/Jan/1900,但不知何故它超过了 2 天。 为什么会这样?
3)将格式模式设置为所需的格式
我设置格式模式: <:><:>
附件中的 JMP 文件示例(Diebond 结束日期 Excel 中的 5 个空单元格)
我正在使用 JMP 17.0.0。
不确定 JMP 17.1 是否解决了此问题。
自动化和脚本编写数据混合和清理回复:从 Excel 导入文件后转换日期问题你好@WebDesignesCrow ,(我也在插件页面上发布了这个)
JMP的计算是正确的;例如,从 0000 算起 45008 天,1900 年 1 月 1 日是 0000,即 2023 年 3 月 25 日,而不是 2023 年 3 月 23 日。
原因如下:
1900 年至 2019 年(含)代表 30 个“区块”,每个区块为期 4 年。 每个“块”包含 (366 + 365 + 365 + 365) = 1461 天,除了年份为 1900 的块。1900 不是闰年,因为如果年份可以被 100 整除,但不能被 400 整除,那么该年份就不是闰年。闰年。
因此,从 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 日午夜起 1 天是 1 月 2 日,而不是 1 月 1 日。
-- 20 日 - 24 日(含)代表 5 天,而不是 24-20 = 4 天...等等。
我希望这有帮助,
布雷迪
回复:从 Excel 导入文件后转换日期问题你问, ”这是否意味着 JMP 无法处理同一列中的文本和数值?”
那是对的。 Excel 是一个电子表格应用程序。 电子表格基于单元格。 JMP 是一个统计应用程序。 它基于包含变量(列)和观察值(行)的数据表。 变量只能有一种数据类型和建模类型。
回复:从 Excel 导入文件后转换日期问题Microsoft Excel 将 1900 年设为闰年(因为 1900 年是这样的)莲花1-2-3)故意的,因为它会破坏太多东西。 您可以阅读更多内容Excel 错误地假定 1900 年是闰年 (learn.microsoft.com)
回复:从 Excel 导入文件后转换日期问题啊哈!
非常感谢您的解释@jthi