Forum Discussion
Date Conditional formatting
- 3 years ago
Try the following code:
Conditional Colour = VAR temptable = TOPN ( 1, 'Table', 'Table'[Last Sale Date], ASC ) VAR DateSelection = MAXX ( temptable, 'Table'[Last Sale Date] ) RETURN SWITCH ( TRUE (), COUNTROWS(temptable) = 0 , BLANK(), DateSelection= BLANK (), "Black", DATEDIFF ( DateSelection, TODAY (), MONTH ) < 1, "Green", DATEDIFF ( DateSelection, TODAY (), MONTH ) < 3, "Light Blue", "Red" )No use the condittional formatting from field value:
- 3 years ago
Hi RDF25087 ,
My bad, should be less than or equal to 1 redo the measure to:
Conditional Colour = VAR temptable = TOPN ( 1, 'Table', 'Table'[Last Sale Date], DESC) VAR DateSelection = MAXX ( temptable, 'Table'[Last Sale Date] ) RETURN SWITCH ( TRUE (), COUNTROWS(temptable) = 0 , BLANK(), DateSelection= BLANK (), "Black", DATEDIFF ( DateSelection, TODAY (), MONTH ) <= 1, "Green", DATEDIFF ( DateSelection, TODAY (), MONTH ) <= 3, "Blue", "Red" )Since the calculation is in months values above 0.5 round to 1and were not considered. You may need to make some more adjustments using rounding or similar but believe this may be enough:
This is how my table data looks. I've added the field format at the top:
| Text | Text | Decimal Number | Decimal Number | DATE |
| Customer | Product | Latitude | Longitude | Last Sale Date |
| Customer A | Product A | 57.145639 | -2.116231 | null |
| Customer A | Product B | 57.145639 | -2.116231 | null |
| Customer A | Product C | 57.145639 | -2.116231 | null |
| Customer B | Product A | 57.115432 | -2.078639 | 15/06/2023 |
| Customer B | Product B | 57.115432 | -2.078639 | 15/06/2023 |
| Customer B | Product C | 57.115432 | -2.078639 | 15/06/2023 |
| Customer B | Product D | 57.115432 | -2.078639 | 15/06/2023 |
| Customer C | Product A | 57.153437 | -2.147753 | 21/04/2023 |
| Customer C | Product B | 57.153437 | -2.147753 | 21/04/2023 |
| Customer C | Product C | 57.153437 | -2.147753 | 21/04/2023 |
| Customer D | Product A | 56.470032 | -2.969002 | 03/01/2022 |
| Customer D | Product B | 56.470032 | -2.969002 | 03/01/2022 |
| Customer D | Product C | 56.470032 | -2.969002 | 03/01/2022 |
| Customer D | Product D | 56.470032 | -2.969002 | 03/01/2022 |
The customer appears multiple times because of the different products. The Last Sale date is just the last date a sale was made to that customer - not for the specific product.
When plotted on a map, the points should be coloured as follows:
| Text | Text | Decimal Number | Decimal Number | DATE | |
| Customer | Product | Latitude | Longitude | Last Sale Date | Map Point Colour |
| Customer A | Product A | 57.145639 | -2.116231 | null | Black |
| Customer A | Product B | 57.145639 | -2.116231 | null | |
| Customer A | Product C | 57.145639 | -2.116231 | null | |
| Customer B | Product A | 57.115432 | -2.078639 | 15/06/2023 | Green |
| Customer B | Product B | 57.115432 | -2.078639 | 15/06/2023 | |
| Customer B | Product C | 57.115432 | -2.078639 | 15/06/2023 | |
| Customer B | Product D | 57.115432 | -2.078639 | 15/06/2023 | |
| Customer C | Product A | 57.153437 | -2.147753 | 21/04/2023 | Blue |
| Customer C | Product B | 57.153437 | -2.147753 | 21/04/2023 | |
| Customer C | Product C | 57.153437 | -2.147753 | 21/04/2023 | |
| Customer D | Product A | 56.470032 | -2.969002 | 03/01/2022 | Red |
| Customer D | Product B | 56.470032 | -2.969002 | 03/01/2022 | |
| Customer D | Product C | 56.470032 | -2.969002 | 03/01/2022 | |
| Customer D | Product D | 56.470032 | -2.969002 | 03/01/2022 |
Thanks for any help.
RDF
Try the following code:
Conditional Colour =
VAR temptable =
TOPN ( 1, 'Table', 'Table'[Last Sale Date], ASC )
VAR DateSelection =
MAXX ( temptable, 'Table'[Last Sale Date] )
RETURN
SWITCH (
TRUE (),
COUNTROWS(temptable) = 0 , BLANK(),
DateSelection= BLANK (), "Black",
DATEDIFF ( DateSelection, TODAY (), MONTH ) < 1, "Green",
DATEDIFF ( DateSelection, TODAY (), MONTH ) < 3, "Light Blue",
"Red"
)
No use the condittional formatting from field value:
- RDF250873 years agoHelper I
MFelix- you Sir, are a legend. Thank you so much for your support with this issue. I couldn't have resolved this on my own.
For my own learning, could you give me an explanation of what your DAX formula does?
Thank you
RDF
- MFelix3 years agoSuper User
Hi RDF25087 ,
First of all there is an error on the formula you need to do a descending and not ascending so that you pick up the latest date and not the first:
Conditional Colour = VAR temptable = TOPN ( 1, 'Table', 'Table'[Last Sale Date], ASC ) VAR DateSelection = MAXX ( temptable, 'Table'[Last Sale Date] ) RETURN SWITCH ( TRUE (), COUNTROWS(temptable) = 0 , BLANK(), DateSelection= BLANK (), "Black", DATEDIFF ( DateSelection, TODAY (), MONTH ) < 1, "Green", DATEDIFF ( DateSelection, TODAY (), MONTH ) < 3, "Light Blue", "Red" )This is the concepts behind the formula:
TOPN ( 1, 'Table', 'Table'[Last Sale Date], ASC ) - Pick up the first row of data from your table so for customer B it would return
Customer B Product A 57.115432 -2.078639 15/06/2023 MAXX ( temptable, 'Table'[Last Sale Date] ) - Select the date in this case 15/06/2023
SWITCH - Make the calculation for the colours using a difference between the previous date and today.