You are here:: Hướng dẫn chuẩn hóa dữ liệu nguồn trước khi sử dụng hàm BS_SQL
 
 

Hướng dẫn chuẩn hóa dữ liệu nguồn trước khi sử dụng hàm BS_SQL

Khi ứng dụng hàm BS_SQL của Add-in A-Tools làm báo cáo động, việc chuẩn hóa dữ liệu trước khi làm báo cáo là điều kiện đầu tiên và vô cùng quan trọng để tại nên một bảng báo cáo hoàn chỉnh, không bị lỗi định dạng hay lỗi công thức. Việc này cũng quan trọng như việc ta đặt những viên gạch làm nền móng khi xây dựng một tòa nhà vậy, nền móng có vững chắc thì ngôi nhà mới vững chãi được. Hôm nay, bài viết này sẽ hướng dẫn cách bạn cách để chuẩn hóa bảng dữ liệu trước khi sử dụng hàm BS_SQL.
 
1. Định dạng bảng
- Bảng dữ liệu/Table từ dòng tiêu đề đến các dòng dữ liệu không được có ô nào ở trạng thái Merge.
Lý do:
Một bảng dữ liệu được định nghĩa bởi cột bà dòng, giao của cột và dòng là ô. Việc merge nhiều ô thành một ô sẽ làm việc truy vấn dữ liệu bị gặp lỗi.
 
Trong ví dụ bảng dưới đâu ô B10 bị lỗi vì có trạng thái Merge.
 
 
- Tiêu đề của bảng dữ liệu nên được đặt tên ngắn gọn, viết liền nhau, chỉ nên dùng A-Z, _, 0-9.  Số luôn đứng sau chữ.
 
 
Với bảng dữ liệu trên, công thức phải làm như sau:
 
 
Lý do:
Tiêu đề các cột có dấu dẫn đến khi làm công thức rất dễ bị sai do nhầm lẫn, lập công thức mất thời gian vì việc soạn thảo nhiều.
Tiêu đề các cột của bảng dữ liệu nên được đặt tên lại như sau:
 
 
Khi đó, công thức là:
 
 
Không cần phải dùng ký tự bao [], soạn thảo chữ không dấu sẽ nhanh và giảm lỗi soạn thảo hơn.
 
2. Định dạng kiểu dữ liệu trong các cột của bảng trước khi nhập dữ liệu:
 
- Trong bảng tính Excel, các ô ngầm định đặt kiểu general, kiểu dữ liệu được xác định khi dữ liệu được nhập vào. Trong một tình huống nào đó, dữ liệu được nhập vào khó để cho A-Tools hay đối tượng truy vấn dữ liệu ADO xác định rõ kiểu dữ liệu. Như là số CMND, Mã hàng,... Giả sử ta nhập giá trị là 1111, Excel lại hiểu là kiểu số (Number), mục đích của người sử dụng là kiểu Text và trong công thức dùng phép so sánh có điều kiện với các giá trị text dẫn đến sai kết quả.
Ví dụ MA_VLSPHH='1111' sẽ sai vì Excel đang coi MA_VLSPHH là số - Number.
Vậy ta cần định dạng cột MA_VLSPH về dạng TEXT trước, sau đó mới nhập 1111 thì lúc này công thức so sánh MA_VLSPHH='1111' là đúng vì cột MA_VLSPHH được Excel hiểu là định dạng TEXT. 
Nếu gái trị 1111 nhập trước sau đó mới định dạng thì không có ý nghĩa. Vẫn cần phải nhập lại sau khi định dạng. 
Nếu không muốn nhập lại, bạn chạy chức năng "Số thành văn bản" trong menu A-Tools.
Hình dưới đây là gợi ý về định dạng các cột trong bảng trước khi đưa vào nhập dữ liệu.
 
 
- Trong bảng dữ liệu ngồn nên có dòng đầu tiên để nhập giá trị giả định mà các giá trị này không ảnh hưởng tới kết quả báo cáo.
Các cột là dạng văn bản (TEXT) nhập giá trị ' (nháy đơn). Các cột có các giá trị ngày, số lượng, số tiền, phần trăm, tỷ lệ (số) thì nhập số 0.
Việc nhập giá trị giả định như trên giúp cho A-Tools hay đối tượng ADO hiểu được kiểu dữ liệu của các cột dữ liệu trong bảng được rõ ràng hơn.
 
 
3. Đặt tên vùng dữ liệu trong bảng tính Excel (worksheet)
 
Đặt tên (NAME) cho bảng dữ liệu để A-Tools có thể nhận được vùng dữ liệu trong bảng tính và lấy ra chính xác trường dữ liệu trong bảng.
Ví dụ: Lọc lấy các dòng dữ liệu trong sheet "KHO", vùng dữ liệu A3:K68.
Đặt công thức:
 
 
Nếu vùng dữ liệu được đặt tên là KHO (=KHO!A3:K68) thì công thức như sau:
 
 
Việc đặt tên (NAME) đem lại hiệu quả sử dụng công thức cao nhất. Đối với Add-in A-Tools, tên của một vùng KHO được coi như tên của một bảng (Table) trong cơ sở dữ liệu Excel.
Cách tạo tên cho vùng dữ liệu
Người dùng làm theo trình tự sau:
+ 1: Chọn vùng dữ liệu. Vùng dữ liệu phải từ dòng tiêu đề của bảng tới dòng cuối cùng. Ví dụ trong sheet "KHO", bôi đen vùng từ A3:K68.
+ 2: CHọn menu "Formula" (Với Excel 2007 hoặc cao hơn)
+ 3: Chọn menu "Insert -> name" (Với Excel 2003 hoặc thấp hơn)
+ 4: Chọn "Define Name". Đặt tên tại mục "Name"
+ 5: Chọn [OK] để đồng ý.
 
Ở bước 2 và 3 ta có thể sử dụng phím tắt là CTRL+F3 
Ta được màn hình đặt tên - NAME dưới đây:
 
Nếu nhận được thông báo tên đã tồn tại thì vào mục "Name Manager", sau đó chọn Edit để sửa lại.