Bỏ qua nội dung chính

Làm cách nào để liệt kê tất cả các ngày giữa hai ngày trong Excel?

Trong một số trường hợp, nếu bạn có ngày bắt đầu cụ thể và ngày kết thúc, bạn có thể cần phải liệt kê tất cả các ngày giữa hai ngày cụ thể này trong Excel. Bây giờ hướng dẫn này nói về các phương pháp liệt kê tất cả các ngày giữa hai ngày trong Excel.

Liệt kê tất cả các ngày giữa hai ngày theo công thức

Liệt kê tất cả các ngày giữa hai ngày bằng VBA

Liệt kê tất cả các ngày giữa hai ngày bằng Kutools cho Excel ý kiến ​​hay3


Ở đây tôi giới thiệu các công thức có thể nhanh chóng liệt kê tất cả các ngày giữa hai ngày nhất định cho bạn trong Excel.

1. Gõ ngày bắt đầu và ngày kết thúc vào hai ô, ở đây tôi gõ chúng vào ô A1 và A2. Xem ảnh chụp màn hình:
doc-list-all-date-between-two-date-1

2. Sau đó chuyển đến ô C1 để nhập công thức này = A1 + 1 vào nó, sau đó nhấp vào đăng ký hạng mục thi Chìa khóa. Xem ảnh chụp màn hình:
doc-list-all-date-between-two-date-2

3. Sau đó, trong ô C2, nhập công thức này =IF($A$1+ROW(A1)>=$A$2-1,"",C1+1) vào đó, sau đó kéo chốt tự động điền xuống các ô cho đến khi một ô trống xuất hiện. Xem ảnh chụp màn hình:

doc-list-all-date-between-two-date-3       doc-list-all-date-between-two-date-4

Sau đó, bạn có thể thấy tất cả các ngày giữa hai ngày nhất định được liệt kê trong cột.
doc-list-all-date-between-two-date-5

Lưu ý:

Trong các công thức trên, A1 là ngày bắt đầu, A2 là ngày kết thúc và C1 là ngày đầu tiên trong phạm vi ngày.


Nếu bạn quan tâm đến mã macro, bạn có thể sử dụng VBA bên dưới để liệt kê tất cả các ngày giữa hai ngày nhất định trong Excel.

1. Gõ ngày bắt đầu và ngày kết thúc bạn vào hai ô, ở đây tôi gõ vào ô A1 và B1. Xem ảnh chụp màn hình:
doc-list-all-date-between-two-date-6

2. nhấn Alt + F11 chìa khóa để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

3. Sau đó nhấn vào Chèn > Mô-đun và sao chép và dán mã VBA bên dưới vào cửa sổ bật lên Mô-đun cửa sổ.

VBA: Liệt kê tất cả các ngày giữa hai ngày.

Sub WriteDates()
	'Updateby20150305
	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     = "KutoolsforExcel"
	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("A1").Value
	EndValue     = EndRng.Range("A1").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

4. nhấp chuột chạy or F5 để chạy VBA và một hộp thoại bật ra để bạn chọn ngày bắt đầu, sau đó nhấp vào OK, sau đó chọn ngày kết thúc trong hộp thoại bật lên thứ hai. Xem ảnh chụp màn hình:

doc-list-all-date-between-two-date-7          doc-list-all-date-between-two-date-8

5. nhấp chuột OK, sau đó chọn một ô để hiển thị ngày tháng, sau đó bấm OK. Bây giờ bạn có thể thấy tất cả các ngày giữa hai ngày được liệt kê. Xem ảnh chụp màn hình:

doc-list-all-date-between-two-date-9         doc-list-all-date-between-two-date-10

Chú thích: Danh sách được tạo bởi VBA này bao gồm ngày bắt đầu và ngày kết thúc.


Trên thực tế, nếu bạn đã cài đặt Kutools cho Excel - một công cụ bổ sung tiện dụng, bạn cũng có thể sử dụng Chèn dữ liệu ngẫu nhiên để giải quyết vấn đề này.

Kutools cho Excel, với hơn 300 các hàm Excel tiện dụng, nâng cao hiệu quả làm việc và tiết kiệm thời gian làm việc của bạn.

Sau cài đặt miễn phí Kutools cho Excel, vui lòng làm như sau:

