There is so much content out there on DAX that easy to assume it’s the solution to everything…when instead you should always ask yourself the question: What am I trying to do and why?
In this case you are creating an attribute for analysis. Generally speaking attributes are created for slicing and dicing, they simplify the DAX needed to perform calculations and increase performance. So if something is static then more often than not I will try my hardest to get PQ to do it.
Pushing transformations as far back to the source, is just a best practice.
If the information is available at the source OR can be computed at the source, you should get it there. ETL transformations (in PQ) have an impact on datamodel refresh time but if that’s scheduled in the Service will mostly go by unnoticed.
A Calculated column can only be computed after all the data is loaded in the model, compression therefore can be lower, meaning it’s bigger in memory and that has a negative impact on performance.
So there’s a cost of having DAX doing a lot of the heavy lifting, be it performance, troubleshooting, maintenance, etc.
Just something to keep in mind, I guess.
Measures return scalar values and can’t be used as attributes for slicing and dicing. So the correct answer here is: it depends on how you would want to use that measure…
I hope this is helpful.