Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Conditional format based on start and end date

Hi,   I need to shade/conditional format the days of the week based on start and end date as below. Scheduled Start date and scheduled End date are calculated columns generting dates that exclude ...
  • MFelix's avatar
    MFelix
    6 years ago

    Hi Anonymous ,

     

    Regarding your questions you can do the following:

     

    More than 1 week

    Create a measure:

    Number of days = SUMX('Table';DATEDIFF('Table'[Schedule Start date];'Table'[Schedule End date];DAY)) + 1

     

    Adjust your previous measure to:

    Day of the week calculation = 
    IF (
        [Number of days] > 7;
        1;
        IF (
            WEEKDAY ( MAX ( 'Table'[Schedule Start Date] ); 1 ) > MAX ( 'Weekdays'[ID] )
                || WEEKDAY ( MAX ( 'Table'[Schedule End Date] ); 1 ) < MAX ( 'Weekdays'[ID] );
            0;
            1
        )
    )

    Assuming you want to have all days ocupied correct?

     

    Making use of a table

    Instead of making a measure make one for each of the weekdays and place them on your table then use the same condittional formatting.

    Monday = 
    IF (
        [Number of days] > 7;
        1;
        IF (
            WEEKDAY ( MAX ( 'Table'[Schedule Start Date] ); 1 ) > 2
                || WEEKDAY ( MAX ( 'Table'[Schedule End Date] ); 1 ) < 2;
            0;
            1
        )
    )
    
    Tuesday = 
    IF (
        [Number of days] > 7;
        1;
        IF (
            WEEKDAY ( MAX ( 'Table'[Schedule Start Date] ); 1 ) > 3
                || WEEKDAY ( MAX ( 'Table'[Schedule End Date] ); 1 ) < 3;
            0;
            1
        )
    )
    
    Wednesday = 
    IF (
        [Number of days] > 7;
        1;
        IF (
            WEEKDAY ( MAX ( 'Table'[Schedule Start Date] ); 1 ) > 4
                || WEEKDAY ( MAX ( 'Table'[Schedule End Date] ); 1 ) < 4;
            0;
            1
        )
    )
    
    Thursday = 
    IF (
        [Number of days] > 7;
        1;
        IF (
            WEEKDAY ( MAX ( 'Table'[Schedule Start Date] ); 1 ) > 5
                || WEEKDAY ( MAX ( 'Table'[Schedule End Date] ); 1 ) < 5;
            0;
            1
        )
    )
    
    Friday = 
    IF (
        [Number of days] > 7;
        1;
        IF (
            WEEKDAY ( MAX ( 'Table'[Schedule Start Date] ); 1 ) > 6
                || WEEKDAY ( MAX ( 'Table'[Schedule End Date] ); 1 ) < 6;
            0;
            1
        )
    )

     

    Check PBIX file attach with both options.

     

    Regards,

    MFelix