Skip to main content
cancel
Showing results for 
Search instead 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

Reply
TL5866
Frequent Visitor

CALCULATETABLE on ALL(Table) not filtered

Hi,

 

I want to create a table containing (independent of the context) all rows of a table, but filtered on a column. A straighforward way is to use FILTER:

 

MyFilteredTable = FILTER(ALL(MyTable), MyColumn = "MyValue")

My undrstanding is that I could have used CALCULATETABLE with similar results:

 

 

MyCalculatedTable = CALCULATETABLE(ALL(MyTable), MyColumn = "MyValue")

However, the resulting table is not filtered, which might be indeed correct if one consider that the filter is applied before the evaluation of ALL(MyTable).

 

 

Now using a variable should solve that, as I'm sure it will be evaluated before the CALCULATETABLE

 

VAR AllMyTable = ALL(MyTable)
MyCalculatedTable = CALCULATETABLE(AllMyTable, MyColumn = "MyValue")

That is not the case: MyCalculateTable still return on non-filtered table.

Am I missing anything ?

 

Note: I want to use CALCULATETABLE because I have actually a set of values to filter on (like VALUES(MyColumn)), which is not supported by FILTER.

 

2 ACCEPTED SOLUTIONS

The filter portion of calculatetable always gets applied first, then the first parameter. It is not important if the first parameter is a variable or a native formula inside calculatetable in this case. You are first applying a filter and then removing it with all. 

 

Maybe this

 

calculatetable(mytable,filter(all(mytable),mytable[mycolumn]=“myvalue”))



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

View solution in original post


@TL5866 wrote:

Thanks. I was expecting that.

 

Then how would you suggest to do something like this, which is not supported by FILTER ?

MyFilteredTable = FILTER(ALL(MyTable), VALUES(MyColumn))

 


MyFilteredTable = calculatetable(mytable,ALL(MyTable), VALUES(MyColumn))



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

View solution in original post

4 REPLIES 4

The filter portion of calculatetable always gets applied first, then the first parameter. It is not important if the first parameter is a variable or a native formula inside calculatetable in this case. You are first applying a filter and then removing it with all. 

 

Maybe this

 

calculatetable(mytable,filter(all(mytable),mytable[mycolumn]=“myvalue”))



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

Thanks. I was expecting that.

 

Then how would you suggest to do something like this, which is not supported by FILTER ?

MyFilteredTable = FILTER(ALL(MyTable), VALUES(MyColumn))

 


@TL5866 wrote:

Thanks. I was expecting that.

 

Then how would you suggest to do something like this, which is not supported by FILTER ?

MyFilteredTable = FILTER(ALL(MyTable), VALUES(MyColumn))

 


MyFilteredTable = calculatetable(mytable,ALL(MyTable), VALUES(MyColumn))



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

Aaah, right...

 

Thanks !!

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

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

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

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

Top Kudoed Authors