CSV日期和分隔符问题

时间:2012-10-12 11:07:45

标签: excel csv formatting separator

我有一个CSV文件,以逗号分隔,我内部有一些日期值,例如"01/13/2010 05:00:00 AM""04/01/2010 05:00:00 AM"。问题是,当我使用Microsoft Excel打开CSV文件时,它们将分别显示为01/13/2010 05:00:00 AM04/01/2010 05:00。第二个值为04/01/2010 05:00:00,但仍显示04/01/2010 05:00。我已经做了一些测试,我已经意识到Excel无法确定哪一天,哪些是几个月的哪个月。实际上,Excel会得到一个字符串:

__/__/____ __:__:__ __

它从最后两个字符(AM / PM)中推导出小时值,它知道分钟和秒是什么,它也决定了它看到四个字符长数序列的年份,所以问题是大约一个月和一天。如果字符串中的第一个和第二个数字都是< = 12,那么就无法确定哪个是月份,哪个是年份,所以它会弄乱我的日期格式。

我希望有一个日期格式,例如

MM/dd/yyyy HH:mm:ss AM/PM

我发现使用名为TEXT的函数可以做到这一点,就像这样:

=TEXT("04/13/2010 05:54:00 AM", "MM/dd/yyyy HH:mm:ss AM/PM")

它就像一个魅力,但它仍然猜测哪一天,哪一个月。但是,假设客户端将具有与CSV中的数据相同的默认日期格式,则不会反转月份和日期。但是,我不想打开Excel并输入公式,因为我需要将此文件提供给客户端,并且它应该在打开文件时显示正确的值。所以,我需要在逗号分隔文件中编写公式,但是...... TEXT是二维的,并且有一个逗号将我的日期与格式分开。

如果我输入:

= ABS(-5),=TEXT("04/13/2010 05:54:00 AM", "MM/dd/yyyy HH:mm:ss AM/PM")

进入我的文件,我会看到3个单元格,第一个是5,第二个是=TEXT("04/13/2010 05:54:00 AM",第三个是"MM/dd/yyyy HH:mm:ss AM/PM")

如何防止此行为?我可以在函数调用中使用其他东西而不是逗号吗?或者我可以更改分隔符吗?或者有更好的解决方案吗?

您能告诉我,了解如何在CSV文件中输入函数调用吗?

提前感谢所有试图提供帮助的人,

LajosÁrpád。

1 个答案:

答案 0 :(得分:2)

  

如果我输入:

= ABS(-5),=TEXT("04/13/2010 05:54:00 AM", "MM/dd/yyyy HH:mm:ss AM/PM")
     

进入我的文件,我会看到3个单元格,第一个是5,第二个是   = TEXT(“04/13/2010 05:54:00 AM”,第三个是“MM / dd / yyyy HH:mm:ss AM / PM”)。

要使此示例有效,您需要用双引号括住第二个数据项以转义逗号。因此,您需要使用双引号将它们解释为双引号内的双引号 - 我希望这是一个可读的句子。

因此,如果您在文件中使用此示例,那么您提供的示例应该有效:

=ABS(-5),"=TEXT(""04/13/2010 05:54:00 AM"", ""MM/dd/yyyy HH:mm:ss AM/PM"")"