Here are Top “This vs That” DAX Function Comparisons with explanation
| Topic | Function 1 | Function 2 | Key Difference |
|---|---|---|---|
| 1. Standard Deviation | STDEV.S | STDEV.P | Sample vs Population (n-1 vs n) |
| 2. SUM vs SUMX | SUM() | SUMX() | Simple aggregation vs row-by-row evaluation |
| 3. AVERAGE vs AVERAGEX | AVERAGE() | AVERAGEX() | Aggregation vs iteration over rows |
| 4. CALCULATE vs CALCULATETABLE | CALCULATE() | CALCULATETABLE() | Returns scalar vs table |
| 5. FILTER vs ALL vs REMOVEFILTERS | FILTER() | ALL() | Filtering in vs removing filters |
| 6. EARLIER vs SELECTEDVALUE | EARLIER() | SELECTEDVALUE() | Row context vs filter context |
| 7. VALUES vs DISTINCT | VALUES() | DISTINCT() | VALUES returns blank if no value; DISTINCT never returns blank |
| 8. ALL vs ALLEXCEPT vs ALLSELECTED | ALL() | ALLEXCEPT() | Clear all filters vs keep selected filters |
| 9. RELATED vs RELATEDTABLE | RELATED() | RELATEDTABLE() | Returns single value vs a table of related rows |
| 10. ISFILTERED vs HASONEVALUE | ISFILTERED() | HASONEVALUE() | Check if filtered vs check for exactly one value |
| 11. CONTAINS vs LOOKUPVALUE | CONTAINS() | LOOKUPVALUE() | Boolean check vs value retrieval |
12. DIVIDE vs / Operator | DIVIDE() | / | Handles divide-by-zero errors |
| 13. NOW vs TODAY | NOW() | TODAY() | DateTime vs only Date |
| 14. RANKX vs TOPN | RANKX() | TOPN() | Ranking vs filtering top N rows |
| 15. MAX vs MAXX | MAX() | MAXX() | Aggregation vs iteration |
| 16. IF vs SWITCH | IF() | SWITCH() | Simple condition vs multiple logical branches |
| 17. GENERATE vs CROSSJOIN | GENERATE() | CROSSJOIN() | GENERATE can flatten results |
✅ Example Use Case
Topic: SUM vs SUMX
| Function | Example |
|---|---|
SUM(Sales[Revenue]) | Just adds values from the column |
SUMX(Sales, Sales[Quantity] * Sales[UnitPrice]) | Calculates line total per row, then sums Read Full Article SUM vs SUMX in DAX |
Useful when you need row-wise logic before summing.