Xem tài liệu đính kèm VBA for SQL references hoặc VBA for connection with SQL
Mời các bạn xem video thể hiện kết quả với SQL nhé
Bước 1: Đặt tên cho các bảng tính trong từng sheets phía dưới và tên các trường dữ liệu
Bước 2: Viết câu lệnh SQL theo cú pháp Select… Count [tên cột]
SELECT [State/Province], COUNT([State/Province]) AS [NUMERS OF PROVINCE] FROM [Customers] GROUP BY [State/Province] |
TỪ KHÓA SELECT: Chọn các trường [State/Province] và trường thứ 2 [Numbers of Province] (trường này do người sử dụng tự đặt tên và sẽ dùng bằng từ khóa AS)
TỪ KHÓA COUNT([State/Province]): đếm số lượng các tỉnh (các bang) trong bảng Danh Sách khách hàng (TỪ KHÓA FROM)
TỪ KHÓA GROUP BY: Nhóm theo đối tượng cụ thể là các tỉnh [State/Province]
Bước 3: Thực hiện câu lệnh SQL và kết quả sẽ thể hiện như sau
Tương tự như vậy ta có thể sử dụng với hàm SUM và hàm AVRAGE để tính ra tổng và giá trị trung bình của các yếu tố
Ví dụ sau đây sẽ: Hiện lên thông tin các trường Mã hàng, Tên Hàng, và tính tổng theo nhóm Mã hàng và tên hàng chỉ đối với điều kiện là những mặt hàng có tên là ‘Mắm cá’. (CÂU LỆNH SQL NÀY (SUM[TÊN CỘT]…. GROUP BY [TÊN CỘT]) TƯƠNG ĐƯƠNG VỚI CÂU LỆNH SUMIF TRONG EXCEL THUẦN TÚY)
SELECT [MA_HH] AS [Mã hàng], [HangHoa].[TEN_HH] AS [Tên Hàng], SUM([SO_TIEN]) AS [Tổng tiền] FROM [HangHoa] WHERE [HangHoa].[TEN_HH] LIKE '%Mắm cá%' GROUP BY [MA_HH], [TEN_HH] |
Nếu như dùng với SUMIF bạn sẽ phải làm 2 bước là nhóm lại mã hàng sang vùng khác (ví dụ bằng Remove duplication) rồi bạn đặt công thức Sumif để tính theo điều kiện Mã Hàng.
Nếu bạn muốn lấy thêm trường thông tin Tên hàng từ Mã hàng, bạn lại phải sử dụng thêm hàm vlookup để hiện tên hàng;
Thì giờ đây với 1 câu lệnh SQL như trên bạn muốn lấy ra bao nhiêu trường thông tin, nhóm bao nhiêu hàng và đặt điều kiện với một loại hàng cụ thể (ví dụ trường hợp này là chỉ lấy ra mặt hàng bắt đầu bằng chữ “Mắm cá”) thì SQL sẽ hiện ra kết quả rất nhanh chóng chỉ với một thao tác ấn Enter là xong. ?
Mình sẽ sử dụng thêm một ví dụ ứng dụng trong việc tính giá bình quân và số lượng trung bình theo từng lần nhập với 1 điều kiện mặt hàng nhất định
SELECT [MA_HH] AS [Mã hàng], [HangHoa].[TEN_HH] AS [Tên Hàng], AVG([SO_LUONG]) AS [Số lượng bình quân], SUM([SO_TIEN])/SUM([SO_LUONG]) AS [Đơn giá bình quân] FROM [HangHoa] WHERE [HangHoa].[SO_LUONG]>0 GROUP BY [MA_HH], [TEN_HH] |
Kết quả sẽ hiện ra rất nhanh chóng cho tất cả các mặt hàng. Mình sẽ đối chiếu với 1 ví dụ về Mặt hàng ‘Bánh chưng’ (Mã VT0001) để so sánh kết quả của SQL nhé.
CẢM ƠN CÁC BẠN ĐÃ THEO DÕI
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!