Gary muốn tìm và thay thế một từ viết tắt như “sys” và thay thế nó bằng “systems”. Vấn đề là nếu anh ta thay thế tất cả các lần xuất hiện, nó sẽ chuyển các trường hợp hiện có của “hệ thống” thành “hệ thống”. Gary có thể kiểm tra từng lần xuất hiện và thay thế từng cá nhân, nhưng điều đó sẽ mất vĩnh viễn. Anh ấy tự hỏi liệu có cách nào khiến Excel chỉ thay thế các lần xuất hiện “toàn bộ từ” của “sys” bằng “systems” như trong Word hay không.

Những người quen thuộc với khả năng Tìm và Thay thế của Excel thoạt đầu có thể nghĩ rằng bạn có thể sử dụng “Khớp toàn bộ nội dung ô”

thiết lập để thực hiện công việc. Tuy nhiên, điều đó chỉ hoạt động nếu chữ viết tắt “sys” là thứ duy nhất trong một ô. Trong tình huống của Gary, không phải vậy. Anh ta có các cụm từ và toàn bộ câu có chứa “sys” (như trong “sys admin” hoặc “Cần kiểm tra sys”). Vì vậy, yêu cầu của anh ấy cho một cái gì đó giống như cài đặt “toàn bộ từ” của Word.

Với suy nghĩ đó, có một số điều bạn có thể thử; giải pháp tốt nhất cho bạn sẽ phụ thuộc vào bản chất của văn bản trong trang tính của bạn.

Ví dụ: nếu điểm nhầm lẫn duy nhất có thể xảy ra là từ “hệ thống”,

thì sẽ dễ dàng nhất là chỉ cần thay thế “system” bằng một cái gì đó duy nhất, chẳng hạn như “\ {[]}”. (Tôi có xu hướng thích dấu ngoặc nhọn vì chúng là duy nhất trong hầu hết dữ liệu.) Sau đó, bạn thay thế “sys” bằng “systems” và cuối cùng thay “\ {[]}” bằng “system”.

Nếu có những điểm nhầm lẫn khác ngoài “hệ thống”, thì bạn có thể sử dụng thêm khoảng trắng trong văn bản Tìm gì của mình. Nói cách khác, hãy tìm kiếm “sys” (với khoảng trắng) và thay thế nó bằng “system” (một lần nữa, với khoảng trắng). Điều này sẽ tìm thấy tất cả các lần xuất hiện một cách chính xác miễn là sys không được theo sau bởi dấu chấm câu, không xảy ra ở đầu ô và không xảy ra ở cuối ô.

Tất nhiên, bạn có thể thực hiện các tìm kiếm bổ sung để có được một số thông tin này. Ví dụ: bạn có thể tìm kiếm “sys” (chỉ có khoảng trắng ở cuối)

để tìm các lần xuất hiện ở đầu ô. Bạn sẽ không tốt nếu tìm kiếm “sys” (chỉ có dấu cách ở đầu) vì điều đó sẽ khớp với bất kỳ sự xuất hiện nào của “hệ thống” trước dấu cách. Trong các tìm kiếm tuần tự, bạn cũng có thể tìm kiếm “sys” theo sau là dấu chấm, dấu phẩy, dấu chấm hỏi, dấu chấm than, dấu chấm phẩy, v.v.

Nếu bạn thích sử dụng macro, sau đây là một ví dụ về cách bạn có thể tiếp cận vấn đề. Macro nhắc bạn về những gì bạn muốn tìm và những gì bạn muốn thay thế nó.

Sub ReplaceOnlySpecifirdWord()

Dim c As Range, rng As Range, rngArea As Range     Dim vFind As String, vReplace As String     Dim v As Variant     Dim arrSplit As Variant     Dim s As String     Dim i As Integer, n As Long     Dim b As Boolean     Const csDELIMITER = " "



On Error Resume Next     ' Reference Constants only     Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)

If rng Is Nothing Then         MsgBox "There are no constants on active sheet...", vbExclamation         Exit Sub     End If     On Error GoTo 0

' Get Find and Replace strings     v = InputBox(Prompt:="Please enter String to be replaced.")

If v <> "" Then         vFind = v     Else         MsgBox "Wrong entry; app is going to be terminated.", vbExclamation         Exit Sub     End If

v = InputBox(Prompt:="Please enter Replace String.")

If v <> "" Then         vReplace = v     Else         MsgBox "Wrong entry; app is going to be terminated.", vbExclamation         Exit Sub     End If

Application.ScreenUpdating = False     Application.Calculation = xlCalculationManual     n = 0     For Each rngArea In rng.Areas         For Each c In rngArea.Cells             b = False             arrSplit = Split(c.Value, csDELIMITER)

For i = LBound(arrSplit) To UBound(arrSplit)

If arrSplit(i) = vFind Then                     arrSplit(i) = vReplace                     n = n + 1                     b = True                 End If             Next i             If b Then                 s = vbNullString                 For i = LBound(arrSplit) To UBound(arrSplit)

s = s & arrSplit(i)

If i <> UBound(arrSplit) Then                         s = s & csDELIMITER                     End If                 Next i                 c.Value = s             End If         Next c     Next rngArea

Application.Calculation = xlCalculationAutomatic     MsgBox "Replaced " & n & " words...", vbInformation End Sub

Macro thực hiện công việc của nó bằng cách tìm tất cả các từ trong mỗi ô (lần lượt).

Nếu từ phù hợp với những gì bạn đang tìm kiếm, thì nó sẽ được thay thế. Nội dung ô sau đó sẽ được đặt lại với nhau.

Có một nhược điểm đối với cách tiếp cận này: Sự phù hợp rất theo nghĩa đen. Điều này có nghĩa là “sys” sẽ khớp với “sys”, nhưng sẽ không khớp với “Sys”, “SYS” hoặc “sys” theo sau bởi một dấu chấm câu. (Macro sử dụng dấu cách làm dấu phân cách giữa các từ.)

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