Posts filed under DAX

Simplify Power BI DAX with Visual Calculations

Video by: Reid Havens

If you've ever written a running total in DAX, you know it's more work than it has any right to be. CALCULATE, FILTER, a column reference you have to get exactly right, and a quiet prayer that it behaves at the subtotal level. Visual calculations let you write RUNNINGSUM([Sales]) and get on with your day.

They're a calculation layer that lives inside the visual itself, working on the data that's already been aggregated rather than querying the whole model. That's also why they're often faster, sometimes dramatically so on DirectQuery.

I walk through the core functions (running totals, moving averages, PREVIOUS and NEXT for period comparisons, FIRST, LAST, INDEX, and RANK), then the hierarchy functions like COLLAPSE and EXPAND that make "% of parent" and "% of grand total" almost trivial. We also get into AXIS and RESET, which control the direction a calculation runs and where it restarts, because that's the part that quietly breaks people's running totals across years.

One honest caveat. Yes, they're easier and faster. But because each one only lives in a single visual, they can fragment your business logic across reports if you're not careful, so I cover when a visual calc is the right call and when it really should be a centralized measure.

DAX Fundamentals Part 3: The Patterns That Make Reports Work

You've learned how filter context and CALCULATE actually work. This is where it pays off. Part 3 of the DAX Fundamentals series covers the patterns you'll keep reaching for in real models, and why they behave the way they do.

We get into time intelligence (YTD, QTD, prior cycle, and why these functions return tables of dates rather than numbers), variables for cleaner and faster formulas, and SWITCH as the cure for nested IF chains nobody wants to maintain. Then inactive relationships and USERELATIONSHIP for when one fact table has two date columns fighting over the same date table.

The pattern that saves the most pain is calculation groups. Write three base measures, add one calc group with YTD, Prior Cycle, and YoY%, and you've replaced nine measures (and growing) with something you maintain in one place.

The video closes on the part most people skip: how the engine splits work between the Storage Engine and the Formula Engine, and why pushing work toward simple aggregations on a star schema is the difference between fast DAX and slow DAX.

Understand DAX Context in Power BI: CALCULATE, Filter Context & Row Context (Part 2)

Video by: Reid Havens

The single biggest concept separating DAX beginners from confident report builders is context. This interactive guide breaks down how Power BI evaluates every formula you write: what filter context is, how CALCULATE manipulates it, the difference between row context and filter context, how context transition bridges the two, and why iterator functions like SUMX create their own row context. If CALCULATE has ever confused you, start here.

Topics covered:

  • The mental model shift: why DAX doesn't think like Excel

  • Query context: how rows and columns shape evaluation

  • Filter context: slicers, relationships, and implicit filters

  • CALCULATE: overriding, replacing, and adding filter arguments

  • Row context: calculated columns, iterators, and the current row

  • Context transition: what happens when CALCULATE meets row context

  • Iterator functions: SUMX, AVERAGEX, and row-by-row evaluation

RELATED CONTENT πŸ”—

DAX Context (Part 2)
Analytic Endeavors

[DAX] Lib - From Zero to Community Hero (with Jake Duddy)

LIVESTREAM DATE/TIME πŸ“…

MAY 15TH 2026 (Pacific Time)

DESCRIPTION πŸ“„

User-defined functions landed in DAX last September, and SQLBI launched DAXLib alongside them as a community repo for sharing libraries. There are already 30+ packages people can pull straight into their models. If you've built a UDF that made your own life easier, odds are someone else is working around the same problem.

This stream is about closing that gap. Jake Duddy joins me to walk through what it actually takes to turn a working UDF into a published DAXLib package that other people can install and use. Jake recently contributed EvaluationContext.Colour (a HEX manipulation library for SVG and conditional formatting work), so he's been through the workflow recently and has the bruises to show for it.

What we'll cover:

  • DAXLib: what it is and why SQLBI built it

  • Model-independent vs model-dependent functions, and which belong in a library

  • Packaging a UDF for publication

  • Submitting through GitHub

  • What separates a useful contribution from noise

  • Q&A throughout

GUEST BIO (Jake Duddy)πŸ‘€

Jake Duddy is a Microsoft Data Platform MVP and Power BI SME based in Birmingham, UK. He runs the Evaluation Context blog covering Power BI, Fabric, DAX, and SSAS, and speaks regularly at SQLBits, the Power BI & Fabric Summit, and the Microsoft Data Platform Group Birmingham. Links to DAXLib, Jake's blog, and his EvaluationContext.Colour library are in the comments. #PowerBI #DAX #MicrosoftFabric #DAXLib #UDF

RELATED CONTENT πŸ”—

DAX Lib
Jake's LinkedIn

Posted on May 4, 2026 and filed under Livestreams, DAX.