Forum Discussion
jesuisbenjamin
Advocate I
10 years agoCalculate with OR/AND/NOT in filter
It's unclear to me how I can use FILTER() in a CALCULATE() function, and apply an AND / OR / NOT logic. Could you please refer to an existing help page or give examples here below? Thanks.
- 10 years ago
I’ll give an example as below. Assuming we have a table like below.
If we want to get the total sales of China on July, we can use following formula.
SalesFromChina_July = CALCULATE ( SUM ( Table1[Sales] ), FILTER ( Table1, AND ( Table1[Country] = "China", MONTH ( Table1[Date] ) = 7 ) ) )If we want to get the total sales of China and USA on July and August, we can use following formula.
SalesFromChina_OR_USA = CALCULATE ( SUM ( Table1[Sales] ), FILTER ( Table1, OR ( Table1[Country] = "China", Table1[Country] = "USA" ) ) )If we want to get the total sales of India on July and August, we can use following formula.
SalesFromIndia = CALCULATE ( SUM ( Table1[Sales] ), FILTER ( Table1, NOT ( OR ( Table1[Country] = "China", Table1[Country] = "USA" ) ) ) )Best Regards,
Herbert
v-haibl-msft
Microsoft Employee
10 years ago
I’ll give an example as below. Assuming we have a table like below.
If we want to get the total sales of China on July, we can use following formula.
SalesFromChina_July =
CALCULATE (
SUM ( Table1[Sales] ),
FILTER ( Table1, AND ( Table1[Country] = "China", MONTH ( Table1[Date] ) = 7 ) )
)If we want to get the total sales of China and USA on July and August, we can use following formula.
SalesFromChina_OR_USA =
CALCULATE (
SUM ( Table1[Sales] ),
FILTER ( Table1, OR ( Table1[Country] = "China", Table1[Country] = "USA" ) )
)
If we want to get the total sales of India on July and August, we can use following formula.
SalesFromIndia =
CALCULATE (
SUM ( Table1[Sales] ),
FILTER (
Table1,
NOT (
OR ( Table1[Country] = "China", Table1[Country] = "USA" )
)
)
)Best Regards,
Herbert
ukare1996
Helper I
3 years agoHi, can someone please help me understand why my query is not working as it should be? I am trying to Count number of rows where the field is not equal to "None" and Blanks are not counted in. The query below seems to only take into account one of the filters.
Monitor 1 - Action taken by customer =
CALCULATE(
COUNT('Network protection '[Monitor 1 - Action taken by customer]),
FILTER('Network protection ', OR('Network protection'[Monitor 1 - Action taken by customer] <> "None", NOT(ISBLANK('Network protection' [Monitor 1 - Action taken by customer])))))