PBI-Series DAX – Nhóm hàm DAX tính toán (Math & Stats Funtions)

Hàm Dax tính toán cơ bản cũng như tính toán trên vòng lòng lập sử dụng ngữ cảnh là hàng. Một số DAX thường sử dụng ở trong nhóm này như:

  • SUM
  • AVERAGE
  • MAX/MIN
  • SUMX
  • AVERAGEX
  • MAXX/MINX
  • DIVIDE
  • RANKX
  • COUNTX
  • COUNT/COUNTA
  • COUNTROWS
  • DISTINCOUNT

Trong bài viết này, mình sẽ tổng hợp cách sử dụng nhóm DAX tính toán trong Power BI.

1. DAX sử dụng khi tính tổng:

1.1. SUM

Miêu tả

Hàm SUM trả về giá trị tổng các số trong 1 cột.

Cách dùng / cấu trúc

SUM( <cột tính tổng> )

Tham số

<cột tính tổng> : cột dùng để tính tổng (cột chứa các số cần tính tổng)

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Tất cả các dữ liệu trong cột phải là dạng số (Number) thì mới tính ra kết quả đúng.

Nếu bất kỳ dòng nào là giá trị không phải dạng số thì hàm trả về kết quả là (blanks)

1.2. SUMX:

Miêu tả

Hàm SUMX trả về giá trị tổng các số trong 1 biểu thức tính

Cách dùng / cấu trúc

SUMX( <bảng>, <biểu thức tính> )

Tham số

<bảng> : là 1 bảng đã có hoặc 1 biểu thức tạo ra bảng, trong đó chứa các cột dùng cho biểu thức tính.

<biểu thức tính> : cột dùng để tính tổng hoặc 1 biểu thức tính mà tạo ra các kết quả trên 1 cột

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Chỉ tính cho dữ liệu ở dạng số (number).

Các giá trị dạng Logic, Text hoặc ô trống sẽ bỏ qua, không tính.

Hàm SUMX thường dùng để tính tổng theo 1 số điều kiện trong cột (không phải tính tổng toàn bộ cột)

2. DAX sử dụng khi tìm giá trị trung bình

2.1. AVERAGE:

Miêu tả

Hàm AVERAGE trong POWER BI DAX trả về giá trị trung bình của các số trong 1 cột

Cấu trúc / Cách sử dụng AVERAGE (<cột>)

Tham số

<cột>: Cột bạn muốn tính trung bình

Dữ liệu trả về

Kiểu số, là giá trị trung bình của những giá trị số trong cột cần tính trung bình

Lưu ý

  1. Nếu trong cột đang tính giá trị trung bình có giá trị kiểu Đúng / Sai hoặc ô trống, những giá trị này sẽ không được tính vào giá trị trung bình
  2. Ô với giá trị là 0 vẫn được tính vào giá trị trung bình
  3. Trong trường hợp không có dòng nào để tính trung bình, hàm AVERAGE sẽ trả về kết quả blank. Tuy nhiên, trong trường hợp có dòng để tính trung bình, nhưng không dòng nào thoả mãn điều kiện để tính được giá trị trung bình, thì hàm AVERAGE trong DAX sẽ trả về giá trị là 0

2.2. AVERAGEA

Miêu tả

Hàm AVERAGEA trong ngôn ngữ DAX của Power BI tính toán giá trị trung bình trong 1 cột. Hàm AVERAGEA xử lý cả cột có dữ liệu text hoặc dữ liệu không phải là số (non-numeric values)

Cấu trúc hàm / Cách sử dụng

AVERAGEA (<cột cần tính giá trị trung bình>)

Tham số

<cột cần tính giá trị trung bình>: cột cần tính giá trị trung bình

Giá trị trả về

Kiểu số (Decimal Number)

Các lưu ý

Hàm AVERAGEA tính giá trị trung bình trong 1 cột, các giá trị không phải là số được hiểu theo quy luật sau đây

  1. Những giá trị tương đương với TRUE sẽ được hiểu có giá trị là 1
  2. Những giá trị tương đương với FALSE sẽ được hiểu có giá trị là 0 (Số 0, không phải chữ o)
  3. Những giá trị không phải là số (non-numeric) được hiểu có giá trị là 0 (Số 0)
  4. Những giá trị rỗng (“”) được hiểu có giá trị là 0 (Số 0)

2.3. AVERAGEX:

Miêu tả

Tính trung bình dựa trên 1 biểu thức trong 1 bảng

Cấu trúc và cách dùng hàm AVERAGEX

AVERAGEX (<bảng>, <biểu thức toán>)

