Tôi Tính Số Tuần Sai Trong 2 Năm Cho Đến Khi Phát Hiện Hàm ISOWEEKNUM Của Excel

Hai năm trước, tôi tạo báo cáo tuần bằng hàm WEEKNUM cho công ty. Mỗi thứ Hai, tôi gửi email với tiêu đề có số tuần từ Excel. Rồi một ngày, phòng kế toán gọi hỏi tại sao số tuần trong báo cáo của tôi luôn sai số với hệ thống SAP của họ. Chỉ sau khi kiểm tra kỹ, tôi mới phát hiện hàm ISOWEEKNUM tồn tại từ Excel 2013.

Vấn đề với WEEKNUM mà tôi không biết

Trong hai năm, công thức của tôi là đơn giản: =WEEKNUM(TODAY()). Excel trả về số tuần, tôi dùng nó cho tiêu đề báo cáo. Ngày 2 tháng 1 năm 2024 rơi vào thứ Ba. WEEKNUM cho kết quả là tuần 1. Hợp lý.

Nhưng hệ thống SAP của phòng kế toán hiển thị tuần 53 năm 2023. Cùng một ngày, hai số tuần khác nhau. Tôi nghĩ đó là lỗi của SAP cho đến khi phát hiện toàn bộ các hệ thống quốc tế trong công ty đều dùng số tuần giống SAP.

Nguyên nhân cốt lõi:

WEEKNUM dùng hệ thống mặc định theo Excel cũ. Tuần 1 của năm là tuần chứa ngày 1 tháng 1, bất kể ngày đó là thứ mấy. Năm 2024, ngày 1 tháng 1 rơi vào thứ Hai, nên tuần 1 bắt đầu từ thứ Hai 1 tháng 1.

Vấn đề: Năm 2025, ngày 1 tháng 1 rơi vào thứ Tư. Theo WEEKNUM, tuần 1 chỉ có 4 ngày từ thứ Tư đến Chủ nhật. Những ngày thứ Hai và thứ Ba trước đó thuộc tuần 53 của năm cũ hay tuần 1 của năm mới? WEEKNUM coi đó là tuần 53 năm cũ.

Tại sao số tuần sai khi so với tiêu chuẩn quốc tế

Hầu hết hệ thống doanh nghiệp toàn cầu tuân theo tiêu chuẩn ISO 8601. Tiêu chuẩn này quy định rõ ràng:

  • Tuần bắt đầu từ thứ Hai
  • Tuần 1 của năm là tuần đầu tiên có ngày thứ Năm
  • Kết quả có thể từ 1 đến 53

Với quy tắc này, tuần luôn có 7 ngày đầy đủ. Không có tuần nào chỉ 3 hoặc 4 ngày như WEEKNUM. Ngày 2 tháng 1 năm 2024 là thứ Ba, tuần đó có ngày thứ Năm 4 tháng 1, nên đây là tuần 1 theo ISO. Nhưng tuần bắt đầu từ thứ Hai 1 tháng 1, không phải từ thứ Ba.

XEM THÊM:  Cách Dùng Hàm DAYS Trong Excel 2013 Để Tính Khoảng Cách Ngày Chính Xác

Đối với ngày 1 tháng 1 năm 2025 là thứ Tư, tuần đó có ngày thứ Năm 2 tháng 1. Theo ISO, đây cũng là tuần 1. Nhưng tuần bắt đầu từ thứ Hai 29 tháng 12 năm 2024. Những ngày cuối năm 2024 này thuộc tuần 1 của năm 2025 theo chuẩn ISO.

WEEKNUM không hiểu logic này. Hàm chỉ đếm từ ngày 1 tháng 1 và tăng số tuần mỗi Chủ nhật mặc định hoặc ngày khác tùy tham số.

Hàm ISOWEEKNUM giải quyết vấn đề

Excel giới thiệu ISOWEEKNUM từ phiên bản 2013 để khắc phục vấn đề này. Hàm tuân thủ hoàn toàn tiêu chuẩn ISO 8601 mà không cần tham số phức tạp.

Cú pháp đơn giản:

=ISOWEEKNUM(date)

Chỉ cần một tham số là ngày. Không có tham số thứ hai như WEEKNUM. Hàm tự động tính theo chuẩn ISO với tuần bắt đầu thứ Hai và tuần 1 là tuần có thứ Năm đầu tiên.

Ví dụ cụ thể:

Ngày 29 tháng 12 năm 2024 là Chủ nhật:

  • =WEEKNUM("29/12/2024") trả về 53
  • =ISOWEEKNUM("29/12/2024") trả về 52

Ngày 30 tháng 12 năm 2024 là thứ Hai:

  • =WEEKNUM("30/12/2024") trả về 53
  • =ISOWEEKNUM("30/12/2024") trả về 1

Tuần từ thứ Hai 30 tháng 12 năm 2024 đến Chủ nhật 5 tháng 1 năm 2025 có ngày thứ Năm 2 tháng 1 năm 2025. Đây chính là tuần 1 của năm 2025 theo ISO.

Cách chuyển từ WEEKNUM sang ISOWEEKNUM

Sau khi phát hiện sai số, tôi phải sửa toàn bộ template báo cáo và công thức liên quan. Quá trình chuyển đổi đơn giản hơn tôi nghĩ.

Bước 1: Tìm tất cả công thức WEEKNUM

Mở Find & Replace bằng Ctrl + H. Tìm kiếm WEEKNUM( trong toàn bộ workbook. Excel highlight tất cả ô có công thức này.

Bước 2: Thay thế có chọn lọc

Không phải mọi WEEKNUM đều cần thay. Nếu file chỉ dùng nội bộ và không cần tương thích với hệ thống khác, WEEKNUM vẫn hoạt động tốt. Chỉ thay ở những nơi cần tuân thủ ISO 8601:

  • Báo cáo gửi cho chi nhánh quốc tế
  • Dữ liệu đồng bộ với ERP, CRM
  • Dashboard tích hợp nhiều nguồn

Bước 3: Điều chỉnh công thức phức tạp

WEEKNUM có tham số thứ hai để chỉ định ngày bắt đầu tuần: =WEEKNUM(A1, 2) nghĩa là tuần bắt đầu từ thứ Hai. ISOWEEKNUM luôn bắt đầu từ thứ Hai nên bỏ tham số này:

Trước: =WEEKNUM(A1, 2)
Sau: =ISOWEEKNUM(A1)

Nếu WEEKNUM kết hợp với DATE hoặc TODAY:

Trước: =WEEKNUM(TODAY())
Sau: =ISOWEEKNUM(TODAY())

Bước 4: Kiểm tra kết quả với ngày đầu năm

Tạo bảng test với các ngày đặc biệt:

  • 1 tháng 1 nhiều năm liên tiếp
  • Các ngày cuối tháng 12
  • Tuần đầu tháng 1
XEM THÊM:  Hướng Dẫn Toàn Diện Hàm WEEKNUM: Từ Cơ Bản Đến Kết Hợp Nâng Cao

So sánh kết quả WEEKNUM và ISOWEEKNUM. Chênh lệch thường xảy ra ở tuần đầu năm và tuần cuối năm. Đảm bảo ISOWEEKNUM khớp với hệ thống cần tích hợp.

So sánh trực tiếp hai hàm

Để hiểu rõ khác biệt, tôi tạo bảng so sánh với các ngày quan trọng của năm 2024 và 2025:

Ngày WEEKNUM ISOWEEKNUM Ghi chú
1/1/2024 (Thứ Hai) 1 1 Khớp
31/12/2024 (Thứ Ba) 53 1 (năm 2025) Khác
1/1/2025 (Thứ Tư) 1 1 Khớp nhưng tuần bắt đầu khác ngày
29/12/2024 (Chủ nhật) 53 52 Khác

Lưu ý quan trọng: Ngày 31 tháng 12 năm 2024 theo WEEKNUM thuộc tuần 53 năm 2024. Theo ISOWEEKNUM, nó thuộc tuần 1 năm 2025 vì tuần đó có ngày thứ Năm 2 tháng 1 năm 2025.

Sự khác biệt này ảnh hưởng đến báo cáo cuối năm. Nếu tôi tổng hợp doanh số theo tuần bằng WEEKNUM, ngày 31 tháng 12 tính vào năm cũ. Bằng ISOWEEKNUM, nó tính vào năm mới. Khi đối chiếu với SAP hoặc hệ thống kế toán quốc tế, sai số xuất hiện.

Tương thích với WEEKNUM cho người cần tuỳ chỉnh

ISOWEEKNUM đơn giản nhưng không linh hoạt. Hàm không cho phép thay đổi ngày bắt đầu tuần hoặc cách tính tuần 1. Nếu cần tùy chỉnh, vẫn dùng WEEKNUM với tham số thứ hai.

WEEKNUM có 21 hệ thống khác nhau thông qua tham số return_type. Giá trị 21 tương đương ISO 8601:

=WEEKNUM(date, 21)

Công thức này cho kết quả giống ISOWEEKNUM. Tôi test trên nhiều năm, hai hàm trả về số giống hệt nhau khi WEEKNUM dùng tham số 21.

Vậy tại sao dùng ISOWEEKNUM thay vì WEEKNUM với 21? Đơn giản hơn và rõ ràng hơn trong ý định. Khi đồng nghiệp mở file, họ hiểu ngay công thức tuân theo chuẩn ISO mà không cần nhớ ý nghĩa của số 21.

Ứng dụng thực tế với ISOWEEKNUM

Sau khi chuyển đổi, báo cáo tuần của tôi đồng bộ hoàn toàn với hệ thống công ty. Không còn email hỏi tại sao số tuần khác nhau.

Dashboard tuần bằng SUMIFS:

Tôi tạo dashboard tổng hợp doanh số theo tuần. Công thức cũ dùng WEEKNUM gây sai lệch ở tuần đầu năm:

Cũ: =SUMIFS(DoanSo, Ngay, WEEKNUM(Ngay)=X)
Mới: =SUMIFS(DoanSo, Ngay, ISOWEEKNUM(Ngay)=X)

Tính deadline theo tuần:

Công ty đặt deadline theo số tuần ISO. Công thức check còn bao nhiêu tuần đến deadline:

=ISOWEEKNUM(DeadlineDate) - ISOWEEKNUM(TODAY())

Kết quả chính xác vì cả hai ngày dùng cùng chuẩn tính tuần.

Lọc dữ liệu theo tuần ISO:

Power Query và Pivot Table đều hỗ trợ ISOWEEKNUM. Tôi thêm cột helper trong bảng dữ liệu:

=ISOWEEKNUM([NgayGiaoDich])

Sau đó lọc và nhóm theo số tuần mà không lo sai sót.

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

Lỗi thường gặp và cách khắc phục

Lỗi #VALUE!

Xuất hiện khi tham số date không phải ngày hợp lệ. Excel lưu ngày dưới dạng số từ 1 tháng 1 năm 1900. Nếu nhập text trực tiếp không đúng định dạng, hàm báo lỗi.

Khắc phục: Dùng hàm DATE để tạo ngày:

=ISOWEEKNUM(DATE(2025, 1, 15))

Hoặc tham chiếu ô đã định dạng ngày đúng.

Lỗi #NUM!

Xảy ra khi date nằm ngoài phạm vi hợp lệ của Excel. Ngày trước 1 tháng 1 năm 1900 hoặc sau 31 tháng 12 năm 9999 không được hỗ trợ.

Khắc phục: Kiểm tra giá trị đầu vào. Nếu import dữ liệu từ hệ thống khác, đảm bảo định dạng ngày tương thích.

Kết quả 52 hoặc 53 cho ngày đầu năm

Không phải lỗi. Những ngày đầu tháng 1 có thể thuộc tuần cuối của năm trước theo chuẩn ISO. Ngày 1 tháng 1 năm 2025 là thứ Tư, thuộc tuần bắt đầu từ thứ Hai 29 tháng 12 năm 2024. Tuần đó có thứ Năm 1 tháng 1 năm 2025, nên là tuần 1 năm 2025.

Khi nào nên dùng ISOWEEKNUM

ISOWEEKNUM phù hợp khi làm việc với:

  • Hệ thống ERP quốc tế như SAP, Oracle
  • Báo cáo gửi cho đối tác châu Âu và Mỹ
  • Dữ liệu đồng bộ nhiều nguồn cần chuẩn chung
  • Phân tích theo tuần cần so sánh với benchmarks ngành

WEEKNUM vẫn phù hợp khi:

  • File Excel chỉ dùng nội bộ không cần tích hợp
  • Công ty có quy định riêng về cách tính tuần
  • Cần tuỳ chỉnh ngày bắt đầu tuần không phải thứ Hai

Tôi giữ lại WEEKNUM cho các file tracking cá nhân vì quen với logic đơn giản. Nhưng mọi báo cáo chính thức và file chia sẻ đều chuyển sang ISOWEEKNUM.

Tương thích phiên bản Excel

ISOWEEKNUM có sẵn từ Excel 2013 trở đi, bao gồm:

  • Excel 2013, 2016, 2019, 2021
  • Microsoft 365 (Excel Online và Desktop)
  • Excel for Mac 2016 trở về sau

Không hỗ trợ Excel 2010 trở về trước. Nếu file cần tương thích với phiên bản cũ, dùng công thức thay thế:

=WEEKNUM(date, 21)

Hoặc công thức thủ công tính tuần ISO nhưng phức tạp hơn nhiều và dễ sai.

Đối với Google Sheets, hàm tương đương là:

=ISOWEEKNUM(date)

Cú pháp giống hệt Excel.

Kinh nghiệm hai năm nhìn lại

Việc dùng sai hàm trong hai năm khiến tôi mất nhiều giờ giải thích và điều chỉnh báo cáo. Khoảng 20 email mỗi tháng hỏi về sự khác biệt số tuần. Sau khi chuyển sang ISOWEEKNUM, email giảm còn 0.

Bài học quan trọng: Khi làm việc với hệ thống quốc tế, luôn kiểm tra tiêu chuẩn họ dùng. ISO 8601 là chuẩn phổ biến nhất cho ngày giờ và số tuần. Excel có hàm riêng cho chuẩn này từ 2013 nhưng nhiều người không biết vì WEEKNUM xuất hiện trước và quen thuộc hơn.

Nếu đang dùng WEEKNUM và gặp sai số với hệ thống khác, thử ISOWEEKNUM. Công thức đơn giản hơn và khớp với chuẩn toàn cầu. File Excel của bạn sẽ tương thích tốt hơn với SAP, Power BI, và mọi công cụ tuân thủ ISO 8601.

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 *