Chào mọi người,
Dạo gần đây mình nhận được nhiều câu hỏi về việc làm sao để báo cáo tự động cập nhật khi có dữ liệu mới. Tình huống này rất phổ biến, ví dụ như khi các bạn làm báo cáo bán hàng, báo cáo tiến độ dự án mà dữ liệu nguồn cứ thay đổi liên tục.
Thay vì phải copy paste thủ công mỗi lần có dữ liệu mới, mình xin chia sẻ một cách rất hay mà mình đã áp dụng thành công. Cách này giúp báo cáo của bạn luôn phản ánh đúng dữ liệu mới nhất mà không tốn nhiều công sức.
Phương pháp chính: Kết hợp hàm INDIRECT và tên vùng động (Dynamic Named Ranges) hoặc sử dụng Power Query.
1. Sử dụng INDIRECT và Tên vùng động:
- Đầu tiên, bạn cần xác định vùng dữ liệu nguồn của mình.
- Tạo một Tên vùng động (Named Range) trỏ đến vùng dữ liệu đó. Khi dữ liệu mới được thêm vào, tên vùng này sẽ tự động mở rộng theo.
- Trong báo cáo, bạn sử dụng hàm
INDIRECTđể tham chiếu đến tên vùng động này. Ví dụ, nếu tên vùng động của bạn làDuLieuBanHang, bạn có thể dùng=SUM(INDIRECT("DuLieuBanHang")).
Ưu điểm: Đơn giản, dễ áp dụng cho các file không quá phức tạp.
Nhược điểm: Có thể làm chậm file nếu vùng dữ liệu quá lớn hoặc có quá nhiều tên vùng động.
2. Sử dụng Power Query (Get & Transform Data):
- Đây là cách mạnh mẽ và hiệu quả hơn, đặc biệt với các file lớn hoặc khi bạn cần xử lý dữ liệu phức tạp trước khi đưa vào báo cáo.
- Vào tab
Data->Get Data->From File(hoặcFrom Workbooknếu dữ liệu nằm trong cùng một file Excel). - Chọn file nguồn, sau đó chọn bảng hoặc sheet chứa dữ liệu.
- Thực hiện các bước biến đổi dữ liệu cần thiết trong cửa sổ Power Query Editor.
- Cuối cùng, chọn
Close & Load To...và load dữ liệu vào một bảng mới hoặc PivotTable trong file báo cáo của bạn.
Khi dữ liệu nguồn thay đổi, bạn chỉ cần vào tab Data -> Refresh All là báo cáo sẽ tự động cập nhật.
Mình thấy cách này cực kỳ hữu ích và tiết kiệm thời gian. Hy vọng chia sẻ của mình giúp ích được cho các bạn. Có ai có cách nào hay hơn hoặc gặp khó khăn gì thì cùng thảo luận nhé!