Forum Discussion
Dynamic change in X Axis
- 9 years ago
Hi singhal14
Here's one idea of how it can be done using a bridging table.
Could well be other ways of handling this :)
- Assuming you have Region and Year lookup tables, create a RegionYear table which is the cross product of Region & Year tables.
- Duplicate each row of RegionYear and add an Axis Dimension column which is "Region" for half the rows and "Year" for the other half, and an Axis Value column which is the Region or Year value for each row (depending on the Axis Dimension value).
- Relate Year and Region to RegionYear using inactive bidirectional relationships:
- Create an Axis Dimension Selected measure to harvest the value of Axis Dimension. Something equivalent to this (this guards against multiple selection):
Axis Dimension Selected = IF ( ISFILTERED ( RegionYear[Axis Dimension] ), IF ( CALCULATE ( HASONEVALUE ( RegionYear[Axis Dimension] ), ALLSELECTED () ), VALUES ( RegionYear[Axis Dimension] ) ) ) - Create a Sales Amount Flexible Axis measure like this (assuming Sales Amount is the normal measure):
Sales Amount Flexible Axis = IF ( NOT ( ISBLANK ( [Axis Dimension Selected] ) ), SWITCH ( [Axis Dimension Selected], "Region",
CALCULATE ( [Sales Amount], USERELATIONSHIP ( RegionYear[Region], Region[Region] ) ), "Year",
CALCULATE (
[Sales Amount],
USERELATIONSHIP ( RegionYear[Year], 'Year'[Year] )
) )
) - Then you can create visualizations using RegionYear[Axis Value] and [Sales Amount Flexible Axis]
Hi Anonymous,
Thanks for Reaching out.
I am aware about that power bi does not support this feature.
But if we try it with using DAX funtions, may be we can achieve it.
I need your suggestions can we do it by using DAX Functions and if the answer is YES then what would be the approach?
Thanks,
Akash Singhal
Hi singhal14,
You can use dax to write a measure which can work with the slicer, but you can't use dax to create a dynamic column.(measure can't drag to axis field)
Sample:
Measure to get the slicer value:
Selected Value = if(HASONEVALUE('Table 2'[Type]),VALUES('Table 2'[Type]),BLANK())
Calculate column:
Measure:
Regards,
Xiaoxin Sheng