Làm cách nào để tạo tất cả các ngày giữa hai ngày trong python?
Hãy tưởng tượng bạn đang ở trong một tình huống mà bạn cần xây dựng một bảng được sắp xếp theo ngày tháng. Chẳng hạn, bạn đang lập lịch trình và cần chỉ định danh sách các hoạt động được sắp xếp theo ngày theo thứ tự phù hợp. Bạn sẽ yêu cầu một danh sách các ngày trong trường hợp điều này xảy ra Không có thứ gọi là danh sách vô hạn, vì vậy lý do là danh sách của bạn sẽ có ngày bắt đầu và ngày kết thúc. Trong một số trường hợp nhất định, nếu bạn đã biết ngày bạn muốn bắt đầu và ngày bạn muốn kết thúc, bạn có thể cần sử dụng Excel để tạo danh sách tất cả các ngày nằm giữa hai ngày được chỉ định này Liệt kê tất cả các ngày bằng Công thứcHãy hiểu từng bước thông qua một ví dụ Bước 1 Trong ví dụ của chúng tôi, chúng tôi có Ngày bắt đầu và Ngày kết thúc trong một trang tính Excel. Chúng tôi sẽ tạo một danh sách các ngày ở giữa ngày bắt đầu và ngày kết thúc. Xem hình ảnh sau Bước 2 Sau đó nhập công thức đã cho bên dưới vào ô C2 và nhấn enter. Công thức là =A2+1 trong đó A2 là ô chứa ngày bắt đầu. Sau khi nhấn Enter, bạn sẽ thấy ngày tiếp theo của ngày bắt đầu. Xem hình ảnh sau Bước 3 Sau đó, chọn ô C3 và nhập công thức đã cho bên dưới vào thanh công thức và nhấn enter =IF($A$2+ROW(A2)>=$B$2,"",C2+1) Bước 4 Nhấp vào dấu "+" xuất hiện ở góc dưới bên phải của ô C3, kích hoạt chức năng tự động điền và sau đó kéo xuống để phản ánh trong các ô khác Khó khăn trong việc xác định cú pháp hoặc sửa đổi công thức này là nhược điểm chính khi sử dụng nó. Thêm vào đó, ngày không hoàn toàn theo đúng thứ tự Liệt kê tất cả các ngày bằng VBANếu bạn quan tâm đến mã macro, Visual Basic for Applications (VBA) sau đây có thể được sử dụng trong Excel để liệt kê bất kỳ ngày nào nằm giữa hai ngày đã chỉ định Thực hiện theo các bước được đưa ra dưới đây - Bước 1 Nhập Ngày bắt đầu và Ngày kết thúc vào các ô riêng biệt Bước 2 Để mở cửa sổ Microsoft Visual Basic for Applications, nhấn đồng thời các phím "Alt + F11" Bước 3 Sau đó nhấp vào Chèn > Mô-đun và cửa sổ Mô-đun bật lên sẽ mở ra Đây là trình soạn thảo VBA Bước 4 Trong cửa sổ Mô-đun, nhập mã VBA sau 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 Bước 5 Bấm Run hoặc F5 để chạy VBA, một cửa sổ hiện ra bạn chọn ngày bắt đầu, bấm OK, cửa sổ tiếp theo chọn Ngày kết thúc, bấm OK Sau đó một cửa sổ khác hiện lên yêu cầu Xuất ra, nhập ô xuất và nhấn OK Trong ví dụ của chúng tôi, giá trị ô của Ngày bắt đầu là A2, vì vậy chúng tôi viết nó theo cách này. "AA2" Trong ví dụ của chúng tôi, giá trị ô của Ngày kết thúc là B2, vì vậy chúng tôi viết nó theo cách này. "BB2" Trong ví dụ của chúng tôi, giá trị ô của Ngày đầu ra là C2, vì vậy chúng tôi viết nó theo cách này. "CC2" Sau khi nhấp vào OK, hãy đóng cửa sổ VBA và bạn sẽ nhận được ngày giữa ngày bắt đầu và ngày kết thúc, bao gồm cả ngày bắt đầu và ngày kết thúc, như minh họa trong hình dưới đây Sự kết luậnTrong hướng dẫn này, chúng tôi đã chỉ ra hai cách khác nhau (Công thức và VBA) mà bạn có thể sử dụng để liệt kê tất cả các ngày giữa hai ngày đã cho trong Excel |