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!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Dear gents,
I'm converting a normal measure to a UDF... and I have a challenge passing a column name as parameter?
My measure should become
and I get an error Function SUMMARIZE expects a column name as argument number 2.
(tried putting VALUES, SELECTEDVALUES around the column name without success!)
Does it exist a solution or can't it be solved?
The beginning of the UDF looks like that, and we find the SUMMARIZE with a column name as second parameter
Hi @Marcl4
Thank you for reaching out to the Microsoft Fabric Forum Community.
@Kedar_Pande @rohit1991 @xifeng_L Thanks for your inputs
I hope the information provided by users was helpful. If you still have questions, please don't hesitate to reach out to the community.
Workarounds:
1. Create separate UDFs for each column:
pbi.SubtitleCountry = pbi.Subtitle(FACT_ITA, DIM_Geo[CountryName], 😎
pbi.SubtitleRegion = pbi.Subtitle(FACT_ITA, DIM_Geo[RegionName], 😎
2. Use Field Parameters to pass column names (not supported in UDFs yet).
3. Rewrite as regular measure with SWITCH:
Sub_UDF =
SWITCH(
SELECTEDVALUE(ColumnSelector[ColumnName]),
"Country", "Countries: " & pbi.SubtitleCountry(FACT_ITA, 8),
"Region", "Regions: " & pbi.SubtitleRegion(FACT_ITA, 8),
BLANK()
)
If this answer helped, please click Kudos or Accept as Solution.
-Kedar
LinkedIn: https://www.linkedin.com/in/kedar-pande
Hi @Marcl4
You used the wrong parameter type. Pls change the type of SourceColumn to anyref, as below:
DEFINE
FUNCTION pbi.Subtitle = (
SourceTable : table expr,
SourceColumn : anyref,
MaxItems : scalar
)
=>
VAR BaseTable =
FILTER(
SUMMARIZE(
SourceTable,
SourceColumn,
"Cnt", [#Projects]
),
[Cnt] > 0
)
Did I answer your question? If yes, pls mark my post as a solution and appreciate your Kudos !
Thank you~
Hii @Marcl4
In DAX UDFs you cannot pass a column reference as a parameter.
UDF parameters only accept expressions, not real column metadata, so functions like SUMMARIZE, GROUPBY, SELECTCOLUMNS, etc. cannot use a parameter in place of a column name. This is a current limitation of DAX: column arguments must be hard-coded inside the function body.
To achieve dynamic behavior, you must either:
write separate UDFs for each column, or
redesign the logic to work on values (e.g., using VALUES() or SELECTEDVALUE()), not structural column references.
There is no workaround today to dynamically inject a column into SUMMARIZE via a UDF parameter.
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
| User | Count |
|---|---|
| 19 | |
| 10 | |
| 9 | |
| 4 | |
| 4 |
| User | Count |
|---|---|
| 31 | |
| 31 | |
| 20 | |
| 12 | |
| 12 |