
Trong nhiều thập kỷ, bất cứ khi nào người dùng Excel cần tự động hóa một tác vụ lặp đi lặp lại, câu trả lời luôn giống nhau: Visual Basic for Applications (VBA). Dù vô cùng mạnh mẽ, VBA đòi hỏi kiến thức lập trình, hoạt động nghiêm ngặt trong hệ sinh thái máy tính để bàn của Microsoft Office và có thể gây e ngại cho người mới bắt đầu. Ngày nay, có một giải pháp thay thế hiện đại, dựa trên nền tảng đám mây: Microsoft Power Automate.
Power Automate (trước đây là Microsoft Flow) cho phép bạn xây dựng các luồng công việc (workflow) tự động giữa các ứng dụng và dịch vụ yêu thích để đồng bộ tệp, nhận thông báo, thu thập dữ liệu và hơn thế nữa. Điều tuyệt vời nhất là bạn không cần bất kỳ kiến thức lập trình nào để bắt đầu. Trong hướng dẫn toàn diện này, chúng ta sẽ khám phá cách sử dụng Power Automate để tự động hóa Excel một cách liền mạch mà không cần viết một dòng mã VBA nào.
Trước khi đi sâu vào "cách thức", điều quan trọng là phải hiểu "lý do". Mặc dù việc học Cơ bản về VBA: Chương trình Excel đầu tiên của bạn vẫn là một kỹ năng giá trị để thao tác bảng tính phức tạp trên máy tính để bàn, Power Automate lại tỏa sáng trong môi trường làm việc hiện đại, kết nối.
Dưới đây là bảng so sánh nhanh về thời điểm nên sử dụng công cụ nào:
| Tính năng | Excel VBA | Power Automate |
|---|---|---|
| Môi trường | Máy tính để bàn (chủ yếu ngoại tuyến) | Đám mây (cần internet) |
| Độ khó học | Cao (yêu cầu kiến thức lập trình) | Thấp (giao diện kéo thả trực quan) |
| Tích hợp bên ngoài | Khó (yêu cầu các API phức tạp) | Tích hợp sẵn với hàng trăm ứng dụng |
| Loại trình kích hoạt | Sự kiện sổ làm việc (mở, nhấp chuột, thay đổi) | Sự kiện bên ngoài (email, gửi biểu mẫu, webhook) |
Nếu mục tiêu của bạn là tự động hóa việc nhập dữ liệu từ các nguồn bên ngoài, gửi email tự động dựa trên dữ liệu bảng tính hoặc kết nối Excel với các phần mềm như Salesforce, SharePoint hay Outlook, thì Power Automate là lựa chọn tốt nhất. Tuy nhiên, nếu bạn chỉ tập trung vào Tự động hóa báo cáo bằng Excel VBA liên quan đến định dạng trên hàng trăm tệp cục bộ, VBA có thể vẫn giữ ngôi vương.
Trong Power Automate, một chuỗi tự động được gọi là một Flow (Luồng). Mỗi flow bao gồm ba khối xây dựng chính:
Để tự động hóa Excel thành công bằng Power Automate, thiết lập của bạn phải đáp ứng hai yêu cầu quan trọng sau:
Vì Power Automate là một dịch vụ đám mây, nó không thể tương tác ổn định với một tệp Excel được lưu cục bộ trên ổ `C:` của máy tính. Sổ làm việc (workbook) của bạn phải được lưu trong OneDrive for Business hoặc một Thư viện Tài liệu SharePoint (SharePoint Document Library).
Power Automate không thể đơn giản là thả dữ liệu vào một trang tính trống; nó cần những ranh giới được xác định rõ ràng. Bạn phải định dạng vùng dữ liệu đích của mình thành một Bảng Excel (Excel Table) chính thức. Để làm điều này:
Hãy cùng thực hành một kịch bản rất thực tế: Tự động ghi lại các email yêu cầu đến vào một bảng tính Excel. Đây là một ví dụ hoàn hảo về Cách một Startup tiết kiệm 20 giờ mỗi tuần nhờ tự động hóa Excel bằng cách loại bỏ việc nhập dữ liệu thủ công.
Tạo một tệp Excel mới trong OneDrive có tên là "Email_Log.xlsx". Tạo một bảng với các tiêu đề sau:
Định dạng vùng này thành một Bảng (Table) và đặt tên là "EmailLogTable". Đóng tệp lại.
Đăng nhập vào Power Automate (make.powerautomate.com). Ở thanh bên trái, nhấp vào Create (Tạo), sau đó chọn Automated cloud flow (Luồng đám mây tự động).
Đặt tên cho flow của bạn là "Log Incoming Emails". Trong ô tìm kiếm "Choose your flow's trigger", nhập "Outlook". Chọn When a new email arrives (V3) - Office 365 Outlook (Khi có email mới đến (V3) - Office 365 Outlook) và nhấp Create.
Trong trình thiết kế flow, nhấp vào hộp trình kích hoạt. Bạn có thể chỉ định các tham số tại đây, ví dụ như chỉ kích hoạt đối với các email có chứa bộ lọc tiêu đề cụ thể (ví dụ: "Inquiry"). Trong hướng dẫn này, chúng ta sẽ để nó kích hoạt với tất cả email trong Hộp thư đến (Inbox).
Nhấp vào nút + New step (Bước mới). Tìm kiếm "Excel" và chọn trình kết nối Excel Online (Business). Từ danh sách các hành động, chọn Add a row into a table (Thêm một hàng vào bảng).
Bây giờ, hãy ánh xạ vị trí tệp:
Khi bạn chọn bảng, Power Automate sẽ tự động hiển thị các tiêu đề cột bạn đã tạo ở Bước 1. Nhấp vào từng trường để gán "Dynamic content" (Nội dung động - dữ liệu đến từ trình kích hoạt email):
Nhấp Save (Lưu). Bạn vừa tạo ra một quy trình tự động hóa hoạt động hoàn hảo mà không cần một dòng VBA nào! Hãy gửi một email thử nghiệm vào tài khoản của bạn và xem bảng Excel tự động được điền dữ liệu.
Một trong những lưu ý của Power Automate là dữ liệu nó mang vào có thể không được định dạng chính xác theo ý bạn. Ví dụ, Received Time từ ví dụ email của chúng ta sẽ được nhập dưới dạng chuỗi thời gian ISO 8601 lộn xộn (ví dụ: 2023-11-28T14:32:00Z).
Thay vì cố gắng phân tích chuỗi này bằng các biểu thức Power Automate phức tạp, bạn có thể dựa vào các công thức Excel tiêu chuẩn bên trong bảng. Thêm một cột mới vào bảng Excel của bạn với tên là "Clean Date" (Ngày đã làm sạch). Vì bạn đang sử dụng định dạng Bảng Excel chính thức, bạn có thể viết công thức ở hàng đầu tiên và nó sẽ tự động sao chép xuống dưới mỗi khi Power Automate thêm một hàng mới.
Để trích xuất chỉ phần ngày tháng từ chuỗi thời gian, bạn có thể kết hợp các hàm LEFT và VALUE, được bọc trong định dạng chuẩn:
=VALUE(LEFT([@[Date Received]], 10))
Định dạng cột mới này dưới dạng Short Date (Ngày ngắn) trong Excel. Giờ đây, bất cứ khi nào flow chạy, Excel sẽ xử lý quá trình chuyển đổi dữ liệu ngay lập tức.
Bạn cũng có thể tận dụng cơ hội này để đối chiếu dữ liệu đến. Ví dụ, nếu bạn muốn kiểm tra xem email của người gửi đã thuộc về một khách hàng hiện có trong trang tính khác hay chưa, bạn có thể sử dụng INDEX MATCH: Phương pháp dò tìm vượt trội trực tiếp trong bảng tự động của bạn:
=IFERROR(INDEX(Clients!B:B, MATCH([@[Sender Email]], Clients!A:A, 0)), "New Lead")
Với thiết lập này, bảng tính của bạn sẽ trở thành một cơ sở dữ liệu sống động, có khả năng tự động phân loại dữ liệu.
Việc thêm các hàng vào bảng mới chỉ là sự khởi đầu. Power Automate cung cấp một số hành động Excel mạnh mẽ khác:
Tưởng tượng bạn cần gửi tóm tắt dữ liệu bán hàng vào 5 giờ chiều thứ Sáu hàng tuần. Bạn có thể tạo một Scheduled cloud flow (Luồng đám mây lên lịch) kích hoạt hàng tuần. Flow này có thể sử dụng hành động "List rows present in a table" để lấy dữ liệu trong tuần, dùng hành động "Create HTML table" (Tạo bảng HTML) để định dạng và sau đó gửi đi thông qua trình kết nối Outlook. Đây là một sự thay thế tuyệt vời cho các báo cáo dựa trên macro phức tạp.
Để thao tác dữ liệu nâng cao hơn nữa trước khi dữ liệu đến Excel, bạn có thể tham khảo Power Query: Nhập và chuyển đổi dữ liệu như một chuyên gia, đây là một người bạn đồng hành tuyệt vời với Power Automate.
Khi xây dựng các flow phức tạp hơn, bạn có thể gặp phải một số rào cản phổ biến. Dưới đây là cách giải quyết chúng:
Nếu có người đang mở tệp Excel trên ứng dụng máy tính và tệp không đồng bộ bình thường lên OneDrive, Power Automate có thể không thêm được hàng. Hãy luôn đảm bảo tệp được bật tính năng AutoSave (Lưu tự động) và được lưu trữ trên môi trường đám mây dùng chung để tránh tình trạng khóa tệp.
Nếu bạn xóa bảng Excel và tạo lại, Power Automate sẽ bị mất kết nối, ngay cả khi bạn đặt tên bảng mới giống hệt bảng cũ. Excel gán một mã định danh ẩn duy nhất cho mỗi bảng. Nếu tạo lại bảng, bạn phải quay lại flow của mình, chọn lại bảng từ menu thả xuống và ánh xạ lại nội dung động của bạn.
Khi sử dụng hành động "List rows present in a table", Power Automate mặc định giới hạn số hàng trả về là 256. Nếu bảng của bạn có 1.000 hàng, bạn sẽ không lấy được tất cả. Để khắc phục điều này, hãy nhấp vào dấu ba chấm (...) trên hành động, chọn Settings (Cài đặt), bật Pagination (Phân trang) và đặt ngưỡng về số lượng mong muốn của bạn (tối đa 100.000).
Việc chuyển đổi từ nhập dữ liệu thủ công sang Power Automate đòi hỏi bạn phải thay đổi cách suy nghĩ về bảng tính của mình. Bạn không còn chỉ điền vào các ô nữa; bạn đang thiết kế hệ thống dữ liệu. Để các hệ thống này hoạt động hoàn hảo, bạn cần các công thức Excel mạnh mẽ trong bảng của mình để xử lý dữ liệu tự động đến.
Nếu bạn từng gặp khó khăn khi kết hợp các hàm như VLOOKUP, INDEX, MATCH hoặc các câu lệnh IF lồng nhau để xử lý dữ liệu từ Power Automate, GPTExcel có thể giúp bạn. Bạn chỉ cần mô tả nhu cầu của mình bằng ngôn ngữ tự nhiên—ví dụ: "Tôi cần một công thức kiểm tra cột ngày tự động và trả về 'Quá hạn' nếu nó cũ hơn 30 ngày"—và GPTExcel sẽ lập tức tạo ra công thức chính xác, sẵn sàng để sao chép dán.
Phiên bản cơ bản của Power Automate đã được bao gồm trong hầu hết các gói đăng ký Microsoft 365 thương mại và giáo dục. Nó bao gồm các trình kết nối tiêu chuẩn như Excel Online, Outlook và SharePoint. Các trình kết nối Premium (cao cấp) (như Salesforce hoặc các API tùy chỉnh) sẽ yêu cầu giấy phép Power Automate Premium riêng biệt.
Có, nhưng với một số lưu ý. Bạn có thể sử dụng hành động "Run script" trong Power Automate để chạy Office Scripts (giải pháp thay thế VBA hiện đại, dựa trên nền tảng đám mây của Microsoft được viết bằng TypeScript). Tuy nhiên, nó không thể trực tiếp kích hoạt các macro VBA `.xlsm` truyền thống từ đám mây nếu không sử dụng cổng dữ liệu dùng tại chỗ (on-premises data gateway) phức tạp.
Các trình kích hoạt khác nhau có khoảng thời gian thăm dò (polling intervals) khác nhau. Trong khi một số trình kích hoạt (như nhấn nút hoặc yêu cầu HTTP) chạy ngay lập tức, các trình kích hoạt thăm dò (như "Khi tệp mới được tạo" hoặc "Khi có email đến") có thể mất vài phút để nhận diện sự kiện, tùy thuộc vào cấp độ giấy phép Microsoft 365 của bạn.
Có! Power Automate không bị giới hạn trong hệ sinh thái Microsoft. Có một trình kết nối Google Sheets được hỗ trợ đầy đủ, cho phép bạn thêm hàng, lấy hàng và cập nhật dữ liệu trong Google Workspace, hệt như cách bạn làm với Excel Online.
Khám phá cách tự động hóa các tác vụ Excel không cần VBA bằng Power Automate. Học cách tạo luồng kích hoạt theo sự kiện, xử lý dữ liệu và kết nối ứng dụng khác.
Khám phá cách xây dựng hệ thống báo cáo tự động trong Excel bằng VBA. Học cách trích xuất dữ liệu, chèn công thức, định dạng ô và xuất báo cáo với mã code chi tiết từng bước.
Bắt đầu lập trình trong Excel với VBA. Tìm hiểu về thẻ Nhà phát triển, biến, vòng lặp, điều kiện và cách viết macro đầu tiên của bạn từ con số không.