Forum Discussion

bmccaslin's avatar
bmccaslin
Regular Visitor
1 year ago
Solved

Filtering Sales Data Between Friday 5pm - Monday 4am

Hello,     I'm currently looking to filter out sales data that falls between Friday at 5pm and Monday at 4am. Is there a DAX that can accomplish this?
  • techies's avatar
    1 year ago

    Hi bmccaslin please check this

     

    Create a calculated column

     

    Sales_Weekend_Filter =
    VAR SaleDateTime = Sheet2[DateTime]  
    VAR SaleDay = WEEKDAY(SaleDateTime, 2)
    VAR SaleTime = TIME(HOUR(SaleDateTime), MINUTE(SaleDateTime), SECOND(SaleDateTime))

    RETURN
        IF(
            (SaleDay = 5 && SaleTime >= TIME(17, 0, 0)) ||
            (SaleDay = 6) ||
            (SaleDay = 7) ||
            (SaleDay = 1 && SaleTime <= TIME(4, 0, 0)),
            "Exclude",
            "Include"
        )
     
    and the measure 
     
    Filtered_Sales =
    CALCULATE(
        SUM(Sheet2[Sales Amount]),
        Sheet2[Sales_Weekend_Filter] = "Include"
    )
  • v-kpoloju-msft's avatar
    1 year ago

    Hi bmccaslin,
    Thank you for reaching out to the Microsoft fabric community forum. Thank you techies, for your inputs on this issue.

    Calculated Column:

    IsWeekendSalesWindow =
    
    VAR WeekdayNumber = WEEKDAY(Sales[SalesDateTime], 2)  -- Monday=1, Sunday=7
    
    VAR TimeOnly = TIME(HOUR(Sales[SalesDateTime]), MINUTE(Sales[SalesDateTime]), SECOND(Sales[SalesDateTime]))
    
    RETURN
    
        SWITCH(TRUE(),
    
            -- Friday after 5 PM
    
            WeekdayNumber = 5 && TimeOnly >= TIME(17,0,0), TRUE,
    
            -- Saturday anytime
    
            WeekdayNumber = 6, TRUE,
    
            -- Sunday anytime
    
            WeekdayNumber = 7, TRUE,
    
            -- Monday before 4 AM
    
            WeekdayNumber = 1 && TimeOnly < TIME(4,0,0), TRUE,
    
            FALSE
    
        )

    Dax Measure:

    SalesOutsideWeekendWindow =
    CALCULATE(
    SUM(Sales[SalesAmount]),
    FILTER(
    Sales,
    NOT (
    VAR WeekdayNumber = WEEKDAY(Sales[SalesDateTime], 2)
    VAR TimeOnly = TIME(HOUR(Sales[SalesDateTime]), MINUTE(Sales[SalesDateTime]), SECOND(Sales[SalesDateTime]))
    RETURN
    SWITCH(TRUE(),
    WeekdayNumber = 5 && TimeOnly >= TIME(17,0,0),
    TRUE(),
    WeekdayNumber = 6,
    TRUE(),
    WeekdayNumber = 7,
    TRUE(),
    WeekdayNumber = 1 && TimeOnly < TIME(4,0,0),
    TRUE(),
    FALSE()
    )
    )
    )
    )
    

    If this post helps, then please give us ‘Kudos’ and consider Accept it as a solution to help the other members find it more quickly.

    Thank you for using Microsoft Community Forum.