Daily DAX : Day 457 INFO.VIEW.MEASURES

INFO.VIEW.MEASURES – Power BI DAX Function

Introduced: ~October 2024

Purpose: Returns a table containing metadata about all measures in your current semantic model (Power BI dataset).

Syntax

INFO.VIEW.MEASURES ( )

No parameters – super simple!

What Columns Does It Return?

Column Name Data Type Description
ID Integer Internal ID of the measure
Name String Measure name (what you see in the Fields pane)
Table String Name of the home table where the measure lives
Description String Description (if filled in)
DataType String Result data type (e.g. Decimal, Integer, ...)
Expression String The actual DAX code of the measure
FormatString String Current / static format string
FormatStringDefinition String Dynamic format string expression (if used)
IsHidden Boolean Is the measure hidden? (TRUE/FALSE)
State String Valid / Error / ...

Most Common Use Cases

1. Automatic Model Documentation (Most Popular)

Create a calculated table:

All Measures =
INFO.VIEW.MEASURES()

→ Put it in a table visual → instant live documentation page!

Combine with INFO.VIEW.TABLES(), INFO.VIEW.COLUMNS(), INFO.VIEW.RELATIONSHIPS() for full model dictionary.

2. Find Unused / Hidden Measures

Hidden Measures =
FILTER(
    INFO.VIEW.MEASURES(),
    [IsHidden] = TRUE
)

Or filter measures never used in reports (needs extra logic).

3. Measure Dependency / Lineage Analysis

Search expressions for other measure names:

Measure Dependencies =
GENERATE(
    INFO.VIEW.MEASURES(),
    FILTER(
        INFO.VIEW.MEASURES(),
        CONTAINSSTRING([Expression], "[" & [Name] & "]")
    )
)

→ Feed into dependency visual (e.g. Performance Flow, custom graph)

4. Audit / Quality Check

  • Which measures have no description?
  • Which use FORMAT() instead of dynamic format strings?
  • Which have errors? ([State] <> "Valid")
  • Which use old / deprecated patterns?

Quick Summary – When to use INFO.VIEW.MEASURES?

  • ✅ You want to document your model automatically
  • ✅ You need a live data dictionary page
  • ✅ You want to analyze / audit measures
  • ✅ You’re building measure lineage / dependency graphs
  • ❌ You want to use it inside row context logic (almost never needed)

Comments