Chris có một số lượng lớn các ô chứa số bộ phận. Các ô này có thể chứa chữ số hoặc ký tự, trong bất kỳ sự kết hợp nào. Chúng cũng có thể chứa các ký tự đặc biệt như dấu gạch ngang, dấu gạch chéo và dấu cách.

Chris cần một cách để xác định xem một ô chỉ chứa các chữ số mà không cần tính đến các ký tự đặc biệt. Do đó, một ô chứa 123-45 sẽ hiển thị là chỉ chứa các chữ số, trong khi 123AB-45 thì không.

Cách dễ nhất để xác định xem một ô nhất định chỉ chứa các ký tự và chữ số được phép hay không là sử dụng công thức loại bỏ các ký tự được phép không phải chữ số và sau đó xem giá trị kết quả có phải là số hay không. Tất cả các công thức sau có thể thực hiện thủ thuật khá độc đáo:

=IF(IFERROR(INT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"-", ""),"/", "")," ", "")),FALSE), TRUE, FALSE)

=OR(ISNUMBER(SUBSTITUTE(A1,"-","")+0),ISNUMBER(SUBSTITUTE(A1,"/","")+0),ISNUMBER(SUBSTITUTE(A1," ","")+0))

=ISNUMBER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),"/",""),"-","")*1)

Bạn cũng có thể sử dụng một macro đơn giản để tìm hiểu xem một ô chỉ chứa các chữ số và các ký tự được phép của bạn. Mặc dù có bất kỳ cách nào để tiếp cận một macro như vậy, nhưng đây là một phương pháp khá dễ dàng:

Function DigitsOnly(sRaw As String) As Boolean     Dim X As Integer     Const sAllowed As String = "0123456789 -/"



Application.Volatile     For X = 1 To Len(sRaw)

If InStr(sAllowed, Mid(sRaw, X, 1)) = 0 Then Exit For     Next X     DigitsOnly = False     If X > Len(sRaw) Then DigitsOnly = True End Function

Macro kiểm tra bất cứ thứ gì được chuyển đến nó, so sánh từng ký tự trong chuỗi với danh sách các ký tự được phép (trong hằng sAllowed).

Nếu một ký tự không được phép được phát hiện, vòng lặp sẽ được thoát sớm và giá trị Sai được trả về. Vì vậy, nếu bạn muốn đánh giá ô ở A1, bạn có thể sử dụng như sau trong macro của mình:

=DigitsOnly(A1)

Vì chúng trả về giá trị Đúng hoặc Sai, nên bất kỳ cách tiếp cận nào trong số này (công thức hoặc hàm do người dùng xác định) đều có thể được sử dụng cùng với định dạng có điều kiện để thực hiện thay đổi định dạng đối với số bộ phận của 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 (12654) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.