Calculated column vs Measure
DAX tạo hai loại tính toán: calculated column và measure. Chọn nhầm là lỗi phổ biến nhất của người mới — hiểu khác biệt là chìa khóa.
Calculated column (cột tính toán)
Phần tiêu đề “Calculated column (cột tính toán)”- Tính một lần khi refresh, lưu giá trị vào từng hàng của bảng.
- Hoạt động trong row context — biết “hàng hiện tại”.
- Tốn dung lượng (lưu cho mọi hàng).
-- Calculated column trên bảng SalesLine Total = Sales[Quantity] * Sales[Unit Price]Measure (đại lượng)
Phần tiêu đề “Measure (đại lượng)”- Tính lúc truy vấn, theo ngữ cảnh báo cáo (bộ lọc, hàng/cột visual).
- Không lưu giá trị; không tốn dung lượng đáng kể.
- Hoạt động trong filter context.
-- MeasureTotal Sales = SUMX(Sales, Sales[Quantity] * Sales[Unit Price])-- hoặc nếu đã có cột Line Total:Total Sales = SUM(Sales[Line Total])So sánh
Phần tiêu đề “So sánh”| Calculated column | Measure | |
|---|---|---|
| Khi tính | Lúc refresh | Lúc truy vấn |
| Lưu trữ | Có (mỗi hàng) | Không |
| Ngữ cảnh | Row context | Filter context |
| Dùng cho | Thuộc tính/phân loại theo hàng | Tổng hợp, KPI, % |
| Hiệu năng | Tốn dung lượng | Nhẹ, linh hoạt |
Quy tắc chọn
Phần tiêu đề “Quy tắc chọn”- Cần giá trị cho từng hàng để lọc/nhóm/làm trục (vd phân loại “Cao/Thấp”) → calculated column.
- Cần con số tổng hợp thay đổi theo bộ lọc (doanh thu, %, trung bình) → measure.