Measure Killer Measure Killer

These docs are still being polished — a few sections and screenshots are on the way. Spotted something off? Let us know.

DAX expressions — tenant-wide search

Every DAX measure, calculated column, and calculated table expression across every scanned model — searchable in seconds. Find function calls, table references, duplicates, and violations.

What you get

DAX expressions tab — every DAX expression across all scanned models, searchable and filterable

Every DAX measure, calculated column, and calculated table expression from every scanned semantic model — browsable and filterable. Use the search bar to find specific function calls (e.g. USERELATIONSHIP), table references, or variable names across the entire tenant’s DAX codebase in seconds.

Violations and duplicates

The DAX expressions view also highlights best-practice violations and duplicate expressions:

DAX expression violations — highlighted unused variables and best-practice violations within a measure

Duplicate DAX expressions — measures with identical definitions across models

Duplicate detection surfaces measures with identical DAX definitions across different models — a strong signal that models could be consolidated or that a shared model should be used instead.

Run the analysis

  1. Run a tenant-wide scan and complete Phase 2 by selecting models and clicking Analyze.
  2. Switch to the DAX expressions tab.
  3. Use the search bar to find specific functions, table names, or patterns across all DAX code.

Common workflows

  • Find every use of a specific DAX function. Search for USERELATIONSHIP, CALCULATE, FILTER, or any other function to see where it’s used across the tenant. Useful for auditing anti-patterns or understanding how a function is applied.
  • Find duplicate measures across models. The duplicate detection highlights measures with identical definitions. These are candidates for consolidation — move the measure to a shared model or verify that the duplication is intentional.
  • Audit for anti-patterns. Search for known anti-patterns like IFERROR, FILTER(ALL(, or unqualified column references. The violations view highlights these automatically when best-practice rules are enabled.
  • Impact analysis before renaming a table or column. Search for the current name to find every DAX expression that references it. This is the DAX-side complement to the column-level lineage view.
  • Standardize DAX patterns. Search for variations of the same logic (e.g. different ways to calculate YTD) to identify inconsistencies across models.

What to do with the findings

  • Export to Excel — click Export in the toolbar to export all DAX expressions to Excel for offline review or documentation.
  • Export as JSON — paid editions can also export as raw JSON for downstream analysis, documentation, or AI-assisted review.
  • Fix in Power BI — use the findings to identify what needs to change, then apply fixes in Power BI Desktop or via Remove unused objects.
  • Share the .measurekiller file — hand the scan to a colleague for review.