..................
..................
Xong!
Hơn chục bài rồi mà vẫn chưa làm cho người khác hiểu bạn muốn gì.
Đây là loại ROUND của con toán Ngân Hàng, tiếng chuyên môn gọi là Bankers Rounding. Vấn đề này tôi đã giải thích cặn kẽ lý do, nguyên tắc và cách sử dụng một lần rồi.
Tuy chủ thớt nói là trong ngành công việc của mình nhưng chính chủ thớt cũng chả hiểu gì về con toán này cho nên giải thích không được.
Cách làm tròn của Ngân Hàng cũng tương tự như cách của toán. Chỉ khác cách sử lý số 5.
Đại khái là ta có tất cả 10 chữ số sau đơn vị tròn: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Số 0 thì không cần làm tròn. Ta đồng thời sử lý 4 số nhỏ hơn 5 (1234) -> chặt bỏ; và 4 số lớn hơn 5 (6789) -> nâng lên 1. Còn lại số 5, nếu cũng nâng lên 1 thì đó là cách làm tròn toán học.
Tuy nhiên, trong ngành Ngân Hàng, người ta cho rằng nâng như vậy là thiên vị. Và người ta đồng ý dùng một quy tắc cho nó cân bằng hơn. Quy tắc này gọi là "nâng đến chữ số chẵn". Tức là nếu trước số 5 là số lẻ (1,3,5,7,9) thì nâng nó lên thành chẵn (2,4,6,8,0); trong khi nếu trước số 5 đã sẵn là chẵn (0,2,4,6,8) thì để yên (chỉ chặt bỏ 5 đi)
Bạn xem trong file, mình làm UDF
Dữ liệu của bạn vẫn chưa có các số mà hàng thập fân nhỏ hơn 5;
Nếu bạn làm về kỹ thuật, mình khuyên bạn nên thận trọng nhiều hơn nữa trong công việc chuyên môn!
1. Chủ thớt làm về Ngân Hàng chứ không phải kỹ thuật.
2. Muốn làm UDF thì cũng không cần phải rườm rà thế. Chỉ cần gọi hàm ROUND của VBA là được. VBA vốn là công cụ của Access cho nên hàm ROUND của VBA cũng theo luật của Access. (Tôi đã từng giải thích sự khác nhau giữa hàm ROND của VBA và hàm ROUND của Worksheet)