2012-10-12 83 views
2

我有一個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中得到類似的字符串:CSV日期和分隔符問題

__/__/____ __:__:__ __ 

它從最後兩個字符推斷(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文件中輸入函數調用?

在此先感謝大家誰試圖幫助,

阿帕德·拉約什。

+1

出了什麼問題「的第二個值是04/01/2010 05:00:00,但它仍然顯示04/01/2010 05:00「? –

+0

最初的文件是04/01/2010 05:00:00 AM,我希望在邏輯上都具有該值,並以可視方式查看該值。相反,Excel中的值是04/01/2010 05:00:00,我看到04/01/2010 05:00。這是一個問題,因爲我需要以MM/dd/yyyy HH:mm:ss AM/PM的格式同時顯示值和可視化表示。感謝您的評論。 –

回答

2

如果I型:

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

到我的文件,我會看到3個細胞,第一個是5,第二是 = TEXT(「2010年4月13日5時54分○○秒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"")" 
+0

非常好,如果可以的話,我會兩次提高您的答案。 –

+1

謝謝,很高興幫助。順便說一下,我從來沒有想過在CSV文件中使用函數之前,這是一個聰明的做法。 –