Duplicate Measures
Detects measures whose name appears in more than one table of the same analyzed model.
What It Detects
This flag identifies DAX measures that share the same measure name — the text inside Table[Measure] — across two or more tables of a single analyzed model. When the same measure name is found in more than one table, every measure carrying that name is flagged.
Matching is based on the name only. The DAX expression is stored on each measure but is never compared, so measures that share a name are flagged regardless of whether their expressions are identical or completely different.
The analyzer works on one uploaded
.pbix/.pbitfile at a time. Detection is scoped to that single model — there is no cross-dataset or cross-workspace comparison.
Why It Matters
- Inconsistency risk — If two same-named measures carry different logic, or one copy is updated while another is not, reports can show conflicting numbers for what looks like the same metric.
- Maintenance overhead — Fixing a bug or changing a business rule may require finding and updating every same-named copy.
- Governance issue — Indicates the lack of a single, central measures table, leading to measure sprawl within the model.
Trigger Conditions
A measure is flagged as duplicated when:
- Name match — two or more measures in the model share the same measure name (the text inside
Table[Measure]). - The measures reside in different tables of the same model.
Because each measure is keyed internally by its fully-qualified Table[Measure] name, two measures can only collide on the short name when they live in different tables. The DAX expression is never examined — measures that share a name but have different expressions are still flagged.
Matching: exact, case-sensitive comparison of the measure name. There is no expression comparison and no whitespace, line-break, or casing normalization.
Output
Each measure carries the following fields (ReportMeasureDefinition):
| Field | Description |
|---|---|
name | Fully-qualified measure name, Table[Measure] |
tableName | Home table of the measure |
expression | The measure's DAX expression (stored, but not used for duplicate detection) |
isUnused | true when the measure is not referenced anywhere in the report layout |
isDuplicated | true when the measure's name appears in more than one table of the model |
In the report UI, measures where isDuplicated is true appear under the Duplicate measures section, each marked with a red Duplicated badge.
Notes and Edge Cases
- Single-model scope — Detection runs on one uploaded file at a time. Duplicates can only be found across different tables within that one model; there is no cross-dataset or cross-workspace analysis.
- Name-only matching — Because only the name is compared, two measures that share a name but have entirely different logic are both flagged. Conversely, identical DAX logic living under different names is not detected by this check.
- Case-sensitive — Names that differ only in casing (for example,
Salesandsales) are treated as distinct and are not flagged.
Related Flags
- Duplicate Tables — The table-level equivalent: the same table name appearing more than once in the model.
- Unused Measures — One copy of a duplicated measure may be unused.