Tự Nhảy Ngày Tháng Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Mở Đầu

Ngày tháng là một trong những yếu tố quan trọng nhất trong công việc văn phòng, đặc biệt là khi bạn làm việc với các báo cáo, kế hoạch, bảng chấm công hay dự toán. Việc tự động tăng (tự nhảy) ngày tháng trong Excel sẽ giúp bạn tiết kiệm thời gian, giảm thiểu sai sót và nâng cao hiệu suất làm việc. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ những thao tác cơ bản nhất đến các kỹ thuật nâng cao, giúp bạn làm chủ việc tự nhảy ngày tháng trong Excel một cách hiệu quả.

1. Kiến Thức Cơ Bản Về Định Dạng Ngày Tháng Trong Excel

1.1. Kiểu Dữ Liệu Ngày Tháng

Excel lưu trữ ngày tháng dưới dạng số nguyên dương, trong đó:

  • Ngày 1 tương ứng với 1/1/1900 (hoặc 1/1/1904 tùy vào tùy chọn hệ thống).
  • Mỗi ngày tăng lên 1 đơn vị.
  • Thời gian (giờ, phút, giây) được biểu diễn dưới dạng phần thập phân của ngày.

Ví dụ:

  • 44562 = 31/12/2026
  • 44563 = 1/1/2026

1.2. Định Dạng Hiển Thị

Bạn có thể thay đổi cách hiển thị ngày tháng bằng cách Format Cells → Number → Date hoặc tùy chỉnh bằng Custom (VD: dd/mm/yyyy, yyyy-mm-dd, dd-mmm-yy…).

1.3. Kiểm Tra Kiểu Dữ Liệu

Để chắc chắn ô chứa ngày tháng thực sự là dạng ngày, bạn có thể:

  • Sử dụng công thức =ISTEXT(A1) (trả về FALSE nếu là ngày).
  • Hoặc =ISNUMBER(A1) (trả về TRUE nếu là ngày).

2. Các Cách Tự Nhảy Ngày Tháng Cơ Bản

2.1. Kéo Fill Handle (Sao Chép Tự Động)

Đây là cách nhanh nhất và thường được dùng nhất.

Bước thực hiện:

  1. Nhập ngày đầu tiên vào ô A1 (VD: 01/01/2026).
  2. Đặt con trỏ vào góc dưới bên phải của ô A1 cho tới khi xuất hiện dấu “+” (Fill Handle).
  3. Kéo xuống hoặc sang phải bao nhiêu dòng/ cột bạn muốn.
  4. Excel sẽ tự động tăng ngày theo một ngày cho mỗi ô.

Lưu ý: Nếu bạn kéo chuột trong khi nhấn Ctrl, Excel sẽ sao chép giá trị mà không tăng ngày.

2.2. Sử Dụng Công Thức Cơ Bản

Công thức =A1+1 sẽ tăng ngày hiện tại lên một ngày.

Ví dụ:

  • Ô A1: 01/01/2026
  • Ô A2: =A1+1 → hiển thị 02/01/2026
  • Kéo công thức này xuống để tạo dãy ngày.

Bạn có thể thay đổi số cộng để tự nhảy n ngày:

  • =A1+7 → nhảy một tuần.
  • =A1+30 → nhảy một tháng (không hoàn hảo vì tháng có độ dài khác nhau).

2.3. Dòng Lệnh =DATE(year, month, day)

Công thức này giúp tạo ngày dựa trên các thành phần riêng biệt.

Ví dụ:

=DATE(2026,1,1) + ROW()-1

  • ROW() trả về số dòng hiện tại, vì công thức bắt đầu ở dòng 1, ROW()-1 = 0 → ngày đầu tiên.
  • Khi sao chép xuống, ROW() tăng lên 2, 3, … → ngày tự tăng.

2.4. Dùng Hàm EDATE Để Nhảy Tháng

EDATE(start_date, months)

  • start_date: ngày bắt đầu.
  • months: số tháng muốn dịch chuyển (có thể âm).

Ví dụ:

=EDATE(A1,1) → ngày trong tháng kế tiếp, giữ nguyên ngày trong tháng (nếu ngày không tồn tại, Excel sẽ tự động chuyển sang ngày cuối tháng).

2.5. Hàm EOMONTH Để Lấy Ngày Cuối Tháng

=EOMONTH(start_date, months)

  • Trả về ngày cuối cùng của tháng, dịch chuyển months tháng.

Ví dụ:

=EOMONTH(A1,0) → ngày cuối tháng hiện tại của ô A1.

3. Tự Nhảy Ngày Tháng Với Điều Kiện và Logic

