Công thức Excel: Làm tròn một số đến n chữ số có nghĩa
Công thức Excel: Làm tròn một số đến n chữ số có nghĩa

Công thức chung
=ROUND(number,digits-(1+INT(LOG10(ABS(number)))))
Tóm lược

Nếu bạn cần làm tròn một số thành một số (biến) nhất định gồm các chữ số hoặc hình được chỉ định, bạn có thể làm như vậy với một công thức thanh lịch sử dụng các hàm ROUND và LOG10.

Trong ví dụ được hiển thị, công thức trong D6 như sau:

=ROUND(B6,C6-(1+INT(LOG10(ABS(B6)))))

Giải trình

Đây có thể là một công thức đáng sợ nếu bạn không có kiến ​​thức nền tảng tốt về toán học, nhưng hãy làm từng bước một.

Đầu tiên, khi bạn có một công thức như thế này trong đó một hàm (trong trường hợp này là ROUND) bao quanh tất cả các hàm khác, thì việc làm việc từ bên ngoài vào trong thường rất hữu ích. Vì vậy, về cốt lõi, công thức này là làm tròn giá trị trong B6 bằng cách sử dụng ROUND chức năng:

=ROUND(B6,x)

Trong đó x là số chữ số có nghĩa được yêu cầu. Phần khó của công thức này là tính x. Đây là một biến, vì nó sẽ thay đổi tùy thuộc vào số được làm tròn. x được tính với bit này:

C6-(1+INT(LOG10(ABS(B6))))

Điều này có vẻ phức tạp, vì vậy trước tiên hãy xem công thức cần hoạt động như thế nào đối với các ví dụ đã cho. Hãy nhớ với ROUND rằng số chữ số âm hoạt động trên trái bên của số thập phân. Vì vậy, để làm tròn 1234567 thành số chữ số có nghĩa ngày càng tăng, chúng ta sẽ có:

=ROUND(1234567,-6) = 1000000 // 1 sig. digit
=ROUND(1234567,-5) = 1200000 // 2 sig. digits
=ROUND(1234567,-4) = 1230000 // 3 sig. digits
=ROUND(1234567,-3) = 1235000 // 4 sig. digits

Vì vậy, vấn đề chính là làm thế nào để tính toán -6, -5, -4 và như vậy tùy thuộc vào số chúng ta đang làm tròn.

Chìa khóa là hiểu cách những con số này có thể được biểu thị bằng cách sử dụng số mũ, như trong ký hiệu khoa học:

=ROUND(1234567,-6) = 1000000 = 1.0*10^6
=ROUND(1234567,-5) = 1200000 = 1.2*10^6
=ROUND(1234567,-4) = 1230000 = 1.23*10^6
=ROUND(1234567,-3) = 1235000 = 1.235*10^6

Lưu ý rằng số mũ là 6 trong mọi trường hợp, được xác định bằng bit này:

INT(LOG10(ABS(B6)))

Vì vậy, phần còn lại của công thức chỉ là sử dụng giá trị số mũ được tính toán để tìm ra số phù hợp để cung cấp cho ROUND tùy thuộc vào số chữ số có nghĩa mong muốn:

=ROUND(1234567,-6) // 1-(1+6) = -6
=ROUND(1234567,-5) // 2-(1+6) = -5
=ROUND(1234567,-4) // 3-(1+6) = -4
=ROUND(1234567,-3) // 4-(1+6) = -3

Vì vậy, tóm lại:

  1. ABS chuyển đổi giá trị thành giá trị tuyệt đối (dương)
  2. LOG10 nhận số mũ, trong trường hợp này là 6 với giá trị thập phân
  3. INT cắt bớt phần thập phân của số mũ
  4. Công thức sử dụng số mũ và các chữ số có nghĩa được cung cấp để tìm ra số chữ số phù hợp để cho ROUND
  5. ROUND làm tròn số bằng cách sử dụng số chữ số được cung cấp

https://exceljet.net/formula/round-a-number-to-n-significant-digits