Bạn thường phải lập báo cáo tổng hợp trên Excel? Làm thế nào để báo cáo tự động cập nhật số liệu mỗi khi bạn thay đổi thời gian báo cáo? Chắc hẳn bạn sẽ rất vui khi biết rằng VBA sẽ giúp bạn thực hiện điều đó một cách rất dễ dàng. Admin Edu sẽ tìm hiểu cùng bạn nhé!
Đề bài: Cho bảng dữ liệu
Yêu cầu: lập báo cáo tổng hợp trên Excel có thể tự động cập nhật khi thay đổi thời gian của báo cáo
1. Cách làm
Bước 1: Đặt tên cho các cột dữ liệu trong bảng Data để sử dụng trong công thức cho dễ thực hiện hơn
Dù đã có phần mềm, nhưng kỹ năng Excel vẫn cực kỳ quan trọng với kế toán, bạn đã vững Excel chưa? Hãy để tôi giúp bạn, đăng ký khoá học Excel:
- Mở tab Formulas => Chọn Define Name và đặt tên cho cột Ngày của Sheet Data. Lưu ý giới hạn của vùng dữ liệu trong cột
- Làm tương tự cho các cột khác. Lưu ý độ rộng của các vùng Tên trong cùng 1 bảng phải bằng nhau
Bước 2: Sử dụng công thức Excel để tính dữ liệu vào bảng Báo cáo tổng hợp
Mỗi đối tượng trong Báo cáo tổng hợp được tính dựa theo các điều kiện:
- Nội dung cần tính: Số lượng / Đơn giá / Thành tiền. Xét trên nội dung Số lượng trước, các nội dung khác có thể làm tương tự
- Thời gian giới hạn điểm đầu: >= Từ ngày
- Thời gian giới hạn điểm cuối: <= Đến ngày
- Mã hàng hóa cần tính: dựa theo mỗi mã hàng trong báo cáo.
Như vậy chúng ta sử dụng hàm SUMIFS để có thể tính tổng theo nhiều điều kiện.
Cấu trúc của hàm SUMIFS cho yêu cầu tính Số lượng:
- Vùng cần tính tổng = Data_Cot_SoLuong
- Vùng điều kiện thứ 1 = Data_Cot_TenHang
- Điều kiện thứ 1 trong vùng điều kiện thứ 1 = Hàng A (ô A5)
- Vùng điều kiện thứ 2 = Data_Cot_Ngay
- Điều kiện thứ 2 trong vùng điều kiện thứ 2 là >= Từ ngày, vì dấu >= là dấu toán tử nên phải đặt trong dấu nháy kép
- Vùng điều kiện thứ 3 = Data_Cot_Ngay
- Điều kiện thứ 2 trong vùng điều kiện thứ 3 là <= Đến ngày, vì dấu <= là dấu toán tử nên phải đặt trong dấu nháy kép
Tương tự như vậy với yêu cầu tính Thành tiền, chúng ta chỉ cần thay Vùng cần tính tổng trong hàm SUMIFS thành Data_Cot_ThanhTien
Với yêu cầu tính đơn giá, chúng ta tính bằng cách lấy Thành tiền / Số lượng
Nếu Số lượng = 0 thì Đơn giá sẽ = 0 (vì mẫu số của phép chia = 0 thì sẽ có lỗi, nên cần biện luận trường hợp này trước khi thực hiện phép chia
C5 = IF(B5=0,0,D5/B5)
=> Filldown toàn bộ công thức ở các cột B, C, D từ hàng 5 xuống hàng 11 cho các Hàng hóa tiếp theo
Bước 3: Lọc dữ liệu trong báo cáo
Tại cột E, sử dụng công thức lọc bỏ những nội dung có phát sinh = 0 (hoặc không phát sinh) như sau:
E5 = IF(SUM(B5:D5)=0,””,”x”)
Filldown công thức từ E5 xuống E11
Bước 4: Thiết lập tự động cập nhật báo cáo trong VBA
- Record Macro cho thao tác Lọc dữ liệu – Lọc bỏ dòng trống
- Mở cửa sổ VBA (Alt + F11), thiết lập sự kiện Change trong sheet BCTH: thay đổi dữ liệu ở ô B2 hoặc ô B3
If Not Application.Intersect(Range(“B2:B3”), Range(Target.Address)) Is Nothing Then
…
End if
Dòng code này được hiểu là: Nếu có sự thay đổi dữ liệu ở vùng B2:B3 thì…
ActiveSheet.Range(“$E$4:$E$11″).AutoFilter Field:=1, Criteria1:=”<>”
Dòng code này có được từ việc Record Macro ở trên, được hiểu là lọc bỏ giá trị dòng trống (blanks) ở cột Lọc (cột E, áp dụng từ dòng 4 đến dòng 11)
Như vậy chúng ta đã hoàn thành công việc lập báo cáo tự động cập nhật khi thay đổi thời gian báo cáo.
2. Kết luận
Những nội dung học được qua bài này là:
- Cách gán tên cho vùng dữ liệu, sử dụng tên trong công thức để lập công thức tốt hơn
- Cách lập công thức tổng hợp kết quả theo nhiều điều kiện trong báo cáo tổng hợp (SUMIFS)
- Cách lọc bỏ dữ liệu không cần thiết trong Báo cáo tổng hợp
- Cách record macro để lấy code nhanh trong excel vba
- Cách đọc hiểu và viết code trong VBA
- Trình tự logic của việc lập báo cáo tổng hợp
Bạn thấy đó, để nắm vững kỹ thuật lập báo cáo tổng hợp trong Excel cũng không quá khó, và khi có thêm VBA thì chúng ta hoàn toàn có thể giúp báo cáo trở nên hữu dụng và thân thiện hơn. Bài viết này sẽ tạo tiền đề cho các bạn làm quen với VBA, cách học VBA dễ dàng và làm quen dần với kỹ thuật VBA giúp tự động hóa khi sử dụng Excel.
VBA Excel giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook… giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp…
Trên đây là bài viết về cách sử dụng VBA trong Excel để lập báo cáo tự động. Cảm ơn bạn đã theo dõi bài viết. Chúc bạn thành công!