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

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

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
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Fabric Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

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.