Duplicate Columns
Detects columns that share the exact same name across more than one table in the model, based on identical column names.
What It Detects
This flag identifies columns whose short name (the part inside the brackets of Table[Column]) is identical to a column in another table within the same analyzed file. Detection is purely name-based: the analyzer counts how many times each column's exact name appears across all tables and flags every column whose name occurs in more than one table.
Matching is byte-for-byte and case-sensitive — there is no normalization of spaces, underscores, or casing, and data types and value distributions are not compared.
Why It Matters
- Wasted memory — Duplicate columns double the VertiPaq storage for the same information.
- Ambiguity for report authors — Two columns with the same name in different tables create confusion about which one to use.
- Relationship conflicts — Duplicate columns can lead to ambiguous relationship paths, causing unexpected DAX results.
Trigger Conditions
A column is flagged when both of the following are true:
- Exact name match — Two columns share the exact same name (case-sensitive; no normalization of spaces, underscores, or casing).
ProductIDin two different tables matches, butCustomer_IDandCustomerIDdo not. - Appears in more than one table — The same short column name occurs across more than one table. Column names are unique within a single table, so matches are always cross-table.
Data type, cardinality, and value distribution are not part of the criteria — two columns with the same name but different data types are still flagged.
Rule: A column is flagged when its exact name appears in more than one table.
Output
Each analyzed column carries a boolean isDuplicated flag on its definition. There is no pairwise output — the result is per column, per analyzed file.
| Field | Description |
|---|---|
name | Fully qualified column name in Table[Column] format |
tableName | The table the column belongs to |
dataType | The column's data type (shown for reference; not used in duplicate detection) |
estimatedSizeKB | Approximate VertiPaq size estimate (based on an assumed 10,000 rows per table) |
isDuplicated | Boolean — true when the column's exact name also appears in at least one other table |
In the report UI, a duplicated column is surfaced with a Duplicated badge in the columns table (Name, Table, Data Type, Est. Size (KB), Flags).
Analysis runs against a single uploaded
.pbix/.pbitfile. There is no cardinality, nocolumnA/columnBpairing, and nodatasetName/workspaceName— the flag is not workspace-scoped.
Notes and Edge Cases
- Foreign key columns — Foreign-key columns that share a name across tables (e.g.
Orders[ProductID]andProducts[ProductID]) will be flagged, since detection is name-based and does not inspect relationships. Treat such matches as expected. - Denormalized tables — In star-schema models, dimension attributes may be intentionally denormalized into fact tables for performance. If those attributes keep the same column name, they may be flagged but could be intentional.
Related Flags
- Duplicate Tables — Same concept applied at the table level.
- Unused Columns — One of the duplicate pair may be unused.