Nhóm hàm DAX Information Functions trong Power BI

Tìm hiểu nhóm hàm DAX Information Functions trong Power BI

Ngày đăng: 03/07/2023

Như chúng ta đã biết, các nhóm hàm DAX rất đa dạng, từ những hàm tính toán cơ bản đến những hàm phân tích giá trị theo thời gian. Hôm nay, chúng ta sẽ cùng tìm hiểu một nhóm hàm được sử dụng khá phổ biến là nhóm hàm Information.

Tổng quan Information Functions

Về cách hoạt động của nhóm hàm này, khi được cung cấp một ô hoặc một dòng làm đối số, nhóm hàm Information sẽ kiểm tra ô hoặc dòng đó và thông báo cho chúng ta về tính tương thích của giá trị.

Ví dụ: hàm ISBLANK trả về TRUE nếu giá trị/cột mà bạn tham chiếu chứa dữ liệu trống. 

Danh sách các hàm Information bao gồm: 

Tên hàm Mô tả 
CONTAINS Trả về TRUE nếu các giá trị trong cột là đối số tồn tại hoặc được chứa trong các cột đó; nếu không thì trả về FALSE. 
CONTAINSROW Trả về TRUE nếu một hàng giá trị tồn tại hoặc có trong bảng, nếu không thì trả về FALSE. 
CONTAINSSTRING Trả về TRUE hoặc FALSE cho biết liệu một chuỗi có chứa chuỗi khác hay không. 
CONTAINSSTRINGEXACT Trả về TRUE hoặc FALSE cho biết liệu một chuỗi có khớp chính xác với chuỗi khác hay không. 
CUSTOMDATA Trả về nội dung của thuộc tính CustomData trong chuỗi kết nối. 
HASONEFILTER Trả về TRUE khi số lượng giá trị được lọc trực tiếp trên tên cột là một; mặt khác trả về FALSE. 
HASONEVALUE Trả về TRUE khi ngữ cảnh cho tên cột đã được lọc xuống chỉ một giá trị riêng biệt, ngược lại là FALSE. 
ISBLANK Kiểm tra xem một giá trị có trống không và trả về TRUE hoặc FALSE. 
ISCROSSFILTERED Trả về TRUE khi tên cột hoặc cột khác trong cùng một bảng hoặc bảng có liên quan đang được lọc. 
ISEMPTY Kiểm tra xem một bảng có trống không. 
ISERROR Kiểm tra xem một giá trị có phải là lỗi hay không và trả về TRUE hoặc FALSE.. 
ISEVEN Trả về TRUE nếu số chẵn, hoặc FALSE nếu số lẻ. 
ISFILTERED Trả về TRUE khi tên cột đang được lọc trực tiếp. 
ISINSCOPE Trả về giá trị TRUE nếu cột được chỉ định làm đối số là cấp độ đang được xem xét trong hệ thống phân cấp. 
ISLOGICAL Kiểm tra xem một giá trị có phải là giá trị logic (TRUE hoặc FALSE) và trả về TRUE hoặc FALSE. 
ISNONTEXT Kiểm tra xem một giá trị có phải là văn bản không (các ô trống không phải là văn bản) và trả về TRUE hoặc FALSE. 
ISNUMBER Kiểm tra xem một giá trị có phải là số hay không và trả về TRUE hoặc FALSE. 
ISODD Trả về TRUE nếu số lẻ, hoặc FALSE nếu số chẵn. 
ISONORAFTER Là một hàm Boolean Context, mô phỏng hành vi của mệnh đề Start At và trả về TRUE cho một hàng đáp ứng tất cả các tham số điều kiện. 
ISSELECTEDMEASURE Xác định số đo trong ngữ cảnh là một trong những số đo được chỉ định trong danh sách đó. 
ISTEXT Kiểm tra xem một giá trị có phải là văn bản hay không và trả về TRUE hoặc FALSE.. 
SELECTEDMEASURE Được sử dụng bởi các biểu thức cho các mục tính toán để tham chiếu thước đo trong ngữ cảnh. 
SELECTEDMEASUREFORMATSTRING Được sử dụng bởi các biểu thức cho các mục tính toán để truy xuất chuỗi định dạng của thước đo trong ngữ cảnh. 
SELECTEDMEASURENAME Được sử dụng bởi các biểu thức cho các mục tính toán để xác định số đo trong ngữ cảnh theo tên. 
USERNAME Trả về tên miền và tên người dùng từ thông tin đăng nhập được cung cấp cho hệ thống tại thời điểm kết nối. 
USEROBJECTID Trả về ID đối tượng hoặc SID của người dùng hiện tại. 
USERPRINCIPALNAME Trả về tên chính của người dùng. 
Tham khảo thêm tại: https://dax.guide/functions/information/