Tham số

<bảng>: bảng muốn tính giá trị trung bình

<biểu thức toán>: biểu thức toán áp dụng cho từng dòng trong bảng để tính giá trị trung bình

Giá trị trả về

Giá trị trả về kiểu số (Decimal number)

Chú ý

Quy luật tính toán đối với giá trị không phải là số của hàm AVERAGEX cũng tương tự như của hàm AVERAGE (DAX) trong Power BI.

3. DAX sử dụng khi tìm giá trị lớn nhất, nhỏ nhất

3.1. MIN:

Miêu tả

Trả về giá trị số nhỏ nhất trong một cột

Cách dùng / cấu trúc

MIN (<cột>)

Tham số

<cột> : cột cần tìm giá trị nhỏ nhất

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Chỉ xét giá trị nhỏ nhất với loại dữ liệu là Số hoặc Ngày tháng.

Các giá trị dạng Text, Logic hoặc ô trống sẽ bị bỏ qua, không tính.

3.2. MINA:

Miêu tả

Hàm MINA trả về giá trị nhỏ nhất của 1 cột, trong đó bao gồm cả các giá trị Logic và Số, Ngày tháng, Số được biểu thị dưới dạng văn bản.

Cách dùng / cấu trúc

MINA (<cột>)

Tham số

<cột> : cột muốn tìm giá trị nhỏ nhất

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Khác với hàm MIN, hàm MINA xét cả 4 loại dữ liệu

  • Loại Số (Numbers)
  • Loại ngày tháng (Dates)
  • Loại Logic (các giá trị TRUE, FALSE). TRUE tương ứng với giá trị số 1, FALSE tương ứng với giá trị số 0.
  • Các giá trị văn bản (Text) mà có thể chuyển đổi về giá trị số.

Hàm bỏ qua các giá trị ô trống.

Nếu cột không có giá trị nào thuộc 1 trong 4 loại trên, hàm trả về kết quả là số 0.

3.3. MINX:

Miêu tả

Trả về giá trị nhỏ nhất trong số các kết quả thu được từ 1 biểu thức tính.

Cách dùng / cấu trúc

MINX (<bảng>, <biểu thức tính>)

Tham số

<bảng> : Bảng chứa các hàng mà biểu thức sẽ sử dụng để tính

<biểu thức tính> : Có thể là tên cột trong bảng hoặc là biểu thức tính trả về các kết quả để tìm giá trị nhỏ nhất trong biểu thức đó

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Hàm MINX chỉ xét trên các kết quả là giá trị dạng Số hoặc ngày tháng. Nếu biểu thức trả về các kết quả không phải dạng Số, hàm sẽ ra kết quả là số 0.

Các giá trị dạng Text, Logic hoặc ô trống sẽ bị bỏ qua, không tính (các số mà biểu thị dưới dạng văn bản được coi là văn bản, không được tính).

3.4. MAX:

Miêu tả

Hàm MAX trả về giá trị lớn nhất của 1 cột.

Cách dùng / cấu trúc

MAX (<cột>)

Tham số

<cột> : cột muốn tìm giá trị lớn nhất

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Chỉ xét giá trị lớn nhất với loại dữ liệu là Số hoặc Ngày tháng.

Các giá trị dạng Text, Logic hoặc ô trống sẽ bị bỏ qua, không tính.

Nếu trong cột chỉ có ô trống, hàm MAX trả về giá trị (Blank)

3.5. MAXA:

Miêu tả

Hàm MAXA trả về giá trị lớn nhất của 1 cột.

Cách dùng / cấu trúc

MAXA (<cột>)

Tham số

<cột> : cột muốn tìm giá trị lớn nhất

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Khác với hàm MAX, hàm MAXA xét cả 3 loại dữ liệu

  • Loại Số (number)
  • Loại ngày tháng (date)
  • Loại Logic (các giá trị TRUE, FALSE). TRUE tương ứng với giá trị số 1, FALSE tương ứng với giá trị số 0.

Các giá trị dạng Text sẽ bị bỏ qua, không tính.

Các ô trống sẽ tính bằng 0

3.6. MAXX

Miêu tả

Đánh giá kết quả tại mỗi hàng của 1 biểu thức và trả về giá trị lớn nhất

Cách dùng / cấu trúc

MAXX (<bảng>, <biểu thức tính>)

Tham số

<bảng> : Bảng chứa các hàng mà biểu thức sẽ sử dụng để tính

<biểu thức tính> : Có thể là tên cột trong bảng hoặc là biểu thức tính trả về các kết quả để tìm giá trị lớn nhất trong biểu thức đó