3.1. Bỏ Ngày Cuối Tuần (Chỉ Nhảy Ngày Làm Việc)

Bạn muốn tạo dãy ngày chỉ bao gồm các ngày làm việc (Thứ Hai – Thứ Sáu), bỏ qua thứ Bảy và Chủ Nhật.

Công thức:

=WORKDAY(A1,1)
  • WORKDAY(start_date, days, holidays)
  • days là số ngày làm việc cần dịch chuyển.
  • holidays là phạm vi chứa ngày lễ (nếu có).

Ví dụ:

  • A1: 01/01/2026 (Chủ nhật)
  • B1: =WORKDAY(A1,1) → trả về 02/01/2026 (Thứ Hai).

Kéo công thức này xuống để tạo dãy ngày làm việc.

3.2. Bỏ Ngày Lễ

Giả sử bạn có danh sách ngày lễ trong phạm vi H2:H10. Khi sử dụng WORKDAY, bạn chỉ cần truyền phạm vi này vào tham số thứ ba.

Tự Nhảy Ngày Tháng Trong Excel
Tự Nhảy Ngày Tháng Trong Excel
=WORKDAY(A1,1,$H$2:$H$10)

3.3. Tự Nhảy Theo Chu Kỳ Tuần

Nếu muốn tạo dãy ngày lặp lại theo chu kỳ Thứ Hai – Thứ Sáu, Thứ Bảy – Chủ Nhật, bạn có thể dùng công thức:

=IF(WEEKDAY(A1,2)<=5, A1+1, A1+2)
  • WEEKDAY(date,2) trả về 1 (Thứ Hai) tới 7 (Chủ Nhật).
  • Nếu ngày hiện tại là ngày làm việc (≤5), tăng 1 ngày; nếu là cuối tuần, tăng 2 ngày để quay lại Thứ Hai.

3.4. Tự Nhảy Theo Chu Kỳ Tháng

Bạn muốn tạo dãy ngày ngày 1 của mỗi tháng trong một năm.

Công thức:

=DATE(YEAR(A1), MONTH(A1)+1, 1)
  • Đặt A1 = 01/01/2026.
  • Kéo công thức này xuống: 01/02/2026, 01/03/2026, …, 01/12/2026.

Nếu muốn dừng ở cuối năm, bạn có thể dùng IF:

=IF(MONTH(A1)=12, "", DATE(YEAR(A1), MONTH(A1)+1, 1))

Khi đạt tháng 12, ô sẽ trả về rỗng.

4. Tự Nhảy Ngày Tháng Với VBA (Macro)

Đối với các dự án lớn hoặc yêu cầu tùy biến sâu, VBA là công cụ mạnh mẽ.

4.1. Macro Nhảy Ngày Cơ Bản

Sub AutoFillDate() Dim rng As Range Dim startDate As Date Dim i As Long, n As Long Set rng = Selection ' Vùng được chọn startDate = rng.Cells(1, 1).Value n = rng.Rows.Count ' Số dòng cần điền For i = 1 To n rng.Cells(i, 1).Value = DateAdd("d", i - 1, startDate) Next i
End Sub

Cách dùng:

  1. Nhập ngày bắt đầu vào ô đầu tiên của vùng chọn.
  2. Chọn vùng cần điền (số dòng tương ứng).
  3. Chạy macro → các ô sẽ tự động điền ngày tăng dần.

4.2. Macro Nhảy Ngày Làm Việc (Bỏ Cuối Tuần + Lễ)

