The question is in regards to performance on virtual columns when multiple VCs check the same condition on whether or not to execute a calculation.
The use case is that I currently have at least two VCs that have an IFS() formula checking the same condition to decide if the column value is either null or executes a calculation as follows:
IFS(AND([ReportingFrequency] = "Monthly", TODAY() <= DATE(CONCATENATE(MONTH([ExpirationDate]), "/", DAY([ExpirationDate]), "/", YEAR([ExpirationDate]) +5))), SELECT(Mthly_Report_Dates[Formatted Date], AND( [Date] > EOMONTH([DateOfOrder], -1), [Date] <= [ExpirationDate], [Date] <= [CancellationDate], [Date] <= IF(DAY(TODAY()) > 10, EOMONTH(TODAY(), -1), EOMONTH(TODAY(), -2)) ) ) - SORT(UNIQUE([Related WaterUseDatas][Period]), FALSE) )
The portion I am particularly focusing on is this expression:
TODAY() <= DATE(CONCATENATE(MONTH([ExpirationDate]), "/", DAY([ExpirationDate]), "/", YEAR([ExpirationDate]) +5))
I am wondering if there is a significant performance savings if I would add a VC (Yes/No type) to evaluate this condition first and then reference this VC in the other Virtual Columns. Since I only have two VCs evaluating this condition currently I thought maybe the performance savings would not be as great, but I very likely have the need to evaluate this same expression in another 3 VCs bringing the total to 5. Also, rather than using CONCATENATE() for determining a date that is 5 years after the [ExpirationDate] would it be more efficient to use EOMONTH([ExpirationDate], 60)?
Thank you for any input.