Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now
I created a User Defines Function and it seems to be working but when I use it in a measure, it is retunring an incorrect value.
Solved! Go to Solution.
It seems you missed a definition of the parameter. Refer to the function code below, please. The function can accept a measure in this way ": anyref expr" rather than considering it as a scalar. Please also refer to doc here https://learn.microsoft.com/en-us/dax/best-practices/dax-user-defined-functions#type
DEFINE
FUNCTION fnFYTDAverage_new = (_measure: anyref expr) =>
AVERAGEX(
DATESYTD(DateTable[Datekey]),
_measure
)
Hi @tomperro ,
Your _Measure argument (PercentDiscussedFYTD_AVG) returns text, not a number because you wrapped it with the FORMAT() function.
In DAX, FORMAT() converts a numeric value into a string (text). When you then try to use that text value inside an iterator like AVERAGEX, DAX treats it as blank or fails implicit conversion leading to incorrect results.
Create a numeric measure (no FORMAT)
PercentDiscussedFYTD_AVG =
AVERAGEX(
DATESYTD('Calendar'[Date], "9/30"),
[~PercentDiscussedWithEmployee]
)
Use that in your function-based measure
DiscussedFYTD = fnFYTDAverage([PercentDiscussedFYTD_AVG])
If you want to show it as a percentage with 2 decimals, format the final measure in the model or in the visual.
DiscussedFYTD =
VAR _Result = fnFYTDAverage([PercentDiscussedFYTD_AVG])
RETURN
FORMAT(_Result, "0.00%")
set the measure’s format string to “0.00%” in the model instead of using FORMAT() in DAX.
If my response as resolved your issue, please accept my response as solution and please give kudos
Thanks,
Dinesh
Hi
Based on a quick look, the DiscussedFYTD should be fnFYTDAverage([~PercentDiscussedWithEmployee]), is this the cause?
Yes, that ls what I have in the pbix, I updated my original post
It seems you missed a definition of the parameter. Refer to the function code below, please. The function can accept a measure in this way ": anyref expr" rather than considering it as a scalar. Please also refer to doc here https://learn.microsoft.com/en-us/dax/best-practices/dax-user-defined-functions#type
DEFINE
FUNCTION fnFYTDAverage_new = (_measure: anyref expr) =>
AVERAGEX(
DATESYTD(DateTable[Datekey]),
_measure
)
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 50 | |
| 33 | |
| 32 | |
| 18 | |
| 17 |
| User | Count |
|---|---|
| 64 | |
| 64 | |
| 41 | |
| 27 | |
| 24 |