Tự động hóa báo cáo Excel bằng AI sau khi COPILOT() bị khai tử
Microsoft đã gỡ hàm COPILOT() khỏi Excel ngày 14/9/2026. Khám phá 3 cách tự động hóa báo cáo Excel bằng AI vẫn hoạt động và cách chọn phương án phù hợp.
Long Nguyen
Lập trình viên Fullstack · Kỹ sư AI · Nhà nghiên cứu
Điều gì đã thay đổi: hàm COPILOT() không còn tồn tại
Nếu bạn xây dựng báo cáo Excel dựa trên công thức =COPILOT() trong ô, công thức này đã ngừng hoạt động. Theo tài liệu của Microsoft, hàm COPILOT đã bị gỡ khỏi Excel vào ngày . Hàm này vốn chỉ tồn tại dưới dạng bản xem trước trong các chương trình Frontier và Microsoft 365 Insider.
Các workbook hiện có không báo lỗi ngay lập tức. Ô vẫn giữ giá trị được tính lần cuối, nhưng ở lần tính toán lại đầu tiên, mỗi ô sẽ chuyển thành lỗi #NAME?. Một báo cáo trông vẫn bình thường tuần trước có thể bị hỏng vào lần tiếp theo có người chỉnh sửa tệp.
Để tìm các ô bị ảnh hưởng, nhấn Ctrl+F, mở Options, đặt Look in thành Formulas rồi tìm kiếm COPILOT(. Thay từng kết quả bằng công thức gốc của Excel hoặc một trong các phương pháp bên dưới.
Bài học ở đây rộng hơn việc một hàm bị gỡ bỏ: đừng bao giờ để báo cáo doanh nghiệp phụ thuộc vào một tính năng được gắn nhãn bản xem trước. Tất cả tính năng trong bài viết này đều đã được cung cấp chính thức hoặc hoàn toàn nằm trong quyền kiểm soát của bạn.
Ba cách tự động hóa báo cáo Excel bằng AI
Không có công cụ nào tốt nhất cho mọi trường hợp. Lựa chọn phù hợp phụ thuộc vào việc báo cáo chỉ được tạo một lần hay lặp lại định kỳ, cũng như nơi dữ liệu được lưu trữ.
| Phương pháp | Phù hợp nhất với | Chạy tự động không cần giám sát? | AI đóng vai trò ở đâu |
|---|---|---|---|
| Copilot trong Excel | Tạo hoặc tái cấu trúc báo cáo theo cách tương tác | Không, công cụ hoạt động trong một ngăn khi bạn theo dõi | Chỉnh sửa trực tiếp workbook |
| Office Scripts + Power Automate | Báo cáo định kỳ trên các workbook trong Microsoft 365 | Có, thông qua flow được lập lịch | Tùy chọn: soạn script một lần, sau đó script chạy cố định |
| Python + LLM | Báo cáo được tạo từ tệp CSV, API hoặc cơ sở dữ liệu | Có, với bất kỳ bộ lập lịch nào | Chỉ viết phần diễn giải |
Một nguyên tắc áp dụng cho cả ba phương pháp: hãy để AI xử lý ngôn từ và cấu trúc, còn công thức hoặc mã nguồn xử lý số liệu. Phần còn lại của bài viết sẽ hướng dẫn cách áp dụng nguyên tắc này.
Phương pháp 1: Copilot trong Excel để tạo và tái cấu trúc báo cáo
Copilot trong Excel có ba chế độ. Chế độ Edit chỉnh sửa trực tiếp workbook và xử lý các tác vụ nhiều bước như tái cấu trúc dữ liệu, gộp sheet hoặc xây dựng báo cáo gồm nhiều thành phần. Chế độ Plan đưa ra phương án để bạn xác nhận trước khi có bất kỳ thay đổi nào. Chế độ Chat trả lời câu hỏi mà không sửa tệp.
Copilot xây dựng báo cáo bằng các đối tượng gốc của Excel như table, chart, PivotTable và công thức, nên kết quả vẫn có thể chỉnh sửa. Công cụ cũng có thể lấy dữ liệu từ workbook khác, tra cứu thông tin trên web kèm trích dẫn và chạy các skill tùy chỉnh để quy định cách thực hiện một tác vụ lặp lại.
| Nền tảng | Các chế độ được hỗ trợ |
|---|---|
| Excel trên Windows, Mac và web | Edit, chat và plan |
| Excel trên iPad | Chat và plan (edit đang được triển khai) |
| Excel trên iPhone | Chat (edit đang được triển khai) |
| Excel trên Android | Chat |
Việc bạn có nhìn thấy Copilot hay không phụ thuộc vào giấy phép Microsoft 365 và cài đặt của tổ chức. Vì vậy, hãy kiểm tra những yếu tố này trước khi thiết kế quy trình dựa trên Copilot.
Cách viết prompt để tạo báo cáo đáng tin cậy
- Với mọi báo cáo mà người khác sẽ dựa vào, hãy bắt đầu ở chế độ plan và đọc kỹ phương án trước khi cho phép chỉnh sửa.
- Yêu cầu tạo các đối tượng có thể cập nhật: Hãy tạo bản tổng hợp hằng tuần từ bảng Orders: doanh thu theo kênh và một biểu đồ. Sử dụng PivotTable và công thức, không nhập giá trị cố định.
- Tự đối chiếu một tổng số với dữ liệu nguồn trước khi chia sẻ tệp.
Hãy xem Copilot là cách nhanh nhất để xây dựng phiên bản đầu tiên. Vì bạn phải khởi động công cụ và có thể dừng bất cứ lúc nào, Copilot không phải công cụ có thể tự tạo báo cáo cho thứ Hai tuần tới khi bạn vắng mặt.
Phương pháp 2: Office Scripts và Power Automate cho báo cáo theo lịch
Office Scripts biến một quy trình thủ công lặp đi lặp lại thành script. Trình ghi thao tác ghi lại các lần nhấp của bạn thành mã, còn trình chỉnh sửa mã cho phép bổ sung logic mà giao diện Excel không thể biểu đạt, chẳng hạn điều kiện if/else và vòng lặp. Ví dụ do Microsoft đưa ra là công việc hằng ngày gồm mở tệp CSV kế toán, xóa cột, định dạng table và tạo PivotTable: ghi lại một lần rồi chạy mãi về sau (tổng quan về Office Scripts).
Việc lập lịch có một chi tiết mà nhiều bài hướng dẫn cũ thường nói sai. Microsoft cho biết tính năng lập lịch bên trong Office Scripts hiện tạm thời bị vô hiệu hóa, còn các lịch hiện có vẫn tiếp tục chạy. Cách được hỗ trợ hiện nay là dùng flow Power Automate để chạy script.
- Ghi lại quy trình thủ công bằng trình ghi thao tác, sau đó mở mã trong trình chỉnh sửa và tinh chỉnh.
- Trong Power Automate, tạo scheduled cloud flow và đặt ngày, giờ chạy.
- Thêm hành động Excel Online (Business) Run script, rồi chọn workbook và script. Nếu script nằm trong thư viện SharePoint của nhóm, hãy dùng Run script from a SharePoint library thay thế.
- Thêm một bước để gửi email hoặc đăng tệp hoàn chỉnh hay hình ảnh biểu đồ.
- Dùng Run Test để kích hoạt flow thủ công trước khi tin tưởng lịch chạy.
AI nên được dùng ở đâu trong quy trình này?
Dùng Copilot hoặc mô hình chat để soạn hay chỉnh sửa script, sau đó đọc mã, chạy thử trên bản sao của workbook và cố định script. Một script đã cố định sẽ thực hiện chính xác cùng một việc vào mỗi thứ Hai. Ngược lại, prompt AI được diễn giải lại mỗi tuần sẽ tạo ra sự sai khác, trong khi đây chính là điều bạn muốn loại bỏ khỏi một báo cáo định kỳ.
Phương pháp 3: Python kết hợp LLM cho báo cáo chạy tự động
Khi dữ liệu đến từ tệp CSV xuất ra, phản hồi API hoặc các hàng trong cơ sở dữ liệu, một script Python ngắn sẽ linh hoạt hơn bất kỳ công cụ nào hoạt động trong Excel. Thiết kế dưới đây có bốn lựa chọn có chủ ý:
- pandas tính toán mọi số liệu. Mô hình không bao giờ thực hiện phép tính.
- Mô hình chỉ nhận một danh sách số liệu ở dạng văn bản thuần túy và được yêu cầu sao chép chính xác.
- Một bộ kiểm tra sẽ từ chối mọi phần diễn giải chứa số không xuất hiện trong danh sách đó.
- Các tổng số trên sheet Summary là công thức Excel có thể cập nhật, không phải giá trị được dán vào.
import re
import pandas as pd
NUM = re.compile(r'\d[\d,]*(?:\.\d+)?')
def load(path: str) -> pd.DataFrame:
df = pd.read_csv(path, parse_dates=['order_date'])
return df.dropna(subset=['order_id', 'channel', 'revenue'])
def build_facts(df: pd.DataFrame) -> dict:
by_channel = (
df.groupby('channel', as_index=False)
.agg(orders=('order_id', 'nunique'), revenue=('revenue', 'sum'))
.sort_values('revenue', ascending=False)
)
return {
'total_revenue': round(float(df['revenue'].sum()), 2),
'total_orders': int(df['order_id'].nunique()),
'by_channel': by_channel,
}
def facts_as_text(facts: dict) -> str:
lines = [
f"Total revenue: {facts['total_revenue']:,.2f}",
f"Total orders: {facts['total_orders']:,}",
]
for r in facts['by_channel'].itertuples():
lines.append(f'{r.channel}: {r.orders:,} orders, {r.revenue:,.2f} revenue')
return '\n'.join(lines)
def llm(prompt: str) -> str:
# Replace this body with your provider's chat call.
return 'Replace llm() with a real model call.'
def unsupported_numbers(text: str, facts_text: str) -> list:
allowed = {n.rstrip(',') for n in NUM.findall(facts_text)}
return [n.rstrip(',') for n in NUM.findall(text) if n.rstrip(',') not in allowed]
def write_report(path: str, facts: dict, commentary: str) -> None:
n = len(facts['by_channel']) + 1
with pd.ExcelWriter(path, engine='openpyxl') as xw:
facts['by_channel'].to_excel(xw, sheet_name='By channel', index=False)
ws = xw.book.create_sheet('Summary', 0)
ws['A1'] = 'Weekly sales report'
ws['A3'], ws['B3'] = 'Total revenue', f"=SUM('By channel'!C2:C{n})"
ws['A4'], ws['B4'] = 'Total orders', f"=SUM('By channel'!B2:B{n})"
ws['A6'] = commentary
if __name__ == '__main__':
df = load('orders.csv')
facts = build_facts(df)
facts_text = facts_as_text(facts)
draft = llm('Write 3 sentences for a sales manager. Use only these figures, copied exactly:\n' + facts_text)
bad = unsupported_numbers(draft, facts_text)
if bad:
raise ValueError(f'Commentary contains numbers not in the data: {bad}')
write_report('weekly_report.xlsx', facts, draft)
print('wrote weekly_report.xlsx')
Hàm llm() chỉ là phần khung, vì vậy hãy thay nội dung của nó bằng lệnh gọi đến nhà cung cấp của bạn. Bộ kiểm tra được thiết kế nghiêm ngặt: một câu như “tăng 12 phần trăm” sẽ bị từ chối nếu số 12 chưa có trong facts, vì vậy hãy tính trước mọi tỷ lệ muốn đề cập và thêm chúng vào facts_as_text(). Khi kiểm tra thất bại, quy trình sẽ dừng thay vì xuất bản một số liệu do AI bịa ra.
Một lưu ý thực tế: các công thức được openpyxl ghi vào tệp không có kết quả được lưu trong bộ nhớ đệm, vì vậy Excel sẽ tính toán khi mở tệp. Một trình xem không thực hiện tính toán có thể hiển thị các ô trống.
Nếu không muốn tự sở hữu và vận hành pipeline này, Netalith xây dựng các AI report agent tạo tệp Excel, PDF và PowerPoint từ dữ liệu của bạn.
Cách giữ số liệu do AI viết luôn chính xác trong báo cáo Excel
Hướng dẫn của Microsoft dành cho hàm COPILOT cũ là sử dụng các công thức gốc của Excel như SUM hoặc AVERAGEIF cho mọi tác vụ cần độ chính xác hoặc khả năng tái lập. Lời khuyên này vẫn áp dụng cho tất cả phương pháp trên, vì language model dự đoán văn bản chứ không thực hiện tính toán.
| Tác vụ | Để AI xử lý | Giữ tính xác định |
|---|---|---|
| Tổng, giá trị trung bình, tỷ lệ tăng trưởng | Không | Công thức hoặc pandas |
| Phần diễn giải và tóm tắt bằng văn bản | Có, chỉ từ các số liệu được cung cấp | Bộ kiểm tra đối chiếu mọi con số |
| Phân loại văn bản tự do (cảm xúc, danh mục) | Có, kèm kiểm tra mẫu | Lưu nhãn dưới dạng giá trị để chúng không tiếp tục thay đổi |
| Quy tắc làm sạch các cột lộn xộn | Soạn quy tắc | Áp dụng bằng script, không phải bằng prompt |
| Tra cứu giữa các sheet | Không | XLOOKUP hoặc phép gộp của pandas |
Trước khi gửi bất kỳ báo cáo nào, hãy thực hiện ba bước kiểm tra: đối chiếu tổng cuối với hệ thống nguồn, so sánh từng số liệu chính với kỳ trước để phát hiện biến động không có lời giải thích và đọc phần diễn giải song song với bảng mà nó mô tả.
Nên chọn phương pháp nào?
| Tình huống của bạn | Nên bắt đầu với |
|---|---|
| Báo cáo một lần cho cá nhân hoặc nhóm | Copilot trong Excel, ở chế độ plan |
| Báo cáo hằng tuần trên workbook lưu trong OneDrive hoặc SharePoint | Office Scripts + scheduled flow của Power Automate |
| Dữ liệu từ tệp CSV, API hoặc cơ sở dữ liệu, hoặc báo cáo cho nhiều khách hàng | Python với bộ kiểm tra số liệu |
| Bạn chưa chắc bố cục hiện tại đã phù hợp | Prototype bằng Copilot, sau đó cố định kết quả thành script |
Lựa chọn mặc định của tôi là hàng cuối cùng. Hãy dùng AI để thử nghiệm khi bố cục vẫn còn thay đổi; khi báo cáo đã ổn định, thay prompt bằng mã nguồn hoặc script không thể tự ý thay đổi.
Bước tiếp theo
Hãy chọn báo cáo mà bạn phải xây dựng lại thường xuyên nhất và chuyển nó sang phương pháp tương ứng trong bảng trên. Nếu muốn có người xây dựng, lập lịch và giám sát báo cáo giúp bạn, hãy yêu cầu báo giá miễn phí và mô tả nguồn dữ liệu cùng những người sẽ đọc báo cáo.
CÂU HỎI THƯỜNG GẶP
Câu hỏi thường gặp
AI có thể tự động tạo báo cáo Excel không?
Có, nhưng có giới hạn. Copilot trong Excel có thể xây dựng và chỉnh sửa báo cáo từ prompt trong khi bạn theo dõi. Với các báo cáo phải chạy theo lịch, flow Power Automate chạy Office Script hoặc script Python gọi language model để viết phần diễn giải sẽ đáng tin cậy hơn. Trong mọi trường hợp, hãy giữ phần tính toán trong công thức hoặc mã nguồn, còn dùng AI cho cấu trúc và câu chữ.
Điều gì đã thay thế hàm COPILOT trong Excel?
Không có hàm nào thay thế COPILOT dưới dạng công thức. Microsoft đã gỡ hàm này vào ngày 14 tháng 9 năm 2026 và hướng người dùng đến Copilot trong Excel, tức ngăn bên cho phép bạn mô tả tác vụ bằng ngôn ngữ tự nhiên. Các ô từng sử dụng hàm này vẫn giữ giá trị cũ và trả về lỗi #NAME? khi được tính toán lại.
Copilot trong Excel có thể chạy theo lịch không?
Microsoft mô tả Copilot trong Excel là một ngăn tương tác do bạn khởi động và có thể dừng bất cứ lúc nào. Với các lần chạy theo lịch, phương án được tài liệu hóa là scheduled cloud flow của Power Automate chạy một Office Script.
Có nên để AI tính toán số liệu trong báo cáo Excel không?
Không. Language model tạo văn bản và có thể đưa ra số liệu sai nhưng vẫn thể hiện đầy tự tin. Hãy dùng công thức gốc của Excel hoặc pandas cho mọi phép tính, chỉ cung cấp cho mô hình các số liệu đã hoàn thiện để diễn giải, đồng thời kiểm tra từng tổng số với dữ liệu nguồn trước khi chia sẻ báo cáo.
Tôi có cần biết lập trình để tự động hóa báo cáo Excel không?
Không, ít nhất là với phương pháp đầu tiên. Copilot trong Excel hoạt động dựa trên prompt bằng ngôn ngữ tự nhiên, còn trình ghi thao tác của Office Scripts có thể biến các bước thủ công thành script mà không cần viết mã. Python cho phép kiểm soát nhiều nhất nhưng cần có người bảo trì script.