Twice a year, a two-week window for department-transfer preferences buried a support inbox in emails and hand-entry. This is the rebuild: self-service intake, automated notifications, an automated seniority/eligibility lookup, and a provenance archive that holds up if the union asks questions.
' Attach current seniority by matching the M365 identity captured on submission
=XLOOKUP([@Identity], SeniorityRoster[M365 ID], SeniorityRoster[Seniority Rank], "Not found")
' Flag anyone still inside the 365-day move-hold freeze
=IF([@Identity] = "", "",
IF(DATEDIF(XLOOKUP([@Identity], MoveLog[M365 ID], MoveLog[Last Move Date], TODAY()-366), TODAY(), "d") < 365,
"FROZEN until " & TEXT(XLOOKUP([@Identity], MoveLog[M365 ID], MoveLog[Last Move Date], TODAY()) + 365, "mm/dd/yyyy"),
"Eligible"))
' Keep only the latest submission per employee once the window locks
=MAXIFS(Submissions[Timestamp], Submissions[Identity], [@Identity])
' … then filter Submissions[Timestamp] = the MAXIFS result for that identity