CSVdate和分隔符问题
我有一个CSV文件,用逗号分隔,里面有一些date值,比如"01/13/2010 05:00:00 AM"
或"04/01/2010 05:00:00 AM"
。 问题是,当我用Microsoft Excel打开CSV文件时,它将分别显示为01/13/2010 05:00:00 AM
和04/01/2010 05:00
。 第二个值是04/01/2010 05:00:00
,但仍显示04/01/2010 05:00
。 我做了一些testing,我意识到Excel无法确定哪一天是哪一天,哪几天是几个月。 事实上,Excel获取的string如下所示:
__/__/____ __:__:__ __
它从最后两个字符(AM / PM)中推断出小时的值,它知道分秒是什么,也就是确定了四字符长序列的年份,所以问题是关于月和天。 如果string中的第一个和第二个数字都是<= 12,那么它就不能确定哪个是哪个月份,哪个是年份,所以它弄乱了我的date格式。
我想有一个date格式如
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中的数据相同的默认date格式,则不会反转月份和date。 但是,我不想打开Excel并在其中键入公式,因为我需要将此文件提供给客户端,并且每当打开文件时都应该显示正确的值。 所以,我需要在逗号分隔的文件中写公式,但是… TEXT是二维的,并有一个逗号分隔我的date和我的格式。
如果我input:
= 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")
。
我怎样才能防止这种行为? 我可以在我的函数调用中使用别的东西而不是逗号吗? 或者我可以更改分隔符? 还是有更好的解决scheme?
你能否启发我,学习如何在CSV文件中input函数调用?
预先感谢所有想要帮助的人,
LajosÁrpád。
如果我input:
= 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 /下午”)。
为了使这个例子工作,你需要用双引号包围你的第二个数据项来转义逗号。 因此,您需要使用双引号将它们解释为双引号内的双引号 – 我希望这是一个可读的语句。
因此,如果您在文件中使用此示例,则应该使用该示例:
=ABS(-5),"=TEXT(""04/13/2010 05:54:00 AM"", ""MM/dd/yyyy HH:mm:ss AM/PM"")"