Power BI · Copilot DAX · Verified June 2026
Power BI DAX with AI – Write DAX with Copilot
A practitioner reference for report authors and model owners — what Copilot actually does, what prompts work, where it breaks, and what changed in 2025–2026. Verified against Microsoft Learn and the Power BI June 2026 feature release.
“YoY Sales Growth % for the current selection, blank-safe, formatted as percentage”
Feature updates worth knowing
A lot of Copilot coverage still describes the 2024 launch state. Here’s what’s actually different now.
DAX query view Copilot
Inline Copilot in DAX query view (Ctrl + I) lets you write, explain, and refactor queries conversationally. Copilot sees your full model metadata — tables, columns, measures, relationships — and generates DAX that fits your specific model rather than generic templates.
Suggested measures
Copilot proactively suggests a set of measures based on your model structure — things like Sales = Quantity × Price. Review and add to your model with one click. Always check column references before committing; Copilot matches by name, not business intent.
Measure description generation
In Model view, select any measure and click Create with Copilot under the Description field. Copilot reads the DAX formula and writes a plain-language explanation. Saves significant documentation time on large models; re-run it after each formula change.
Verified answers in reports
Workspace admins can designate specific measures as “trusted.” Copilot prefers these when answering related questions, and surfaces them with an audit trail. Gives regulated environments a governed path to Copilot-generated answers without losing control of the underlying logic.
DAX User-Defined Functions (UDFs)
Define reusable DAX logic as named, callable functions across measures and calculated columns — the same idea as a helper function in any programming language. Reduces formula duplication in large models and makes logic easier to audit. Copilot can generate UDF bodies from a prompt.
Copilot in web modeling
Copilot can now review and improve your semantic model directly in the Power BI service — no Desktop required. Give it a plain-language instruction: “Improve table relationships” or “Rename columns to title case” and it acts on the model, including generating DAX measures.
Report authoring agent skills
Through Microsoft’s Skills for Fabric catalogue, agentic report-building takes a vague brief like “I need an executive dashboard” through requirements, design, build, and publish stages in natural language. Copilot reloads Desktop to capture live screenshots as it builds. The clearest signal yet that report creation is becoming agent-driven.
Q&A visual retired
The old Q&A visual that handled natural language inside reports has been phased out. The same functionality now lives in Copilot, with better accuracy and model context. If you have reports using Q&A, plan migration to Copilot-based interactions.
How to access DAX Copilot
There are three distinct surfaces. They’re not interchangeable — each has a different scope.
1. DAX query view (the main one for formula work)
In Power BI Desktop, switch to the DAX query view using the icon on the left rail. Press Ctrl + I or click the Copilot button to open inline Copilot. This is where you write and refine measures conversationally. It operates on the current semantic model only — Copilot sees your model’s metadata but nothing outside it.
2. Model view — measure descriptions
Select any measure in the Data pane, find the Description field in Model view properties, and click Create with Copilot. This generates a documentation string rather than a new formula. Run it after every formula edit to keep documentation accurate.
3. Web modeling in the Power BI service (June 2026, Preview)
Open a semantic model in the Power BI service and use the Copilot assistant to analyze and modify the model without opening Desktop. Currently covers schema improvements, relationship creation, and DAX measure generation. The desktop model and the service model stay in sync.
The tenant admin setting and the workspace capacity assignment are both required. Enabling the tenant setting alone without assigning the workspace to a Fabric capacity produces no Copilot pane, no error message. Check both before troubleshooting anything else.
Prompts that reliably work — with their output
These are the prompt patterns that produce clean, useful DAX. The model still needs correct table and column names to match your semantic model; if Copilot guesses wrong, follow up with a correction prompt rather than starting over.
VAR Curr = [Total Sales] VAR Prior = CALCULATE([Total Sales], DATEADD('Date'[Date],-1,YEAR)) RETURN IF(ISBLANK(Prior)||Prior=0, BLANK(), DIVIDE(Curr-Prior,Prior))
Top 5 Customers = RANKX( ALL(Customer[CustomerName]), [Total Revenue], ,DESC,Dense ) <= 5
3M Avg Sales = AVERAGEX( DATESINPERIOD( 'Date'[Date], LASTDATE('Date'[Date]), -3, MONTH ), [Total Sales] )
-- Paste your measure in the query -- window, then send this prompt. -- Copilot rewrites it using VAR/RETURN -- pattern, removes redundant CALCULATE -- wrappers, and adds inline comments. // Review the diff before accepting — // Copilot may rename variables.
-- Copilot returns a natural language
-- explanation with one concrete DAX
-- example per function showing how
-- the filter context changes.
-- No generated measure to add —
-- this is a learning interaction.% of Total Sales = DIVIDE( [Total Sales], CALCULATE( [Total Sales], ALLSELECTED(Product[ProductName]) ) )
What Copilot won’t handle, and where it degrades
Copilot works from model metadata alone. It doesn’t scan your actual data rows (except a min/max sample in Import mode). If your model is too large, or your metadata is thin, results degrade before they fail.
| Constraint | Limit | What happens when exceeded |
|---|---|---|
| Tables in model | 500 | Copilot may disable or give degraded results |
| Total columns across all tables | 10,000 | Copilot drops awareness of columns beyond this |
| Total measures | 5,000 | Some measures fall out of Copilot’s context window |
| Measures per table | 3,000 | Copilot loses track of measures in overloaded tables |
| DAX expression length | 5,000 characters | Copilot cannot generate expressions beyond this length |
| Column / measure name length | 256 characters | Names are truncated in Copilot’s context |
| Description field used by Copilot | First 200 characters | Anything after 200 chars in descriptions is ignored |
| Prompt length | 10,000 characters | Hard cap across all Copilot surfaces |
Source: Power BI Copilot community documentation and Microsoft Learn.
Very recently released DAX functions may not be recognized by Copilot, and explanations of them can be wrong. Always cross-reference the DAX function reference for any function released in the last 3–6 months before trusting Copilot’s explanation of it.
Model quality determines Copilot quality
Copilot uses your model’s metadata as its entire context — there is no external knowledge base it falls back on for your data. That means the naming conventions and descriptions you put into the model directly control how accurate the output is.
- Name columns and tables for humans, not for databases.
CustomerNameandOrderDateproduce better results thancust_nmorord_dt. - Write descriptions for every measure. Only the first 200 characters are used. Start with what the measure does, not what it’s called. Use the Copilot description-generation feature to build this library faster.
- Mark trusted measures in workspace settings so Copilot knows which implementations to prefer when multiple measures calculate similar things.
- Keep relationships clean and explicit. Ambiguous or missing relationships produce ambiguous DAX. Copilot in web modeling can now flag these and suggest fixes from the service without opening Desktop.
- Use star schemas. Complex snowflakes and many-to-many relationships produce more errors. Copilot behaves predictably on well-modeled data.
- Always review before publishing. Copilot generates from metadata, not from running your data. A formula can be syntactically correct and logically wrong for your specific context.
In Import storage mode, Copilot can only see sample min/max values per column, not the full distribution. For measures where boundary values matter (thresholds, conditional logic), test the generated DAX against real data rather than trusting the sample.
FAQ – Power BI DAX with AI
Is Copilot DAX available in Power BI Desktop or only the service?
Can I use Copilot to learn DAX, not just generate it?
Does Copilot write calculated columns, or only measures?
Does my data leave Microsoft when I use Copilot?
What happens to the Q&A visual I have in existing reports?
Can Copilot generate DAX User-Defined Functions?
Documentation & learning
Accuracy note: Feature availability (GA vs Preview) is verified against the Power BI June 2026 Feature Summary and Microsoft Learn as of June 2026. Scale limits are sourced from the Power BI community documentation and Microsoft’s Copilot introduction article. Preview features may change before reaching general availability. UIG Data Lab is independent and not affiliated with Microsoft Corporation.



