Measure
Measure là một phép tính có tên, như tổng doanh thu hay giá trung bình. Measure được tính lại cho từng visual, từng cột biểu đồ và từng dòng, theo các bộ lọc đang áp dụng ở đó. Measure nằm trong data model, nên mọi report dùng data model đó đều dùng được.
Trước khi bắt đầu
Phần tiêu đề “Trước khi bắt đầu”- Bạn cần một data model có ít nhất một bảng. Xem Data model.
- Muốn tạo hoặc sửa measure, bạn cần quyền Build trên data model. Không có quyền này, bạn chỉ xem được.
Tạo measure
Phần tiêu đề “Tạo measure”- Mở data model.
- Bấm tab Measure.
- Bấm Measure mới.
- Nhập Tên (tối đa 128 ký tự).
- Chọn Bảng chứa. Trong report, measure nằm dưới bảng này.
- Gõ Biểu thức. Ví dụ:
SUM(Orders[Amount]). - Tùy chọn: điền Thư mục hiển thị, Định dạng số và Mô tả.
- Tùy chọn: tích Ẩn khỏi người xem báo cáo.
- Bấm Kiểm tra (hoặc nhấn Ctrl+Enter, hay Cmd+Enter trên Mac).
- Bấm Lưu.
Lưu bản nháp và xuất bản data model để report dùng measure mới. Xem Data model.
Kiểm tra khi gõ
Phần tiêu đề “Kiểm tra khi gõ”Fresco BI kiểm tra biểu thức ngay sau khi bạn ngừng gõ:
- Hợp lệ, kèm kiểu kết quả.
- Hoặc số lỗi, kèm dòng và cột của từng lỗi. Lỗi được gạch chân trong biểu thức.
Định dạng số
Phần tiêu đề “Định dạng số”Định dạng số quyết định cách hiển thị giá trị. Dùng:
0cho chữ số luôn hiện,#cho chữ số chỉ hiện khi cần,,cho dấu phân cách hàng nghìn,.cho phần thập phân,%để hiện tỉ lệ thành phần trăm (0.41 hiện thành 41%),- chữ bất kỳ đặt trước hoặc sau số, ví dụ ký hiệu tiền tệ.
| Định dạng | 1234.5 hiện thành |
|---|---|
#,##0 |
1.235 |
#,##0.00 |
1.234,50 |
#,##0 ₫ |
1.235 ₫ |
| Định dạng | 0.415 hiện thành |
|---|---|
0.0% |
41,5% |
Dấu phân cách hàng nghìn và thập phân theo ngôn ngữ hiển thị.
Tìm và sửa measure
Phần tiêu đề “Tìm và sửa measure”Tab Measure liệt kê mọi measure với Tên, Công thức, Thư mục hiển thị, Định dạng số và Bảng chứa.
- Gõ vào ô tìm kiếm để tìm measure.
- Dùng Thư mục hiển thị để lọc theo thư mục.
- Bấm Sửa để thay đổi measure, hoặc Xóa để xóa.
Các nhãn trong danh sách:
- Ẩn: measure bị ẩn khỏi người xem báo cáo.
- Cần viết lại: measure được chuyển từ công cụ BI khác nhưng chưa dịch được. Nó trả về trống. Biểu thức gốc nằm trong phần mô tả.
Viết biểu thức
Phần tiêu đề “Viết biểu thức”| Thành phần | Cách viết |
|---|---|
| Một cột | Orders[Amount] |
| Cột của bảng có dấu cách trong tên | 'Order lines'[Quantity] |
| Một measure khác | [Total sales] |
| Chuỗi | "North" |
| Số | 100, 0.5 |
Cột phải nằm trong một hàm gộp, ví dụ SUM(Orders[Amount]). Measure dùng được measure khác, nhưng các measure không được tham chiếu vòng tròn.
Toán tử
Phần tiêu đề “Toán tử”| Toán tử | Ý nghĩa |
|---|---|
+ - * / |
Cộng, trừ, nhân, chia |
= hoặc ==, <>, <, <=, >, >= |
So sánh |
IN { ... } |
Giá trị nằm trong danh sách, ví dụ Orders[Region] IN { "North", "South" }. Tối đa 1.000 giá trị. |
&& |
Và |
|| |
Hoặc |
Dùng VAR để đặt tên cho một phần biểu thức, rồi RETURN kết quả:
VAR Sales = SUM(Orders[Amount])VAR Cost = SUM(Orders[Cost])RETURN DIVIDE(Sales - Cost, Sales)Chú thích
Phần tiêu đề “Chú thích”Thêm chú thích bằng //, -- hoặc /* ... */.
Ví dụ
Phần tiêu đề “Ví dụ”SUM(Orders[Amount])COUNTROWS(Orders)DIVIDE([Total sales], SUM(Orders[Quantity]))CALCULATE([Total sales], Orders[Region] = "North")CALCULATE([Total sales], ALL(Customers))SUMX(Orders, Orders[Quantity] * RELATED(Products[Price]))Đây là toàn bộ các hàm bạn dùng được trong measure.
Hàm gộp
Phần tiêu đề “Hàm gộp”| Hàm | Công dụng |
|---|---|
SUM(column) |
Cộng các số. |
AVERAGE(column) |
Trung bình các số. |
MIN(column) |
Số hoặc ngày nhỏ nhất. |
MAX(column) |
Số hoặc ngày lớn nhất. |
COUNT(column) |
Số giá trị không trống. |
COUNTROWS(table) |
Số dòng. |
DISTINCTCOUNT(column) |
Số giá trị khác nhau, tính cả giá trị trống. |
DISTINCTCOUNTNOBLANK(column) |
Số giá trị khác nhau, không tính giá trị trống. |
Tính theo từng dòng
Phần tiêu đề “Tính theo từng dòng”Các hàm này duyệt một bảng theo từng dòng, tính biểu thức cho mỗi dòng, rồi gộp kết quả.
| Hàm | Công dụng |
|---|---|
SUMX(table, expression) |
Tổng của biểu thức trên các dòng. |
AVERAGEX(table, expression) |
Trung bình của biểu thức trên các dòng. |
MINX(table, expression) |
Kết quả nhỏ nhất. |
MAXX(table, expression) |
Kết quả lớn nhất. |
COUNTX(table, expression) |
Số dòng có kết quả không trống. |
RELATED(column) |
Giá trị từ bảng liên quan ở phía một. Dùng bên trong SUMX và các hàm X khác. |
Bộ lọc
Phần tiêu đề “Bộ lọc”| Hàm | Công dụng |
|---|---|
CALCULATE(expression, filter, ...) |
Tính biểu thức với các bộ lọc đã cho. Bộ lọc trên một cột thay bộ lọc đang có trên cột đó. Cần ít nhất một bộ lọc. |
FILTER(table, condition) |
Các dòng thỏa một điều kiện trên một cột của bảng. Dùng bên trong CALCULATE. |
ALL(table or column, ...) |
Bỏ các bộ lọc trên bảng hoặc trên các cột. Dùng bên trong CALCULATE. |
REMOVEFILTERS(table or column, ...) |
Giống ALL. Dùng bên trong CALCULATE. |
ALLEXCEPT(table, column, ...) |
Bỏ các bộ lọc trên bảng, trừ các cột được liệt kê. Dùng bên trong CALCULATE. |
KEEPFILTERS(filter) |
Giữ bộ lọc đang có trên cột thay vì thay thế nó. Dùng bên trong CALCULATE. |
VALUES(column) |
Các giá trị của cột. Dùng bên trong FILTER. |
DISTINCT(column) |
Các giá trị khác nhau của cột. Dùng bên trong FILTER. |
HASONEVALUE(column) |
Đúng khi cột còn đúng một giá trị theo các bộ lọc hiện tại. |
SELECTEDVALUE(column[, alternate]) |
Giá trị khi chỉ còn đúng một giá trị, nếu không thì trống hoặc giá trị thay thế. |
Logic
Phần tiêu đề “Logic”| Hàm | Công dụng |
|---|---|
IF(condition, then[, else]) |
Trả về giá trị này hoặc giá trị kia theo điều kiện. |
SWITCH(expression, value, result, ...[, else]) |
Kết quả của giá trị khớp đầu tiên. |
AND(logical1, logical2) |
Đúng khi cả hai đều đúng. Nhận đúng hai giá trị; dùng && khi cần nhiều hơn. |
OR(logical1, logical2) |
Đúng khi một trong hai đúng. Nhận đúng hai giá trị; dùng || khi cần nhiều hơn. |
NOT(logical) |
Đổi đúng thành sai và sai thành đúng. |
ISBLANK(value) |
Đúng khi giá trị trống. |
COALESCE(value, value, ...) |
Giá trị đầu tiên không trống. Nhận hai giá trị trở lên. |
BLANK() |
Giá trị trống. |
TRUE() |
Đúng. |
FALSE() |
Sai. |
Toán và ngày
Phần tiêu đề “Toán và ngày”| Hàm | Công dụng |
|---|---|
DIVIDE(numerator, denominator) |
Phép chia. Trả về trống khi mẫu số bằng 0 hoặc trống. |
ABS(number) |
Giá trị tuyệt đối. |
ROUND(number, digits) |
Làm tròn tới số chữ số đã cho (số nguyên từ -18 đến 18). Số ở giữa được làm tròn ra xa số 0. |
DATE(year, month, day) |
Một ngày. Năm, tháng, ngày phải là số nguyên viết thẳng trong biểu thức, ví dụ DATE(2026, 1, 31). |
Chưa hỗ trợ
Phần tiêu đề “Chưa hỗ trợ”Các hàm sau chưa được hỗ trợ. Nếu bạn dùng, bước kiểm tra sẽ báo lỗi.
RANKX, ALLSELECTED, USERELATIONSHIP, CROSSFILTER, RELATEDTABLE, ISFILTERED, TOTALYTD, TOTALQTD, TOTALMTD, DATESYTD, DATESQTD, DATESMTD, SAMEPERIODLASTYEAR, DATEADD, DATESINPERIOD, PREVIOUSMONTH, PREVIOUSQUARTER, PREVIOUSYEAR, FORMAT, CONCATENATE, COUNTA, COUNTBLANK, IFERROR, MEDIAN, TODAY, NOW, YEAR, MONTH, DAY.
Giới hạn
Phần tiêu đề “Giới hạn”| Mục | Giới hạn |
|---|---|
| Measure trong một data model | 2.000 |
| Độ dài biểu thức | 8.000 ký tự |
| Tên | 128 ký tự |
| Thư mục hiển thị và định dạng số | Mỗi mục 256 ký tự |
| Mô tả | 2.000 ký tự |
Giá trị trong danh sách IN { ... } |
1.000 |
| Độ lồng nhau | 64 cấp |
Lỗi thường gặp
Phần tiêu đề “Lỗi thường gặp”| Thông báo | Cách xử lý |
|---|---|
| Cột phải nằm trong một hàm gộp | Bọc cột trong hàm gộp, ví dụ SUM(Orders[Amount]). |
| Hàm này chỉ dùng được bên trong CALCULATE | Đưa hàm vào trong CALCULATE. |
| Các measure tham chiếu vòng tròn | Bỏ vòng lặp giữa các measure. |
| Không tìm thấy cột | Kiểm tra tên bảng và tên cột. |
| Không tìm thấy hàm | Kiểm tra chính tả, hoặc xem Chưa hỗ trợ. |
| Biểu thức lồng quá sâu | Tách biểu thức thành nhiều measure. |
Câu hỏi thường gặp
Phần tiêu đề “Câu hỏi thường gặp”Measure dùng được measure khác không?
Được. Viết tên measure kia trong ngoặc vuông, ví dụ [Total sales]. Các measure không được tham chiếu vòng tròn.
Sao measure của tôi hiện trống? Kiểm tra data model đã xuất bản và các Data Table đã được làm mới. Measure có nhãn Cần viết lại luôn trả về trống cho tới khi bạn viết lại.