Một số hàm phổ biến trong Information Functions

1. ISFILTERED 

Hàm ISFILTERED trả về giá trị TRUE khi tên cột đang được lọc trực tiếp. Nếu không có bộ lọc nào trên cột hoặc nếu quá trình lọc xảy ra ở một cột khác trong cùng một bảng hoặc trong một bảng có liên quan đang được lọc thì hàm sẽ trả về FALSE.  

Syntax:

ISFILTERED(<columnName>) 

Ví dụ:

Đề bài: Tạo tiêu đề động có thể thay đổi khi áp dụng bộ lọc theo tên theo khu vực.

Kết quả:

– Khi chưa áp dụng bộ lọc, tiêu đề là: All Region 

– Sau khi áp dụng bộ lọc Region cho Australia, France, tiêu đề thay đổi thành Sales in France, Australia Region 

Ví dụ về Hàm ISFILTERED

Cách làm: 

– Bước 1: Tạo measure bằng hàm ISFILTERED để trả về dữ liệu khi bộ lọc được áp dụng trên trường Region. Nếu bạn muốn áp dụng nhiều bộ lọc vùng thì hãy sử dụng Concatenatex với chức năng giá trị như bên dưới.

– Bước 2: Sử dụng Measure vừa tạo và chọn loại visualize Card để tạo tiêu đề cho report. 

– Bước 3: Tạo table thể hiện Revenue theo từng Region theo hình và bộ lọc để chọn Region.

– Bước 4: Thao tác chọn 1 hay nhiều Region để thấy sự thay đổi của tiêu đề. 

2. HASONEVALUE 

Hàm HASONEVALUE trả về TRUE khi chỉ một giá trị duy nhất được lọc trong cột được chỉ định, ngược lại là FALSE. 

Syntax:

HASONEVALUE(<columnName>) 

Ví dụ:

Đề bài: Giả sử bạn có nhu cầu muốn xem Top 3, 5, 10 sản phẩm có doanh số cao nhất và bạn muốn tạo ra một slicer có thể linh hoạt các tùy chọn này. Ví dụ, bạn chọn Top 3 thì dữ liệu sẽ xuất hiện 3 sản phẩm có doanh thu cao nhất, chọn Top 5 thì sẽ thay đổi thành 5 sản phẩm có doanh thu cao nhất…

Cách làm: 

– Bước 1: Tạo 1 bảng dữ liệu, đặt tên là Rank Table 

Vào Home \ Enter Data, gõ các giá trị 3,5,10 như bảng bên dưới 

– Bước 2: Tạo measure dựa trên cột Rank đã tạo ở bảng trên 

Ý nghĩa của measure này là khi chỉ có một giá trị Rank được chọn, sẽ trả về  giá duy nhất tương ứng, còn lại nếu không chọn thì sẽ có 15 sản phẩm được thể hiện. 

– Bước 3: Tạo measure trả về một bảng có danh sách sản phẩm được chỉ định dựa trên thứ tự giản dần của doanh số 

– Bước 4: Tạo slicer thể hiện Top Ranking (lấy từ cột Rank trong bảng Rank Table) và tạo bảng Product by Sales như yêu cầu. Lúc này, bạn có thể tùy chỉnh slicer theo tùy chọn Top 3, 5, 10.

3. ISINSCOPE 

Hàm ISINSCOPE trả về giá trị TRUE nếu cột được chỉ định làm đối số là cấp độ đang được xem xét trong hệ thống phân cấp. 

Syntax:

ISINSCOPE(<columnName>) 

Ví dụ:

Tính phần trăm doanh số theo từng category và sub-category (đặt tên là PCT over parent) như bảng bên dưới.


Cách làm: 

– Bước 1: Tính tổng doanh số trên toàn bộ Sub-category (đặt tên là All_Revenue) 

– Bước 2: Tính doanh số trên toàn bộ Category (đặt tên là Category_Revenue) 

– Bước 3: Tính Pct over parent: 

  • Nếu đối số đang xét là Sub-category: Pct over parent=Revenue/Category_Revenue 
  • Nếu đối số đang xét là Category: Pct over parent=Revenue/All_Revenue 

Ta có thể viết gộp các bước trên thành 1 công thức như sau: 

KẾT LUẬN  

Information Functions là một trong những nhóm hàm DAX thường được sử dụng nhất trong Power BI. Trên đây Datapot đã giới thiệu với các bạn một số hàm thông dụng nhất trong nhóm hàm này cùng với một số ví dụ minh họa. Hy vọng sẽ giúp ích cho các bạn trong các ứng dụng thực tế.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *