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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Tavi_
Frequent Visitor

Trying to exclude some slicer values but doesn't work

I'm using those two dax formula's below, but I want to exclude some values in the [FACT] Sales Orders table, like
AUART <> ZSAM
ABGRU <> '01' or '10'
and Order Type = "Standard order" or "Consignment Issue"

 

But when I put those values in a slicer, I see that the outcome of the measure changes. And that is something I dont want. Want am I doing wrong?

 

Sales Orders In Full = 
VAR Orders =
    SUMMARIZE(
        '[FACT] Sales Orders',
        '[FACT] Sales Orders'[Order],
        "InFull",
            VAR ThisOrder = [Order]
            VAR ValidLines =
                FILTER(
                    '[FACT] Sales Orders',
                    '[FACT] Sales Orders'[Order] = ThisOrder &&
                    '[FACT] Sales Orders'[AUART] <> "ZSAM" &&
                    NOT '[FACT] Sales Orders'[ABGRU] IN { "01", "10" } &&
                    '[FACT] Sales Orders'[Order Type] IN { "Standard order", "Consignment Issue" }
                )
            VAR TotalCartons = SUMX(ValidLines,'[FACT] Sales Orders'[Cartons])
            VAR DeliveredCartons = SUMX(ValidLines, '[FACT] Sales Orders'[Sales Delivered Cartons])
            RETURN IF(
                TotalCartons > 0 &&
                ABS(TotalCartons - DeliveredCartons) < 0.0001,
                1,
                0
            )
    )

VAR TotalOrders = COUNTROWS(Orders)
VAR FullOrders = COUNTROWS(FILTER(Orders, [InFull] = 1))

RETURN
    CALCULATE(
        DIVIDE(FullOrders, TotalOrders, 0),
        NOT '[FACT] Sales Orders'[ABGRU] IN { "01", "10" },
        NOT '[FACT] Sales Orders'[AUART] IN { "ZSAM" },
        '[FACT] Sales Orders'[Order Type] IN { "Standard order", "Consignment Issue" }
    )
OTIF = 
VAR Orders =
    SUMMARIZE(
        '[FACT] Sales Orders',
        '[FACT] Sales Orders'[Order],
        "IsOTIF",
            VAR ThisOrder = [Order]
            VAR ValidLines =
                FILTER(
                    '[FACT] Sales Orders',
                    '[FACT] Sales Orders'[Order] = ThisOrder &&
                    NOT '[FACT] Sales Orders'[AUART] IN {"ZSAM"} &&
                    NOT '[FACT] Sales Orders'[ABGRU] IN { "01", "10" } &&
                    '[FACT] Sales Orders'[Order Type] IN { "Standard order", "Consignment Issue" }
                )

            VAR TotalLines = COUNTROWS(ValidLines)
            VAR OnTimeLines = COUNTROWS(FILTER(ValidLines, '[FACT] Sales Orders'[On Time]))

            VAR TotalCartons = SUMX(ValidLines, '[FACT] Sales Orders'[Cartons])
            VAR DeliveredCartons = SUMX(ValidLines, '[FACT] Sales Orders'[Sales Delivered Cartons])

            VAR IsOnTime = IF(TotalLines > 0 && TotalLines = OnTimeLines, 1, 0)
            VAR IsInFull = IF(TotalCartons > 0 && ABS(TotalCartons - DeliveredCartons) < 0.0001, 1, 0)

            RETURN IF(IsOnTime = 1 && IsInFull = 1, 1, 0)
    )

VAR TotalOrders = COUNTROWS(Orders)
VAR OTIFOrders = COUNTROWS(FILTER(Orders, [IsOTIF] = 1))

RETURN
    CALCULATE(
        DIVIDE(OTIFOrders, TotalOrders, 0),
        NOT '[FACT] Sales Orders'[ABGRU] IN { "01", "10" },
        NOT '[FACT] Sales Orders'[AUART] IN { "ZSAM" },
        '[FACT] Sales Orders'[Order Type] IN { "Standard order", "Consignment Issue" }
    )

asadasdasdsds.jpg

 

1 ACCEPTED SOLUTION
Tavi_
Frequent Visitor

Topic can be closed
Solution

OTIF = 
VAR SalesOrdersFiltered =
    CALCULATETABLE(
        '[FACT] Sales Orders',
        REMOVEFILTERS('[FACT] Sales Orders'[AUART]),
        REMOVEFILTERS('[FACT] Sales Orders'[Order Type]),
        REMOVEFILTERS('[FACT] Sales Orders'[ABGRU]),
        '[FACT] Sales Orders'[AUART] <> "ZSAM",
        '[FACT] Sales Orders'[Order Type] IN { "Standard order", "Consignment Issue" },
        NOT '[FACT] Sales Orders'[ABGRU] IN { "01", "10" }
    )

VAR Orders =
    SUMMARIZE(
        SalesOrdersFiltered,
        '[FACT] Sales Orders'[Order],
        "IsOTIF",
            VAR ThisOrder = [Order]
            VAR ValidLines =
                FILTER(
                    SalesOrdersFiltered,
                    '[FACT] Sales Orders'[Order] = ThisOrder
                )

            VAR TotalLines = COUNTROWS(ValidLines)
            VAR OnTimeLines = COUNTROWS(
                FILTER(ValidLines, '[FACT] Sales Orders'[On Time])
            )

            VAR TotalCartons = SUMX(ValidLines, '[FACT] Sales Orders'[Cartons])
            VAR DeliveredCartons = SUMX(ValidLines, '[FACT] Sales Orders'[Sales Delivered Cartons])

            VAR IsOnTime = IF(TotalLines > 0 && TotalLines = OnTimeLines, 1, 0)
            VAR IsInFull = IF(TotalCartons > 0 && DeliveredCartons >= TotalCartons, 1, 0)

            RETURN IF(IsOnTime = 1 && IsInFull = 1, 1, 0)
    )

VAR TotalOrders = COUNTROWS(Orders)
VAR OTIFOrders = COUNTROWS(FILTER(Orders, [IsOTIF] = 1))

RETURN
    DIVIDE(OTIFOrders, TotalOrders, 0)

 

 

View solution in original post

2 REPLIES 2
Tavi_
Frequent Visitor

Topic can be closed
Solution

OTIF = 
VAR SalesOrdersFiltered =
    CALCULATETABLE(
        '[FACT] Sales Orders',
        REMOVEFILTERS('[FACT] Sales Orders'[AUART]),
        REMOVEFILTERS('[FACT] Sales Orders'[Order Type]),
        REMOVEFILTERS('[FACT] Sales Orders'[ABGRU]),
        '[FACT] Sales Orders'[AUART] <> "ZSAM",
        '[FACT] Sales Orders'[Order Type] IN { "Standard order", "Consignment Issue" },
        NOT '[FACT] Sales Orders'[ABGRU] IN { "01", "10" }
    )

VAR Orders =
    SUMMARIZE(
        SalesOrdersFiltered,
        '[FACT] Sales Orders'[Order],
        "IsOTIF",
            VAR ThisOrder = [Order]
            VAR ValidLines =
                FILTER(
                    SalesOrdersFiltered,
                    '[FACT] Sales Orders'[Order] = ThisOrder
                )

            VAR TotalLines = COUNTROWS(ValidLines)
            VAR OnTimeLines = COUNTROWS(
                FILTER(ValidLines, '[FACT] Sales Orders'[On Time])
            )

            VAR TotalCartons = SUMX(ValidLines, '[FACT] Sales Orders'[Cartons])
            VAR DeliveredCartons = SUMX(ValidLines, '[FACT] Sales Orders'[Sales Delivered Cartons])

            VAR IsOnTime = IF(TotalLines > 0 && TotalLines = OnTimeLines, 1, 0)
            VAR IsInFull = IF(TotalCartons > 0 && DeliveredCartons >= TotalCartons, 1, 0)

            RETURN IF(IsOnTime = 1 && IsInFull = 1, 1, 0)
    )

VAR TotalOrders = COUNTROWS(Orders)
VAR OTIFOrders = COUNTROWS(FILTER(Orders, [IsOTIF] = 1))

RETURN
    DIVIDE(OTIFOrders, TotalOrders, 0)

 

 

lbendlin
Super User
Super User

But when I put those values in a slicer, I see that the outcome of the measure changes. And that is something I dont want.

Why not?  That's the purpose of slicers, to impact the measures.   What do your report users expect?

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

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