Excel日期转换错误

时间:2014-03-17 11:05:32

标签: sql sql-server excel excel-vba jdedwards vba

感谢您的检查。 我将JDE(JD Edwards企业资源计划应用程序)中的DUMP导出到excel文件。我打算将excel文件导入MS SQL Server,以便每个部门都可以从我的应用程序运行报告,然后我将导出为ex​​cel文件。 但我遇到的问题是我导入的excel文件中的日期格式不同。一些是字符串,而一些是日期,虽然它们看起来像一个有效的日期。这同样适用于包含每笔交易总金额的字段。因此,当我尝试导入到MS SQL时,所有非日期格式的数据都将替换为null。 请不要知道我如何使日期列中的所有值具有相同的数据类型。我尝试过使用以下建议,但还没有得到结果。 =DATEVALUE(10/03/2014) `10/03/2014

任何建议都将不胜感激。即使它是一个宏。

2 个答案:

答案 0 :(得分:1)

我解决了一个与上述类似的问题,可能对某人有所帮助。 Excel 将从 CSV 导入的日期解释为文本 (mm/dd/yy),有些解释为日期 (mm/dd/yyyy),但应用了我的本地设置 (dd/mm/yyyy)。以下修复了文本和日期的混合:

=IFERROR(
DATE(
MID(B1,FIND("/", B1,FIND("/", B1)+1)+1,LEN(B1)-(FIND("/", B1,FIND("/", B1)+1)))+2000,
LEFT(B1,FIND("/", B1)-1),
MID(B1,FIND("/", B1,FIND("/", B1))+1,FIND("/", B1,FIND("/", B1)+1)-FIND("/", B1)-1)),
DATE(YEAR(B1),DAY(B1),MONTH(B1)))

第一个“DATE”使用文本中的“/”字符来提取日期。

  • 注意:公式假定 yy 为 20yy。

最后一个“DATE”颠倒了错误解释日期的“DAY”和“MONTH”。

当“FIND”在 Excel 日期 (456789) 中找不到“/”时,“IFERROR”默认为最后一个日期。

答案 1 :(得分:0)

日期格式的windows / excel区域设置是否与JDE转储不同?

通过更改格式检查可识别的“日期”,将月份显示为文本,以验证其实际解释是否正确。