cancel
Showing results for
Did you mean:

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Frequent Visitor

Formula Explanation

Hi,
Can someone explain to me what this formula does -

ID Count = COUNTROWS(DISTINCT(SELECTCOLUMNS('Fact 1', "ID Column", RELATED('Dim 2 '[ID Column]))))

From what I understand, we are picking distinct values of the ID attribute from Dim 2 table, but only those relevant to having data in the fact 1 table). Is this correct?

1 ACCEPTED SOLUTION
Community Support

Hi @Rdarshana ,

I created a sample pbix file(see the attachment), you can find the details in it. And for below formula, it will return the count of ID in the table 'Fact 1' which ID also in the dimenison table 'Dim 2'. However, it will also include the IDs in 'Fact 1' table which not exist in the table 'Dim 2' as blank values. All these blank values count as 1. Please check the below screenshot:

``ID Count = COUNTROWS(DISTINCT(SELECTCOLUMNS('Fact 1', "ID Column", RELATED('Dim 2 '[ID Column]))))``

So you can update the forumula as below to get the correct count of ids.

``````ID Count_new =
COUNTROWS (
FILTER (
DISTINCT (
SELECTCOLUMNS ( 'Fact 1', "ID Column", RELATED ( 'Dim 2'[Dim ID] ) )
),
[ID Column] <> BLANK ()
)
)``````

Best Regards

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
5 REPLIES 5
Community Support

Hi @Rdarshana ,

I created a sample pbix file(see the attachment), you can find the details in it. And for below formula, it will return the count of ID in the table 'Fact 1' which ID also in the dimenison table 'Dim 2'. However, it will also include the IDs in 'Fact 1' table which not exist in the table 'Dim 2' as blank values. All these blank values count as 1. Please check the below screenshot:

``ID Count = COUNTROWS(DISTINCT(SELECTCOLUMNS('Fact 1', "ID Column", RELATED('Dim 2 '[ID Column]))))``

So you can update the forumula as below to get the correct count of ids.

``````ID Count_new =
COUNTROWS (
FILTER (
DISTINCT (
SELECTCOLUMNS ( 'Fact 1', "ID Column", RELATED ( 'Dim 2'[Dim ID] ) )
),
[ID Column] <> BLANK ()
)
)``````

Best Regards

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Frequent Visitor

Frequent Visitor

Thanks Matt.
The Dim ID in this screenshot above is not the primary key, but another attribute (ID).
I will need to test the other calcs to see if that works.

if it's not the primary key, just insert the VALUES function inside the countrows function

COUNTROWS(VALUES(table[column]))

* Matt is an 8 times Microsoft MVP (Power BI) and author of the Power BI Book Supercharge Power BI.

That's what it looks like to me, but it also looks overly complex. Assuming Dim ID in dim 2 is the primary key, this should work.

``````ID Count = calculate(countrows('Dim 2 '),'Fact 1')

Or this next version is a bit easier to understand

Calculate(countrows('Dim 2'),crossfilter(fact1[key],DIM2[key],BOTH))``````

They both do the same thing; force the fact table to filter the Dim table based on the existence of matching data in the fact table.

* Matt is an 8 times Microsoft MVP (Power BI) and author of the Power BI Book Supercharge Power BI.

Announcements

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

Fabric Community Update - August 2024

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

Top Solution Authors
Top Kudoed Authors