Regex để trích xuất chuỗi trong Excel (một hoặc tất cả các kết quả khớp)

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

Trong hướng dẫn này, bạn sẽ học cách sử dụng các biểu thức chính quy trong Excel để tìm và trích xuất các chuỗi con khớp với một mẫu nhất định.

Microsoft Excel cung cấp một số hàm để trích xuất văn bản từ tế bào. Các hàm đó có thể đối phó với hầu hết các thử thách trích xuất chuỗi trong trang tính của bạn. Hầu hết, nhưng không phải tất cả. Khi các chức năng Văn bản gặp khó khăn, các biểu thức chính quy sẽ đến để giải cứu. Đợi đã… Excel không có chức năng RegEx! Đúng, không có chức năng sẵn có. Nhưng không có gì ngăn cản bạn sử dụng hàm của riêng mình :)

    Hàm Excel VBA Regex để trích xuất chuỗi

    Để thêm một hàm Trích xuất Regex tùy chỉnh vào Excel của bạn, dán đoạn mã sau vào trình soạn thảo VBA. Để kích hoạt các biểu thức chính quy trong VBA, chúng tôi đang sử dụng đối tượng RegExp tích hợp sẵn của Microsoft.

    Chức năng công khai RegExpExtract(text As String , pattern As String , Tùy chọn instance_num As Integer = 0, Tùy chọn match_case As Boolean = True ) Dim text_matches() Dưới dạng Chuỗi Dim Match_index Dưới dạng Số nguyên Khi Lỗi GoTo ErrHandl RegExpExtract = "" Đặt regex = CreateObject ( "VBScript.RegExp" ) regex.pattern = mẫu regex.Global = True regex.MultiLine = True Nếu True = match_case Sau đó regex. ignorecase = False Else regex.ignorecase = True End If Set Match = regex.Execute(text) If 0 < Match.Count Then If (0 = instance_num) Then ReDim text_matches(matches.Count - 1, 0) Đối với Matchs_index = 0 ĐếnVBA RegExp, tôi khuyến khích bạn đọc phần tiếp theo thảo luận về các hàm Regex .NET mạnh hơn rất nhiều.

    Hàm Regex dựa trên .NET tùy chỉnh để trích xuất văn bản trong Excel

    Không giống như các hàm VBA RegExp có thể được viết bởi bất kỳ người dùng Excel nào, .NET RegEx là lĩnh vực của nhà phát triển. Microsoft .NET Framework hỗ trợ cú pháp biểu thức chính quy đầy đủ tính năng tương thích với Perl 5. Bài viết này sẽ không hướng dẫn bạn cách viết các hàm như vậy (Tôi không phải là lập trình viên và không có chút ý tưởng nào về cách thực hiện điều đó :)

    Bốn chức năng mạnh mẽ được xử lý bởi công cụ .NET RegEx tiêu chuẩn đã được các nhà phát triển của chúng tôi viết và đưa vào Ultimate Suite. Dưới đây, chúng tôi sẽ trình bày một số cách sử dụng thực tế của hàm được thiết kế đặc biệt để trích xuất văn bản trong Excel.

    Mẹo. Để biết thông tin về cú pháp .NET Regex, vui lòng tham khảo Ngôn ngữ biểu thức chính quy .NET.

    Cách trích xuất nội dung trong Excel bằng biểu thức chính quy

    Giả sử bạn đã cài đặt phiên bản mới nhất của Ultimate Suite, việc trích xuất văn bản bằng biểu thức chính quy sẽ bao gồm hai bước sau:

    1. Trên tab Dữ liệu Ablebits , trong nhóm Văn bản , nhấp vào Công cụ Regex .
    2. Trên ngăn Công cụ Regex , hãy chọn dữ liệu nguồn, nhập mẫu Regex của bạn và chọn tùy chọn Trích xuất . Để nhận kết quả dưới dạng hàm tùy chỉnh, không phải giá trị, hãy chọn hộp kiểm Chèn dưới dạng công thức hộp. Khi hoàn tất, hãy nhấp vào nút Trích xuất .

    Kết quả sẽ xuất hiện trong một cột mới ở bên phải dữ liệu gốc của bạn:

    Cú pháp AblebitsRegexExtract

    Hàm tùy chỉnh của chúng tôi có cú pháp sau:

    AblebitsRegexExtract(reference, regular_expression)

    Ở đâu:

    • Reference (bắt buộc) - tham chiếu đến ô chứa chuỗi nguồn.
    • Regular_expression (bắt buộc) - mẫu biểu thức chính quy phù hợp.

    Lưu ý quan trọng! Chức năng này chỉ hoạt động trên các máy đã cài đặt Ultimate Suite for Excel.

    Lưu ý khi sử dụng

    Để quá trình học tập của bạn suôn sẻ hơn và trải nghiệm của bạn thú vị hơn, hãy chú ý đến những điểm sau:

    1. Để tạo công thức, bạn có thể sử dụng Công cụ Regex của chúng tôi hoặc hộp thoại Chèn hàm của Excel hoặc nhập tên hàm đầy đủ vào một ô. Sau khi công thức được chèn, bạn có thể quản lý công thức đó (chỉnh sửa, sao chép hoặc di chuyển) giống như bất kỳ công thức gốc nào.
    2. Mẫu bạn nhập trên ngăn Công cụ Regex sẽ chuyển đến đối số thứ 2. Cũng có thể giữ một biểu thức chính quy trong một ô riêng biệt. Trong trường hợp này, chỉ cần sử dụng một tham chiếu ô cho đối số thứ 2.
    3. Hàm trích xuất kết quả khớp tìm thấy đầu tiên .
    4. Theo mặc định, hàm này là trường hợp -nhạy cảm . Để khớp không phân biệt chữ hoa chữ thường, hãy sử dụng mẫu (?i).
    5. Nếu không tìm thấy kết quả trùng khớp, lỗi #N/A sẽ xuất hiệnđược trả lại.

    Regex để trích xuất chuỗi giữa hai ký tự

    Để nhận văn bản giữa hai ký tự, bạn có thể sử dụng nhóm chụp hoặc tìm xung quanh.

    Hãy giả sử bạn đang tìm cách trích xuất văn bản giữa các dấu ngoặc. Nhóm nắm bắt là cách dễ nhất.

    Mẫu 1 : \[(.*?)\]

    Với tầm nhìn xa và nhìn tích cực, kết quả sẽ chính xác giống nhau.

    Mẫu 2 : (?<=\[)(.*?)(?=\])

    Xin lưu ý rằng nhóm bắt giữ của chúng tôi (.*?) thực hiện tìm kiếm chậm cho văn bản giữa hai dấu ngoặc - từ dấu [ đến dấu đầu tiên ]. Một nhóm chụp không có dấu chấm hỏi (.*) sẽ thực hiện tìm kiếm tham lam và chụp mọi thứ từ [ đến cuối ].

    Với mẫu trong A2, công thức sẽ như sau sau:

    =AblebitsRegexExtract(A5, $A$2)

    Cách lấy tất cả các kết quả phù hợp

    Như đã đề cập, hàm AblebitsRegexExtract chỉ có thể trích xuất một kết quả phù hợp. Để có được tất cả các kết quả phù hợp, bạn có thể sử dụng chức năng VBA mà chúng ta đã thảo luận trước đó. Tuy nhiên, có một lưu ý - VBA RegExp không hỗ trợ chụp nhóm, do đó, mẫu trên cũng sẽ trả về các ký tự "ranh giới", trong trường hợp của chúng tôi là dấu ngoặc.

    =TEXTJOIN(" ", TRUE, RegExpExtract(A5, $A$2))

    Để loại bỏ của dấu ngoặc, THAY THẾ chúng bằng các chuỗi trống ("") bằng công thức sau:

    =SUBSTITUTE(SUBSTITUTE(TEXTJOIN(", ", TRUE, RegExpExtract(A5, $A$2)), "]", ""),"[","")

    Để dễ đọc hơn, chúng tôi đang sử dụng dấu phẩy cho dấu phân cách.

    Regex để trích xuất văn bản giữa hai chuỗi

    Phương pháp chúng tôi đã thực hiệngiải thích nó theo nghĩa đen).

  • (?:[A-Za-z\d\-\.]{2,255}\.)? - nhóm không bắt giữ để xác định các miền cấp ba, cấp bốn, v.v., nếu có ( di động trong URL mẫu của chúng tôi). Trong mẫu đầu tiên, nó được đặt trong một nhóm chụp lớn hơn để đưa tất cả các tên miền phụ đó vào quá trình trích xuất. Miền phụ có thể dài từ 2 đến 255 ký tự, do đó, bộ định lượng {2.255}.
  • ([A-Za-z\d\-]{1,63}\.[A-Za-z] {2,24}) - chụp nhóm để trích xuất miền cấp hai ( ablebits ) và miền cấp cao nhất ( com ). Độ dài tối đa của tên miền cấp hai là 63 ký tự. Miền cấp cao nhất dài nhất hiện đang tồn tại chứa 24 ký tự.
  • Tùy thuộc vào biểu thức chính quy nào được nhập vào ô A2, công thức bên dưới sẽ tạo ra các kết quả khác nhau:

    =AblebitsRegexExtract(A5, $A$2)

    Regex để trích xuất tên miền đầy đủ với tất cả các miền phụ:

    Regex để trích xuất miền cấp hai không có miền phụ:

    Đó là cách trích xuất các phần văn bản trong Excel bằng biểu thức chính quy. Tôi cảm ơn bạn đã đọc và mong được gặp bạn trên blog của chúng tôi vào tuần tới!

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

    Các ví dụ về Trích xuất Excel Regex (tệp .xlsm)

    Phiên bản dùng thử Ultimate Suite (tệp .exe)

    \b(0?[0-9]Match.Count - 1 text_matches(matches_index, 0) = Match.Item(matches_index) Tiếp theo Match_index RegExpExtract = text_matches Else RegExpExtract = Match.Item(instance_num - 1) Kết thúc Nếu Kết thúc Nếu Thoát Hàm ErrHandl: RegExpExtract = CVErr(xlErrValue) Hàm Kết thúc

    Nếu bạn có ít kinh nghiệm với VBA, hướng dẫn sử dụng từng bước có thể hữu ích: Cách chèn mã VBA trong Excel.

    Lưu ý. Để chức năng này hoạt động, hãy nhớ lưu tệp của bạn dưới dạng sổ làm việc hỗ trợ macro (.xlsm).

    Cú pháp RegExpExtract

    Hàm RegExpExtract tìm kiếm một chuỗi đầu vào cho các giá trị khớp với một biểu thức chính quy và trích xuất một hoặc tất cả các giá trị khớp.

    Hàm có cú pháp sau :

    RegExpExtract(text, pattern, [instance_num], [match_case])

    Ở đâu:

    • Văn bản (bắt buộc) - chuỗi văn bản để tìm kiếm.
    • Mẫu (bắt buộc) - biểu thức chính quy để khớp. Khi được cung cấp trực tiếp trong một công thức, mẫu phải được đặt trong dấu ngoặc kép.
    • Instance_num (tùy chọn) - một số sê-ri cho biết phiên bản nào sẽ trích xuất. Nếu bị bỏ qua, trả về tất cả các kết quả phù hợp đã tìm thấy (mặc định).
    • Match_case (tùy chọn) - xác định có khớp hay bỏ qua trường hợp văn bản hay không. Nếu TRUE hoặc bị bỏ qua (mặc định), khớp phân biệt chữ hoa chữ thường được thực hiện; if FALSE - không phân biệt chữ hoa chữ thường.

    Hàm này hoạt động trong tất cả các phiên bản Excel 365, Excel 2021, Excel2019, Excel 2016, Excel 2013 và Excel 2010.

    4 điều bạn nên biết về RegExpExtract

    Để sử dụng hiệu quả hàm này trong Excel, bạn cần lưu ý một số điều quan trọng sau:

    1. Theo mặc định, hàm trả về tất cả kết quả tìm thấy vào các ô lân cận như trong ví dụ này. Để biết một lần xuất hiện cụ thể, hãy cung cấp một số tương ứng cho đối số instance_num .
    2. Theo mặc định, hàm này phân biệt chữ hoa chữ thường . Để khớp không phân biệt chữ hoa chữ thường, hãy đặt đối số match_case thành FALSE. Do các hạn chế của VBA, cấu trúc phân biệt chữ hoa chữ thường (?i) sẽ không hoạt động.
    3. Nếu không tìm thấy mẫu hợp lệ , hàm sẽ không trả về gì (chuỗi trống).
    4. Nếu mẫu không hợp lệ , lỗi #VALUE! xảy ra lỗi.

    Trước khi bắt đầu sử dụng chức năng tùy chỉnh này trong trang tính của mình, bạn cần hiểu chức năng của nó, phải không? Các ví dụ bên dưới đề cập đến một số trường hợp sử dụng phổ biến và giải thích lý do tại sao hành vi có thể khác nhau trong Dynamic Array Excel (Microsoft 365 và Excel 2021) cũng như Excel truyền thống (2019 và các phiên bản cũ hơn).

    Lưu ý. Các ví dụ về biểu thức chính quy được viết cho các tập dữ liệu đơn giản. Chúng tôi không thể đảm bảo chúng sẽ hoạt động hoàn hảo trong trang tính thực của bạn. Những người có kinh nghiệm với regex sẽ đồng ý rằng viết các biểu thức chính quy là một con đường không bao giờ kết thúc để hoàn thiện - hầu như luôn có cách để thực hiệnnó thanh lịch hơn hoặc có khả năng xử lý nhiều loại dữ liệu đầu vào hơn.

    Regex để trích xuất số từ chuỗi

    Theo châm ngôn dạy học cơ bản "từ đơn giản đến phức tạp", chúng ta sẽ bắt đầu với một trường hợp rất đơn giản: trích xuất số từ chuỗi.

    Các điều đầu tiên để bạn quyết định là cần truy xuất số nào: đầu tiên, cuối cùng, lần xuất hiện cụ thể hoặc tất cả các số.

    Trích xuất số đầu tiên

    Điều này đơn giản như regex có thể nhận được. Cho rằng \d có nghĩa là bất kỳ chữ số nào từ 0 đến 9 và + có nghĩa là một hoặc nhiều lần, biểu thức chính quy của chúng ta có dạng sau:

    Pattern : \d+

    Set instance_num thành 1 và bạn sẽ nhận được kết quả mong muốn:

    =RegExpExtract(A5, "\d+", 1)

    Trong đó A5 là chuỗi gốc.

    Để thuận tiện, bạn có thể nhập mẫu trong một ô được xác định trước ($A$2 ) và khóa địa chỉ của nó bằng ký hiệu $:

    =RegExpExtract(A5, $A$2, 1)

    Lấy số cuối cùng

    Để trích xuất số cuối cùng trong một chuỗi , đây là mẫu để sử dụng:

    Mẫu : (\d+)(?!.*\d)

    Được dịch sang ngôn ngữ của con người , nó nói: tìm một số không được theo sau (ở bất kỳ đâu, không chỉ ngay lập tức) bởi bất kỳ số nào khác. Để thể hiện điều này, chúng tôi đang sử dụng một cái nhìn phủ định (?!.*\d), có nghĩa là ở bên phải của mẫu không được có chữ số nào khác (\d) bất kể có bao nhiêu ký tự khác trước nó.

    =RegExpExtract(A5, "(\d+)(?!.*\d)")

    Mẹo:

    • Để biết sự cố cụ thể , hãy sử dụng \d+ cho mẫu và một chuỗi thích hợpsố cho instance_num .
    • Công thức để trích xuất tất cả các số sẽ được thảo luận trong ví dụ tiếp theo.

    Regex để trích xuất tất cả các kết quả phù hợp

    Đẩy mạnh ví dụ của chúng ta hơn một chút, giả sử bạn muốn lấy tất cả các số từ một chuỗi chứ không chỉ một.

    Như bạn có thể nhớ, số lượng kết quả khớp được trích xuất được kiểm soát bởi tùy chọn <1 đối số>instance_num . Giá trị mặc định là tất cả đều khớp, vì vậy bạn chỉ cần bỏ qua tham số này:

    =RegExpExtract(A2, "\d+")

    Công thức hoạt động tuyệt vời cho một ô duy nhất, nhưng hành vi sẽ khác trong Dynamic Array Excel và các phiên bản không động.

    Excel 365 và Excel 2021

    Do hỗ trợ mảng động nên một công thức thông thường sẽ tự động tràn vào bao nhiêu ô tùy ý để hiển thị tất cả các kết quả được tính toán. Đối với Excel, đây được gọi là phạm vi tràn:

    Excel 2019 trở xuống

    Trong Excel tiền động, công thức trên sẽ chỉ trả về một giá trị khớp. Để có nhiều kết quả phù hợp, bạn cần biến nó thành một công thức mảng. Đối với điều này, hãy chọn một dải ô, nhập công thức và nhấn Ctrl + Shift + Enter để hoàn thành.

    Một nhược điểm của phương pháp này là một loạt lỗi #N/A xuất hiện trong "các ô phụ" . Rất tiếc, không thể làm gì được (cả IFERROR và IFNA đều không thể khắc phục được, than ôi).

    Trích xuất tất cả kết quả khớp trong một ô

    Khi xử lý một cột dữ liệu, rõ ràng là phương pháp trên sẽ không hiệu quả. Trong trường hợp này, một giải pháp lý tưởngsẽ trả về tất cả các trận đấu trong một ô. Để hoàn thành, hãy cung cấp kết quả của RegExpExtract cho hàm TEXTJOIN và phân tách chúng bằng bất kỳ dấu phân cách nào bạn muốn, chẳng hạn như dấu phẩy và dấu cách:

    =TEXTJOIN(", ", TRUE, RegExpExtract(A5, "\d+"))

    Lưu ý. Vì hàm TEXTJOIN chỉ khả dụng trong Excel cho Microsoft 365, Excel 2021 và Excel 2019 nên công thức sẽ không hoạt động trong các phiên bản cũ hơn.

    Regex để trích xuất văn bản từ chuỗi

    Trích xuất văn bản từ một chuỗi chữ và số là một nhiệm vụ khá khó khăn trong Excel. Với regex, nó trở nên dễ như ăn bánh. Chỉ cần sử dụng một lớp phủ định để khớp với mọi thứ không phải là chữ số.

    Mẫu : [^\d]+

    Để lấy các chuỗi con trong các ô riêng lẻ (phạm vi tràn) , công thức là:

    =RegExpExtract(A5, "[^\d]+")

    Để xuất tất cả kết quả khớp vào một ô, hãy lồng hàm RegExpExtract trong TEXTJOIN như sau:

    =TEXTJOIN("", TRUE, RegExpExtract(A5, "[^\d]+"))

    Regex thành trích xuất địa chỉ email từ chuỗi

    Để lấy địa chỉ email từ chuỗi chứa nhiều thông tin khác nhau, hãy viết biểu thức chính quy sao chép cấu trúc địa chỉ email.

    Mẫu : [\w\.\-]+@[A-Za-z0-9\.\-]+\.[A-Za-z]{2,24}

    Chia nhỏ biểu thức chính quy này , đây là những gì chúng tôi nhận được:

    • [\w\.\-]+ là tên người dùng có thể bao gồm 1 hoặc nhiều ký tự chữ và số, dấu gạch dưới, dấu chấm và dấu gạch nối.
    • biểu tượng @
    • [A-Za-z0-9\.\-]+ là tên miền bao gồm: chữ hoa và chữ thường, chữ số, dấu gạch nối và dấu chấm (trường hợpcủa tên miền phụ). Dấu gạch dưới không được phép ở đây, do đó 3 bộ ký tự khác nhau (chẳng hạn như A-Z a-z và 0-9) được sử dụng thay vì \w khớp với bất kỳ chữ cái, chữ số hoặc dấu gạch dưới nào.
    • \.[A-Za-z ]{2,24} là miền cấp cao nhất. Bao gồm một dấu chấm theo sau là chữ hoa và chữ thường. Hầu hết các miền cấp cao nhất đều dài 3 ký tự (ví dụ: .com .org, .edu, v.v.), nhưng về lý thuyết, nó có thể chứa từ 2 đến 24 ký tự (TLD được đăng ký dài nhất).

    Giả sử chuỗi ở khổ A5 và mẫu ở khổ A2, công thức để trích xuất địa chỉ email là:

    =RegExpExtract(A5, $A$2)

    Regex để trích xuất miền từ email

    Khi nào khi trích xuất tên miền email, ý nghĩ đầu tiên xuất hiện trong đầu là sử dụng một nhóm chụp để tìm văn bản ngay sau ký tự @.

    Mẫu : @([A-Za-z0 -9\.\-]+\.[A-Za-z]{2,24})

    Cung cấp nó cho chức năng RegExp của chúng tôi:

    =RegExpExtract(A5, "@([A-Za-z0-9\.\-]+\.[A-Za-z]{2,24})")

    Và bạn sẽ nhận được kết quả sau:

    Với các biểu thức chính quy cổ điển, bất kỳ thứ gì bên ngoài nhóm chụp sẽ không được đưa vào quá trình trích xuất. Không ai biết tại sao VBA RegEx hoạt động khác và bắt cả "@". Để loại bỏ nó, bạn có thể xóa ký tự đầu tiên khỏi kết quả bằng cách thay thế nó bằng một chuỗi trống.

    =REPLACE(RegExpExtract(A5, "@([a-z\d][a-z\d\-\.]*\.[a-z]{2,})", 1, FALSE), 1, 1, "")

    Biểu thức chính quy để trích xuất số điện thoại

    Số điện thoại có thể được viết theo nhiều cách khác nhau, đó là lý do tại sao gần như không thể đưa ra một giải pháp phù hợp với tất cả(\d{4}từ chuỗi

    Một biểu thức chính quy để trích xuất một ngày phụ thuộc vào định dạng mà ngày đó xuất hiện trong một chuỗi. Ví dụ:

    Để trích xuất các ngày như 1/1/21 hoặc 01/01/2021, biểu thức chính quy là: \d{1,2}\/\d{1,2}\/(\d {4}trường hợp. Tuy nhiên, bạn có thể viết ra tất cả các định dạng được sử dụng trong tập dữ liệu của mình và cố gắng khớp chúng.

    Đối với ví dụ này, chúng tôi sẽ tạo một biểu thức chính quy sẽ trích xuất các số điện thoại ở bất kỳ định dạng nào sau đây:

    (123) 345-6789

    (123) 345 6789

    (123)3456789

    123- 345-6789

    123.345.6789

    123 345 6789

    1233456789

    Mẫu : \(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b

    • Phần đầu tiên \(?\d{3} khớp với số 0 hoặc một dấu ngoặc đơn mở theo sau là ba chữ số d{3}.
    • Phần [-\. \)]* có nghĩa là bất kỳ ký tự nào trong dấu ngoặc vuông xuất hiện 0 lần trở lên: dấu gạch nối, dấu chấm, dấu cách hoặc dấu ngoặc đơn đóng.
    • Tiếp theo, chúng ta lại có ba chữ số d{3} theo sau bất kỳ dấu gạch nối, dấu chấm hoặc dấu cách nào [-\. ]? xuất hiện 0 hoặc 1 lần.
    • Sau đó, có một nhóm bốn chữ số \d{4}.
    • Cuối cùng, có một từ ranh giới \b xác định rằng chúng tôi là số điện thoại tìm kiếm không thể là một phần của số lớn hơn.

    Công thức hoàn chỉnh có dạng như sau:

    =RegExpExtract(A5, "\(?\d{3}[-\. \)]*\d{3}[-\. ]?\d{4}\b")

    Xin lưu ý rằng biểu thức chính quy trên có thể trả về một số kết quả dương tính giả chẳng hạn như 123) 456 7899 hoặc (123 456 7899. Phiên bản bên dưới khắc phục các sự cố này. Tuy nhiên, cú pháp này chỉ hoạt động trong các hàm VBA RegExp, không hoạt động trong các biểu thức chính quy cổ điển.

    Mẫu : (\(\d{3}\)out để lấy văn bản giữa hai ký tự cũng sẽ hoạt động để trích xuất văn bản giữa hai chuỗi.

    Ví dụ: để lấy mọi thứ giữa "test 1" và "test 2", hãy sử dụng biểu thức chính quy sau.

    Mẫu : test 1(.*?)test 2

    Công thức hoàn chỉnh là:

    =AblebitsRegexExtract(A5, "test 1(.*?)test 2")

    Regex để trích xuất miền từ URL

    Ngay cả với các biểu thức chính quy, việc trích xuất tên miền từ URL không phải là một nhiệm vụ tầm thường. Yếu tố chính thực hiện thủ thuật là các nhóm không bắt giữ. Tùy thuộc vào mục tiêu cuối cùng của bạn, hãy chọn một trong các biểu thức chính quy bên dưới.

    Để có tên miền đầy đủ bao gồm các miền phụ

    Mẫu : (?: https?\:

    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.