Excel: tìm và thay thế nhiều giá trị cùng một lúc

  • Chia Sẻ Cái Này
Michael Brown

Trong hướng dẫn này, chúng tôi sẽ xem xét một số cách để tìm và thay thế nhiều từ, chuỗi hoặc ký tự riêng lẻ để bạn có thể chọn cách phù hợp nhất với nhu cầu của mình.

Mọi người thường tìm kiếm như thế nào trong Excel? Hầu hết, bằng cách sử dụng Tìm & Thay thế tính năng hoạt động tốt cho các giá trị đơn lẻ. Nhưng nếu bạn có hàng chục, thậm chí hàng trăm mặt hàng cần thay thế thì sao? Chắc chắn, không ai muốn thực hiện tất cả các thay thế đó theo cách thủ công, rồi thực hiện lại tất cả khi dữ liệu thay đổi. May mắn thay, có một số phương pháp hiệu quả hơn để thực hiện thay thế hàng loạt trong Excel và chúng ta sẽ tìm hiểu chi tiết từng phương pháp.

    Tìm và thay thế nhiều giá trị bằng SUBSTITUTE lồng nhau

    Cách dễ nhất để tìm và thay thế nhiều mục nhập trong Excel là sử dụng hàm SUBSTITUTE.

    Logic của công thức rất đơn giản: bạn viết một vài hàm riêng lẻ để thay thế một giá trị cũ bằng một giá trị mới . Sau đó, bạn lồng các hàm đó vào một hàm khác để mỗi SUBSTITUTE tiếp theo sử dụng đầu ra của SUBSTITUTE trước đó để tìm kiếm giá trị tiếp theo.

    SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( text, old_text1, new_text1), old_text2, new_text2), old_text3, new_text3)

    Trong danh sách các vị trí ở A2:A10, giả sử bạn muốn thay thế tên quốc gia viết tắt (chẳng hạn như FR , UK USA ) bằng tên đầy đủHàm MassReplace sẽ chỉ hoạt động trong sổ làm việc mà bạn đã chèn mã. Nếu bạn không chắc chắn cách thực hiện việc này một cách chính xác, vui lòng làm theo các bước được mô tả trong Cách chèn mã VBA trong Excel.

    Sau khi mã được thêm vào sổ làm việc của bạn, hàm sẽ xuất hiện trong công thức intellisense - only tên của hàm, không phải đối số! Mặc dù vậy, tôi tin rằng việc ghi nhớ cú pháp không phải là vấn đề lớn:

    MassReplace(input_range, find_range, replace_range)

    Where:

    • Input_range - phạm vi nguồn trong đó bạn muốn thay thế các giá trị.
    • Find_range - các ký tự, chuỗi hoặc từ cần tìm kiếm.
    • Replace_range - các ký tự, chuỗi, hoặc các từ để thay thế bằng.

    Trong Excel 365, do hỗ trợ mảng động nên công thức này hoạt động như một công thức bình thường, chỉ cần nhập công thức này vào ô trên cùng (B2):

    =MassReplace(A2:A10, D2:D4, E2:E4)

    Trong Excel tiền động, công thức này hoạt động như một công thức mảng CSE kiểu cũ: bạn chọn toàn bộ phạm vi nguồn (B2:B10), nhập và nhấn đồng thời các phím Ctrl + Shift + Enter để hoàn thành.

    Ưu điểm : một giải pháp thay thế hợp lý cho hàm LAMBDA tùy chỉnh trong Excel 2019 , Excel 2016 và các phiên bản cũ hơn

    Nhược điểm : sổ làm việc phải được lưu dưới dạng tệp .xlsm hỗ trợ macro

    Thay thế hàng loạt trong Excel bằng macro VBA

    Nếu bạn yêu thích ô tô kết hợp các tác vụ thông thường với macro, sau đó bạncó thể sử dụng mã VBA sau để tìm và thay thế nhiều giá trị trong một phạm vi.

    Sub BulkReplace() Dim Rng As Range, SourceRng As Range, ReplaceRng As Range On Error Resume Next Set SourceRng = Application.InputBox( "Dữ liệu nguồn: " , "Thay thế hàng loạt" , Application.Selection.Address, Type :=8) Err.Clear If Not SourceRng Is nothing Then Set ReplaceRng = Application.InputBox( "Replace range:" , "Bulk Replace" , Type :=8) Err.Clear If Not ReplaceRng Is nothing Then Application.ScreenUpdating = False For Each Rng In ReplaceRng.Columns(1).Cells SourceRng.Replace what:=Rng.Value, replace:=Rng.Offset(0, 1).Value Next Application.ScreenUpdating = True End If End If End Sub

    Để sử dụng macro ngay lập tức, bạn có thể tải xuống sổ làm việc mẫu có chứa mã của chúng tôi. Hoặc bạn có thể chèn mã vào sổ làm việc của riêng mình.

    Cách sử dụng macro

    Trước khi chạy macro, hãy nhập các giá trị cũ và mới vào hai cột liền kề như trong hình bên dưới ( C2:D4).

    Sau đó, chọn dữ liệu nguồn của bạn, nhấn Alt + F8 , chọn macro BulkReplace và nhấp vào Chạy .

    nguồn cơn thịnh nộ đã được chọn trước, chỉ cần xác minh tham chiếu và nhấp vào OK:

    Sau đó, chọn phạm vi thay thế và nhấp vào OK:

    Xong!

    Ưu điểm : thiết lập một lần, sử dụng lại mọi lúc

    Nhược điểm : cần chạy macro với mọi dữ liệuthay đổi

    Tìm và thay thế nhiều giá trị trong Excel bằng công cụ Chuỗi con

    Trong ví dụ đầu tiên, tôi đã đề cập rằng SUBSTITUTE lồng nhau là cách dễ nhất để thay thế nhiều giá trị trong Excel. Tôi thừa nhận rằng tôi đã sai. Ultimate Suite của chúng tôi giúp mọi việc trở nên dễ dàng hơn!

    Để thực hiện thay thế hàng loạt trong trang tính của bạn, hãy chuyển đến tab Dữ liệu Ablebits và nhấp vào Công cụ chuỗi con > Replace Substrings .

    Hộp thoại Replace Substrings sẽ xuất hiện yêu cầu bạn xác định phạm vi Source Dãy con .

    Với hai dãy được chọn, hãy nhấp vào nút Thay thế và tìm kết quả trong một cột mới được chèn ở bên phải của dữ liệu ban đầu. Đúng, thật dễ dàng!

    Mẹo. Trước khi nhấp vào Thay thế , bạn cần cân nhắc một điều quan trọng - hộp Phân biệt chữ hoa chữ thường . Đảm bảo chọn nó nếu bạn muốn xử lý chữ hoa và chữ thường dưới dạng các ký tự khác nhau. Trong ví dụ này, chúng tôi đánh dấu tùy chọn này vì chúng tôi chỉ muốn thay thế các chuỗi viết hoa và giữ nguyên các chuỗi con như "fr", "uk" hoặc "ak" trong các từ khác.

    Nếu bạn tò mò muốn biết những thao tác hàng loạt nào khác có thể được thực hiện trên chuỗi, hãy xem các Công cụ chuỗi con khác có trong Ultimate Suite của chúng tôi. Hoặc tốt hơn nữa, hãy tải xuống phiên bản đánh giá bên dưới và dùng thử!

    Đó là cách tìm và thay thếnhiều từ và ký tự cùng một lúc trong Excel. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!

    Có sẵn các bản tải xuống

    Tìm và thay thế nhiều trong Excel (tệp .xlsm)

    Ultimate Suite 14 -day phiên bản đầy đủ chức năng (tệp .exe)

    tên.

    Để hoàn tất, hãy nhập các giá trị cũ vào D2:D4 và các giá trị mới vào E2:E4 như minh họa trong ảnh chụp màn hình bên dưới. Sau đó, nhập công thức bên dưới vào B2 và nhấn Enter:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A10, D2, E2), D3, E3), D4, E4)

    …và bạn sẽ có tất cả các thay thế được thực hiện cùng một lúc:

    Xin lưu ý, phương pháp trên chỉ hoạt động trong Excel 365 hỗ trợ mảng động.

    Trong các phiên bản tiền động của Excel 2019, Excel 2016 trở về trước, công thức cần phải là được viết cho ô trên cùng (B2), rồi sao chép sang các ô bên dưới:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, $D$2, $E$2), $D$3, $E$3), $D$4, $E$4)

    Xin lưu ý rằng, trong trường hợp này, chúng tôi khóa các giá trị thay thế bằng tham chiếu ô tuyệt đối, vì vậy chúng sẽ không dịch chuyển khi sao chép công thức xuống.

    Lưu ý. Hàm SUBSTITUTE phân biệt chữ hoa chữ thường , nghĩa là bạn nên nhập các giá trị cũ ( old_text ) trong cùng một chữ cái viết hoa chữ thường khi chúng xuất hiện trong dữ liệu gốc.

    Dễ dàng hết mức có thể, phương pháp này có một nhược điểm đáng kể - khi bạn có hàng tá mục cần thay thế, các hàm lồng nhau trở nên khá khó quản lý.

    Ưu điểm : dễ dàng -thực hiện; được hỗ trợ trong tất cả các phiên bản Excel

    Nhược điểm : tốt nhất nên sử dụng cho một số giá trị tìm/thay thế hạn chế

    Tìm kiếm và thay thế nhiều mục nhập bằng XLOOKUP

    Trong trường hợp bạn đang muốn thay thế toàn bộ nội dung ô , chứ không phải một phần của nó, hàm XLOOKUP sẽ rất hữu ích.

    Hãygiả sử bạn có danh sách các quốc gia trong cột A và muốn thay thế tất cả các chữ viết tắt bằng tên đầy đủ tương ứng. Giống như trong ví dụ trước, bạn bắt đầu bằng việc nhập các mục "Tìm" và "Thay thế" vào các cột riêng biệt (tương ứng là D và E), sau đó nhập công thức này vào B2:

    =XLOOKUP(A2, $D$2:$D$4, $E$2:$E$4, A2)

    Được dịch từ ngôn ngữ Excel sang ngôn ngữ của con người, đây là chức năng của công thức:

    Tìm kiếm giá trị A2 (lookup_value) trong D2:D4 (lookup_array) và trả về giá trị khớp từ E2:E4 (return_array). Nếu không tìm thấy, hãy kéo giá trị ban đầu từ A2.

    Nhấp đúp vào ô điều khiển điền để sao chép công thức vào các ô bên dưới và kết quả sẽ không khiến bạn phải chờ đợi:

    Vì chức năng XLOOKUP chỉ khả dụng trong Excel 365 nên công thức trên sẽ không hoạt động trong các phiên bản cũ hơn. Tuy nhiên, bạn có thể dễ dàng bắt chước hành vi này bằng cách kết hợp IFERROR hoặc IFNA và VLOOKUP:

    =IFNA(VLOOKUP(A2, $D$2:$E$4, 2, FALSE), A2)

    Lưu ý. Không giống như SUBSTITUTE, các hàm XLOOKUP và VLOOKUP không phân biệt chữ hoa chữ thường , nghĩa là chúng tìm kiếm các giá trị tra cứu bỏ qua chữ hoa chữ thường. Chẳng hạn, công thức của chúng tôi sẽ thay thế cả FR fr bằng Pháp .

    Ưu điểm : sử dụng bất thường các chức năng thông thường; hoạt động trên mọi phiên bản Excel

    Nhược điểm : hoạt động ở cấp độ ô, không thể thay thế một phần nội dung ô

    Thay thế nhiều lần bằng hàm LAMBDA đệ quy

    Đối với Microsoft365, Excel cung cấp một chức năng đặc biệt cho phép tạo các hàm tùy chỉnh bằng ngôn ngữ công thức truyền thống. Đúng, tôi đang nói về LAMBDA. Cái hay của phương pháp này là nó có thể chuyển đổi một công thức rất dài và phức tạp thành một công thức rất ngắn gọn và đơn giản. Hơn nữa, nó cho phép bạn tạo các hàm của riêng mình không tồn tại trong Excel, điều mà trước đây chỉ có thể thực hiện được với VBA.

    Để biết thông tin chi tiết về cách tạo và sử dụng các hàm LAMBDA tùy chỉnh, vui lòng xem hướng dẫn này: Cách thức để viết hàm LAMBDA trong Excel. Ở đây, chúng ta sẽ thảo luận về một số ví dụ thực tế.

    Ưu điểm : kết quả là một hàm đơn giản và đẹp mắt để sử dụng, bất kể số lượng cặp thay thế là bao nhiêu

    Nhược điểm : chỉ khả dụng trong Excel 365; dành riêng cho sổ làm việc và không thể sử dụng lại trên nhiều sổ làm việc khác nhau

    Ví dụ 1. Tìm kiếm và thay thế nhiều từ/chuỗi cùng một lúc

    Để thay thế nhiều từ hoặc văn bản trong một lần, chúng tôi đã tạo tùy chỉnh Hàm LAMBDA, có tên MultiReplace , có thể có một trong các dạng sau:

    =LAMBDA(text, old, new, IF(old"", MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0)), text))

    Hoặc

    =LAMBDA(text, old, new, IF(old="", text, MultiReplace(SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))))

    Cả hai đều là hàm đệ quy chức năng gọi chính nó. Sự khác biệt chỉ nằm ở cách thiết lập điểm thoát.

    Trong công thức đầu tiên, hàm IF kiểm tra xem danh sách old không trống (cũ""). Nếu TRUE, hàm MultiReplace được gọi. Nếu FALSE, chức năngtrả về văn bản ở dạng hiện tại và thoát.

    Công thức thứ hai sử dụng logic đảo ngược: nếu old trống (old=""), thì trả về văn bản và thoát; nếu không, hãy gọi MultiReplace .

    Phần khó nhất đã hoàn thành! Việc còn lại bạn cần làm là đặt tên cho hàm MultiReplace trong Trình quản lý tên như minh họa trong ảnh chụp màn hình bên dưới. Để biết hướng dẫn chi tiết, vui lòng xem Cách đặt tên cho hàm LAMBDA.

    Sau khi hàm có tên, bạn có thể sử dụng nó giống như bất kỳ hàm sẵn có nào khác.

    Cho dù bạn chọn biến thể nào trong hai biến thể công thức, từ góc độ người dùng cuối, cú pháp cũng đơn giản như sau:

    MultiReplace(văn bản, cũ, mới)

    Ở đâu:

    • Văn bản - dữ liệu nguồn
    • - các giá trị cần tìm
    • Mới - các giá trị cần thay thế bằng

    Tham khảo ví dụ trước xa hơn một chút, chúng ta hãy thay thế không chỉ các chữ viết tắt của quốc gia mà cả các chữ viết tắt của tiểu bang. Đối với điều này, hãy nhập chữ viết tắt (giá trị old ) vào cột D bắt đầu bằng D2 và tên đầy đủ (giá trị new ) vào cột E bắt đầu bằng E2.

    Trong B2, nhập hàm MultiReplace:

    =MultiReplace(A2:A10, D2, E2)

    Nhấn Enter và tận hưởng thành quả :)

    Cách thức hoạt động của công thức này

    Đầu mối để hiểu công thức là hiểu về đệ quy. Điều này nghe có vẻ phức tạp, nhưng nguyên tắc khá đơn giản. Với mỗilặp lại, một hàm đệ quy giải quyết một trường hợp nhỏ của một vấn đề lớn hơn. Trong trường hợp của chúng tôi, hàm MultiReplace lặp qua các giá trị cũ và mới, đồng thời, với mỗi vòng lặp, thực hiện một lần thay thế:

    MultiReplace (SUBSTITUTE(text, old, new), OFFSET(old, 1, 0), OFFSET(new, 1, 0))

    Như với các hàm SUBSTITUTE lồng nhau, kết quả của SUBSTITUTE trước trở thành tham số văn bản cho SUBSTITUTE tiếp theo. Nói cách khác, trong mỗi lệnh gọi tiếp theo của MultiReplace , hàm SUBSTITUTE không xử lý chuỗi văn bản gốc mà xử lý đầu ra của lệnh gọi trước đó.

    Để xử lý tất cả các mục trên old , chúng ta bắt đầu với ô trên cùng và sử dụng hàm OFFSET để di chuyển xuống 1 hàng với mỗi tương tác:

    OFFSET(old, 1, 0)

    Điều tương tự cũng được thực hiện cho new list:

    OFFSET(new, 1, 0)

    Điều cốt yếu là cung cấp một điểm thoát để ngăn các cuộc gọi đệ quy tiếp tục mãi mãi. Nó được thực hiện với sự trợ giúp của hàm IF - nếu ô trống, hàm sẽ trả về văn bản ở dạng hiện tại và thoát:

    =LAMBDA(text, old, new, IF(old="", text, MultiReplace(…)))

    or

    =LAMBDA(text, old, new, IF(old"", MultiReplace(…), text))

    Ví dụ 2. Thay thế nhiều ký tự trong Excel

    Về nguyên tắc, hàm MultiReplace được thảo luận trong ví dụ trước có thể cũng xử lý các ký tự riêng lẻ, với điều kiện là mỗi ký tự cũ và mới được nhập vào một ô riêng biệt, giống hệt như tên viết tắt và tên đầy đủ trong ảnh chụp màn hình ở trên.

    Nếu bạn muốn nhập tên cũcác ký tự trong một ô và các ký tự mới trong một ô khác hoặc nhập chúng trực tiếp vào công thức, sau đó bạn có thể tạo một hàm tùy chỉnh khác, có tên là ReplaceChars , bằng cách sử dụng một trong các công thức sau:

    =LAMBDA(text, old_chars, new_chars, IF(old_chars"", ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1)), text))

    Hoặc

    =LAMBDA(text, old_chars, new_chars, IF(old_chars="", text, ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))))

    Hãy nhớ đặt tên cho hàm Lambda mới của bạn trong Trình quản lý tên như thường lệ:

    Và hàm tùy chỉnh mới của bạn đã sẵn sàng để sử dụng:

    ReplaceChars(text, old_chars, new_chars)

    Ở đâu:

    • Văn bản - chuỗi ban đầu
    • - các ký tự để tìm kiếm
    • Mới - các ký tự để thay thế bằng

    Để kiểm tra thực địa, hãy làm điều gì đó thường được thực hiện trên dữ liệu đã nhập - thay thế dấu ngoặc kép thông minh và dấu nháy đơn thông minh bằng dấu ngoặc kép thẳng và dấu nháy đơn thẳng.

    Đầu tiên, chúng ta nhập dấu ngoặc kép thông minh và dấu nháy đơn thông minh trong D2, dấu ngoặc kép thẳng và dấu nháy đơn thẳng trong E2 , tách các ký tự bằng dấu cách để dễ đọc hơn. (Vì chúng ta sử dụng cùng một dấu phân cách trong cả hai ô nên điều này sẽ không ảnh hưởng đến kết quả - Excel sẽ chỉ thay thế khoảng trắng bằng khoảng trắng.)

    Sau đó, chúng ta nhập công thức này vào B2:

    =ReplaceChars(A2:A4, D2, E2)

    Và nhận được chính xác kết quả mà chúng tôi đang tìm kiếm:

    Cũng có thể nhập trực tiếp các ký tự vào công thức. Trong trường hợp của chúng tôi, chỉ cần nhớ "nhân đôi" các dấu ngoặc kép thẳng như sau:

    =ReplaceChars(A2:A4, "“ ” ’", """ "" '")

    Cách thức hoạt động của công thức này

    The ReplaceChars hàm quay vòng qua các chuỗi old_chars new_chars và thực hiện một lần thay thế tại một thời điểm bắt đầu từ ký tự đầu tiên bên trái. Phần này được thực hiện bởi hàm SUBSTITUTE:

    SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars))

    Với mỗi lần lặp lại, hàm RIGHT sẽ loại bỏ một ký tự từ bên trái của cả old_chars chuỗi new_chars để LEFT có thể tìm nạp cặp ký tự tiếp theo để thay thế:

    ReplaceChars(SUBSTITUTE(text, LEFT(old_chars), LEFT(new_chars)), RIGHT(old_chars, LEN(old_chars)-1), RIGHT(new_chars, LEN(new_chars)-1))

    Trước mỗi lệnh gọi đệ quy, hàm IF sẽ đánh giá chuỗi old_chars . Nếu nó không trống, hàm sẽ tự gọi. Ngay khi ký tự cuối cùng được thay thế, quá trình lặp kết thúc, công thức trả về văn bản ở dạng hiện tại và thoát.

    Lưu ý. Vì hàm SUBSTITUTE được sử dụng trong các công thức cốt lõi của chúng tôi là phân biệt chữ hoa chữ thường nên cả Lambdas ( MultiReplace ReplaceChars ) đều coi chữ hoa và chữ thường là các ký tự khác nhau.

    Tìm và thay thế hàng loạt bằng UDF

    Trong trường hợp hàm LAMBDA không có sẵn trong Excel của bạn, bạn có thể viết hàm do người dùng xác định để thay thế nhiều lần theo cách truyền thống bằng VBA.

    Để phân biệt UDF với hàm MultiReplace do LAMBDA định nghĩa, chúng ta sẽ đặt tên khác cho nó, chẳng hạn như MassReplace . Mã của hàm như sau:

    Hàm MassReplace(InputRng As Range, FindRng As Range, ReplaceRng As Range) As Variant () DimarRes() As Variant 'mảng lưu trữ kết quả Dim arSearchReplace(), sTmp As String 'mảng lưu trữ các cặp tìm/thay thế, chuỗi tạm thời Dim iFindCurRow, cntFindRows As Long 'chỉ số của hàng hiện tại của mảng SearchReplace, đếm of rows Dim iInputCurRow, iInputCurCol, cntInputRows, cntInputCols As Long 'chỉ mục của hàng hiện tại trong phạm vi nguồn, chỉ mục của cột hiện tại trong phạm vi nguồn, số lượng hàng, số lượng cột cntInputRows = InputRng.Rows.Count cntInputCols = InputRng .Columns.Count cntFindRows = FindRng.Rows.Count ReDim arRes(1 To cntInputRows, 1 To cntInputCols) ReDim arSearchReplace(1 To cntFindRows, 1 To 2) 'chuẩn bị mảng các cặp tìm/thay thế For iFindCurRow = 1 To cntFindRows arSearchReplace( iFindCurRow, 1) = FindRng.Cells(iFindCurRow, 1).Value arSearchReplace(iFindCurRow, 2) = ReplaceRng.Cells(iFindCurRow, 1).Value Next 'Tìm kiếm và thay thế trong phạm vi nguồn Cho iInputCurRow = 1 Đến cntInputRows Cho iInputCurCol = 1 Đến cntInputCols sTm p = InputRng.Cells(iInputCurRow, iInputCurCol).Value 'Thay thế tất cả các cặp tìm/thay thế trong mỗi ô For iFindCurRow = 1 To cntFindRows sTmp = Replace(sTmp, arSearchReplace(iFindCurRow, 1), arSearchReplace(iFindCurRow, 2)) Next arRes (iInputCurRow, iInputCurCol) = sTmp Next Next MassReplace = arRes End Function

    Giống như các hàm do LAMBDA xác định, UDF toàn bộ sổ làm việc . Điều đó có nghĩa là

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.