Sure. So I needed two date lists, one that was the 28th of every month and the other end of week for every week. So I have a Google spreadsheet that already has some tabs I use to manage other aspects of this application, so I added two more tabs to represent the two date lists ranging from 2000 - 2100 (no real reason here other than I figured that would set me up for the next 80 years or so).
I added both these tables to my application, and added a virtual column to each table to format the dates how I needed them, in the monthly table MMM YYYY and the weekly table it was just the date.
Then I added a virtual column in my TWUA table that would pull a date range from either the monthly or weekly table based on the [ReportingFrequency] column and would subtract a list of dates contained in the [Related WaterUseDatas] virtual column, resulting in a list of dates that were essentially missing from the [Related WaterUseDatas]. At this time I unfortunately had to add another virtual column that took the list of the reduced date list and just selected the formatted date column.
In the end my virtual column for the reduced date list has an expression like so:
IF([ReportingFrequency] = "Monthly",
SELECT(Mthly_Report_Dates[Date],
AND(
[Date] > EOMONTH([DateOfOrder], -1),
[Date] <= [ExpirationDate],
[Date] <= IF(DAY(TODAY()) > 10, EOMONTH(TODAY(), -1), EOMONTH(TODAY(), -2))
)
) - SORT(UNIQUE([Related WaterUseDatas][Date]), FALSE),
SELECT(Wkly_Report_Dates[Date],
AND(
[Date] > EOMONTH([DateOfOrder], -1),
[Date] <= [ExpirationDate],
[Date] < TODAY()
)
) - SORT(UNIQUE([Related WaterUseDatas][Date]), FALSE)
)
And the other virtual column that pulls the formatted date expression is:
IF([ReportingFrequency] = "Monthly", SELECT(Mthly_Report_Dates[Formatted Date], IN([Date], [Missing Reports])), SELECT(Wkly_Report_Dates[Formatted Date], IN([Date], [Missing Reports])))
Turned out quiet complicated but I needed to identify for each TWUA what the missing reports are whether that is for a TWUA that reports monthly or weekly. In a JS programming environment I would have used a FOR LOOP to generate my list of dates that should be there, rather than introducing the two date tables.