If you are using Analysis i would suggest below expression
Value--> PrevVal('TagName', shiftimechange)
Great solution! I think the last two can / should be combined into one: Value --> PrevVal('TagName', shiftimechange).
You do have an edge-case if the last value is exacly at the end of the shift, so you might need to add a small fraction of time to the timestamp of the shift change if that is an issue you want to address. If you have the interpolation / stepped set such that it should give good results, TagVal('TagName', shifimechange) should resolve that in one go.
Thanks. I'm trying to do this in a Performance Equation. The FindEq function works fine, but the result (e.g. '8/20/2018 3:12:13 AM') isn't in format that is usable in the PrevVal function. Any suggestions?