Daily DAX : Day 463 INFO.VIEW.TABLES
DAX Function: INFO.VIEW.TABLES()
INFO.VIEW.TABLES is a DAX function in Power BI (introduced around late 2024) that returns a table containing metadata about all tables in your semantic model.It is part of the more user-friendly INFO.VIEW family of functions (compared to the older INFO.* functions), and — crucially — can be used inside calculated tables, measures, and columns (unlike most plain INFO functions).
Main Use Case
The primary and most powerful use case is automatic model self-documentation. You create one or more calculated tables that list:
- All tables in the model
- Their properties (name, description, storage mode, whether it's a calculated table, calculation group, date table, etc.)
- Hidden/visible status, row count hints, etc.
→ The documentation stays up-to-date automatically every time the model refreshes.
Very useful for:
- Large team / enterprise models
- Handover to other developers
- Governance & auditing
- Training new team members
- Finding hidden/orphaned tables
- Quickly checking storage modes (Import / DirectQuery / Dual)
Returns: a table with metadata about every table in the current Power BI semantic model.
Key Columns (most useful ones)
| Column Name | What it shows | Typical use |
|---|---|---|
Name | Table name (what you see in the Fields pane) | Display / filter |
Description | Description entered in Model view | Documentation |
IsHidden | TRUE = hidden table | Find hidden/orphan tables |
StorageMode | Import, DirectQuery, Dual | Performance & mode check |
Expression | DAX code if it's a calculated table (blank otherwise) | Identify calc tables |
CalculationGroupPrecedence | Number if it's a calculation group (blank otherwise) | Find calc groups |
DataCategory | e.g. "Time" for marked date tables | Find date tables |
Most Common Pattern – Auto-Documentation
Tables in this model =
SELECTCOLUMNS(
INFO.VIEW.TABLES(),
"Table", [Name],
"Description", [Description],
"Hidden?", [IsHidden],
"Storage", [StorageMode],
"Type",
SWITCH(TRUE(),
NOT(ISBLANK([CalculationGroupPrecedence])), "Calculation Group",
NOT(ISBLANK([Expression])), "Calculated Table",
[DataCategory] = "Time", "Date Table",
"Regular Table"
)
)
SELECTCOLUMNS(
INFO.VIEW.TABLES(),
"Table", [Name],
"Description", [Description],
"Hidden?", [IsHidden],
"Storage", [StorageMode],
"Type",
SWITCH(TRUE(),
NOT(ISBLANK([CalculationGroupPrecedence])), "Calculation Group",
NOT(ISBLANK([Expression])), "Calculated Table",
[DataCategory] = "Time", "Date Table",
"Regular Table"
)
)
Requirements & Limitations
- Requires write permission on the semantic model
- Not available in live connection mode in Power BI Desktop
- Very useful in DAX Query View for quick checks
- Best value when used as calculated table(s) inside the model
Comments
Post a Comment