Tìm số lượng chữ số quan trọng (Microsoft Excel)
Brenda quan tâm đến việc biết số chữ số có nghĩa trong một giá trị. Cô ấy tự hỏi nếu có một hàm hoặc công thức Excel, cô ấy có thể sử dụng để trả về số chữ số có nghĩa trong giá trị được hiển thị trong một ô.
Câu hỏi này không đơn giản như nó có vẻ. Đối với một số người, tìm số chữ số có nghĩa trong một giá trị có nghĩa là đếm số chữ số, loại trừ bất kỳ dấu thập phân hoặc dấu âm nào. Nếu đó là tất cả những gì bạn cần, thì một cái gì đó như công thức này sẽ hoạt động tốt:
=IF(A1<0,IF(A1=INT(A1),LEN(A1)-1,LEN(A1)-2),IF(INT(A1)=A1,LEN(A1),LEN(A1)-1))
Tuy nhiên, lý do mà điều này không đơn giản là bởi vì điều gì tạo nên số chữ số có nghĩa trong một giá trị phụ thuộc vào nhiều thứ. Điểm mấu chốt là bạn không phải lúc nào cũng có thể biết được bằng cách nhìn vào một giá trị nó có bao nhiêu chữ số có nghĩa.
Ví dụ: giá trị 100 có thể có 1, 2 hoặc 3 chữ số có nghĩa. Người ta cho rằng giá trị 1.00 có 3 chữ số có nghĩa, nhưng điều đó có thể không đúng nếu giá trị được hiển thị là kết quả của định dạng do Excel áp đặt — ví dụ: giá trị trong ô có thể là 1.0000437, mà Excel định dạng là 1.00. Bạn có thể khám phá thêm về chủ đề chữ số có nghĩa tại đây:
Có một số cách được chấp nhận chung để xác định các chữ số có nghĩa trong một số, nhưng bất kỳ nỗ lực nào để hệ thống hóa một bộ quy tắc luôn mở ra tranh luận. Một bộ quy tắc như vậy đã được lưu ý tại Wikipedia, trong phần “Nhận dạng các chữ số quan trọng” của bài viết này:
http:--en.wikipedia.org-wiki-Significant_figures
Với ít nhất một bộ quy tắc thô sơ trong tâm trí (chẳng hạn như một bộ quy tắc trong bài viết Wikipedia), bạn có thể phát triển một hàm do người dùng xác định để cung cấp cho bạn số lượng chữ số có nghĩa nhiều nhất cho một giá trị.
Function SigFigs(rng As Range, Optional iType As Integer = 1) 'iType = 1 is Min 'iType = 2 is Max Dim rCell As Range Dim sText As String Dim sText2 As String Dim iMax As Integer Dim iMin As Integer Dim iDec As Integer Dim i As Integer Application.Volatile Set rCell = rng.Cells(1) 'if not a number then error If Not IsNumeric(rCell) Or IsDate(rCell) Then SigFigs = CVErr(xlErrNum) Exit Function End If sText2 = Trim(rCell.Text) sText = "" 'find position of decimal point (it matters) iDec = InStr(sText2, ".") 'strip out any non-numbers (including decimal point) For i = 1 To Len(sText2) If Mid(sText2, i, 1) >= "0" And _ Mid(sText2, i, 1) <= "9" Then _ sText = sText & Mid(sText2, i, 1) Next 'remove any leading zeroes (they don't matter) While Left(sText, 1) = "0" sText = Mid(sText, 2) Wend iMax = Len(sText) 'strip trailing zeroes (they don't matter if no decimal point) sText2 = sText If iDec = 0 Then While Right(sText2, 1) = "0" sText2 = Left(sText2, Len(sText2) - 1) Wend End If iMin = Len(sText2) 'return Min or Max Select Case iType Case 1 SigFigs = iMin Case 2 SigFigs = iMax Case Else SigFigs = CVErr(xlErrNum) End Select End Function
Bạn gọi hàm này bằng cách sử dụng hàm sau trong trang tính của bạn:
=SigFigs(A1, x)
Bạn có thể thay thế x bằng 1 hoặc 2. Nếu bạn chỉ định 1, thì hàm trả về số chữ số có nghĩa tối thiểu. Nếu bạn chỉ định 2, thì hàm trả về số chữ số có nghĩa lớn nhất. Trong hầu hết các trường hợp, hai giá trị trả về có thể sẽ giống nhau, ngoại trừ các giá trị là số nguyên, không có dấu thập phân ở cuối, có số 0 ở cuối. Nói cách khác, nếu bạn sử dụng hàm để đánh giá số 1234000, thì giá trị nhỏ nhất (x là 1)
trả về 4 và tối đa (x là 2) trả về 7.
Hàm xem xét cách số xuất hiện trong trang tính, có nghĩa là nó quan trọng đến cách số đó được định dạng. Nó loại bỏ mọi ký tự định dạng, chẳng hạn như dấu âm, dấu ngoặc đơn và dấu phẩy.
_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.
ExcelTipsMacros [Nhấp vào đây để mở trang đặc biệt đó trong tab trình duyệt mới] `.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (10976) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: