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

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
kanielwang
Regular Visitor

FILTER fuction in CALCULATE causes ALL function not working

TotalOpenOrderAmount1 = CALCULATE	([OrderAmount]-[ShippedAmount],
				ALL(CalendarDate),
				OrderLineDetail[Status]="Open")

TotalOpenOrderAmount2 = CALCULATE	([OrderAmount]-[ShippedAmount],
				ALL(CalendarDate),
				Filter(OrderLineDetail,OrderLineDetail[Status]="Open")
				)

TotalOpenOderAmount1 can be measured as expected.

But TotalOpenOrderAmount2 is still affected by Calendar filters on the report.

Why is that? Can someone help to explain it?

2 REPLIES 2
Anonymous
Not applicable

When you use a table name in a table function, you are in fact referring to the table as it's seen in the current filter context. So, Filter( Table, ...) sees Table as it's filtered, not the whole table. Hence you filter Table which is already filtered by the other filters.

Understandable?

Remember that
calculate(
[...],
Table[Col] = "value"
)
is syntactic sugar for
calculate(
[...],
filter(
ALL ( Table[Col] ),
Table[Col] = "value"
)
)
which is very much different from
calculate(
[...],
filter(
values ( Table[Col] ),
Table[Col] = "value"
)
)
and the latter is equivalent to
calculate(
[...],
keepfilters( Table[Col] = "value" )
)

Best
Darek
AlB
Community Champion
Community Champion

hi @kanielwang 

Try this. It's the equivalent of TotalOpenOrderAmount1

 

TotalOpenOrderAmount2 = CALCULATE	([OrderAmount]-[ShippedAmount],
				ALL(CalendarDate),
				Filter(ALL(OrderLineDetail[Status]),OrderLineDetail[Status]="Open")
				)

 

Helpful resources

Announcements
March PBI video - carousel

Power BI Monthly Update - March 2025

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

March2025 Carousel

Fabric Community Update - March 2025

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

Top Kudoed Authors