2014-01-20 100 views
1

我有一個包含數千行的列。該列意味着日期,格式爲dd/mm/yyyy在Excel中格式化的日期

但是,當我嘗試根據日期進行配方時,顯然有些問題。

例如,如果您嘗試對日期應用自動篩選,則其中一些會使用可展開框分組爲一年,而另一些則顯示爲自己的項目。

對於每條記錄,我嘗試了一個公式來解析它。 =DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2))

這沒有幫助。

我也選擇了列,並交換了它從一般到日期格式

我真的不知道該怎麼問這個問題更清楚。我可以告訴你,在我運行=year(right(A1,4))時,格式爲1/11/2013的日期,我得到1903而不是2013。當我運行=date(right(A1,4),mid(A1,3,2),left(A1,2))公式返回2/10/3192

+0

如果將列的格式更改爲常規,那麼一些日期是否保留'/'? – pnuts

回答

3

這很簡單,爲什麼你的公式不能正常工作。當你使用類似這樣的東西時:RIGHT(A2,4),你的值從A2轉換爲41579(2013年1月11日)(Excel將所有日期存儲爲整數,所有時間都以小數部分存儲,你可以閱讀更多here)。接下來公式應正常工作:

=DATE(RIGHT(TEXT(A2,"dd/mm/yyyy"),4),MID(TEXT(A2,"dd/mm/yyyy"),4,2),LEFT(TEXT(A2,"dd/mm/yyyy"),2)) 

順便說一句,如果你想獲得正確格式的日期,你可以在一些空列中添加公式(而之前此列設定的日期格式):

=A2*1 

並將其拖下。然後從這個臨時列中的值複製,並在colunm A使用「粘貼special->值」粘貼它們(這裏應該是日期格式以及)

enter image description here

或者你可以使用這個簡單的宏:

Sub test() 
    With Range("A2:A100") 
     .NumberFormat = "dd/mm/yyyy" 
     .Value = .Value 
    End With 
End Sub 
+0

感謝您的信息。你能否澄清一下你的句子:「順便說一句,如果你想得到正確的日期格式,你可以在一些空列中添加公式(但是在這個列的設置日期格式之前): 」這是否意味着如果我這樣做我不需要輸入您提供的配方? –

+0

@DougFirr,使用我的宏更容易。或者你可以做以下事情:讓你的日期在'A2:A100'中。讓你的列'Z'是空的。選擇列'Z'併爲其應用日期格式。在'Z2'公式'= A2 * 1'中寫入,並將其拖動到'Z100'。選擇列'A'並應用日期格式。複製'Z2:Z100'中的值,並在'A2:A100'中粘貼特殊值>粘貼值。這是所有) –

+0

如果您有其他問題,請詢問:) –