我有一个 CSV 文件,以逗号分隔,其中有一些日期值,例如 "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
。我做了一些测试,发现在某些情况下 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 并输入公式,因为我需要将此文件提供给客户,并且每当他们打开该文件时它都应该显示正确的值。因此,我需要在逗号分隔的文件中编写公式,但是...文本是二维的,并且有一个逗号将我的日期与格式分开。
如果我输入:
= 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 文件中输入函数调用吗?
预先感谢所有试图提供帮助的人,
拉约斯·阿帕德。
最佳答案
If I type:
= ABS(-5),=TEXT("04/13/2010 05:54:00 AM", "MM/dd/yyyy HH:mm:ss AM/PM")
into my file, I will see 3 cells, the first being 5, the second is =TEXT("04/13/2010 05:54:00 AM" and the third is "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"")"
关于excel - CSV 日期和分隔符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12857745/