Here is the solution for you. Completely OOTB. Follow the steps below.
- You have 2 lists. In below example I have 2 lists - Clients & Projects.
Columns in Clients list -> Title (Contains User's email address - must be single line), City
Columns in Projects list -> Title, Lookup to Title in Projects (which is User email id and along with it City is selected as extended column). Add your data in it and you will get your mapping.
- Create a WEB PART PAGE. Add list views of both these lists on the page. Add 1 more web part -> Current User Filter (Under Filters section). This web part gives you properties of the user who visits the page. Configure web part properties as shown below.
User Principal Name will have the EMAIL ID of the user (if entered in the AD).
Now, connect this web part to Clients list (list containing user details and city). User Web Part -> Title (column containing email id in the list)
You will now see a single row in the clients list view on the page which will be current user's details. Now you have current user's city column and in projects list view on the page you have the city column extended from lookup. So, you can connect these 2 fields by using web part connection from Clients -> send data to Projects list -> select city columns in both the lists.
The projects list will be filtered on the city of the current user.
Here is the result. You can hide the clients list view web part. And only projects list will be viewed on the page.
If this is the solution then PLEASE UPVOTE AND MARK AS ANSWER. It will help others who land on this question.