DAX User-Defined Functions are now Generally Available.
No more excuses: now you can use them!
If you're wondering where to start, we put together a page with 5 articles that cover the basics and the less obvious parts: what UDFs are, how parameter types work, the difference between UDFs and calculation groups, and how to build reusable patterns.
Here is your starting point: https://t.co/TVAIRMUfbp
We already planned two other articles about UDFs that we’ll add in the coming weeks. Stay tuned!
Honestly, DAX is changing. The platform is evolving.
In 2026, new capabilities will become part of everyday work.
Features such as user-defined functions and calendar-based time intelligence reshape how measures and semantic models are built and structured.
Tools evolve, we have to adapt: that requires solid mental models and experience, not just memorizing patterns!
This is exactly the kind of work we focus on during in-person training.
If you want to keep your Power BI skills relevant, the next **Mastering DAX** classes are here:
𝗡𝗢𝗥𝗧𝗛 𝗔𝗠𝗘𝗥𝗜𝗖𝗔
𝗛𝗼𝘂𝘀𝘁𝗼𝗻, 𝗧𝗫: Mar 30→Apr 1: https://t.co/75rEwDV6Eq
𝗡𝗲𝘄 𝗬𝗼𝗿𝗸 𝗖𝗶𝘁𝘆, 𝗡𝗬: Apr 8→10: https://t.co/an8CDcjWkz
𝗕𝗮𝗹𝘁𝗶𝗺𝗼𝗿𝗲, 𝗠𝗗: May 27→29: https://t.co/1yF23hQZxF
𝗘𝗨𝗥𝗢𝗣𝗘
𝗖𝗼𝗽𝗲𝗻𝗵𝗮𝗴𝗲𝗻, 𝗗𝗞: May 5→7: https://t.co/mAegGsZUPY
𝗭𝘂𝗿𝗶𝗰𝗵, 𝗖𝗛: Jun 10→12: https://t.co/HsUCvtN12A
𝗕𝗲𝗿𝗹𝗶𝗻, 𝗗𝗘: Jun 15→17: https://t.co/mstTLwxC4x
All the classes are in English.
What's new in 2026?
Export to Excel
Hey @FABConSQLCon, you should run this video on loop pre-keynote. Guaranteed nerd dance floor unlocked.
https://t.co/felKYoze8c
I'm too busy with other things, but if someone has time to create a Claude skill to identify anti-patterns in code review using the definitions provided in Resign Patterns, I (and probably many others) will be immensely grateful.
I look forward to writing a prompt like "Find any Commando pattern in this code."
https://t.co/6vwaBAaf41
PS: There are no typos: look at the document to learn more about the Commando pattern and many others, like Simpleton, Blinder, and many others.
if LLMs will make software engineering obsolete, why don't they just generate binaries instead?
not code & compile under the hood. Object code is data too.
why do LLMs have to generate things that humans create?
My first post of the year is about Fabric.
What I thought was a gut feeling has been confirmed and validated by multiple tests. Clearly, what follows is valid for me and may not be valid for other scenarios, even though I am pretty confident that the conclusion about the service cost is accurate. However, I do not have the time or interest to write a whole article about this topic, so I leave it here as a reference.
Using 𝗻𝗼𝘁𝗲𝗯𝗼𝗼𝗸𝘀 is the 𝗰𝗵𝗲𝗮𝗽𝗲𝘀𝘁 𝗮𝗻𝗱 𝗳𝗮𝘀𝘁𝗲𝘀𝘁 way to 𝗶𝗻𝗴𝗲𝘀𝘁 𝗱𝗮𝘁𝗮. Pipelines, Dataflows Gen 2, and Copy Tasks are more expensive (CUs) and slower (execution time).
𝗪𝗵𝗶𝗰𝗵 𝗻𝗼𝘁𝗲𝗯𝗼𝗼𝗸 𝘁𝘆𝗽𝗲? Both PySpark and T-SQL work well. I prefer to use SQL for transformation and PySpark for ingestion (and transformations that would not work well in SQL).
𝗖𝗮𝘃𝗲𝗮𝘁: You must use the right approach. LLMs can help you, but you cannot blindly trust them for either the result or the performance. However, with patience, tests, and review, you can get what you want.
𝗜𝘀 𝘂𝘀𝗶𝗻𝗴 𝗟𝗟𝗠𝘀 𝗺𝗼𝗿𝗲 𝗽𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝘃𝗲? Definitely, yes, at least for PySpark. I wrote notebooks with hundreds of lines of code; I would have definitely spent more time researching and typing code. The savings range from 3x to 10x. It's huge at the very beginning, and it decreases as you refine the code. So, it depends on how and when you measure it.
Oh, one last note, just for the future, myself not remembering these details: it's always better to 𝗰𝗼𝗻𝘃𝗲𝗿𝘁 𝗮 𝗖𝗦𝗩 𝗶𝗻𝘁𝗼 𝗮 𝗣𝗮𝗿𝗾𝘂𝗲𝘁 𝗳𝗶𝗹𝗲 𝗼𝗻𝗰𝗲 (and I'm not saying Delta here), then read the Parquet file(s). You will constantly change/refactor the transformation later; the difference is too big to ignore (on the order of one to two orders of magnitude).
It will be an interesting year.
2025 DAX & SQLBI recap
• UDFs in preview
• Calendar-based time intelligence
• 21 new DAX functions
SQLBI:
• New book Definitive Guide to DAX 3rd ed.
• SQLBI+ content
• DAX Lib
• DAX Optimizer Basic
2026:
• New DAX video course
Read blog post: https://t.co/GCwyufnMt5
Adding logical names and comments to your DAX variables is low-effort, and it makes your code easier to read and maintain for everybody (including future you).
Below a few things to consider:
The Fabric CLI is a banger.
Give the CLI to a coding agent like Claude Code, and it can find/do anything in Fabric.
Now imagine adding the TE2 CLI, VPAX CLI, GitHub/Azure DevOps CLI... no MCP servers required.
Want more info? Check SQLBI next week.
Ready to see a glimpse into what's really possible with AI, agents, and Power BI?
Some exciting stuff coming for subscribers of sqbi+...
https://t.co/0rgDEqeCsY
Why we waited so long to talk about AI
Every time we mention AI, people project their own beliefs onto it.
At SQLBI, we talk about AI only when it makes a real difference, not because it's trendy.
Last week many people were on vacation, so in case you missed it, here it is again👇
https://t.co/74kWAAxgNl
Microsoft Fabric, Power BI... it's quite an adventure. Here's an updated version of the Data Goblins Microsoft Fabric adventure map.
You can't fit everything on there, but we included some fun stuff anyway. See if you can't spot all the easter eggs! Download link below.
Newsletter #300 is a significant milestone for SQLBI.
I thought this was a good time to clarify SQLBI’s position on a topic we haven't discussed much yet: Artificial Intelligence (AI).
https://t.co/74kWAAxgNl
#newsletter#sqlbi#ai
This article (with video) outlines best practices for utilizing ALLSELECTED in your DAX measures to prevent unpredictable results!
#dax#powerbi
https://t.co/dTJEWvXqr9