EOMONTH Hàm là Flakey (Microsoft Excel)
Joe sử dụng hàm EOMONTH khá thường xuyên, nhưng kể từ khi chuyển sang Excel 2007, anh ấy đã gặp vấn đề. Joe có hoạt động Analysis ToolPak và chức năng EOMONTH hoạt động ngay từ đầu. Tuy nhiên, khi anh ấy lưu sổ làm việc của mình và mở nó sau đó, các ô chứa hàm EOMONTH trông vẫn ổn cho đến khi bạn nhấp vào chúng. Sau đó, thanh công thức hiển thị # N / A. Công thức đã biến mất. Phân tích ToolPak vẫn hoạt động khi điều này xảy ra. Điều này không xảy ra vào mọi dịp, nhưng nó là quá thường xuyên để bỏ qua. Ngoài ra, Joe có một đồng nghiệp đang gặp phải vấn đề tương tự với sổ làm việc của anh ấy.
Sự cố này với EOMONTH dường như xảy ra do những thay đổi được thực hiện trong hàm EOMONTH trong các phiên bản Excel mới hơn (Excel 2007 trở lên).
Trong các phiên bản trước của Excel (Excel 2003 trở về trước) EOMONTH là một phần của Công cụ phân tích. Trong các phiên bản Excel sau, ToolPak không còn được yêu cầu nữa; hàm là một phần của chính Excel. Nói cách khác, bạn không cần phải kích hoạt Analysis ToolPak để sử dụng EOMONTH.
Điều này dẫn đến vấn đề. Nếu bạn có một sổ làm việc được tạo trong phiên bản Excel cũ hơn và bạn mở nó bằng chế độ tương thích trong phiên bản Excel mới hơn, các công thức sổ làm việc được đánh giá và trong một số trường hợp, “mã thông báo” nội bộ được sử dụng cho các hàm sẽ được cập nhật.
Khi sổ làm việc được lưu và thoát ra ngoài, mã thông báo cập nhật được lưu trữ trong sổ làm việc và khi sổ làm việc được tải lại, mã thông báo hiện trỏ đến những gì Excel hiểu là một hàm không hợp lệ.
Microsoft vẫn chưa đăng bất kỳ điều gì trong Cơ sở Kiến thức của họ về lỗi này. Sự cố dường như không liên tục (như Joe đã lưu ý), chỉ ảnh hưởng đến sổ làm việc sau khi nó trải qua từ bốn đến tám chu kỳ mở / chỉnh sửa / lưu.
Giải pháp là mở sổ làm việc và nếu sự cố không được hiển thị, hãy sử dụng Lưu Dưới dạng để lưu sổ làm việc ở định dạng Excel gốc.
(Chà, ở định dạng Excel có nguồn gốc từ Excel 2007 đến các phiên bản Excel mới hơn.) Vì chế độ tương thích không được tham gia kể từ thời điểm đó, sự cố sẽ không xảy ra nữa. Nếu sự cố được hiển thị, thì bạn sẽ cần phải sửa và xây dựng lại sổ làm việc.
Nếu bạn không thể lưu sổ làm việc ở định dạng gốc hiện tại của Excel (có lẽ bạn cần sử dụng định dạng Excel cũ hơn để làm việc với những người khác chưa cập nhật chương trình của họ), thì bạn nên xem xét không dựa vào hàm EOMONTH . Thay vào đó, hãy sử dụng công thức như một trong các công thức sau:
=A1+31-DAY(A1+31) =DATE(YEAR(A1),MONTH(A1)+1,1)-1
Nếu muốn, bạn có thể tạo hàm do người dùng xác định của riêng mình để tính ngày cuối cùng của tháng. Sau đây là một cách tiếp cận:
Function LastOfMonth(Any_Date As Date) As Date ' Returns the date of the last day of ' the month of the passed date argument LastOfMonth = DateAdd("d", -1, _ DateAdd("m", 1, Month(Any_Date) _ & "/1/" & Year(Any_Date))) End Function
Bạn sẽ muốn đảm bảo rằng bạn chuyển cho hàm một ngày hợp lệ, bằng cách tham chiếu ngày trong một ô hoặc bằng cách đặt một ngày theo nghĩa đen trong dấu ngoặc kép. Giả sử ô B7 chứa ngày 15/10/18, cả hai điều sau sẽ trả về cùng một kết quả:
=LastOfMonth(B7) =LastOfMonth("10/15/2018")
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (6613) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.