cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
grbs
Frequent Visitor

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.example.png I would like the formula to return true at every instance of a date match within range.
1 ACCEPTED SOLUTION
MFelix
Super User
Super User

Hi @grbs ,

 

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:

MFelix_0-1669920320593.png

 


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

3 REPLIES 3
MFelix
Super User
Super User

Hi @grbs ,

 

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:

MFelix_0-1669920320593.png

 


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



grbs
Frequent Visitor

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

grbs
Frequent Visitor

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.

Helpful resources

Announcements
Winner of T-Shirt Design

Power BI T-Shirt Design Challenge 2023

Find out who won the T-Shirt Design Challenge and the top 3 finalists.

March 2023 Update3

Power BI March 2023 Update

Find out more about the March 2023 update.