Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hello all,
Context
I have a table with a column named "Answer"
I want to measure the average of all numerical answer.
Because, see, some answer are numerical and some answer are textual, but because of that, they're all considered as "text" by default by Power BI.
Approach
To do so, I tried to:
Wich resulted in the following expresson:
measure = AVERAGEX ( FILTER(ALL(data) ; data[Type_Question] = "Numerical_Question" ) ; VALUE([Answer]) )
Hi @Anonymous,
Based on test, it may caused by the null value in your data, you could refer to below steps:
Sample data:
Create below measure:
measure = AVERAGEX ( FILTER(ALL(data),data[Type_Question] = "Numerical_Question"&&'data'[Answer]<>BLANK()), VALUE([Answer]))
Result:
You could also download the pbix file to have a view.
Regards,
Daniel He
Hello Daniel,
thank you for your answer, but it is still not working.
You are right, I suspected some null values here, because there are.. but I know for sure that the condition in my filter is sufficient to filter out all non numerical value.
Nevertheless, I tried your condition and I still get the same error.
To me, the problem is that the VALUE() function doesn't apply only on the filtered values (no matter the condition stated), but to all rows of my 'data' table..
How can I refer to my filtered table instead?
something like :
VALUE(data_filtered[Answer])
You see my point?
Hi @Anonymous,
Could you please share some sample data to have a test?
Regards,
Daniel He
Hello Daniel,
Question | Answer | Type |
Question 1 | 5 | Numerical |
Question 2 | 3 | Numerical |
Question 3 | YES | Other |
Here you have a sample.
My goal is to have the average of all the numerical values.
Please note there are no empty Answer value in the filtered table, I checked it.
You do have empty rows in the full table though, that's the key element here.
I found a turnaround for this problem and I changed the query as suggested, in order to filter the 'Answer' column and format it prior to doing any DAX.
It work fine.. but I don't want to do this. I want to be able to filter it with DAX.
Given what I said earlier, it seems that the VALUE() function doesn't apply on my filtered table.. but on the full table, which have empty values.
If you have any other solutions I'm willing to hear it.
Have a nice day
You cannot mix data types in the same column like you do with your Answer. So it will default to text in this case, and you cannot average text. Easiest thing to do is in Power Query, Reference the Main query, but filter down to just Numerical and then a simple average function over that answer column after you change the data type to a numerical one. I guess you could create a new column in the same table to only give a number, but why make it more complicated then it needs be?
actually if you put the following as a new column in Power Query, it works as well
Hello Nick,
I understand that you can't mix data type.
But one should be able to convert the rows of a filtered table only right?
I don't want to change the query because, I will need to realize different measures from the non-numerical answers in the future.
And then I would have to change the query again to filter what I want.. it's unpractical.
I could create a column and convert non-numerical answer to numerical answer by changing the scale, but I want to avoid touching the data as much as possible here.
I want to encapsulate the whole complexity of this operation (which is not very complex actually.. ) in the DAX measure.
I dont think you can change the data type via a measure. But what if you add the following as a custom column to your query?
Then just a measure of:
Avg of Numerical = AVERAGE(Table1[Custom] )
can you post some sample data? Sounds like it would be much easier to these transformations in Power Query and then write some simple dax...
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
112 | |
97 | |
85 | |
67 | |
59 |
User | Count |
---|---|
150 | |
120 | |
99 | |
87 | |
68 |