Measures
Measures are DAX calculations evaluated when a visual is queried. Their results respond to filter context, including slicers and rows in a visual. For example, Total Sales = SUM(Sales[Amount]) adds the amounts visible in the current context.
Calculated Columns
A calculated column produces a value for each row and is stored in the model. Use it when you need a row-level category or relationship key. Prefer a measure for totals that must change with a report selection.
CALCULATE
CALCULATE evaluates an expression in a modified filter context. For example, CALCULATE([Total Sales], Product[Category] = "Bikes") evaluates sales with a Bikes filter. Existing filters can be replaced or preserved depending on the filter arguments used.
FILTER
FILTER returns a table containing rows that satisfy a condition. It is useful for conditions that need row-by-row evaluation. For a simple column condition in CALCULATE, a direct Boolean filter is often clearer and more efficient.
SUMX
SUMX iterates over a table, evaluates an expression for each row and adds the results. For example, SUMX(Sales, Sales[Quantity] * Sales[UnitPrice]) calculates a total from quantity and price when a stored amount column is not available.
Time Intelligence
Time-intelligence functions compare values across periods, such as year to date or the same period last year. A reliable date table and correct relationships are essential. SAMEPERIODLASTYEAR can shift a date selection back one year inside CALCULATE.
Variables
Use VAR to name intermediate calculations, then RETURN the final result. Variables make complex expressions easier to read and debug. A variable is evaluated in the context where it is defined; changing context later does not automatically recalculate that stored value.