Giá trị trả về

Là số có phần thập phân.

Lưu ý

Chỉ xét giá trị lớn nhất với loại dữ liệu là Số hoặc Ngày tháng.

Các giá trị dạng Text, Logic hoặc ô trống sẽ bị bỏ qua, không tính.

4. DAX sử dụng khi để đếm:

4.1. COUNT:

Miêu tả

Hàm COUNT (DAX) trong Power BI đếm số ô trong cột không chứa giá trị rỗng

Cách dùng / cấu trúc

COUNT (<Cột cần đếm>)

Tham số

<cột cần đếm>: Tham chiếu tới cột cần đếm (Không phải tên cột trong dấu ngoặc kép!)

Giá trị trả về

Giá trị trả về của hàm COUNT là 1 số nguyên (Whole number)

 Lưu ý

Hàm COUNT sẽ đếm các ô trong 1 cột lưu các kiểu giá trị sau đây:

  1. Kiểu số (Numbers)
  2. Kiểu ngày tháng (Dates)
  3. Kiểu chữ, kí tự (Strings / text)

Khi hàm COUNT không tìm thấy giá trị để đếm, hàm sẽ trả về giá trị blank

Giá trị BLANK sẽ bị hàm COUNT bỏ qua. Hàm COUNT không hỗ trợ đếm giá trị TRUE/FALSE (Kiểu logic / Kiểu Boolean)

4.2. COUNTA:

Miêu tả

Hàm COUNTA đếm số ô chứa giá trị không rỗng trong 1 cột. Các giá trị không rỗng có thể thuộc kiểu:

  1. Kiểu số (Numbers)
  2. Kiểu ngày tháng (Dates)
  3. Kiểu chữ, kí tự (Strings / text)
  4. Kiểu Logic (Boolean)

Cách dùng / cấu trúc

COUNTA (<Cột cần đếm>)

Tham số

<cột cần đếm>: Tham chiếu tới cột cần đếm (Không phải tên cột trong dấu ngoặc kép!)

Giá trị trả về

Giá trị trả về của hàm COUNTA là 1 số nguyên (Whole number)

4.3. COUNTAX:

Miêu tả

Hàm COUNTAX dùng để đếm kết quả không phải là ô trống dựa trên 1 biểu thức trong 1 bảng.

Hoạt động giống hàm COUNTA, tuy nhiên nó được sử dụng để đếm các hàng không trống mà các hàng đó là kết quả tạo ra từ 1 biểu thức.

Cách dùng / cấu trúc

COUNTAX (<bảng>, <biểu thức toán>)

Tham số

<bảng> : Bảng muốn đếm số ô không trống

<biểu thức toán> : biểu thức tính cho mỗi hàng của bảng.

Giá trị trả về

Là số nguyên.

Lưu ý

Hàm COUNTAX đếm các ô chứa bất kỳ loại thông tin nào (giá trị số, ngày tháng, text, logic, biểu thức). Trong trường hợp ô có chứa biểu thức tính, nhưng kết quả của biểu thức là rỗng thì ô đó vẫn được tính là không phải ô trống (ô trống là ô không có giá trị gì).

Khi tìm trong biểu thức toán không có hàng nào để tổng hợp, hàm trả về kết quả là (Blank).

Khi biểu thức tính có hàng nhưng không có giá trị nào thỏa mãn, hàm trả về kết quả là số 0

4.4. COUNTBLANK:

Miêu tả

Hàm COUNTBLANK dùng để đếm số ô trống trong 1 cột.

Cách dùng / cấu trúc

COUNTBLANK (<cột>)

Tham số

<cột> : cột cần đếm ô trống

Giá trị trả về

Là số nguyên (nếu cột có ô trống).

Nếu cột không có ô trống, giá trị trả về là (Blank).

Nếu cột có ô chứa giá trị là số 0 thì không đếm những ô này, vì ô chứa số 0 vẫn tính là có giá trị, không phải ô trống.

4.5. COUNTROW:

Miêu tả

Hàm COUNTROWS dùng để đếm số dòng trong 1 bảng.

Bảng này có thể có sẵn hoặc được tạo ra từ 1 biểu thức.

Cách dùng / cấu trúc

COUNTROWS (<bảng>)

Tham số

<bảng> : tên của bảng cần đếm, hoặc biểu thức tạo ra bảng.

Giá trị trả về

Là số nguyên.

Lưu ý

Thường dùng hàm để đếm số dòng còn lại của bảng sau khi lọc bảng theo điều kiện nào đó.