Menu

Hỗ trợ tạo báo cáo tự động cập nhật theo tháng

Đào Thụy Pha 10/06/2026 14:45 510 lượt xem 2 trả lời

Chào mọi người,

Tình hình là mình đang cần làm một báo cáo bán hàng theo tháng, nhưng dữ liệu nguồn thì cập nhật liên tục. Mình muốn xây dựng một file Excel mà khi chọn tháng ở một ô, bảng báo cáo bên dưới sẽ tự động lọc và hiển thị dữ liệu tương ứng của tháng đó. Mình đã thử dùng Data Validation để tạo danh sách tháng, nhưng phần lọc dữ liệu thì đang gặp khó khăn.

Hiện tại, mình đang có 2 sheet:

  • Sheet1: Chứa dữ liệu bán hàng gốc, bao gồm các cột như: Ngày bán, Sản phẩm, Số lượng, Doanh thu.
  • Sheet2: Là nơi mình muốn hiển thị báo cáo đã lọc. Mình muốn có một ô ở Sheet2 để chọn tháng (ví dụ: từ 1 đến 12).

Mình đã nghĩ đến việc dùng hàm FILTER hoặc kết hợp INDEX/MATCH, nhưng chưa biết cách áp dụng sao cho hiệu quả với điều kiện lọc theo tháng từ một danh sách chọn sẵn.

Có anh chị em nào có kinh nghiệm hoặc công thức mẫu cho trường hợp này không ạ? Mình xin cảm ơn rất nhiều!

3

Chào bạn,

Vấn đề của bạn khá phổ biến khi làm báo cáo động. Để lọc dữ liệu theo tháng tự động, bạn có thể kết hợp INDEXMATCH hoặc dùng FILTER (nếu bạn dùng Excel 365).

Nếu dùng INDEXMATCH, bạn có thể tạo một mảng điều kiện dựa trên tháng bạn chọn. Ví dụ, nếu bạn chọn tháng ở ô A1 trên Sheet2, bạn có thể dùng công thức như sau cho bảng báo cáo:

``excel =INDEX(Sheet1!A:D, SMALL(IF(MONTH(Sheet1!$A$2:$A$1000)=MONTH($A$1), ROW(Sheet1!$A$2:$A$1000)-ROW(Sheet1!$A$2)+1), ROW(1:1)), COLUMN(A:A)) `

Đây là công thức mảng, bạn cần nhập bằng Ctrl+Shift+Enter. Tuy nhiên, cách này hơi phức tạp và cần điều chỉnh phạm vi dữ liệu.

Một cách khác, nếu bạn dùng Excel 365, thì FILTER sẽ đơn giản hơn rất nhiều. Bạn chỉ cần một công thức duy nhất:

`excel =FILTER(Sheet1!A2:D1000, MONTH(Sheet1!A2:A1000)=MONTH($A$1)) ``

Bạn có thể cho mình biết phiên bản Excel bạn đang dùng không? Như vậy mình có thể tư vấn cụ thể hơn.

0

Rất hay đó bạn! Mình cũng hay gặp trường hợp này. Nếu dùng Excel 365 thì đúng là FILTER là chân ái rồi, gọn gàng hẳn. Còn nếu là các phiên bản cũ hơn, ngoài cách dùng INDEX-MATCH mảng, bạn có thể thử dùng SUMIFS kết hợp với một vài cột phụ để lấy tháng từ cột ngày. Cách này có thể không trực quan bằng FILTER nhưng cũng khá hiệu quả.

Bạn đang dùng phiên bản Excel nào vậy? Nếu là 365 thì mình khuyên bạn nên dùng FILTER cho nhanh.

0

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký