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

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
Anonymous
Not applicable

DAX FILTER SYNTAX

Hello all , 

I need your help please

I  have two tables - orders and products category 

products culumns  category , sub_category ,  product_id  ( product_id  can be in many sub_categories)

orders culumns - cust_id , order_date ,product_id , category , sub_category 

 

how can I create a measure that showes only orders of products that have more than one sub_category ?

6 REPLIES 6
Anonymous
Not applicable

Why do both of your tables have fields "category" and "sub_category"? Is it not enough to store these is the Products dimension?

Best
D
Anonymous
Not applicable

no ...i need it to create a relation between the tables so on could filter the other

Anonymous
Not applicable

You can't create a relationship between 2 tables on many columns. Secondly, slicing Orders by category and sub_category should be carried out via Products where these columns (should) reside. Please note that slicing should NEVER be done directly on a fact table, only via dimensions. If you don't follow the rules, you'll be sorry rather sooner than later. Even better, you'll be creating complex and potentially slow DAX which at times will return wrong results without you even realizing this.

 

Consider yourself warned (for your own good).

 

Best

D

Anonymous
Not applicable

By the way... If your products belong to many subcategories, then you should have a hidden bridge table from ProductId to SubcategoryId which will join to Products and Subcategories on both sides and slicing should be then performed via Products and/or Subcategories.

Best
D
Anonymous
Not applicable

The filter is by the category (pk)

 

anyone knowes how to create this DAX ?

Greg_Deckler
Super User
Super User

Something along the lines of:

 

Measure =
  VAR __Products = 
    FILTER(
      GROUPBY(
        'products culumns',
        [product_id],
        "Count",COUNTX(CURRENTGROUP(),[sub_category])
      ),
      [Count]>1
    )
RETURN
  <some calculation where FILTER('orders culumns',[product_id] IN __Products) >
  


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Power BI Cookbook Third Edition (Color)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!