Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
I have several direclake semantic models, but some of them are able to use calculated tables, but some are not, what even strange, for some direclake semantic model, I was able to create calculated tables at the beginning, but after some days or months, I can do this anymore, the calculated table option is grayed out.
My question is, is there any explicit explanation from Microsoft, whether we can use calculated table in a directlake semantic model, and if yes, what's the detialed limitations?
Thanks.
Best Regards.
Tiger
Solved! Go to Solution.
Hi @Tiger_an : I recommend checking the ticket below, as it might address your concern. There were some design updates introduced to improve performance and ensure consistency across Fabric.
Thanks.
Hi @Tiger_an,
Thank you for reaching out to Microsoft Fabric Community.
Thank you @MJParikh and @neetesh91 for the prompt response.
As we haven’t heard back from you, we wanted to kindly follow up to check if the solution provided by the user's for the issue worked? Is your issue resolved? or let us know if you need any further assistance.
Thanks and regards,
Anjan Kumar Chippa
Hi @Tiger_an,
We wanted to kindly follow up to check if the solution provided by the user's for the issue worked? Is your issue resolved? or let us know if you need any further assistance.
Thanks and regards,
Anjan Kumar Chippa
Hi @Tiger_an : I recommend checking the ticket below, as it might address your concern. There were some design updates introduced to improve performance and ensure consistency across Fabric.
Thanks.
@neetesh91 This morning when I opened the same semantic model, both new table and new column options are enabled now. I think still there is something not stable in the back end for direclake semantic models.
Thanks @neetesh91 , this can at least explain a reason, but off course lead to inconvenience when develop directlake semantic models, hope Microsoft can make a detail document for this soon.
Best Regards.
Tiger
Yes @Tiger_an : I observed a similar behavior, except that the 'New Column' option is disabled while editing the model. Not entirely sure, but it could be due to a recent feature change or update rollout. Hopefully, this will be resolved and wrapped up soon.
Thanks.
Here is what I would like to share.
From Microsoft’s docs (as of mid-2025):
Calculated tables are allowed only under certain conditions.
You can add calculated tables if they don’t reference any Direct Lake table columns.
Calculated columns and calculation groups have similar restrictions. Calculated columns that reference Direct Lake tables are not supported. Calculation groups (which implicitly create tables) are supported. Microsoft
If the calculated table or calculated column references only import tables or does not reference Direct Lake source columns/tables, then it is allowed.
Storage modes and “live editing” also matter:
When live editing a model in Power BI Desktop and if some tables are in Import mode (or derived without direct references to Direct Lake), you may be allowed to add those derived/calculated tables.
But Direct Lake tables enforce more restrictions.
Composite models / mixing table storage modes: There are limitations on mixing Direct Lake tables with other modes (Import, DirectQuery, Dual). Some scenarios are supported via XMLA; others not.
Based on Microsoft’s docs, here are probable causes for calculated table being unavailable in your semantic model at some point:
A Direct Lake table in your model is referenced by the calculated table. If you try to reference a Direct Lake table in the DAX expression, the system disables calculated tables.
The semantic model is now using a mode or property where calculated tables are disallowed (for example, “Direct Lake storage mode” on some sources).
You upgraded or shifted the model (e.g. changed storage mode, included new tables from Direct Lake) so the conditions changed.
The workspace / capacity / license guardrails changed. Some capacities have restrictions.
A change in the source or model, e.g. added a view or table from SQL endpoint that enforces row-level security, causing fallback to DirectQuery, which might block certain derived/calculated items.
Hi @MJParikh ,
Thanks for your information on this. It's really helpful.
While I have questions regarding to your below Point:
The semantic model is now using a mode or property where calculated tables are disallowed (for example, “Direct Lake storage mode” on some sources).
Can you explain this in more detail? My directlylake semantic model was build on my lakehouse, all the tables are directly added from it, when can I check the storage mode? How can I change it? See below screenshot, the "add table" option is now grayed out.
Best Regards.
Tiger
Hi @Tiger_an,
I have added the details below. Which explains the details and reason and how you can resolve it.
Why is “Add Table” grayed out?
Your screenshot shows a Direct Lake semantic model connected to a Lakehouse. In Direct Lake mode, the semantic model queries the Parquet files in your Lakehouse directly, without importing data into Vertipaq memory. This makes queries faster and reduces refresh needs. But the trade-off is some features, like calculated tables, are disabled.
Calculated tables require the engine to materialize new data structures in memory. Direct Lake mode is designed to avoid materialization and keep everything “on demand” from the Lakehouse. Because of this, Microsoft disables certain features in Direct Lake models, including:
Calculated tables
Some row-level security functions
Some complex DAX constructs that require Vertipaq storage
That’s why the New Table option is grayed out in your ribbon.
You can verify the storage mode for each table:
Open your model in Model view.
Select a table.
In the Properties pane, look for Storage mode.
If it says Direct Lake, the table is bound directly to the Lakehouse parquet files.
You might also see DirectQuery or Import for other tables if mixed modes are present.
There are a couple of paths:
Switch table(s) to Import mode
Right-click the table, and choose Storage mode → Import.
This will pull the data into Vertipaq, which enables calculated tables, but you lose the “always fresh” Direct Lake behavior.
Switch the entire model to Import mode
If your model must have calculated tables, set all tables to Import.
Refresh is then required to keep data in sync.
Hybrid approach
Some tables are in Direct Lake, others in Import.
Only tables in Import support calculated tables. Direct Lake tables won’t.
If you need calculated tables for transformations or staging, move those specific tables into Import mode and keep the rest in Direct Lake for performance. Microsoft’s current guidance is that Direct Lake is intended for performance at scale, not for heavy in-model transformations. For complex modeling, do the shaping in your Lakehouse or a Dataflow Gen2, then connect through Direct Lake.
User | Count |
---|---|
31 | |
16 | |
13 | |
9 | |
8 |
User | Count |
---|---|
49 | |
31 | |
24 | |
15 | |
13 |