Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Next up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now

Reply
JellyFish310
Frequent Visitor

Visual "Matrix" with data in cells

Looking for some help. I have data that looks like this:

GroupOrgCriteriaStatus
Group 1Team 1101R
Group 1Team 1102Y
Group 1Team 2103G
Group 1Team 3104G
Group 2Team 4105G
Group 2Team 4106Y
Group 2Team 4107R
Group 2Team 4108G
Group 2Team 5109R
Group 2Team 5110C
Group 3Team 6111Y
Group 3Team 7112R
Group 3Team 8113G

 

With that data i'm trying to make a visual that looks like a "matrix" but shows different number of "columns" - the number of Criteria for each Group/Team combination. Something like this:

 

GroupOrg    
Group 1Team 1101102  
Group 1Team 2103   
Group 1Team 3104   
Group 2Team 4105106107108
Group 2Team 5109110  
Group 3Team 6111   
Group 3Team 7112   
Group 3Team 8113   

 

In this case, the full columns are irelevent, but there are "different" numbers of "columns" for each row depending on the number of Criteira for each Team/Group combination.

 

Also, the indivial cells (the Criteria Numbers) should be conditional formatted based on the Status value.

 

Anyone have any thoughts on how to accomplish this in one visual, which could be filtered using a slicer?

2 ACCEPTED SOLUTIONS
danextian
Super User
Super User

Hi @JellyFish310 

 

Add a column that ranks your criteria within their own group and org. Add another column to repeat an invisible character based on those rank numbers - this will be used as the column header.

Index Within Group Org = 
RANKX (
    FILTER (
        'Table',
        'Table'[Group] = EARLIER ( 'Table'[Group] )
            && 'Table'[Org] = EARLIER ( 'Table'[Org] )
    ),
    'Table'[Criteria],
    ,
    ASC,
    DENSE
)

------------------

Invisible Index = 
REPT ( UNICHAR ( 8203 ), 'Table'[Index Within Group Org] )

danextian_0-1768303392902.png

danextian_1-1768303430630.png

 

 

Please see the attached pbix.





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.

View solution in original post

the index/rank approach will put the criteria into individual cells. there is a pbix attached in my first response.





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.

View solution in original post

10 REPLIES 10
v-nmadadi-msft
Community Support
Community Support

Hi @JellyFish310 

May I check if this issue has been resolved? If not, Please feel free to contact us if you have any further questions.


Thank you

v-nmadadi-msft
Community Support
Community Support

Hi @JellyFish310 

I wanted to check if you had the opportunity to review the information provided by @danextian , @Ashish_Mathur . Please feel free to contact us if you have any further questions.


Thank you.

Ashish_Mathur
Super User
Super User

Hi,

PBI file attached.

Hope this helps.

Ashish_Mathur_0-1768347321414.png

 


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
danextian
Super User
Super User

Hi @JellyFish310 

 

Add a column that ranks your criteria within their own group and org. Add another column to repeat an invisible character based on those rank numbers - this will be used as the column header.

Index Within Group Org = 
RANKX (
    FILTER (
        'Table',
        'Table'[Group] = EARLIER ( 'Table'[Group] )
            && 'Table'[Org] = EARLIER ( 'Table'[Org] )
    ),
    'Table'[Criteria],
    ,
    ASC,
    DENSE
)

------------------

Invisible Index = 
REPT ( UNICHAR ( 8203 ), 'Table'[Index Within Group Org] )

danextian_0-1768303392902.png

danextian_1-1768303430630.png

 

 

Please see the attached pbix.





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.

Another approach is to simply concatenate your criteria

Concatenated criteria = 
CONCATENATEX (
    'Table',
    'Table'[Criteria],
    " ",
    CALCULATE ( SELECTEDVALUE ( 'Table'[Criteria] ) )
)

danextian_3-1768303687805.png

 





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.

Thanks for your response. I understand how to do a simple concatenation to list the "criteria numbers" in one measure.

 

The kicker is that i absolutely need the conditional formatting (preferably the background) based on the "Criteria Status."

 

I doubt with the concat, or rank, method this is possible?

the index/rank approach will put the criteria into individual cells. there is a pbix attached in my first response.





Dane Belarmino | Microsoft MVP | Proud to be a Super User!

Did I answer your question? Mark my post as a solution!


"Tell me and I’ll forget; show me and I may remember; involve me and I’ll understand."
Need Power BI consultation, get in touch with me on LinkedIn or hire me on UpWork.
Learn with me on YouTube @DAXJutsu or follow my page on Facebook @DAXJutsuPBI.
BhavinVyas3003
Super User
Super User

For matrix visuals, The column structure is generaly fixed.

The other way to handle this is by creating a dynamic index or rank for Criteria within each Group and Team. This index should update automatically whenever the data refreshes.You then use this index as the matrix column. 


Thanks,
Bhavin
Problem solved? Hit “Accept as Solution” and high-five me with a Kudos! Others will thank you later!
rohit1991
Super User
Super User

Hii @JellyFish310 

 

Power BI does not support a matrix with a variable number of columns per row.The recommended approach is to keep the data in long format and use a Table visual with a DAX measure that concatenates criteria horizontally per Group/Team. Conditional formatting can be embedded in the measure (or via SVG) to reflect status. This solution works with slicers and avoids unsupported matrix behavior.


Did it work? ✔ Give a Kudo • Mark as Solution – help others too!

Thanks, that's what I was expecting.


I know how to concatenate the data in a measure, do have any resources on how to conditional format within that measure (the non-SVG way)?

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.