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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
Anonymous
Not applicable

Problems with multiple filter

Dear Friends,
I am new to PBI and finding problems in getting the solution above,
I really don´t know if there is a problem with the logic or with the function itself, 
I have tried with if() function but Dax compiler keeps saying that I am not allowed to do such filter or if condition.
thanks and best regards !
 
testcalculate =
VAR ano =
FORMAT ( YEAR ( MAX ( FatoOpex[Data] ) ) - 3; "####" )
RETURN

CALCULATE(sum(FatoOpex[valor]);

FILTER( FatoOpex;
FatoOpex[exDiretoria] = "0" &&
FatoOpex[DimCalendario.Ano]=ano)
 
||

FILTER(FatoOpex;
FatoOpex[exDiretoria] = "1" &&
FatoOpex[DimNatureza.idNatureza]="7" &&
FatoOpex[DimCalendario.Ano]=ano))
1 ACCEPTED SOLUTION
Iamnvt
Continued Contributor
Continued Contributor

hi,

 

the syntax:

CALCULATE ( <Expression> [, <Filter> [, <Filter> [, … ] ] ] )

treat Filter1, Filter2 with the AND operations.

 

to use the OR operations, you need to use it within the same filter. 

testcalculate =
VAR ano =
    FORMAT ( YEAR ( MAX ( FatoOpex[Data] ) ) - 3; "####" )
RETURN
    CALCULATE (
        SUM ( FatoOpex[valor] );
        FILTER(FatoOpex; 
OR ( FatoOpex[exDiretoria] = "0" && FatoOpex[DimCalendario.Ano] = ano; FatoOpex[exDiretoria] = "1" && FatoOpex[DimNatureza.idNatureza] = "7" && FatoOpex[DimCalendario.Ano] = ano ) )

 

View solution in original post

4 REPLIES 4
jdbuchanan71
Super User
Super User

Give this a try

testcalculate =
VAR ano =
    FORMAT ( YEAR ( MAX ( FatoOpex[Data] ) ) - 3; "####" )
RETURN
    CALCULATE (
        SUM ( FatoOpex[valor] );
        OR (
            FatoOpex[exDiretoria] = "0"
                && FatoOpex[DimCalendario.Ano] = ano;
            FatoOpex[exDiretoria] = "1"
                && FatoOpex[DimNatureza.idNatureza] = "7"
                && FatoOpex[DimCalendario.Ano] = ano
        )
    )
Anonymous
Not applicable

thank you for your try, but have this :

"The expression contains multiple columns, but only a single column can be used in a True/False expression that is used as a table filter expression."

 

 

Iamnvt
Continued Contributor
Continued Contributor

hi,

 

the syntax:

CALCULATE ( <Expression> [, <Filter> [, <Filter> [, … ] ] ] )

treat Filter1, Filter2 with the AND operations.

 

to use the OR operations, you need to use it within the same filter. 

testcalculate =
VAR ano =
    FORMAT ( YEAR ( MAX ( FatoOpex[Data] ) ) - 3; "####" )
RETURN
    CALCULATE (
        SUM ( FatoOpex[valor] );
        FILTER(FatoOpex; 
OR ( FatoOpex[exDiretoria] = "0" && FatoOpex[DimCalendario.Ano] = ano; FatoOpex[exDiretoria] = "1" && FatoOpex[DimNatureza.idNatureza] = "7" && FatoOpex[DimCalendario.Ano] = ano ) )

 

Anonymous
Not applicable

thank you ! it worked fine!


Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors