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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

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
Super User
Super User

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
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

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