Return_Type 1, 2 Hay 3? Hướng Dẫn Chọn Đúng Cho Hàm WEEKDAY

Hàm WEEKDAY trả về số 1 khi bạn mong đợi Thứ Hai, hoặc cho kết quả 7 thay vì Chủ Nhật. Vấn đề nằm ở tham số return_type mà nhiều người bỏ qua hoặc không hiểu đúng. Một giá trị return_type sai khiến toàn bộ công thức tính toán sai lệch, từ bảng chấm công đến lịch làm việc tự động.

Return_Type 1 Là Mặc Định Nhưng Không Phải Lúc Nào Cũng Đúng

Khi bạn viết công thức mà không chỉ định return_type, Excel tự động sử dụng giá trị 1. Với return_type bằng 1, Chủ Nhật được gán số 1, Thứ Hai là 2, Thứ Ba là 3, và cứ tiếp tục cho đến Thứ Bảy là 7.

Cú pháp cơ bản:

=WEEKDAY(A2)
hoặc
=WEEKDAY(A2,1)

Hai công thức trên cho kết quả giống nhau. Nếu ô A2 chứa ngày 14/02/2024 (Thứ Tư), hàm trả về số 4.

Vấn đề thực tế: Nhiều quốc gia, bao gồm Việt Nam, coi Thứ Hai là ngày đầu tuần chứ không phải Chủ Nhật. Khi xây dựng bảng chấm công hoặc lịch làm việc, return_type 1 khiến logic tính toán sai. Bạn muốn phát hiện Thứ Hai để đánh dấu ngày bắt đầu tuần làm việc, nhưng công thức lại tìm số 2 thay vì số 1.

Khi nào dùng return_type 1:

  • Hệ thống tuân theo chuẩn Mỹ với Chủ Nhật là ngày đầu tuần
  • Tính toán lịch hoặc sự kiện liên quan đến tuần Chủ Nhật-Thứ Bảy
  • Dữ liệu nguồn đã sử dụng quy ước này từ trước

Return_Type 2 Bắt Đầu Từ Thứ Hai Như Tuần Làm Việc

Return_type 2 thay đổi cách đếm: Thứ Hai trở thành 1, Thứ Ba là 2, và Chủ Nhật là 7. Đây chính là quy ước tuần làm việc chuẩn quốc tế theo ISO 8601.

Công thức với return_type 2:

=WEEKDAY(A2,2)

Cùng ngày 14/02/2024 (Thứ Tư), công thức này trả về số 3 thay vì 4. Thứ Tư là ngày thứ ba trong tuần khi đếm từ Thứ Hai.

XEM THÊM:  Tôi Tiết Kiệm 3 Giờ Mỗi Tháng Nhờ Dùng Đúng Hàm EOMONTH

Ứng dụng thực tế trong bảng chấm công:

Giả sử bạn cần tô màu các ngày Thứ Bảy và Chủ Nhật trong cột ngày tháng. Với return_type 2, Thứ Bảy là 6 và Chủ Nhật là 7.

Công thức định dạng có điều kiện:

=WEEKDAY(A2,2)>=6

Công thức này trả về ĐÚNG cho cả Thứ Bảy và Chủ Nhật. Áp dụng định dạng màu xám cho hai ngày nghỉ này, bảng chấm công tự động phân biệt ngày làm việc và cuối tuần.

Nếu dùng return_type 1, công thức phải kiểm tra cả số 1 (Chủ Nhật) và số 7 (Thứ Bảy):

=OR(WEEKDAY(A2,1)=1, WEEKDAY(A2,1)=7)

Phức tạp hơn và dễ nhầm lẫn hơn.

Khi nào dùng return_type 2:

  • Bảng chấm công nhân viên
  • Lịch làm việc từ Thứ Hai đến Thứ Sáu
  • Tính toán ngày làm việc trong dự án
  • Báo cáo theo tuần chuẩn quốc tế

Return_Type 3 Dùng Số 0 Cho Thứ Hai

Return_type 3 tương tự type 2 nhưng bắt đầu từ số 0 thay vì số 1. Thứ Hai là 0, Thứ Ba là 1, cho đến Chủ Nhật là 6.

Công thức:

=WEEKDAY(A2,3)

