Có thể bạn quan tâm: Cách Thay Thế Các Ô Trống Bằng Số 0 Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Mở Đầu
Trong công việc hằng ngày, từ việc lập kế hoạch, quản lý dự án, đến phân tích dữ liệu kinh doanh, Excel luôn là công cụ không thể thiếu. Một trong những nhu cầu thường gặp là xác định ngày trong tuần (Day of Week) từ một ngày tháng cụ thể. Việc này giúp chúng ta:
- Lập lịch làm việc: Xác định ngày làm việc, ngày nghỉ, ngày lễ.
- Phân tích xu hướng: Kiểm tra doanh thu, lượng bán hàng theo ngày trong tuần.
- Tự động hoá báo cáo: Tạo báo cáo tuần, tháng một cách nhanh chóng.
Bài viết dưới đây sẽ cung cấp cho bạn toàn bộ kiến thức cần thiết để trả về ngày trong tuần trong Excel, bao gồm:
- Các hàm cơ bản (
TEXT,WEEKDAY,CHOOSE,SWITCH). - Cách định dạng ngày dưới dạng chữ (ví dụ: “Thứ Hai”, “Monday”).
- Xử lý ngày trong tuần cho lịch làm việc, ngày lễ, điểm danh.
- Các công thức nâng cao dùng Mảng, Power Query, VBA.
- Thực hành thực tế: xây dựng bảng tính tự động tính ngày trong tuần và phân nhóm dữ liệu.
- Mẹo tối ưu hiệu suất và tránh lỗi thường gặp.
Lưu ý: Bài viết này sẽ không chỉ dừng lại ở công thức đơn giản mà còn đi sâu vào các trường hợp phức tạp, giúp bạn trở thành “bậc thầy” trong việc xử lý ngày trong tuần trên Excel.
Có thể bạn quan tâm: Cách Xóa Thời Gian Khỏi Ngày Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Hiểu Rõ Định Dạng Ngày Trong Excel
1.1. Kiểu Dữ Liệu Ngày
Excel lưu trữ ngày dưới dạng số nguyên tính từ 1/1/1900 (hoặc 1/1/1904 tùy phiên bản). Ví dụ:
| Ngày | Giá trị nội bộ |
|---|---|
| 01/01/2026 | 44927 |
| 31/12/2026 | 45292 |
Việc này cho phép chúng ta thực hiện các phép tính cộng, trừ ngày một cách dễ dàng.
1.2. Định Dạng Hiển Thị
Mặc dù giá trị nội bộ là số, chúng ta có thể định dạng ô để hiển thị dưới dạng:
dd/mm/yyyymm-dd-yydddd(tên ngày đầy đủ, ví dụ: “Monday”)ddd(viết tắt, ví dụ: “Mon”)
Bạn có thể thay đổi định dạng bằng cách Right‑click → Format Cells → Number → Date hoặc Custom.
Có thể bạn quan tâm: Cách Xóa Khoảng Trắng Trong Văn Bản Trên Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Các Hàm Cơ Bản Để Trả Về Ngày Trong Tuần
2.1. Hàm WEEKDAY
Cú pháp: WEEKDAY(serial_number, return_type)
serial_number: ngày cần kiểm tra (có thể là ô chứa ngày hoặc hàmDATE).return_type(tùy chọn):1hoặc bỏ qua: trả về 1 (Chủ Nhật) → 7 (Thứ Bảy).2: trả về 1 (Thứ Hai) → 7 (Chủ Nhật).3: trả về 0 (Thứ Hai) → 6 (Chủ Nhật).
Ví dụ:
| Ô A1 (Ngày) | Công thức | Kết quả |
|---|---|---|
| 15/08/2026 | =WEEKDAY(A1) | 5 (Thứ Năm) |
| 15/08/2026 | =WEEKDAY(A1,2) | 4 (Thứ Năm) |
| 15/08/2026 | =WEEKDAY(A1,3) | 3 (Thứ Năm) |
Lưu ý: Khi dùng
return_type = 2, chúng ta có thể gán 1 → Thứ Hai, 2 → Thứ Ba, …, 7 → Chủ Nhật, rất tiện cho việc đánh số tuần.
2.2. Hàm TEXT
TEXT(value, format_text) cho phép chuyển đổi ngày sang chuỗi với định dạng tùy ý.
- Định dạng
dddd→ Tên ngày đầy đủ (tiếng Anh). - Định dạng
ddd→ Tên viết tắt (tiếng Anh). - Định dạng
$-vi-VNdddd→ Tên ngày tiếng Việt (cần cài đặt locale).
Ví dụ:
=TEXT(A1,"dddd") // "Thursday"
=TEXT(A1,"ddd") // "Thu"
=TEXT(A1,"$-vi-VNdddd") // "Thứ Năm"
Mẹo: Đặt
$-en-UShoặc$-vi-VNđể chắc chắn ngôn ngữ hiển thị đúng, bất kể cài đặt vùng miền của máy.
2.3. Hàm CHOOSE
CHOOSE(index_num, value1, value2, …) trả về giá trị tương ứng với vị trí index_num.
Kết hợp WEEKDAY và CHOOSE để đổi số thành chuỗi:
=CHOOSE(WEEKDAY(A1,2),"Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy","Chủ Nhật")
2.4. Hàm SWITCH (Excel 2026 trở lên)
SWITCH(expression, value1, result1, value2, result2, …, default)
=SWITCH(WEEKDAY(A1,2), 1,"Thứ Hai", 2,"Thứ Ba", 3,"Thứ Tư", 4,"Thứ Năm", 5,"Thứ Sáu", 6,"Thứ Bảy", 7,"Chủ Nhật")
Ưu điểm: Đọc dễ, không cần lặp lại
WEEKDAYnhiều lần.
3. Định Dạng Ngày Trong Tuần Bằng Tiếng Việt
3.1. Sử Dụng TEXT Với Locale
=TEXT(A1,"$-vi-VNdddd") // "Thứ Năm"
Nếu Excel của bạn chưa hỗ trợ locale Vietnamese, bạn có thể tạo bảng tra cứu:
| Số | Tên tiếng Việt |
|---|---|
| 1 | Chủ Nhật |
| 2 | Thứ Hai |
| 3 | Thứ Ba |
| 4 | Thứ Tư |
| 5 | Thứ Năm |
| 6 | Thứ Sáu |
| 7 | Thứ Bảy |
Sau đó dùng VLOOKUP hoặc XLOOKUP:
=XLOOKUP(WEEKDAY(A1,1),{1,2,3,4,5,6,7},{"Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"})
3.2. Tự Động Đánh Dấu Ngày Làm Việc / Ngày Nghỉ
Giả sử Thứ Hai – Thứ Sáu là ngày làm việc, Thứ Bảy – Chủ Nhật là ngày nghỉ.
=IF(WEEKDAY(A1,2)<=5,"Ngày làm việc","Ngày nghỉ")
Bạn có thể mở rộng bằng cách đọc danh sách ngày lễ từ một bảng riêng và dùng COUNTIF để kiểm tra.
4. Xây Dựng Bảng Thời Gian Tự Động Xác Định Ngày Trong Tuần
4.1. Bước 1: Tạo Dòng Ngày
Giả sử ô B2 chứa ngày bắt đầu, ví dụ 01/01/2026. Để tạo danh sách ngày liên tục trong cột B:
- B2:
=DATE(2026,1,1)(hoặc nhập trực tiếp). - B3:
=B2+1 - Kéo công thức xuống tới số ngày mong muốn (ví dụ 365 ngày).
4.2. Bước 2: Thêm Cột “Ngày Trong Tuần”
Ở cột C, nhập công thức:
=TEXT(B2,"$-vi-VNdddd")
Kéo xuống đầy đủ.
4.3. Bước 3: Gắn Nhãn “Ngày Làm Việc / Nghỉ”
Cột D:
=IF(WEEKDAY(B2,2)<=5,"Làm việc","Nghỉ")
4.4. Bước 4: Kiểm Tra Ngày Lễ (Ví Dụ: 1/5/2026)
- Tạo bảng Ngày Lễ ở một vùng (ví dụ
H2:H10). - Cột E (Ngày Lễ?):
=IF(COUNTIF($H$2:$H$10,B2)>0,"Ngày Lễ","")
4.5. Bước 5: Tổng Hợp Thông Tin

Có thể bạn quan tâm: Cách Thay Thế Công Thức Bằng Giá Trị Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Cột F (Trạng Thái):
=IF(E2="Ngày Lễ","Ngày Lễ",D2)
Kết quả cuối cùng: mỗi ngày sẽ hiển thị Tên ngày, Làm việc/Nghỉ, và có phải ngày lễ hay không.
5. Phân Tích Dữ Liệu Theo Ngày Trong Tuần
5.1. PivotTable
Bạn có thể nhanh chóng tổng hợp doanh thu hoặc số lượng bán hàng theo ngày trong tuần:
- Chọn dữ liệu (cột ngày, doanh thu, …).
- Insert → PivotTable.
- Kéo trường Ngày vào Rows, chọn Group → Days → Days hoặc Months.
- Trong Rows, right‑click → Group → Days và choose “Days” để nhóm theo ngày trong tuần.
- Kéo Doanh thu vào Values và đặt Sum.
5.2. Công Thức SUMIFS Với WEEKDAY
Nếu không dùng PivotTable, bạn có thể dùng SUMIFS:
=SUMIFS(DoanhThuRange,DateRange,">="&StartDate,DateRange,"<="&EndDate,WEEKDAY(DateRange,2),1) // Thứ Hai
Bạn có thể sao chép công thức cho các ngày khác bằng cách thay 1 thành 2,3,…,7.
6. Sử Dụng Power Query Để Xử Lý Ngày Trong Tuần
Power Query (Get & Transform) cho phép xử lý dữ liệu lớn mà không làm chậm bảng tính.
6.1. Nhập Dữ Liệu
- Data → Get Data → From Table/Range.
6.2. Thêm Cột “Day of Week”
Trong Power Query Editor:
- Add Column → Date → Day → Day of Week (sẽ trả về 0‑6, bắt đầu từ Chủ Nhật).
- Đổi tên cột thành DayOfWeek.
- Để hiển thị tên ngày tiếng Việt, Add Column → Custom Column với công thức:
= {"Chủ Nhật","Thứ Hai","Thứ Ba","Thứ Tư","Thứ Năm","Thứ Sáu","Thứ Bảy"}{DayOfWeek}
6.3. Lọc Ngày Lễ
Nếu bạn có bảng ngày lễ, dùng Merge Queries để đánh dấu.
6.4. Tải Kết Quả Về Excel
- Home → Close & Load.
Power Query sẽ tạo một bảng kết nối có cột ngày, ngày trong tuần, và các trường bổ trợ, rất phù hợp cho báo cáo định kỳ.
7. Tự Động Hóa Bằng VBA
Khi cần điểm danh hàng ngàn nhân viên hoặc tạo lịch làm việc tự động, VBA là giải pháp mạnh.
7.1. Hàm VBA Trả Về Tên Ngày Tiếng Việt
Function TenNgayViet(Ngay As Date) As String Dim arr As Variant arr = Array("Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy") TenNgayViet = arr(Weekday(Ngay, vbSunday) - 1)
End Function
Cách dùng trong ô Excel:
=TenNgayViet(A2)
7.2. Macro Tạo Lịch 12 Tháng
Sub TaoLich12Thang() Dim ws As Worksheet, startDate As Date, i As Long, r As Long Set ws = ThisWorkbook.Sheets("Lich") ws.Cells.Clear startDate = DateSerial(Year(Date), 1, 1) ' Bắt đầu từ 01/01 năm hiện tại r = 2 ws.Range("A1").Value = "Ngày" ws.Range("B1").Value = "Ngày trong tuần" ws.Range("C1").Value = "Trạng thái" For i = 0 To 364 ws.Cells(r, 1).Value = startDate + i ws.Cells(r, 2).Value = TenNgayViet(startDate + i) If Weekday(startDate + i, vbMonday) <= 5 Then ws.Cells(r, 3).Value = "Làm việc" Else ws.Cells(r, 3).Value = "Nghỉ" End If r = r + 1 Next i ws.Columns("A:C").AutoFit
End Sub
Chạy macro sẽ tự động tạo bảng lịch 365 ngày với thông tin ngày trong tuần và trạng thái làm việc/nghỉ.
8. Các Trường Hợp Thực Tế và Giải Pháp
8.1. Xác Định Ngày Đầu Tuần Của Một Tháng
=DATE(YEAR(A1),MONTH(A1),1) - WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2) + 1
Công thức trả về Thứ Hai đầu tiên của tháng chứa ngày trong A1.
8.2. Đếm Số Ngày Làm Việc Trong Khoảng Thời Gian
=NETWORKDAYS(A2,B2,HolidayRange)
NETWORKDAYS tính số ngày làm việc (Thứ Hai – Thứ Sáu) trừ ngày lễ trong HolidayRange.
8.3. Tính Ngày Đầu Tiên Của Tuần Tiếp Theo
= A1 + (8 - WEEKDAY(A1,2))
Nếu A1 là ngày bất kỳ, công thức trả về Thứ Hai của tuần kế tiếp.
8.4. Xác Định Tuần Của Năm (ISO 8601)
=ISOWEEKNUM(A1)
Hoặc dùng công thức thủ công nếu phiên bản Excel không hỗ trợ:
=INT((A1 - DATE(YEAR(A1),1,4) - WEEKDAY(DATE(YEAR(A1),1,4),2) + 10)/7)
8.5. Đánh Dấu Ngày Cuối Tuần (Saturday, Sunday)
=IF(WEEKDAY(A1,2)>5,"Cuối tuần","Ngày thường")
9. Mẹo Tối Ưu Hiệu Suất Khi Xử Lý Ngày
- Tránh lặp công thức trong cột lớn: dùng một lần
WEEKDAYvà lưu vào cột phụ, sau đó dùngVLOOKUP/XLOOKUP. - Sử dụng Table (
Ctrl + T) để công thức tự mở rộng khi thêm dòng mới. - Tắt tính toán tự động (
Formulas → Calculation Options → Manual) khi làm việc với bảng dữ liệu > 100k dòng, sau đó F9 để cập nhật. - Power Query thường nhanh hơn so với công thức mảng trong Excel truyền thống.
- Tránh định dạng ngày bằng văn bản (text) vì sẽ làm mất khả năng tính toán.
10. Tổng Kết
Trong suốt bài viết, chúng ta đã:
- Hiểu cách Excel lưu trữ và hiển thị ngày.
- Sử dụng các hàm WEEKDAY, TEXT, CHOOSE, SWITCH để trả về ngày trong tuần.
- Định dạng tiếng Việt và tạo bảng lịch tự động.
- Phân tích dữ liệu theo ngày trong tuần bằng PivotTable, SUMIFS.
- Tận dụng Power Query và VBA cho các nhu cầu phức tạp.
- Áp dụng các công thức thực tế như NETWORKDAYS, ISOWEEKNUM và các mẹo tối ưu.
Bây giờ, bạn có thể tự tin xây dựng bất kỳ báo cáo, lịch làm việc, hay phân tích xu hướng nào dựa trên ngày trong tuần trong môi trường Excel. Hãy thực hành với các ví dụ trên, tùy chỉnh cho phù hợp với quy trình công việc của mình và khám phá thêm những khả năng mới mà Excel mang lại.
Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
