Hướng Dẫn Cách Viết Hàm SUMIFS Trong VBA - Blog Học Excel Online
Có thể bạn quan tâm
Hàm SUMIFS là một trong những hàm khá thông dụng trong Excel. Hàm có chức năng tính tổng theo nhiều điều kiện. Trong bài viết này, chúng ta cùng tìm hiểu cách viết hàm SUMIFS trong VBA xem có điều gì đặc biệt không nhé.
Cách gán hàm SUMIFS từ VBA vào 1 ô trong Excel
Trong các bài viết trước các bạn đã biết đến cách dùng hàm sumif trong excel rồi. Còn đối với VBA thì sao, ví dụ chúng ta có yêu cầu sau:

Để thực hiện yêu cầu này, chúng ta cần sử dụng hàm SUMIFS tại ô C12.
Cách làm đơn giản là bạn có thể viết code VBA để gán công thức vào trong ô C12 như sau:
Sheets(“Sheet1”).Range(“C12”).Formula = “=SUMIFS(C2:C7,A2:A7,C10,B2:B7,C11)”
Code trên có nghĩa là: Gán vào ô C12 trong Sheet1 (là Sheet có yêu cầu tính toán) công thức có nội dung là: =SUMIFS(C2:C7,A2:A7,C10,B2:B7,C11)
Có thể thấy công thức SUMIFS được viết hoàn toàn bình thường, giống như cách chúng ta vẫn viết trực tiếp trong Excel.
- Vùng tính tổng: C2:C7 là cột số lượng
- Vùng điều kiện 1: A2:A7 là cột Mã hàng
- Điều kiện 1: C10 là mã hàng tại ô C10
- Vùng điều kiện 2: B2:B7 là cột Người bán
- Điều kiện 2: C11 là tên người bán tại ô C11

=> Kết quả của cách làm này là tại ô C12 có công thức SUMIFS (là ô chứa công thức)
Cách viết hàm SUMIFS trong WorksheetFunction của VBA
Nhược điểm của cách gán công thức bằng thuộc tính Formula là trong ô chứa công thức động. Điều này kiến file Excel mất thời gian tính toán nhiều hơn.
Để hạn chế công thức động, bạn có thể tính toán trực tiếp trong VBA trước, sau đó mới gán kết quả vào trong ô. Cách làm như sau:
Sử dụng đối tượng WorksheetFunction trong VBA để viết hàm SUMIFS:

Tuy nhiên cách viết hàm trong WorksheetFunction không giống cách viết thông thường như Excel, mà chúng ta viết như sau:
- Vùng tính tổng: C2:C7 là cột số lượng => Range(“C2:C7”)
- Vùng điều kiện 1: A2:A7 là cột Mã hàng => Range(“A2:A7”)
- Điều kiện 1: C10 là mã hàng tại ô C10 => Range(“C10”)
- Vùng điều kiện 2: B2:B7 là cột Người bán => Range(“B2:B7”)
- Điều kiện 2: C11 là tên người bán tại ô C11 => Range(“C11”)

Khi chạy code trên, ta có kết quả là giá trị 15 tại ô C12.
Các bạn có thể tải file mẫu của bài viết tại địa chỉ: http://bit.ly/2WuL82K
Ngoài ra bạn có thể tham khảo thêm một số bài viết thú vị khác về VBA Excel:
Hướng dẫn cách viết code VBA để tự động sắp xếp bảng tính Excel
Hướng dẫn cách lấy dữ liệu không trùng từ nhiều Sheet vào 1 Sheet
Hướng dẫn cách viết code tự động ghi nhận thời gian nhập dữ liệu bằng VBA
Từ khóa » Hàm Cộng Trong Vba
-
Sử Dụng VBA để điền Công Thức Mảng - Học Excel Online Miễn Phí
-
Sử Dụng SUM () Trong VBA - HelpEx
-
Hướng Dẫn Các Phép Toán Trong VBA
-
HƯỚNG DẪN CÁCH VIẾT HÀM VBA TRONG EXCEL
-
Macro|Bài 26-2| Hàm Trong VBA| SUM,SUMIF,SUMIFS ... - YouTube
-
Hàm SumByRow Tính Tổng Theo Dòng Bất Kì Trong Mảng Trong VBA
-
Cách Sử Dụng Các Hàm Sum(mảng), Sumproduct Trong VBA
-
Toán Tử Trong VBA - VietTuts
-
Cách Gọi Hàm Vba Trong Excel / TOP #10 Xem Nhiều Nhất & Mới ...
-
Viết Công Thức Trong Vba
-
Hỏi Code VBA Tương đương Hàm Code Và Hàm Sum Trong Excel
-
VBA Excel Cấp Tốc Bài 9 - Tự Tạo Hàm Excel Riêng 7/2022
-
Thiết Lập Công Thức Cho Các ô Excel Bằng VBA - Freetuts