Ngày 14/02/2024 (Thứ Tư) trả về số 2 với return_type 3.

Tại sao lại dùng 0?

Một số lập trình viên và nhà phát triển quen với việc đếm từ 0 trong các ngôn ngữ lập trình. Return_type 3 tạo sự nhất quán khi tích hợp Excel với hệ thống khác hoặc viết macro VBA.

Ví dụ tính phí vận chuyển theo ngày:

Giả sử công ty bạn tính phí vận chuyển khác nhau theo ngày trong tuần. Phí lưu trữ trong mảng: 50, 50, 50, 50, 50, 70, 70 (Thứ Hai đến Chủ Nhật).

Công thức tra cứu phí:

=INDEX({50;50;50;50;50;70;70}, WEEKDAY(A2,3)+1)

Với return_type 3, Thứ Hai trả về 0, công cụ INDEX lấy phần tử thứ nhất (0+1). Thứ Bảy trả về 5, lấy phần tử thứ sáu là 70.

Nếu dùng return_type 2 (bắt đầu từ 1), công thức phải điều chỉnh logic không cần thiết.

Khi nào dùng return_type 3:

  • Tích hợp với hệ thống đếm từ 0
  • Viết macro VBA hoặc Office Scripts
  • Tính toán mảng với chỉ số bắt đầu từ 0

Return_Type 11 Đến 17 Cho Tuần Tùy Chỉnh

Excel 2010 trở đi hỗ trợ thêm 7 giá trị return_type từ 11 đến 17. Mỗi giá trị cho phép bạn chọn ngày nào là ngày đầu tuần, từ Thứ Hai đến Chủ Nhật.

XEM THÊM:  Tôi Tính Giờ Làm Việc Trong Excel Nhanh Gấp 3 Lần Nhờ Hàm TIME

Bảng tham chiếu nhanh:

Return_Type Ngày đầu tuần Giá trị trả về
11 Thứ Hai 1-7 (Thứ Hai = 1)
12 Thứ Ba 1-7 (Thứ Ba = 1)
13 Thứ Tư 1-7 (Thứ Tư = 1)
14 Thứ Năm 1-7 (Thứ Năm = 1)
15 Thứ Sáu 1-7 (Thứ Sáu = 1)
16 Thứ Bảy 1-7 (Thứ Bảy = 1)
17 Chủ Nhật 1-7 (Chủ Nhật = 1)

Lưu ý quan trọng:

  • Return_type 11 giống return_type 2 (cùng Thứ Hai là 1)
  • Return_type 17 giống return_type 1 (cùng Chủ Nhật là 1)
  • Microsoft giữ lại cả hai để tương thích ngược với Excel cũ

Khi nào cần return_type 11-17:

Một số quốc gia hoặc tổ chức có quy ước tuần đặc biệt. Ví dụ, một số nước Trung Đông coi Thứ Bảy là ngày đầu tuần làm việc.

Công thức với return_type 16 (Thứ Bảy đầu tuần):

=WEEKDAY(A2,16)

Nếu A2 là Thứ Bảy, hàm trả về 1. Chủ Nhật là 2, Thứ Hai là 3, và cứ tiếp tục.

Trong thực tế tại Việt Nam, return_type 2 hoặc 11 phù hợp với hầu hết nhu cầu. Các giá trị từ 12 đến 16 chỉ cần khi làm việc với dữ liệu quốc tế hoặc yêu cầu đặc thù.

Kết Hợp Với CHOOSE Để Hiển Thị Tên Thứ

Hàm WEEKDAY chỉ trả về số. Để hiển thị tên thứ như “Thứ Hai”, “Thứ Ba”, bạn cần kết hợp với hàm CHOOSE.

Cách hoạt động:

Hàm CHOOSE nhận vào một số thứ tự và trả về giá trị tương ứng từ danh sách. Khi WEEKDAY cho số 1, CHOOSE lấy giá trị đầu tiên. Số 2 lấy giá trị thứ hai, và cứ như vậy.

Công thức với return_type 1 (Chủ Nhật đầu tuần):

=CHOOSE(WEEKDAY(A2,1), "Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy")

Công thức với return_type 2 (Thứ Hai đầu tuần):

