Văn bản đó ở đâu? (Microsoft Excel)
Jay cần xác định ô chứa một giá trị văn bản cụ thể.
Anh ấy biết mình có thể sử dụng các khả năng Tìm và Thay thế của Excel để xác định thủ công địa chỉ của các ô chứa giá trị văn bản, nhưng anh ấy đang tìm công thức để xác định địa chỉ của các ô. Anh ấy tự hỏi liệu có cách nào để tìm kiếm đoạn văn bản trong một phạm vi và để Excel trả về địa chỉ của ô chứa đoạn văn bản đó không.
Có hai điều bạn có thể thử. Đầu tiên, nếu bạn đang tìm kiếm một kết hợp chính xác cho nội dung ô, thì bạn có thể sử dụng công thức. Công thức cơ bản là:
=ADDRESS(MATCH(C2,A:A,0),1)
Trong ví dụ này, ô C2 chứa giá trị bạn đang tìm kiếm và cột A là phạm vi ô đang được tìm kiếm. Công thức trả về một kết quả bất kể cách viết hoa của C2 hoặc các giá trị trong cột A.
Do đó, nếu C2 chứa “apple”, thì công thức sẽ khớp tích cực với các ô có chứa “apple”, “Apple” hoặc “APPLE”. Thật vậy, bất kỳ kết hợp viết hoa nào cũng sẽ phù hợp.
Công thức này sẽ không trả về địa chỉ cho một ô chứa những gì bạn đang tìm kiếm giữa văn bản khác. Vì vậy, nếu bạn đang tìm kiếm “apple” (ô C2), nó sẽ không trả về địa chỉ của ô có chứa cụm từ “apple crisp”. Bạn có thể sửa đổi hành vi này một chút bằng cách thêm các ký tự thẻ đại diện vào ô tìm kiếm. Ví dụ: nếu bạn tìm kiếm “apple” thì công thức trả về địa chỉ của ô có chứa “apple”, ngay cả khi nó được đặt trước hoặc theo sau bởi các ký tự khác.
Cần lưu ý rằng công thức này chỉ trả về địa chỉ của ô đầu tiên trong phạm vi đáp ứng tiêu chí. Nếu bạn thực sự muốn địa chỉ của tất cả các ô đáp ứng tiêu chí, thì bạn sẽ cần phải dựa vào macro. Sau đây là một ví dụ điển hình:
Function FindMe(x As Range, y As String) As String Dim r As Range Dim sResults As String Dim sSearch As String Application.Volatile sSearch = LCase(y) For Each r In x If InStr(1, LCase(CStr(r.Value)), sSearch) > 0 Then sResults = sResults & r.Address & ", " End If Next r If Len(sResults) > 2 Then FindMe = Left(sResults, Len(sResults) - 2) Else FindMe = "" End If End Function
Bạn sử dụng chức năng bằng cách chỉ cần cung cấp phạm vi bạn muốn tìm kiếm cùng với những gì bạn muốn tìm kiếm:
=FindMe(A:A, "apple")
Nếu bạn sử dụng một phạm vi lớn (như trong ví dụ này – tất cả cột A), thì đừng ngạc nhiên nếu hàm mất một khoảng thời gian đáng kể để trả về một kết quả. Điều này có ý nghĩa, vì nó phải tìm kiếm qua mọi ô trong phạm vi, bất kể có bất kỳ thứ gì trong ô đó hay không.
Bạn cũng không cần sử dụng bất kỳ ký tự đại diện nào có chức năng này; nó giả định rằng một kết quả phù hợp xảy ra nếu những gì bạn đang tìm kiếm nằm ở bất kỳ đâu trong ô. Nó cũng không chú ý đến cách viết hoa của những gì bạn đang tìm kiếm hoặc cách viết hoa của bất kỳ thứ gì trong phạm vi tìm kiếm.
_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 (10083) á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: