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

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

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
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

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

June 2025 community update carousel

Fabric Community Update - June 2025

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