=CHOOSE(WEEKDAY(A2,2), "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy", "Chủ Nhật")

Thứ tự các tên thứ phải khớp với return_type. Nếu dùng return_type 2, “Thứ Hai” phải ở vị trí đầu tiên vì Thứ Hai trả về số 1.

Phương pháp khác với hàm TEXT:

Hàm TEXT format ngày tháng theo mẫu bạn chỉ định.

=TEXT(A2,"dddd")

Công thức này trả về tên thứ đầy đủ như “Thứ Tư”, “Chủ Nhật”. Nếu muốn viết tắt:

=TEXT(A2,"ddd")

Trả về “T4”, “CN”, v.v. tùy theo cài đặt ngôn ngữ của Excel.

XEM THÊM:  Tôi Tính Lương Nhân Viên Nhanh Gấp 3 Lần Sau Khi Dùng Hàm NETWORKDAYS Trong Excel

Hàm TEXT đơn giản hơn nhưng phụ thuộc vào định dạng ngày của hệ thống. Hàm CHOOSE cho phép bạn tùy chỉnh tên thứ theo ý muốn, ví dụ “Hai”, “Ba” thay vì “Thứ Hai”, “Thứ Ba”.

Lỗi Thường Gặp Và Cách Khắc Phục Nhanh

Lỗi #VALUE xuất hiện khi:

Serial_number hoặc return_type không phải là số hợp lệ. Nguyên nhân phổ biến nhất là ngày tháng được nhập dưới dạng văn bản.

Cách kiểm tra: Nhấn vào ô chứa ngày. Nếu nội dung canh trái, đó là văn bản. Ngày hợp lệ canh phải theo mặc định.

Cách sửa:

  1. Chọn cột chứa ngày
  2. Vào menu Data > Text to Columns
  3. Nhấn Finish mà không thay đổi gì

Excel tự động chuyển văn bản thành ngày hợp lệ.

Phương pháp khác: Nhân ô đó với 1 trong công thức:

=WEEKDAY(A2*1,2)

Phép nhân ép Excel chuyển văn bản thành số.

Lỗi #NUM xuất hiện khi:

Return_type nằm ngoài phạm vi cho phép. Các giá trị hợp lệ là 1, 2, 3 và từ 11 đến 17. Nếu bạn nhập 4, 5, hoặc 8, Excel trả về lỗi #NUM.

Cách tránh: Luôn kiểm tra return_type trước khi áp dụng công thức cho toàn bộ cột. Nhập công thức vào một ô thử nghiệm trước, xem kết quả có đúng không.

Lỗi ngày không hợp lệ:

Excel lưu ngày dưới dạng số. Ngày 01/01/1900 là số 1, ngày 02/01/1900 là số 2. Nếu serial_number nhỏ hơn 1 hoặc quá lớn, lỗi #NUM xuất hiện.

Ví dụ:

=WEEKDAY(0,1)

Trả về lỗi #NUM vì không có ngày nào ứng với số 0.

=WEEKDAY(DATE(1899,12,31),1)

Cũng gây lỗi vì Excel không hỗ trợ ngày trước 01/01/1900.

Chọn Return_Type Phù Hợp Với Bảng Tính Của Bạn

Return_type 2 phù hợp với hầu hết nhu cầu tại Việt Nam vì tuần làm việc bắt đầu từ Thứ Hai. Bảng chấm công, lịch làm việc, báo cáo dự án đều dễ xử lý hơn khi Thứ Hai là số 1.

Nếu làm việc với dữ liệu từ hệ thống Mỹ hoặc dữ liệu cũ đã dùng quy ước Chủ Nhật đầu tuần, giữ nguyên return_type 1 để tránh nhầm lẫn.

Return_type 3 hữu ích khi tích hợp Excel với công cụ lập trình hoặc database đếm từ 0. Các giá trị từ 11 đến 17 chỉ cần thiết cho yêu cầu đặc thù hoặc dự án quốc tế.

Hàm WEEKDAY có sẵn từ Excel 2007 trở đi. Return_type từ 11 đến 17 yêu cầu Excel 2010 trở lên. Nếu file cần mở trên Excel cũ hơn, chỉ sử dụng return_type 1, 2, hoặc 3.

Related Posts

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *