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

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

Reply
powergreen24
New Member

Creating a Decision Matrix

I have two excel files that I'm trying to use to create a decision matrix. The first would contain information about a clients criteria for buying a home (Min # of Bedrooms, Bathrooms, Sqft, etc.). The second file would contain a list of properties in the area and their specifications (The house on 2389 Wayne Street has 3 Baths, 5 Bedrooms, and is 3,000 sqft, etc.).

 

The powerbi visual would have a slicer with each clients name so that when I click "Client 1", the table with the properties information would be filtered to only show those that meet the clients minimum criteria. I've tried to accomplish this a few different way without success (relationships in the data model, filtering, etc.), would appreciate any suggestions! 

 

Property Decision Matrix.pbix

2 ACCEPTED SOLUTIONS
johnt75
Super User
Super User

You could create a bridge table using

Matching Properties = SELECTCOLUMNS(
	GENERATE(
		'Client Data',
		FILTER(
			'Properties Data',
			'Properties Data'[Attached Garage] = 'Client Data'[Attached Garage]
				&& 'Properties Data'[Baths] >= 'Client Data'[Min Baths]
				&& 'Properties Data'[Media Room] = 'Client Data'[Media Room]
				&& 'Properties Data'[Office] = 'Client Data'[Office]
				&& 'Properties Data'[Pool] = 'Client Data'[Pool]
				&& 'Properties Data'[Rooms] >= 'Client Data'[Min Rooms]
				&& 'Properties Data'[Sqft] >= 'Client Data'[Min Sqft]
		)
	),
	"Client Name", 'Client Data'[Name],
	"Property ID", 'Properties Data'[ID]
)

Then create a one-to-many relationship from 'Client Data' to 'Matching Properties' and a many-to-many single direction relationship from 'Matching Properties' to 'Property Data' so that 'Matching Properties' filters 'Property Data'.

 

View solution in original post

MFelix
Super User
Super User

Hi @powergreen24 ,

 

For this you need to create a measure similar to this:

	Filter =
	IF(
		ISFILTERED('Client Data'[Name]),
		COUNTROWS(FILTER(
			'Properties Data',
			'Properties Data'[Baths] >= MIN('Client Data'[Min Baths]) &&
			'Properties Data'[Rooms] >= MIN('Client Data'[Min Rooms]) &&
			'Properties Data'[Sqft] >= MIN('Client Data'[Min Sqft]) &&
			'Properties Data'[Office] = MIN('Properties Data'[Office]) &&
			'Properties Data'[Attached Garage] = MIN('Client Data'[Attached Garage]) &&
			'Properties Data'[Media Room] = MIN('Client Data'[Media Room]) &&
			'Properties Data'[Pool] = MIN('Client Data'[Pool])
		))
	)

 

Be aware the I'm assuming that when the Yes / No fields must be equal:

Now use it on your matrix has  a filter different from blank:

MFelix_0-1734362770480.pngMFelix_1-1734362779007.png

 


Regards

Miguel Félix


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

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

2 REPLIES 2
MFelix
Super User
Super User

Hi @powergreen24 ,

 

For this you need to create a measure similar to this:

	Filter =
	IF(
		ISFILTERED('Client Data'[Name]),
		COUNTROWS(FILTER(
			'Properties Data',
			'Properties Data'[Baths] >= MIN('Client Data'[Min Baths]) &&
			'Properties Data'[Rooms] >= MIN('Client Data'[Min Rooms]) &&
			'Properties Data'[Sqft] >= MIN('Client Data'[Min Sqft]) &&
			'Properties Data'[Office] = MIN('Properties Data'[Office]) &&
			'Properties Data'[Attached Garage] = MIN('Client Data'[Attached Garage]) &&
			'Properties Data'[Media Room] = MIN('Client Data'[Media Room]) &&
			'Properties Data'[Pool] = MIN('Client Data'[Pool])
		))
	)

 

Be aware the I'm assuming that when the Yes / No fields must be equal:

Now use it on your matrix has  a filter different from blank:

MFelix_0-1734362770480.pngMFelix_1-1734362779007.png

 


Regards

Miguel Félix


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

Proud to be a Super User!

Check out my blog: Power BI em Português



johnt75
Super User
Super User

You could create a bridge table using

Matching Properties = SELECTCOLUMNS(
	GENERATE(
		'Client Data',
		FILTER(
			'Properties Data',
			'Properties Data'[Attached Garage] = 'Client Data'[Attached Garage]
				&& 'Properties Data'[Baths] >= 'Client Data'[Min Baths]
				&& 'Properties Data'[Media Room] = 'Client Data'[Media Room]
				&& 'Properties Data'[Office] = 'Client Data'[Office]
				&& 'Properties Data'[Pool] = 'Client Data'[Pool]
				&& 'Properties Data'[Rooms] >= 'Client Data'[Min Rooms]
				&& 'Properties Data'[Sqft] >= 'Client Data'[Min Sqft]
		)
	),
	"Client Name", 'Client Data'[Name],
	"Property ID", 'Properties Data'[ID]
)

Then create a one-to-many relationship from 'Client Data' to 'Matching Properties' and a many-to-many single direction relationship from 'Matching Properties' to 'Property Data' so that 'Matching Properties' filters 'Property Data'.

 

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.