Sub FillWorkdays() Dim rng As Range, cell As Range Dim startDate As Date, curDate As Date Dim holidays As Variant, hol As Variant Set rng = Selection startDate = rng.Cells(1, 1).Value holidays = Array(#1/1/2026#, #4/30/2026#, #12/25/2026#) ' Thêm ngày lễ ở đây curDate = startDate For Each cell In rng Do While Weekday(curDate, vbMonday) > 5 Or IsHoliday(curDate, holidays) curDate = curDate + 1 Loop cell.Value = curDate curDate = curDate + 1 Next cell
End Sub Function IsHoliday(d As Date, holArr As Variant) As Boolean Dim h As Variant IsHoliday = False For Each h In holArr If d = h Then IsHoliday = True Exit Function End If Next h
End Function

Giải thích:

  • Weekday(curDate, vbMonday) trả về 1‑7 (Thứ Hai‑Chủ Nhật). Nếu >5 → cuối tuần.
  • IsHoliday kiểm tra ngày hiện tại có nằm trong mảng ngày lễ không.
  • Vòng Do While bỏ qua ngày không mong muốn, sau đó điền ngày hợp lệ.

4.3. Macro Tự Nhảy Theo Chu Kỳ Định Số Ngày

Nếu bạn muốn mỗi ô tăng n ngày (ví dụ: 15 ngày), chỉ cần sửa DateAdd:

curDate = DateAdd("d", 15, curDate)

Bạn cũng có thể làm cho n là tham số nhập từ ô B1:

Dim stepDays As Long
stepDays = Range("B1").Value
curDate = DateAdd("d", stepDays, curDate)

4.4. Gán Nút Thực Thi Macro

  1. Vào Developer → Insert → Button (Form Control).
  2. Vẽ nút trên sheet, gán macro AutoFillDate hoặc FillWorkdays.
  3. Đặt tên nút (VD: “Tự Nhảy Ngày”).

5. Ứng Dụng Thực Tế

5.1. Lập Kế Hoạch Dự Án

  • Bảng Gantt: Tạo cột ngày bắt đầu, ngày kết thúc, tự động tính thời gian bằng =WORKDAY(start, duration).
  • Cột Tiến Độ: Dùng =IF(TODAY()>end_date, "Hoàn thành", "Chưa").

5.2. Bảng Chấm Công

  • Cột ngày: tự nhảy ngày công.
  • Cột công ngày: =IF(WEEKDAY(A2,2)>5,0,1) → đánh dấu ngày làm việc.

5.3. Báo Cáo Tài Chính

  • Tự động tạo cột tháng: =EDATE(start_month, ROW()-1).
  • Đánh dấu kỳ kết thúc: =EOMONTH(start_month,0).

5.4. Lịch Trình Giao Hàng

  • Dùng WORKDAY + danh sách ngày lễ để xác định ngày giao hàng thực tế.
  • Công thức: =WORKDAY(order_date, lead_time, holidays_range).

6. Các Lưu Ý Khi Sử Dụng Tự Nhảy Ngày Tháng

  1. Kiểm Tra Định Dạng: Đảm bảo ô chứa ngày được định dạng là Date, tránh lỗi “#VALUE!” khi cộng.
  2. Tháng Ngắn vs Dài: Khi cộng 30 ngày để “đi tới tháng sau”, có thể dừng ở ngày 30/31 không tồn tại. Sử dụng EDATE để chính xác hơn.
  3. Năm Nhuận: Excel tự xử lý năm nhuận (29/2). Khi cộng ngày, không cần lo lắng.
  4. Ngày Lễ Quốc Gia: Cập nhật danh sách ngày lễ thường xuyên để WORKDAY hoạt động đúng.
  5. Vùng Địa Lý: Hàm WORKDAY.INTL cho phép tùy chỉnh ngày cuối tuần (VD: ở một số quốc gia, cuối tuần là Thứ Bảy – Chủ Nhật, ở các nơi khác là Thứ Bảy – Chủ Nhật).

excel =WORKDAY.INTL(A1,1,"0000011",$H$2:$H$10)
– "0000011": 1 = ngày nghỉ, 0 = ngày làm việc; chuỗi 7 ký tự bắt đầu từ Thứ Hai.

7. Tổng Kết

Việc tự nhảy ngày tháng trong Excel không chỉ là một kỹ năng “đẹp mắt” mà còn là công cụ thiết yếu giúp bạn:

  • Tạo lịch trình, kế hoạch nhanh chóng.
  • Giảm thiểu lỗi nhập liệu thủ công.
  • Tự động tính toán thời gian, ngày làm việc, ngày lễ.
  • Tùy biến linh hoạt cho mọi nhu cầu kinh doanh và cá nhân.

Bạn đã nắm vững các cách:

  1. Kéo Fill Handle – nhanh nhất cho dãy ngày liên tục.
  2. Công thức cơ bản (=A1+1, EDATE, EOMONTH) – linh hoạt cho các khoảng thời gian khác nhau.
  3. Công thức có điều kiện (WORKDAY, WORKDAY.INTL) – bỏ cuối tuần và ngày lễ.
  4. VBA macro – tự động hoá cho khối lượng lớn, tùy chỉnh sâu.

Hãy áp dụng những kiến thức này vào công việc hằng ngày của bạn, và bạn sẽ thấy Excel trở thành trợ thủ đắc lực, giúp bạn tiết kiệm thời gian và giảm thiểu sai sót đáng kể. Nếu còn thắc mắc hoặc muốn mở rộng thêm các ví dụ thực tế, đừng ngần ngại tìm hiểu tài liệu Microsoft Office hoặc tham gia các cộng đồng Excel để trao đổi kinh nghiệm.

Chúc bạn thành công trong việc tự nhảy ngày tháng trong Excel và đạt được hiệu suất làm việc tối ưu!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận