Hàm INT trong Excel là công cụ quen thuộc để lấy phần nguyên. Nhưng khi tôi áp dụng nó cho kết quả âm của phép chia, Excel trả về những con số kỳ lạ. Phần lương thưởng đáng nhẽ âm 2 triệu lại thành âm 3 triệu. Bảng tính kho hàng sai lệch hoàn toàn. Hóa ra INT không hoạt động như bạn nghĩ với số âm.
Sai lầm phổ biến nhất
Khi tính toán âm 2.3, bạn kỳ vọng INT sẽ trả về âm 2 giống như cách nó lấy phần 5 từ số 5.7. Nhưng thực tế INT(âm 2.3) cho kết quả là âm 3. Excel không lấy phần nguyên mà làm tròn xuống xa số 0.
Nguyên nhân là cơ chế của hàm INT. Nó luôn làm tròn xuống số nguyên gần nhất theo chiều âm vô cùng. Với số dương 2.3, làm tròn xuống là 2. Với số âm 2.3, làm tròn xuống theo chiều âm là âm 3 thay vì âm 2.
Những trường hợp dễ nhầm:
- INT(âm 5.1) trả về âm 6 thay vì âm 5
- INT(âm 10.9) trả về âm 11 thay vì âm 10
- INT(âm 0.2) trả về âm 1 thay vì 0
Tôi mất 2 giờ để tìm lỗi trong bảng tính công nợ vì không biết điều này. File báo cáo tài chính của công ty sai số liệu hàng chục triệu đồng.
Công thức fix chính xác
Để lấy đúng phần nguyên của số âm, bạn cần chuyển đổi qua số dương trước. Công thức đúng là:
=INT(Number*-1)*-1
Cách hoạt động:
- Number nhân âm 1 chuyển số âm thành dương
- INT lấy phần nguyên của số dương
- Nhân âm 1 lần nữa để trả về số âm
Ví dụ với âm 5.7:
- Bước 1: âm 5.7 nhân âm 1 bằng 5.7
- Bước 2: INT(5.7) bằng 5
- Bước 3: 5 nhân âm 1 bằng âm 5
Áp dụng vào Excel: Giả sử ô B3 chứa kết quả âm 8.4 từ phép chia. Nhập công thức: =INT(B3*-1)*-1
Kết quả trả về chính xác là âm 8 thay vì âm 9 như khi dùng INT thông thường.
Khi nào cần dùng công thức fix
Bạn phải áp dụng fix này trong các tình huống:
Tính toán tài chính: Báo cáo lỗ lãi, công nợ, chi phí âm. Một sai số nhỏ trong phần nguyên khiến tổng báo cáo sai hàng triệu đồng. Tôi từng gặp trường hợp bảng lương sai do INT tính sai khoản trừ bảo hiểm.
Phép chia có kết quả âm: Khi chia số âm cho số dương hoặc ngược lại. Ví dụ INT(âm 100 chia 7) cho âm 15 thay vì âm 14 như kỳ vọng. Dùng =INT((âm 100/7)*-1)*-1
để có kết quả đúng.
Xử lý dữ liệu kho hàng: Tồn kho âm khi xuất nhiều hơn nhập. INT tính sai khiến số lượng thiếu hụt bị phóng đại.
Phương pháp thay thế
Ngoài fix công thức INT, bạn có 2 lựa chọn khác:
Hàm TRUNC: =TRUNC(Number)
TRUNC cắt bỏ phần thập phân mà không làm tròn. Với số âm, nó cho kết quả giống công thức fix của INT.
- TRUNC(âm 5.7) trả về âm 5
- TRUNC(âm 10.2) trả về âm 10
Hàm QUOTIENT cho phép chia: =QUOTIENT(tử số, mẫu số)
QUOTIENT trả về phần nguyên của phép chia mà không cần làm tròn. Với phép chia âm 100 chia 7, QUOTIENT cho kết quả âm 14 chính xác.
Tuy nhiên TRUNC và QUOTIENT chỉ hoạt động từ Excel 2013 trở lên. Nếu dùng phiên bản cũ, bạn phải áp dụng công thức fix INT.
Kết quả sau khi sửa
Sau khi thay INT bằng công thức fix hoặc TRUNC, bảng tính công nợ của tôi chính xác hoàn toàn. File báo cáo tài chính không còn sai số. Thời gian đối chiếu số liệu giảm từ 30 phút xuống 5 phút.
Bạn có thể kiểm tra nhanh bằng cách nhập =INT(âm 2.5)
và =INT(âm 2.5*-1)*-1
vào 2 ô khác nhau. Kết quả lần lượt là âm 3 và âm 2. Công thức nào đúng với nhu cầu của bạn thì áp dụng công thức đó.
Từ Excel 2013, Microsoft khuyến nghị dùng TRUNC thay vì INT khi xử lý số âm để tránh nhầm lẫn. Nhưng nếu file của bạn cần tương thích với Excel 2010 trở về trước, công thức =INT(Number*-1)*-1
là giải pháp duy nhất.