Ken hỏi liệu có thể duy trì số chữ số có nghĩa trên các giá trị được nhập vào Excel hay không. Ví dụ: “12.345600” và “1.230”.

Câu trả lời ngắn gọn, Ken, là bạn không thể. Tại sao? Bởi vì Excel luôn chuyển đổi mọi thứ thành 15 chữ số có nghĩa trong nội bộ. Điều này, nếu bạn nhập 12 hoặc 12.0 hoặc 12.00000, Excel luôn coi các giá trị này giống như 12.0000000000000, mặc dù điều này có thể không đúng về mặt kỹ thuật theo nghĩa toán học chân thực nhất. Hơn nữa, vì Excel chuyển đổi mọi thứ thành 15 chữ số có nghĩa, nó sẽ cắt bớt bất kỳ số không ở cuối trong bất kỳ số nào được hiển thị bằng cách sử dụng định dạng số Chung.

(Từ giải thích trên, hiển nhiên là các thuật ngữ “chữ số có nghĩa”, “độ chính xác” và “số chữ số thập phân” có nghĩa hoàn toàn khác nhau. Ví dụ: số 12.000 có ba chữ số thập phân, nhưng có năm chữ số có nghĩa. (Tôi chắc chắn rằng các nhà lý thuyết toán học trong khán giả sẽ rất vui khi sửa cho tôi nếu tôi sai.)

Bạn có thể sử dụng định dạng số tùy chỉnh cho các ô riêng lẻ, định dạng này sẽ hiển thị thông tin bằng cách sử dụng số lượng chữ số có nghĩa thích hợp, nhưng điều này sẽ không ảnh hưởng đến cách Excel hoạt động bên trong. Ví dụ: bạn có thể định dạng một ô để hiển thị 12 hoặc 12.0 hoặc 12.00000, nhưng điều này không thay đổi thực tế là Excel vẫn coi tất cả các số là 12.0000000000000.

Một cách giải quyết vấn đề này là nhập các số của bạn dưới dạng văn bản, bằng cách đặt dấu nháy đơn trước chúng. Nói cách khác, thay vì nhập 12.0, bạn sẽ nhập ’12 .0. Excel sau đó phân tích cú pháp mục nhập dưới dạng văn bản (vì apos trophe) và hiển thị 12.0 trong ô. Hạn chế duy nhất của cách tiếp cận này là bạn không thể tham chiếu trực tiếp ô trong tất cả các hàm toán học; một số trong số chúng sẽ trả về lỗi vì bạn đang bao gồm những gì Excel coi là văn bản trong hàm. Cách dễ nhất để xử lý điều này là đảm bảo bạn bao gồm hàm = VALUE như một phần của công thức tổng thể của mình. Ví dụ: nếu bạn nhập một số dưới dạng văn bản vào ô B7 và sau đó cần tham chiếu nó trong một công thức, bạn có thể thực hiện theo cách này:

=VALUE(B7) * 100

Điều này hoạt động tốt cho các công thức có tham chiếu ô đơn. Tuy nhiên, nó không hoạt động tốt cho các tham chiếu phạm vi. Nếu bạn cần tính tổng hoặc trung bình trên một phạm vi giá trị được nhập dưới dạng văn bản, Excel sẽ bị sặc mọi lúc, trả về lỗi dựa trên những gì hàm đang cố gắng thực hiện.

Điều này đưa chúng ta đến giải pháp tiềm năng thứ hai: duy trì các chữ số có nghĩa hoặc số chữ số thập phân tách biệt với giá trị thực. Đối với nhiều mục đích toán học kỹ thuật, đây là cách tốt nhất để xử lý tình huống. Ví dụ, trong cột C, bạn có thể nhập số của mình, dưới dạng số. Tất nhiên, Excel chuyển đổi chúng trong nội bộ thành 15 chữ số có nghĩa. Trong cột D, bạn có thể nhập các số khác nhau đại diện cho số vị trí thập phân bạn muốn áp dụng cho các giá trị trong cột C. Sau đó, bạn có thể sử dụng các giá trị trong cột D để trợ giúp trong các công thức tham chiếu đến các giá trị trong cột C.

Một giải pháp tiềm năng cuối cùng là chỉ cần định dạng từng ô riêng lẻ để nó chỉ hiển thị số vị trí thập phân mà bạn muốn hiển thị.

Với lưu ý ở trên (rằng định dạng như vậy không ảnh hưởng đến biểu diễn bên trong của các số bằng Excel), đây có thể là giải pháp tốt nhất. Tất nhiên, việc điều chỉnh riêng định dạng hiển thị của một vài ô là điều dễ dàng, nhưng làm như vậy với một trăm hoặc năm trăm ô thì lại là một câu chuyện khác. Đây là nơi mà một macro có thể hữu ích. Hãy xem xét macro sau:

Sub SigPlaces()

Dim c As Range Dim strcell As String, NumFormat As String, DecSep As String Dim DecPtLoc As Integer, stringLen As Integer Dim numDecPlaces As Long

DecSep = "."



For Each c In Selection.Cells     strcell = c.Value     If IsNumeric(strcell) Then         NumFormat = "#0"

DecPtLoc = InStr(strcell, DecSep)

If DecPtLoc > 0 Then             NumFormat = NumFormat & DecSep             stringLen = Len(strcell)

numDecPlaces = stringLen - DecPtLoc             NumFormat = NumFormat & String(numDecPlaces, "0")

End If         c.Value = Val(strcell)

c.NumberFormat = NumFormat     End If Next c End Sub

Nếu bạn nhập số của mình dưới dạng văn bản (với dấu nháy đơn, đã đề cập ở trên), thì bạn có thể chọn các ô và chạy macro này. Các mục nhập văn bản được chuyển đổi thành số và định dạng áp dụng cho các ô đó được thay đổi để cùng một số vị trí thập phân được hiển thị như bạn đã nhập trong mục nhập văn bản.

_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 (2045) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.