Qua hai bài học về ‘Tự động cập nhật dữ liệu với công cụ Spin Button‘ và ‘Quản lý công cụ Spin Button trong VBA‘ chúng ta đã có thể biết được cách sử dụng công cụ Spin button để cập nhật dữ liệu trong mẫu Phiếu xuất kho. Một yêu cầu có thể gặp phải là chúng ta cần lưu trữ các phiếu đó, dưới dạng từng phiếu một theo các hình thức:
- In ra giấy (chức năng in hàng loạt)
- Xuất ra bản mềm (file PDF, file Excel…)
Trong bài học này chúng ta cùng tìm hiểu cách xây dựng lệnh Trích xuất dữ liệu hàng loạt ra file PDF theo mỗi đối tượng, cụ thể ở đây là mỗi Phiếu Xuất kho.
- Xác định trình tự thực hiện
- Câu lệnh VBA trích xuất dữ liệu
Xác định trình tự thực hiện
Đây là việc mô tả lại những việc cần phải làm, từng bước thực hiện và tương tác với Excel ra sao. Việc diễn đạt tốt trình tự thực hiện sẽ giúp chúng ta dễ dàng viết lệnh trong VBA và tránh các lỗi có thể xảy ra. Bước 1: Xác định các đối tượng Ở đây chúng ta có 2 đối tượng: Dòng cuối của bảng kê và vùng dữ liệu cần trích xuất
- Dòng cuối bảng kê: dòng cuối được xác định bằng câu lệnh tìm dòng cuối trong VBA
- Vùng dữ liệu cần trích xuất: trong mục này chúng ta giới hạn phạm vi dữ liệu cần trích xuất (nội dung này thiết lập trong phần Page Setup > Thẻ Sheet > Mục Print area)
- Chọn chính xác đường dẫn tới nơi lưu kết quả => Chọn tới đường dẫn đó
- Chưa chọn chính xác đường dẫn => Thông báo lỗi và yêu cầu chọn lại hoặc hủy bỏ câu lệnh.
Bước 3: Viết tiếp câu lệnh trong trường hợp chọn đúng đường dẫn Bước này cũng xảy ra một số trường hợp như sau:
- Nếu kết quả cần trích xuất đã có hoặc trùng tên => Thông báo cho người sử dụng biết để xử lý: Có ghi đè lên file đó hay không
- Trường hợp nếu ghi đè không được vì file đó không cho phép ghi đè => Thông báo cho người sử dụng biết để xử lý.
- Trường hợp kết quả cần trích xuất chưa có sẵn => Thực hiện việc trích xuất.
Việc này sẽ được thực hiện khi kiểm tra từng kết quả cần trích xuất => Do đó phải thực hiện theo 1 vòng lặp cho từng đối tượng số phiếu.
Câu lệnh VBA trích xuất dữ liệu
Trong đoạn code trên, mình đã ghi chú rất cụ thể nội dung từng đoạn code để các bạn có thể dựa vào đó đọc, hiểu nội dung từng đoạn. Câu lệnh viết trong VBA có thể dài và hơi khó đọc, nhưng khi chúng ta đã xây dựng được trình tự từ trước đó thì việc kiểm soát lại câu lệnh VBA sẽ không khó nữa. Khi ứng dụng vào việc khác thì cần lưu ý tọa độ các vị trí để điều chỉnh cho khớp với đặc điểm dữ liệu trong việc đó. Cùng xem kết quả nào:
Tác giả: duongquan211287
· · ·
- Chuyên mục:
- Excel cơ bản
Việc lọc dữ liệu từ sheet này sang sheet khác là một việc thường gặp phải trong công việc. Việc này chính là việc lập báo cáo chi tiết dựa vào một số điều kiện lập báo cáo. Mục đích là lấy những nội dung thỏa mãn điều kiện trong bảng dữ liệu (nằm trên 1 sheet riêng) đưa sang báo cáo chi tiết (nằm trên 1 sheet riêng). Trong Excel việc này được thực hiện một cách khá đơn giản với công cụ Advanced Filter (bộ lọc nâng cao). Sau đây chúng ta cùng tìm hiểu cách lọc dữ liệu sang sheet khác bằng Advanced Filter trong Excel nhé:
- 1. Giới thiệu về công cụ Advanced Filter
- a. Mở công cụ Advenced Filter
- b. Chú ý
- 2. Cách thực hiện
- 3. Cách thiết lập điều kiện trong Advanced Filter
1. Giới thiệu về công cụ Advanced Filter
a. Mở công cụ Advenced Filter
Trong thẻ Data > Chọn Advanced Filter
- Action/ Filter the list, in-place: Lọc tại chính danh sách gốc
- Action/ Copy to another location: Sao chép kết quả lọc được sang vị trí khác
- List range: Vùng dữ liệu cần lọc
- Criteria range: Vùng điều kiện lọc
- Copy to: Nơi đặt kết quả lọc (khi chọn sao chép kết quả sang vị trí khác)
- Unique records only: Chỉ lấy các giá trị không trùng nhau (xuất hiện 1 lần)
b. Chú ý
- Như vậy muốn lọc dữ liệu từ sheet này sang sheet khác chúng ta bắt buộc phải chọn Copy to another location khi thực hiện Advanced Filter.
- Nơi đặt kết quả lọc (copy to) phải tương ứng với sheet chứa vùng điều kiện (criteria range), tức là trong cùng 1 sheet.
2. Cách thực hiện
Xét ví dụ sau: Cho bảng dữ liệu tại sheet Data gồm:
- Bước 1: Tạo mới 1 sheet, lấy tên là “Report01”
- Bước 2: Thiết lập điều kiện như sau
- Bước 3: Thực hiện lọc bằng công cụ Advanced Filter như sau
List range: Tại sheet Data, vùng A1:D11 (Xem ở đề bài)
Criteria range: Tại sheet Report01, vùng A1:A2
Copy to: Vị trí đặt kết quả tại Sheet Report01, ô A4
Kết quả thu được tại Report01
3. Cách thiết lập điều kiện trong Advanced Filter
Vùng điều kiện trong Advanced Filter bắt buộc phải tuân theo nguyên tắc sau:
- Bao gồm tên tiêu đề của trường dữ liệu có liên quan + nội dung điều kiện trong trường đó
- Mối quan hệ giữa các điều kiện được viết như sau:
Mối quan hệ phụ thuộc / Điều kiện dạng Và: Tất cả các điều kiện đều thỏa mãn
- Mỗi điều kiện sẽ kèm theo 1 tiêu đề. Nếu trong cùng 1 cột tiêu đề thì lặp lại cột tiêu đề đó.
- Các điều kiện được đặt trên cùng 1 hàng
Mối quan hệ bổ sung / Điều kiện dạng Hoặc: Chỉ cần 1 trong những điều kiện được thỏa mãn
- Mỗi điều kiện sẽ kém theo 1 tiêu đề. Nếu trong cùng 1 cột tiêu đề thì đặt ở dòng phía dưới trên cùng cột tiêu đề đó
- Các điều kiện được đặt so le nhau, không nằm cùng 1 hàng.
Trên đây là những nội dung chính về việc sử dụng Advanced Filter trong Excel để lọc / trích xuất dữ liệu từ sheet này sang sheet khác. Việc sử dụng Advanced Filter khá đơn giản, chỉ cần chú ý về cách xây dựng vùng điều kiện và vị trí đặt vùng điều kiện. Ngoài ra Học Excel Online xin giới thiệu với các bạn Khóa học Excel từ cơ bản tới nâng cao dành cho người đi làm [Đăng ký]. Đây là 1 khóa học rất đầy đủ kiến thức và bổ trợ rất tuyệt vời cho bạn trong việc làm quen với Excel, sử dụng các công cụ, các hàm trong Excel để đáp ứng yêu cầu công việc tổ chức, quản lý dữ liệu và lập báo cáo trên Excel.
- Tags: Bộ lọc Nâng cao Excel
Tác giả: duongquan211287
· · ·
Khóa học mới xuất bản
- Tất cả
- Python
- SQL
- VBA