如何在 Excel 中列出兩個日期之間的所有日期?
想象一下,您需要建立一個按日期組織的表格。例如,您正在製作一個日程安排,需要按日期順序指定一系列活動列表。在這種情況下,您將需要一個日期列表。
沒有無限的列表,因此可以認為您將有一個開始日期和一個結束日期。在某些情況下,如果您已經知道要開始的日期和要結束的日期,則可能需要使用 Excel 建立這兩個指定日期之間所有日期的列表。
使用公式列出所有日期
讓我們透過一個示例一步一步地瞭解。
步驟 1
在我們的示例中,我們在 Excel 表格中有了開始日期和結束日期。我們將建立一個從開始日期到結束日期之間的日期列表。請參見下圖。
步驟 2
然後在 C2 單元格中輸入以下公式並按 Enter 鍵。公式為 =A2+1,其中 A2 是寫入開始日期的單元格。按下 Enter 後,您將看到開始日期的下一天。請參見下圖。
步驟 3
之後,選擇單元格 C3,然後在公式欄中輸入以下公式並按 Enter 鍵。
=IF($A$2+ROW(A2)>=$B$2,"",C2+1)
步驟 4
單擊 C3 單元格右下角出現的“+”號,這將啟用自動填充功能,然後向下拖動以反映到其他單元格中。
定義語法或修改此公式的難度是使用它的主要缺點。除此之外,日期的順序也不完全正確。
使用 VBA 列出所有日期
如果您對宏程式碼感興趣,則可以在 Excel 中使用以下 Visual Basic for Applications (VBA) 來列出兩個指定日期之間的任何日期。
按照以下步驟操作 -
步驟 1
將開始日期和結束日期輸入到不同的單元格中。
步驟 2
要開啟 Microsoft Visual Basic for Applications 視窗,請同時按“Alt + F11”鍵。
步驟 3
然後單擊插入 > 模組,將彈出模組視窗。
這是 VBA 編輯器。
步驟 4
在模組視窗中,鍵入以下 VBA 程式碼。
Sub DatesBetween() Dim rng As Range Dim StartRng As Range Dim EndRng As Range Dim OutRng As Range Dim StartValue As Variant Dim EndValue As Variant xTitleId = "VBOutput" Set StartRng = Application.Selection Set StartRng = Application.InputBox("Start Range (single cell):", xTitleId, StartRng.Address, Type:=8) Set EndRng = Application.InputBox("End Range (single cell):", xTitleId, Type:=8) Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8) Set OutRng = OutRng.Range("A1") StartValue = StartRng.Range("A2").Value EndValue = EndRng.Range("A2").Value If EndValue - StartValue <= 0 Then Exit Sub End If ColIndex = 0 For i = StartValue To EndValue OutRng.Offset(ColIndex, 0) = i ColIndex = ColIndex + 1 Next End Sub
步驟 5
單擊執行或F5執行 VBA,將彈出一個視窗,您將在其中選擇開始日期,然後單擊確定,然後在下一個視窗中,選擇結束日期,然後單擊確定。
然後會彈出一個視窗詢問輸出到,提供輸出單元格並單擊確定。
在我們的示例中,開始日期的單元格值為 A2,因此我們這樣寫:“2".
在我們的示例中,結束日期的單元格值為 B2,因此我們這樣寫:“2".
在我們的示例中,輸出日期的單元格值為 C2,因此我們這樣寫:“2".
單擊確定後,關閉 VBA 視窗,您將獲得開始日期和結束日期之間的日期,包括開始日期和結束日期,如下面的影像所示。
結論
在本教程中,我們展示了兩種不同的方法(公式和 VBA),您可以使用它們來列出 Excel 中兩個給定日期之間所有日期。