Note: The other languages of the website are Google-translated. Back to English

在Excel中輸入或更改日期後,如何自動對日期進行排序? 

在Excel中, 分類 函數可以幫助您根據需要以升序或降序對日期進行排序。 但這不是動態的,如果您對日期進行了排序,然後向其添加了新日期,則需要再次對其進行排序。 在工作表中每次輸入新日期時,是否有任何好的快速方法可以自動對日期進行排序?

使用公式輸入或更改日期時自動排​​序日期

使用VBA代碼輸入或更改日期時自動排​​序日期


箭頭藍色右氣泡 使用公式輸入或更改日期時自動排​​序日期

例如,A列中的原始日期,以下公式可幫助您根據要排序的列自動對新助手列中的日期或任何其他文本字符串進行排序,請執行以下操作:

1。 輸入以下公式:

=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,"<="&$A$2:$A$15),0)) 放入日期列旁邊的空白單元格中, C2,例如,然後按 Ctrl + Shift + Enter 鍵,您將獲得一個數字序列,然後將填充手柄向下拖動到要使用的單元格,請參見屏幕截圖:

備註:在上式中: A2:A15 是您要自動排序的原始日期範圍。

doc按日期自動排序1

2. 然後通過單擊將數字格式化為日期格式 短期約會 來自 一般 下的下拉列表 首頁 標籤,請參見屏幕截圖:

doc按日期自動排序2

3。 然後,序列號已轉換為日期格式,並且原始日期也已排序,請參見屏幕截圖:

doc按日期自動排序3

4。 從現在開始,當您輸入新日期或更改A列中的日期時,C列中的日期將自動按升序排序,請參見屏幕截圖:

doc按日期自動排序4


箭頭藍色右氣泡 使用VBA代碼輸入或更改日期時自動排​​序日期

當您輸入新日期或根據需要更改日期時,以下VBA代碼可以幫助您自動對原始列中的日期進行排序。

1。 輸入或更改日期時,轉到要自動對日期進行排序的工作表。

2。 右鍵單擊工作表標籤,然後選擇 查看代碼 從上下文菜單中,彈出 Microsoft Visual Basic for Applications 窗口,請複制以下代碼並將其粘貼到空白處 模塊 窗口,請參見屏幕截圖:

VBA代碼:輸入或更改日期時自動排​​序:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

doc按日期自動排序6

備註:在上面的代碼中,輸入的日期將在A列中自動排序,您可以更改 A1A2 到您自己所需的單元格。

3。 從現在開始,當您在A列中輸入日期時,該日期將自動升序排序。


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (15)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
你忘了說公式是數組,你需要ctrl+Shift+回車。 幸運的是你有截圖,否則你的頁面會浪費網絡空間
網站主持人對此評論進行了最小化
如果列表中有重複的日期怎麼辦? 我希望這兩個數字都出現。
網站主持人對此評論進行了最小化
你好,瑞安,

要使用重複的日期對日期進行排序,您應該應用以下公式:

=IFERROR(INDEX($A$2:$A$11,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$11,"<="&$A$2:$A$11),0)),IF(ROWS($A$2:A2)<ROWS($A$2:$A$11),B3,""))

請記住同時按 Shift + Ctrl + Enter 鍵。

希望對你有幫助,謝謝!
查看附件 (1 / 5)
網站主持人對此評論進行了最小化
太棒了:)工作正常
網站主持人對此評論進行了最小化
如何進行相同的排序計算,但從最新日期到最舊日期? 目前它是從最舊到最新。 翻轉 < 符號是不夠的,除此之外,我對它的作用還不夠深刻。 另外我認為可能發生的事情是excel自動從上到下工作,造成困難。
網站主持人對此評論進行了最小化
你好,博,

要將日期從最新到最舊自動排序,您只需將上述公式中的 <= 更改為 >=,如下所示:
=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,">="&$A$2:$A$15),0))
插入此公式後,請記住同時按 Ctrl + Shift + Enter 鍵以獲得正確的結果。
請嘗試一下。
網站主持人對此評論進行了最小化
除了重複的日期之外,還有沒有辦法在排序時包含多列數據? 我需要它包含多個列並將它們與到期日期一起排序。
網站主持人對此評論進行了最小化
我做了一個支票簿登記,它可以工作,但我想弄清楚如何讓我的條目進入日期順序。 任何幫助,將不勝感激。 我還在學習excel。
網站主持人對此評論進行了最小化
是否有特定的公式可以使單元格保持在排序日期之後? 最好按日期組織,但保留整行信息。 任何幫助將非常感激。
網站主持人對此評論進行了最小化
使用 VBA 代碼,我複制並粘貼了上面的內容,但希望 F 列中的日期是數據排序所依據的值。 我已將範圍值更改為 F2 和 F3500(第 1 行是標題的電子表格的大小),但它仍然按 A 列中的日期排序。有人可以幫我嗎?
網站主持人對此評論進行了最小化
你好,羅斯,
將代碼應用於 F 列時,您應該將一些引用更改為您需要的代碼,如下所示:
Private Sub Worksheet_Change(ByVal Target As Range)
'更新通過 Extendoffice 20160606
在錯誤恢復下一頁
如果 Application.Intersect(Target, Application.Columns(6)) 什麼都不是,則退出 Sub
如果 Target.Count > 1 則退出 Sub
Range("F1").Sort Key1:=Range("F2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, 方向:=xlTopToBottom
END SUB

請嘗試,希望對您有所幫助!
網站主持人對此評論進行了最小化
該VBA代碼是純金! 謝謝! :-)
網站主持人對此評論進行了最小化
您好,如果我想對多個列執行此操作,甚至在同一列中有新的起點怎麼辦? 我只是在同一個窗口中休息並重新復制 VBA 代碼嗎?
謝謝。
網站主持人對此評論進行了最小化
您好,這是一個很棒的工具。 謝謝你。 如何將此應用於同一選項卡中的多個列? 我可以將它應用於在同一列的新單元格中重新按日期排序嗎? 我可以將 VBA 代碼重新粘貼到同一個窗口中嗎?
謝謝。
網站主持人對此評論進行了最小化
你好,Noname9,你好嗎? 通過使用 VBA 代碼來實現您的目標是我無法企及的。 但我確實知道如何使用公式來解決問題。假設我們有兩列日期,比如 A2:B7。 如何將這些日期排序到新列中? 請執行以下操作。
首先,我們需要將兩列日期合併為一列。 複製並粘貼公式 =INDEX($A$2:$B$7,INT((ROWS(D$2:D2)-1)/2)+1,MOD(ROWS(D$2:D2)-1,2)+ 1) 進入單元格 D2。 並向下拖動填充手柄以組合所有日期。 請看截圖1。
然後,我們將對合併的日期進行排序。 複製並粘貼公式 =INDEX($D$2:$D$13,MATCH(ROWS($D$2:D2),COUNTIF($D$2:$D$13,"<="&$D$2:$D$13) ,0)) 進入 F2。 並向下拖動填充手柄以對所有日期進行排序。 請看截圖2。
希望它會有所幫助。 祝你有美好的一天。真誠的,曼迪
查看附件 (2 / 5)
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護