CÔNG TY CỔ PHẦN BLUESOFTS

Hướng dẫn hàm BS_WEBTABLE - Lấy bảng dữ liệu trong website-URL

 
Hàm BS_WEBTABLE trong Add-in A-Tools cho phép người dùng lấy dữ liệu một bảng từ URL (trên website), dựa vào Index hoặc Id của table.


Cấu trúc

BS_WEBTABLE
(URL, [IndexOrName], [ParseType], [Options])

Hàm chạy từ Add-in A-Tools 10.x
Các tham số trong [ ] có thể bỏ qua.

Các tham số

- URL: Là đường dẫn URL tới một website.

- IndexOrName: Tham số này có thể bỏ qua, là chỉ mục (số nguyên) hoặc tên (kiểu chuỗi) của bảng.  Tham số này phân biệt chữ hoa.
 
- ParseType: Tham số này ngầm định là 0, chỉ định kiểu phân tích cấu trúc HTML.

- Options: Tham số này kiểu chuỗi, có thể bỏ qua. Các thuộc tính có thể nhận:

"HR=YES;" - Để hiển thị dòng tiêu đề.
"NUMCOLS=n;" - Chuyển dữ liệu cột n về dạng số. n là vị trí cột, có thể là danh sách các vị trí cột, từ cột đến cột (n1-n2), n- từ cột n đến hết.
"DATECOLS=n;" - Chuyển dữ liệu cột n về định dạng ngày. n là vị trí cột, có thể là danh sách các vị trí cột, từ cột đến cột (n1-n2), n- từ cột n đến hết.
"DATEFMT=date_format;" chỉ định định dạng thời gian mà dữ liệu gốc đang hiển thị.
Ví dụ: "HR=YES;NUMCOLS=9-12; DATECOLS=6,8; DATEFMT=MM/DD/YYYY".
"FULLNAME=YES;" - Để thêm cột tên tập tin.
"SEP=n;" - Chỉ ra mã ký tự ngăn cách cột, ngầm định n là 44 (dấu phảy), nếu muốn dùng TAB thì thay n là 9.
"SEPNUM=c;" - Chỉ ra ký tự nhóm số, nếu không nhập A-Tools dùng ký tự định dạng của của hệ thống.

Than số Options dùng giống với hàm BS_DATA

Làm thế nào biết ID của TABLE trong URL ?

Trên trình duyệt Google Chrome, Microsoft Adge, nhấp chuột phải hiện menu, chọn "Inspect".
Đưa chuột vào khu vực bảng bên trình duyệt, nhìn sang cửa sổ bên phải bạn thấy cấu trúc HTML.

<TABLE id="data">
...
</TABLE>

Theo ví dụ trên thì "data" là ID của TABLE.

Ví dụ

Giả sử tại ô A1 bạn có URL chứa bảng tại đây

https://bluesofts.net/Kien-thuc-Add-in-A-Tools/Ham-mang/Huong-dan-ham-BS_WEBTABLE---Lay-bang-du-lieu-trong-website-URL

Trong URL trên có bảng dưới đây, với id="data"

Company Contact Country Sale Amount Date
Alfreds Futterkiste Maria Anders Germany         12,000,000 01/01/2000
Centro comercial Moctezuma Francisco Chang Mexico         20,000,000 01/05/2005
Ernst Handel Roland Mendel Austria         15,000,000 06/15/2010
Island Trading Helen Bennett UK         45,378,000 05/20/2012
Laughing Bacchus Winecellars Yoshi Tannamuri Canada           1,250,000 07/31/2015
Magazzini Alimentari Riuniti Giovanni Rovelli Italy           2,000,000 12/10/2024


Công thức lấy toàn bộ dữ liệu trong TABLE của URL trên là:

 =BS_WEBTABLE(A1,"data")

Nếu bạn không biết ID của TABLE thì chỉ định Index (thứ tự) của bảng.

 =BS_WEBTABLE(A1, 0)

Kết quả bạn nhận được một mảng dữ liệu là:

Company Contact Country Sale Amount Date
Alfreds Futterkiste Maria Anders Germany         12,000,000 01/01/2000
Centro comercial Moctezuma Francisco Chang Mexico         20,000,000 01/05/2005
Ernst Handel Roland Mendel Austria         15,000,000 06/15/2010
Island Trading Helen Bennett UK         45,378,000 05/20/2012
Laughing Bacchus Winecellars Yoshi Tannamuri Canada           1,250,000 07/31/2015
Magazzini Alimentari Riuniti Giovanni Rovelli Italy           2,000,000 12/10/2024


Điền cả mảng vào bảng tính nếu không có Excel 365

Với Excel 365 thì mảng tự điền ra bảng tính. Các phiên bản Excel thấp hơn không tự điền cả mảng. Bạn nên dùng hàm BS_FILLARRAY để điền mảng ra bảng tính. Hàm này cho phép co giãn dòng khi số phần tử mảng thay đổi.

Công thức phối hợp để diền mảng, chạy với mọi phiên bản Excel là:

 =BS_FILLARRAY( BS_WEBTABLE(A1,"data") )

Muốn lọc mảng bạn dùng hàm BS_VLOOKUP bao bên ngoài.

Chuyển đổi dữ liệu trong bảng

Nếu muốn hàm chuyển đổi cột 4 về dạng số, cột 5 về dạng ngày, cấu trúc ngày trong dữ liệu trên website đang ở dạng MM/dd/yy. Công thức là:

=BS_WEBTABLE(A1,"data",, "NUMCOLS=4; DATECOLS=5;DATEFMT=MM/dd/yyyy;")

Tải Add-in A-Tools