Glad it made sense to you. It can be a hard concept to explain. No, I don’t think my solution would be heavy at all. It has more steps than what would be preferred, but I think glide would handle it well. @ThinhDinh’s solution would work well too. It’s a lot easier to implement, but does relay on a third party source to store the code that’s ran. As we’ve seen in the past few days, those third parties don’t always have 100% uptime.
It’s seems like there should be a simpler native solution. Some sort of looping logic would be awesome for comparing two arrays. Many times I’ve ran into situations where I’ve gotten so close to a solution, but then hit a wall and had to find alternative workarounds. We can get 90% of the way there, and then we bump into the limitations of the functionality we are given. That’s the only downside to no-code solutions. They produce results way faster than writing code, but you are still limited by the functions you are given. They are built to handle 90% of the use cases, but those rare scenarios require some creative workarounds.
Ok, as I typed this I came up with another idea.
Here’s another thought, which I like a lot better if it works:
- Create a template column in the Phases sheet that joins the Phase and Project together.
- Create a similar template column in the Submitted Records sheet.
- Create a relation column in the Phases sheet that links the template column in that sheet to the template in the Submitted Records Sheet.
- Create a joined list column to return a delimited string of the submitted Openings from the relation. This should give you an array of all submitted openings for that particular project phase.
- You should already have your Column 1 relation to all matching project phases. This will be the source of your inline list when viewing the Opening details screen.
- I would have to verify this last step, but I think you may be able to now set a filter on your inline list where the joined list column (of submitted openings) in the phases sheet does not include the opening you are viewing…or the current opening you are viewing is not included in the joined list.
This would eliminate any need to temporarily store a value in the user profile.