Set Analysis trong Qlik (P3)

Phần tiếp theo trong loạt bài viết về Set Analysis sẽ trình bày cách xây dựng Set identifier thứ 3 bằng các hàm Element set P( ) và E( ). Bài viết cũng sẽ tìm hiểu cách thức sử dụng Set operators trong Set modifier.

Set modifiers với Element set functions

Trong bài viết trước, chúng ta đã khảo sát cách định nghĩa Set modifiervới giá trị cố định (literal match) và chuỗi tìm kiếm (search string). 2 loại
Set modifier này cho phép thay đổi selection state bằng cách định nghĩa điều kiện lựa chọn (filter) trên một field cụ thể.

Khi thiết kế dashboard, cũng có trường hợp bạn cần định nghĩa điều kiện lựa chọn trên một field, nhưng lại thay đổi selection state trên một field khác. Ví dụ, xét yêu cầu sau: “tính tổng doanh thu của các khách hàng đã mua ít nhất một sản phẩm mũ lưỡi trai“. Trong trường hợp này, bạn cần thay đổi selection state trên field Customer (khách hàng) nhưng điều kiện lựa chọn lại được thực hiện trên filed Product (sản phẩm).

Set modifier loại này có thể được định nghĩa bằng cách sử dụng các hàm Element set . Qlik cung cấp 2 hàm sau:

  • P (possible) : Các giá trị thỏa điều kiện lựa chọn
  • E (excluded): Các giá trị không thỏa điều kiện lựa chọn

Điều kiện lựa chọn thường được mô tả bởi một biểu thức Set Analysis riêng trong hàm P và E, độc lập với biểu thức Set Analysis bên ngoài. Ví dụ:

  • Sum({$<Customer = P({1<Product={‘Cap’}>} Customer)>}Sales): Tổng doanh thu của các khách hàng đã mua ít nhất một sản phẩm Cap
  • Sum({$<Customer = E({1<Product={‘Cap’}>} Customer)>}Sales): Tổng doanh thu của các khách hàng chưa từng mua sản phẩm Cap

Natural set

Natural set là một tập hợp các record có thể được tạo ra khi người sử dụng thao tác trực quan trên các filter pane. Không phải set nào cũng là natural, ví dụ như {1-$} – bạn không thể tạo ra set này bằng cách click chọn trên app. Nói chung 2 set identifier (như 1 và $) được liên kết với nhau bởi một set operator (+ – * /) thì không phải là Natural set.

Khái niệm Natural set có ý nghĩa trong Qlik vì các lý do sau:

  • Chỉ natural set mới có thể được lưu trong bookmark
  • Chỉ natural set mới có thể áp dụng set modifier. Ví dụ, { (BM01 * BM02) <Year={2015}> } là một set không có ý nghĩa, vì set modifier
    <Year={2015}> được áp dụng trên set
    (BM01 * BM02) vốn không phải là natural set.
  • Chỉ natural set mới dùng được trong hàm P( ) và E( )

Sử dụng Set operator trong Set modifier

Ta có thể dùng set operator để kết hợp nhiều element set thuộc cùng một filed. Sử dụng set operator trên element set hoàn toàn tương tự với trên set identifier (xem lại bài viết đầu tiên, phần Set operator). Ví dụ:

  • {$<Country ={“D*”}-{‘Denmark’}>} Các nước bắt đầu bằng chữ D, trừ “Denmark”
  • {$<Year ={“>2008”}-{2011,2012}+{1999}>} Năm 1999 và các năm sau 2008, trừ 2011 và 2012.

Implicit Set operators

Xét biểu thức Set Analysis cơ bản sau: {$<Year={2014}>}. Biểu thức này tương đương với 2 bước:

  1. Xóa tất cả lựa chọn hiện tại trên field Year
  2. Thực hiện một selection mới: Year = 2014

Như vậy, phạm vi của Set Analysis là rất rõ ràng: bất kể selection hiện tại trên field Year là gì, selection này đều được thay thế bởi Year = 2015 khi Set Analysis được áp dụng.

Tuy nhiên, không phải lúc nào bạn cũng có thể định nghĩa phạm vi của Set Analysis một cách tường minh như vậy. Tùy theo yêu cầu nghiệp vụ, đôi lúc bạn cần định nghĩa Set Analysis dựa trên selection có sẵn. Ví dụ, 2014 là một năm cột mốc quan trọng với công ty, vì vậy bạn muốn 2014 luôn luôn được lựa chọn bất kể selection hiện tại là gì. Điều này có thể được thực hiện với Implicit Set Operators:

  • {$<Year +={2014}>} Thêm 2014 vào selection hiện tại
  • {$<Year -={2014}>} Loại bỏ 2014 khỏi selection hiện tại
  • {$<Year *={“>2014“}>} Giới hạn selection hiện tại >2014 (nếu user chọn {2013, 2014, 2016, 2017}, Set Analysis chỉ lấy 2016, 2017)
  • {$<Year /={2014}>} ??? – Hợp lệ về mặt phép toán tập hợp, nhưng không có ý nghĩa thực tế