CÔNG TY CỔ PHẦN BLUESOFTS

Hàm BS_DATA lấy mảng dữ liệu từ JSON, CSV, TEXT


 Hàm BS_DATA  trong Add-in A-Tools cho phép người dùng lấy mảng giá mà nguồn đưa vào có thể là đường dẫn tập tin, URL, đoạn văn bản. Dữ liệu nguồn có cấu trúc định dạng là JSON, CSV hoặc TEXT. có cấu trúc như sau:



Hàm này chỉ chạy từ Add-in A-Tools v10.x

Cấu trúc

BS_DATA(source, [source_type], [path_name], [options])

Các tham số

Các tham số trong [ ] có thể bỏ qua.

+ source: Giá trị hoặc mảng các đường dẫn của dữ liệu nguồn. Nó có thể là đường dẫn tập tin, URL. Dữ liệu nguồn phải có cấu trúc dạng csv, txt, json.

+ source_type: Chỉ định kiểu dữ liệu trong Source. 0- Tự động nhận dạng (ngầm định); 1- Source là là JSON; 2- là CSV; 3- là Text(TXT).
 
+ path_name: Tham số này có thể bỏ qua. Nó là đường dẫn tới đối tượng JSON. Tham số này có thể là mảng đường dẫn.
 
+ options: Tham số này kiểu chuỗi, có thể bỏ qua. Các thuộc tính là:
"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.

Hàm BS_DATA lấy dữ liệu từ tập tin trên máy

Ví dụ có tập tin "C:\DATA\BigData\File 1.json" khai bóa đường dẫn ở ô A1. Tại A3 ta nhập công thức:

=BS_DATA(A1,1,,"DATECOLS=6,8;NUMCOLS=9-;")

Giải thích tham số:
+ A1 chứa đường dẫn tập tin JSON
+ Source_Type là 1 để báo cho hàm biết nguồn là cấu trúc JSON
+ Cột 6,8 là kiểu ngày
+ Từ cột 9 trở đi là kiểu số.

Kết quả ta được bảng như sau:


Hàm BS_DATA lấy dữ liệu từ URL

Có một URL tới file JSON dưới đây và đặt ở ô A1
https://drive.google.com/file/d/1DcMI4cjBDpSvmbq3mGhvEDGpt-p1Xa5H/view?usp=drive_link
Công thức bây giờ là:

=BS_DATA(A1, 1)

Nếu URL là chứa file CSV và đặt ở A1
https://drive.google.com/file/d/1EUSaGWcc3LtkwyQzkS_zqXBxuienChcz/view?usp=drive_link
Công thức bây giờ là:

=BS_DATA(A1, 2)

Nếu URL là chứa file TEXT và đặt ở A1
https://drive.google.com/file/d/1wmZNFYfdtuO6Sz3MMolrQGp9P6D54hP5/view?usp=drive_link
Công thức bây giờ là:

=BS_DATA(A1, 3)

Đ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_DATA(A1, 3) )

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

Để thực hành bạn hãy cài đặt Add-in A-Tools phiên bản tối thiểu 10.x

Tải Add-in A-Tools