Hướng dẫn cách lập báo cáo tổng hợp tự động với Excel và VBA

Chia sẻ bài viết này:
  • 5
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Bạn thường phải làm 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. Chúng ta cùng tìm hiểu cách làm nhé:

Đề bài: Cho bảng dữ liệu

Yêu cầu: Lập báo cáo tổng hợp có thể tự động cập nhật khi thay đổi thời gian của báo cáo

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

  • 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.

Xem thêm: lớp học Excel kế toán tại Hà Nội

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

Bằng việc thấu hiểu rằng hầu hết nhân viên văn phòng thường mất nhiều thời gian tra cứu cách sử dụng các hàm, các tính năng trong Excel, gặp khó khăn trong lồng ghép hàm, xử lý dữ liệu, công việc bận rộn không có thời gian học. Nên Học Excel Online đã thiết kế ra chương trình Excel từ cơ bản tới nâng cao dành cho người đi làm. Đây là chương trình học online, học viên có thể chủ động học mọi lúc mọi nơi, trao đổi trực tiếp với giảng viên tại bài giảng trong suốt quá trình học.

Với khoá học này học viên sẽ nắm được: :

  • Trọn bộ công cụ định dạng báo cáo chuyên nghiệp: Format, Cell, Number, Style,...không mất thời gian cả ngày ngồi sửa báo cáo
  • Toàn bộ kỹ năng lọc dữ liệu, lọc dữ liệu nâng cao trong Excel phục vụ cho mục đích trích xuất dữ liệu
  • Data Validation kiểm soát dữ liệu khi nhập vào một vùng trong bảng tính
  • TẤT TẦN TẬT hơn 100 hàm thông dụng, công thức mảng trong Excel, học tới đâu nhớ tới đó
  • Bộ 36 PHÍM TẮT giúp thao tác nhanh gấp đôi
  • BÁO CÁO SIÊU TỐC trong 1 phút với Pivot Table
  • Hỏi đáp trực tiếp tại bài giảng với giảng viên trong suốt quá trình học
  • CHUYÊN NGHIỆP trong báo cáo bằng Biểu đồ, đồ thị,....
  • 142+ bài giảng, 13+ giờ học, 200+ ví dụ thực tế cùng chuyên gia
  • 100+ Kỹ năng, thủ thuật Excel thông dụng với các hàm: SUMIF, HLOOKUP, VLOOKUP, DATEDIF…

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

Đừng bỏ lỡ: lớp học word excel ở Hà Nội

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.

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.

Cảm ơn các bạn đã theo dõi.

Tải về tài liệu kèm theo bài học

VBA 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…

Để có thể học VBA một cách đầy đủ, có hệ thống, bạn hãy tham gia khoá học VBA101 – VBA cơ bản dành cho người mới bắt đầu của hệ thống Học Excel Online. Hiện nay hệ thống đang có nhiều ưu đãi khi bạn đăng ký khóa học này. Chi tiết xem tại:

 


Chia sẻ bài viết này:
  • 5
  •  
  •  
  •  
  •  
  •  
  •   
  •