Gary có một trang tính chứa các chuỗi văn bản không có cấu trúc mà anh ấy cần phân tích cú pháp thành các phần tử thành phần. Đôi khi anh ta cần tìm kiếm các loại văn bản hơn là một ký tự cụ thể. Ví dụ: anh ta có thể muốn tìm lần xuất hiện đầu tiên, thứ N hoặc lần xuất hiện cuối cùng của bất kỳ ký tự in đậm nào (hoặc bất kỳ ký tự in nghiêng nào) trong ô.

Không có chức năng hoặc công cụ nội tại nào trong Excel để thực hiện nhiệm vụ này.

Tính năng Tìm và Thay thế thông thường trả về các kết quả phù hợp để định dạng, nhưng không trả về vị trí mà các kết quả phù hợp đó xảy ra. Để có được thông tin cụ thể về những gì bạn muốn tìm, bạn sẽ cần sử dụng macro. Bạn có thể lấy lại thông tin định vị vào trang tính của mình nếu bạn triển khai macro dưới dạng một hàm do người dùng xác định.

Macro sau chấp nhận một phạm vi (dự định là một ô cụ thể), một chỉ báo cho biết bạn muốn in đậm hay nghiêng (hoặc cả hai) và sự xuất hiện của định dạng đó.

Function FindNth(r As Range, sType As String, N As Integer) As Integer     Dim J As Integer     Dim iCount As Integer     Dim sStyle As String          If r.Count = 1 Then         FindNth = 0         iCount = 0         For J = 1 To Len(r.Text)

sStyle = r.Characters(J, 1).Font.FontStyle             If LCase(sStyle) = LCase(sType) Then                 iCount = iCount + 1                 If N = 0 Then                     FindNth = J                 Else                     If N = iCount Then                         FindNth = J                         Exit For                     End If                 End If             End If         Next J     Else         FindNth = -1     End If End Function

Để sử dụng macro, hãy sử dụng một trong các công thức sau trong trang tính của bạn:

=FindNth(A1, "bold", 2)

=FindNth(A1, "italic", 3)

=FindNth(A1, "bold italic", 1)

Trong mỗi trường hợp, tham số thứ ba chỉ định sự xuất hiện của định dạng nhất định mà bạn muốn tìm. Hàm trả về vị trí ký tự của lần xuất hiện đó trong ô. Nếu không có sự xuất hiện như vậy, thì 0 được trả về. Nếu bạn chỉ định nhiều ô trong tham số đầu tiên của hàm, nó sẽ trả về -1. Nếu bạn chỉ định sự xuất hiện của 0, thì vị trí ký tự của lần xuất hiện cuối cùng của định dạng được chỉ định sẽ được trả về.

_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 (13402) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.