1. Chọn một cột bạn muốn liệt kê các ngày giữa hai ngày và nhấp vào Kutools > Chèn > Chèn dữ liệu ngẫu nhiên. Xem ảnh chụp màn hình:
doc chèn dữ liệu ngẫu nhiên 1

2. Sau đó trong Chèn dữ liệu ngẫu nhiên thoại, bấm Ngày , sau đó chọn ngày bắt đầu và ngày kết thúc từ TừTo danh sách, sau đó nhớ kiểm tra Ngày làm việc, Cuối tuầnGiá trị duy nhất hộp kiểm. Xem ảnh chụp màn hình:
doc-list-all-date-between-two-date-12

3. nhấp chuột Ok để đóng hộp thoại và một Kutools cho Excel hộp thoại bật ra, chỉ cần nhấp vào . Sau đó, bạn có thể thấy các ngày giữa ngày bắt đầu và ngày kết thúc được liệt kê. Xem ảnh chụp màn hình:

doc-list-all-date-between-two-date-13           doc-list-all-date-between-two-date-14

4. Bây giờ bạn cần sắp xếp danh sách ngày theo thứ tự bạn cần. Nhấp chuột Ngày > Sắp xếp Cũ nhất đến Mới nhất. Sau đó, bạn có thể thấy các ngày được sắp xếp từ ngày cũ nhất đến ngày mới nhất. Xem ảnh chụp màn hình:

doc-list-all-date-between-two-date-15          doc-list-all-date-between-two-date-16

Với Chèn dữ liệu ngẫu nhiên tiện ích, bạn cũng có thể chèn số nguyên ngẫu nhiên, chuỗi ngẫu nhiên và thời gian ngẫu nhiên, v.v. Nhấp vào đây để biết thêm về Chèn dữ liệu ngẫu nhiên.


Các bài báo tương đối:


Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
Comments (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How to loop this vba code (1000 rows for example) ?
This comment was minimized by the moderator on the site
Sorry for reply such late, but I do not understand your question, the VBA only for listing dates between a date range, why need to loop the code?
This comment was minimized by the moderator on the site
Firat - did you solve your issue? I have exactly the same issue and I cannot get the result in the row instead of the column.
This comment was minimized by the moderator on the site
If you invert this line you can make it work :


OutRng.Offset(ColIndex, 0) = i to OutRng.Offset(0, ColIndex) = i
This comment was minimized by the moderator on the site
Why do not try to transpose the column result to row?
This comment was minimized by the moderator on the site
i tried the VBA code it worked.. Thanks for sharing. Similarly is it possible to pase it along columns/ horizontally?
This comment was minimized by the moderator on the site
Hello, if you want to list dates in a row horizontally, you just need to use the vba code to list the dates, and copy the results and paste transpose.
This comment was minimized by the moderator on the site
Hello, Thanks for sharing a great code. I would like to ask one question though. I am using this VBA code you shared. 1) Can I list all the other cells in the same row with the dates? 2) Can we define the starting date cell and ending date cell and the cell that the new information will be written? I am asking these questions because I have 30 rows. Each row has data for different people. Cell G is a starting date and Cell H is an ending date. Other cells contains some information. I would like this to be listed in a new cell as all the dates between these cells. For example (just showing demonstration, so only G and H cells written below-I is where the list appears): Row 2 Person A 28/05/2017 05/06/2017 28/05/2017 Row 3 Person A 28/05/2017 05/06/2017 29/05/2017 Row 4 Person A 28/05/2017 05/06/2017 30/05/2017 Row 5 Person A 28/05/2017 05/06/2017 31/05/2017 Row 6 Person A 28/05/2017 05/06/2017 01/06/2017 Row 7 Person A 28/05/2017 05/06/2017 02/06/2017 Row 8 Person A 28/05/2017 05/06/2017 03/06/2017 Row 9 Person A 28/05/2017 05/06/2017 04/06/2017 Row 10 Person A 28/05/2017 05/06/2017 05/06/2017 Row 11 Person B 23/05/2017 31/05/2017 23/05/2017 Row 12 Person B 23/05/2017 31/05/2017 24/05/2017 Row 13 Person B 23/05/2017 31/05/2017 25/05/2017 Row 14 Person B 23/05/2017 31/05/2017 26/05/2017 and so on...
This comment was minimized by the moderator on the site
Can we use text box instead of in box in macro
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations