Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Conditional Formatting Workaround for Dates

Hi - I currently have a table that is aggregated by date in the columns and a text label as the rows. I have another table (Deals and Coupons) that has those same text labels and returns deal dates according to which items we had on a deal and when. I would like for this formula to return the conditional formatting for every deal that occured in the table, but I have only made it able to work by taking the max aka last deal date in the list. Any ideas how to get around this?

Deal Format = if(and(SELECTEDVALUE('Calendar'[Date])>=MAX('Deals and Coupons'[Coupon Start Date]),SELECTEDVALUE('Calendar'[Date])<=MAX('Deals and Coupons'[Coupon End Date])),"#A9F099"
 
I've included an example of what is curretly happening vs desired result. The current result is using this MAX() formula above. I would like the formula to return true at every instance of a date match within range.
  • Hi Anonymous ,

     

    Try the following code:

    Deal format =
    VAR tempTable =
        FILTER (
            'Deals and Coupons',
            'Deals and Coupons'[Coupon Start Date] <= SELECTEDVALUE ( 'Calendar'[Date] )
                && 'Deals and Coupons'[Coupon End Date] >= 'Deals and Coupons'[Coupon End Date]
        )
    VAR MiNIMuMDATE =
        MINX ( tempTable, 'Deals and Coupons'[Coupon Start Date] )
    VAR MAXIMUMDATE =
        MAXX ( tempTable, 'Deals and Coupons'[Coupon End Date] )
    RETURN
        IF (
            AND (
                SELECTEDVALUE ( 'Calendar'[Date] ) >= MiNIMuMDATE,
                SELECTEDVALUE ( 'Calendar'[Date] ) <= MAXIMUMDATE
            ),
            "#A9F099"
        )

     

    In this case for testing I added a new line for the discounts that was in the middle of the period so that I could see if everything was being picked up:

     

3 Replies

  • Hi Anonymous ,

     

    Try the following code:

    Deal format =
    VAR tempTable =
        FILTER (
            'Deals and Coupons',
            'Deals and Coupons'[Coupon Start Date] <= SELECTEDVALUE ( 'Calendar'[Date] )
                && 'Deals and Coupons'[Coupon End Date] >= 'Deals and Coupons'[Coupon End Date]
        )
    VAR MiNIMuMDATE =
        MINX ( tempTable, 'Deals and Coupons'[Coupon Start Date] )
    VAR MAXIMUMDATE =
        MAXX ( tempTable, 'Deals and Coupons'[Coupon End Date] )
    RETURN
        IF (
            AND (
                SELECTEDVALUE ( 'Calendar'[Date] ) >= MiNIMuMDATE,
                SELECTEDVALUE ( 'Calendar'[Date] ) <= MAXIMUMDATE
            ),
            "#A9F099"
        )

     

    In this case for testing I added a new line for the discounts that was in the middle of the period so that I could see if everything was being picked up:

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi MFelix - thank you so much! This worked perfectly.

      • Anonymous's avatar
        Anonymous
        Not applicable

        Hey MFelix any idea how I can alter this formula to be used as a column value for a slicer? I would like to have a column that I can slice "coupon" or "no coupon" by.