Here are some DAX samples, searchable by keyword.
| Category | Sub-category | DAX Query Name | DAX Code | Comment on the Code | Description | Keywords |
|---|---|---|---|---|---|---|
| Aggregation | Basic | Total Sales | SUM(Sales[Amount]) | Simple sum aggregation | Calculates the total of all sales amounts | sum total aggregate basic |
| Aggregation | Basic | Average Payment | AVERAGE(Payments[Amount]) | Mean calculation | Computes the arithmetic mean of payment amounts | average mean aggregate |
| Aggregation | Basic | Count Customers | COUNT(Customers[CustomerID]) | Count non-blank values | Counts the number of non-blank customer IDs | count rows records |
| Aggregation | Basic | Count Distinct Products | DISTINCTCOUNT(Orders[ProductID]) | Count unique values | Counts unique product IDs in orders table | distinct unique count |
| Aggregation | Basic | Min Transaction | MIN(Transactions[Amount]) | Minimum value | Returns the smallest transaction amount | minimum min lowest |
| Aggregation | Basic | Max Transaction | MAX(Transactions[Amount]) | Maximum value | Returns the largest transaction amount | maximum max highest |
| Aggregation | Advanced | Sum Ignore Filters | SUMX(ALL(Sales), Sales[Amount]) | Sum with ALL function | Calculates sum ignoring current filter context | sumx all ignore filter context |
| Aggregation | Advanced | Weighted Average Price | SUMX(Sales, Sales[Quantity] * Sales[Price]) / SUM(Sales[Quantity]) | SUMX for weighted calculation | Computes weighted average using iterator | weighted average sumx iterator |
| Aggregation | Advanced | Count All Rows | COUNTROWS(Sales) | Count all rows including blanks | Counts total rows regardless of blank values | countrows all rows |
| Aggregation | Advanced | Count Rows with Filter | COUNTROWS(FILTER(Sales, Sales[Amount] > 100)) | Conditional row count | Counts rows meeting specific criteria | countrows filter conditional |
| Time Intelligence | Period Calculations | Year To Date Sales | TOTALYTD(SUM(Sales[Amount]), Calendar[Date]) | YTD aggregation | Calculates year-to-date total sales | ytd year to date time |
| Time Intelligence | Period Calculations | Quarter To Date Sales | TOTALQTD(SUM(Sales[Amount]), Calendar[Date]) | QTD aggregation | Calculates quarter-to-date total sales | qtd quarter to date |
| Time Intelligence | Period Calculations | Month To Date Sales | TOTALMTD(SUM(Sales[Amount]), Calendar[Date]) | MTD aggregation | Calculates month-to-date total sales | mtd month to date |
| Time Intelligence | Period Calculations | Same Period Last Year | CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date])) | Prior year comparison | Returns sales for same period in previous year | sameperiodlastyear prior year py |
| Time Intelligence | Comparison | Previous Month Sales | CALCULATE(SUM(Sales[Amount]), PREVIOUSMONTH(Calendar[Date])) | Prior month value | Returns sales for the previous month | previousmonth prior month pm |
| Time Intelligence | Comparison | Previous Year Sales | CALCULATE(SUM(Sales[Amount]), PREVIOUSYEAR(Calendar[Date])) | Prior year value | Returns sales for the previous year | previousyear prior year |
| Time Intelligence | Comparison | Year Over Year Growth | DIVIDE(SUM(Sales[Amount]) – CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date])), CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date]))) | YoY percentage change | Calculates year-over-year growth percentage | yoy growth variance comparison |
| Time Intelligence | Comparison | Rolling 12 Months | CALCULATE(SUM(Sales[Amount]), DATESINPERIOD(Calendar[Date], LASTDATE(Calendar[Date]), -12, MONTH)) | Trailing 12-month total | Sum of last 12 months from current date | rolling trailing 12 months ttm |
| Time Intelligence | Comparison | Last 30 Days | CALCULATE(SUM(Sales[Amount]), DATESINPERIOD(Calendar[Date], LASTDATE(Calendar[Date]), -30, DAY)) | Trailing 30-day total | Sum of last 30 days from current date | last 30 days trailing |
| Filter Context | CALCULATE | Sales This Year | CALCULATE(SUM(Sales[Amount]), Calendar[Year] = YEAR(TODAY())) | Filter by current year | Calculates sales for the current year only | calculate filter year current |
| Filter Context | CALCULATE | High Value Sales | CALCULATE(SUM(Sales[Amount]), Sales[Amount] > 1000) | Filter by threshold | Sums only sales exceeding 1000 | calculate filter threshold conditional |
| Filter Context | CALCULATE | Active Customer Sales | CALCULATE(SUM(Sales[Amount]), Customers[Status] = “Active”) | Filter by status | Calculates sales from active customers only | calculate filter status active |
| Filter Context | CALCULATE | Multiple Filter Sales | CALCULATE(SUM(Sales[Amount]), Products[Category] = “Electronics”, Calendar[Year] = 2024) | Multiple filter conditions | Applies multiple simultaneous filters | calculate multiple filters and |
| Filter Context | ALL Functions | Remove All Filters | CALCULATE(SUM(Sales[Amount]), ALL(Sales)) | Clear all filters on table | Calculates total ignoring all filters on Sales | all remove clear filters |
| Filter Context | ALL Functions | Remove Column Filter | CALCULATE(SUM(Sales[Amount]), ALL(Products[Category])) | Clear specific column filter | Ignores filter on Category column only | all column filter remove |
| Filter Context | ALL Functions | Keep Other Filters | CALCULATE(SUM(Sales[Amount]), ALLEXCEPT(Sales, Sales[Region])) | Clear all except specified | Removes all filters except Region filter | allexcept keep preserve |
| Filter Context | ALL Functions | All Selected | CALCULATE(SUM(Sales[Amount]), ALLSELECTED(Sales)) | Respect slicer selections | Removes filters but keeps slicer context | allselected slicer visual |
| Filter Context | FILTER Function | Filtered Sum | CALCULATE(SUM(Sales[Amount]), FILTER(Products, Products[Price] > 50)) | Dynamic filter table | Filters Products table then calculates | filter table dynamic |
| Filter Context | FILTER Function | Complex Filter Condition | CALCULATE(SUM(Sales[Amount]), FILTER(ALL(Customers), Customers[TotalPurchases] > 1000 && Customers[Region] = “West”)) | Multiple AND conditions | Applies complex multi-condition filter | filter complex and conditions |
| Filter Context | FILTER Function | Related Table Filter | CALCULATE(SUM(Sales[Amount]), FILTER(ALL(Calendar), Calendar[Year] = 2024)) | Filter related table | Filters through relationship | filter related relationship |
| Calculated Columns | Basic | Full Name | Customers[FirstName] & ” ” & Customers[LastName] | String concatenation | Combines first and last name with space | concatenate combine string text |
| Calculated Columns | Basic | Profit Margin | DIVIDE(Sales[Profit], Sales[Revenue]) | Division with error handling | Calculates profit margin, handles divide by zero | divide calculation margin percentage |
| Calculated Columns | Basic | Age Calculation | DATEDIFF(Customers[BirthDate], TODAY(), YEAR) | Date difference in years | Calculates customer age from birth date | datediff age date calculation |
| Calculated Columns | Basic | Extended Amount | Sales[Quantity] * Sales[UnitPrice] | Simple multiplication | Calculates line item total | multiply calculation product |
| Calculated Columns | Conditional | Customer Tier | IF(Customers[TotalSpend] > 10000, “Premium”, IF(Customers[TotalSpend] > 5000, “Standard”, “Basic”)) | Nested IF logic | Categorizes customers into tiers | if nested conditional category |
| Calculated Columns | Conditional | Sales Category | SWITCH(TRUE(), Sales[Amount] > 1000, “High”, Sales[Amount] > 500, “Medium”, “Low”) | SWITCH with conditions | Categorizes sales by amount ranges | switch case conditional category |
| Calculated Columns | Conditional | Is Premium | IF(Products[Price] > 100, TRUE(), FALSE()) | Boolean flag | Creates true/false flag for premium products | boolean flag if true false |
| Calculated Columns | Conditional | Discount Eligible | Products[Category] = “Electronics” && Products[Stock] > 100 | AND condition | Checks multiple conditions for eligibility | and condition boolean logic |
| Measures | Basic | Total Revenue Measure | SUM(Sales[Amount]) | Basic measure sum | Measure that sums revenue (not calculated column) | measure sum total |
| Measures | Basic | Transaction Count | COUNTROWS(Sales) | Count measure | Counts number of transactions | measure count countrows |
| Measures | Basic | Average Order Value | DIVIDE(SUM(Sales[Amount]), COUNTROWS(Sales)) | Calculated measure | Average revenue per transaction | measure average aov calculation |
| Measures | Basic | Distinct Customer Count | DISTINCTCOUNT(Sales[CustomerID]) | Unique count measure | Counts unique customers in current context | measure distinctcount unique |
| Measures | Advanced | Sales Rank | RANKX(ALL(Products[ProductName]), [Total Revenue Measure]) | Ranking measure | Ranks products by revenue | rankx rank measure |
| Measures | Advanced | Percent of Total | DIVIDE([Total Revenue Measure], CALCULATE([Total Revenue Measure], ALL(Products))) | Percentage of grand total | Calculates each item’s percentage of total | percent percentage total all |
| Measures | Advanced | Running Total | CALCULATE([Total Revenue Measure], FILTER(ALLSELECTED(Calendar), Calendar[Date] <= MAX(Calendar[Date]))) | Cumulative sum | Running total up to current date | running cumulative total |
| Measures | Advanced | Moving Average | AVERAGEX(DATESINPERIOD(Calendar[Date], LASTDATE(Calendar[Date]), -3, MONTH), [Total Revenue Measure]) | 3-month moving average | Average of last 3 months | moving average rolling averagex |
| Relationships | Navigation | Related Value | RELATED(Products[ProductName]) | Get value from one side | Retrieves value from related table (many to one) | related lookup relationship |
| Relationships | Navigation | Related Table Sum | SUMX(RELATEDTABLE(Sales), Sales[Amount]) | Aggregate from many side | Sums values from related child records | relatedtable sumx relationship |
| Relationships | Navigation | Related Count | COUNTROWS(RELATEDTABLE(Orders)) | Count related rows | Counts number of related orders | relatedtable countrows relationship |
| Relationships | Inactive | Use Inactive Relationship | CALCULATE(SUM(Sales[Amount]), USERELATIONSHIP(Calendar[Date], Sales[ShipDate])) | Activate inactive relationship | Uses ship date instead of order date relationship | userelationship inactive alternate |
| Table Functions | Manipulation | Return Filtered Table | FILTER(Customers, Customers[TotalSpend] > 1000) | Filter returns table | Returns table of high-spending customers | filter table return |
| Table Functions | Manipulation | Add Calculated Column | ADDCOLUMNS(Products, “PriceWithTax”, Products[Price] * 1.1) | Add column to table | Adds calculated column to table expression | addcolumns calculate extend |
| Table Functions | Manipulation | Select Specific Columns | SELECTCOLUMNS(Customers, “Name”, Customers[FullName], “Amount”, Customers[TotalSpend]) | Choose columns | Creates table with selected columns only | selectcolumns choose projection |
| Table Functions | Manipulation | Distinct Values | DISTINCT(Products[Category]) | Unique values table | Returns table of unique category values | distinct unique values |
| Table Functions | Manipulation | Get Top N | TOPN(10, Sales, Sales[Amount], DESC) | Top records | Returns top 10 sales by amount | topn top limit |
| Table Functions | Values | Values in Column | VALUES(Products[Category]) | Distinct with relationships | Returns distinct values respecting relationships | values distinct relationship |
| Table Functions | Values | All Values | ALL(Products[Category]) | All distinct values | Returns all distinct values ignoring filters | all values distinct |
| Statistical | Distribution | Median Sales | MEDIAN(Sales[Amount]) | Middle value | Returns median (50th percentile) of sales | median middle percentile |
| Statistical | Distribution | Percentile Value | PERCENTILE.INC(Sales[Amount], 0.90) | 90th percentile | Returns value at 90th percentile | percentile distribution |
| Statistical | Variance | Standard Deviation | STDEV.P(Sales[Amount]) | Population std deviation | Calculates standard deviation of sales | stdev standard deviation variance |
| Logical | Conditions | AND Condition | AND(Sales[Amount] > 100, Sales[Quantity] > 5) | Multiple conditions must be true | Returns true only if all conditions are true | and logic boolean all |
| Logical | Conditions | OR Condition | OR(Sales[Region] = “East”, Sales[Region] = “West”) | Any condition can be true | Returns true if any condition is true | or logic boolean any |
| Logical | Conditions | NOT Condition | NOT(Customers[Status] = “Inactive”) | Negation | Returns opposite boolean value | not logic negate opposite |
| Logical | Blank Handling | Is Blank Check | IF(ISBLANK(Sales[ShipDate]), “Not Shipped”, “Shipped”) | Check for blank values | Tests if value is blank/null | isblank null empty check |
| Logical | Blank Handling | Coalesce Blanks | COALESCE(Sales[Discount], 0) | Replace blanks | Returns first non-blank value or default | coalesce blank null default |
| Text | Manipulation | Uppercase Text | UPPER(Customers[Name]) | Convert to uppercase | Converts text to all uppercase | upper uppercase case |
| Text | Manipulation | Lowercase Text | LOWER(Products[Description]) | Convert to lowercase | Converts text to all lowercase | lower lowercase case |
| Text | Manipulation | Extract Substring | MID(Customers[AccountNumber], 4, 6) | Extract middle portion | Extracts 6 characters starting at position 4 | mid substring extract |
| Text | Manipulation | Text Length | LEN(Products[SKU]) | Character count | Returns number of characters | len length count |
| Text | Manipulation | Trim Spaces | TRIM(Customers[Name]) | Remove extra spaces | Removes leading/trailing spaces | trim space clean |
| Text | Search | Find Text Position | FIND(“@”, Customers[Email]) | Search for substring | Returns position of @ symbol | find search position |
| Text | Search | Contains Text | CONTAINSSTRING(Products[Description], “premium”) | Check if contains | Returns true if text contains substring | contains search find |
| Date | Extraction | Year from Date | YEAR(Sales[OrderDate]) | Extract year | Returns year portion of date | year extract date |
| Date | Extraction | Month from Date | MONTH(Sales[OrderDate]) | Extract month number | Returns month number (1-12) | month extract date |
| Date | Extraction | Month Name | FORMAT(Sales[OrderDate], “MMMM”) | Format month name | Returns full month name | format month name |
| Date | Extraction | Day of Week | WEEKDAY(Sales[OrderDate]) | Day number (1-7) | Returns day of week as number | weekday day extract |
| Date | Extraction | Quarter | QUARTER(Sales[OrderDate]) | Extract quarter | Returns quarter number (1-4) | quarter extract date |
| Date | Calculation | Days Between | DATEDIFF(Sales[OrderDate], Sales[ShipDate], DAY) | Date difference | Calculates days between two dates | datediff difference days |
| Date | Calculation | Add Days | Sales[OrderDate] + 30 | Date arithmetic | Adds 30 days to order date | add date arithmetic days |
| Date | Current | Today’s Date | TODAY() | Current date | Returns current date without time | today current date |
| Date | Current | Now DateTime | NOW() | Current date and time | Returns current date and time | now current datetime |
| Information | Type Checking | Is Number | ISNUMBER(Sales[Amount]) | Check numeric type | Returns true if value is numeric | isnumber type check |
| Information | Type Checking | Is Text | ISTEXT(Products[SKU]) | Check text type | Returns true if value is text | istext type check |
| Information | Error Handling | Is Error | ISERROR(DIVIDE(Sales[Profit], Sales[Revenue])) | Check for errors | Returns true if expression has error | iserror error check |
| Information | Error Handling | If Error | IFERROR(DIVIDE(Sales[Profit], Sales[Revenue]), 0) | Handle errors gracefully | Returns 0 if calculation errors | iferror error handle |
| Variables | Performance | Using Variables | VAR TotalSales = SUM(Sales[Amount]) VAR AvgSale = AVERAGE(Sales[Amount]) RETURN DIVIDE(TotalSales, AvgSale) | Store intermediate results | Calculates values once, reuses them | var variable performance reuse |
| Variables | Readability | Multiple Variables | VAR CurrentSales = [Total Revenue Measure] VAR PriorSales = CALCULATE([Total Revenue Measure], SAMEPERIODLASTYEAR(Calendar[Date])) RETURN CurrentSales – PriorSales | Complex calculation clarity | Makes complex DAX more readable | var variable readability |
| Iterator | Row Context | Sum with Expression | SUMX(Sales, Sales[Quantity] * Sales[UnitPrice]) | Row-by-row calculation | Evaluates expression for each row then sums | sumx iterator row context |
| Iterator | Row Context | Average with Expression | AVERAGEX(Sales, Sales[Quantity] * Sales[UnitPrice]) | Row-by-row average | Calculates expression per row then averages | averagex iterator average |
| Iterator | Row Context | Count with Condition | COUNTX(FILTER(Sales, Sales[Amount] > 100), Sales[OrderID]) | Conditional counting | Counts rows meeting criteria | countx iterator count filter |
| Iterator | Row Context | Min with Expression | MINX(Products, Products[Price] * 0.9) | Minimum calculated value | Finds minimum of calculated values | minx iterator minimum |
| Iterator | Row Context | Max with Expression | MAXX(Products, Products[Price] * 1.1) | Maximum calculated value | Finds maximum of calculated values | maxx iterator maximum |