Filter items in a View by User or Group

SharePoint offers different types of views, depending on the type of list. We can filter the items in the views by taking any field as a filter. But if we want to filter the items so that a particular user(other than the user who Created the item) or a group can see them, then views are not directly helpful. We have to use some tricks in order to make them useful.

Let me present a scenario: Suppose I have a list and I want to filter the default view in such a way that every dept can see their own dept items. Lets see how this can be done without code.

Take the names of all the people who are working in respective departments. Like take the names of people working in finance department, then take the names of the people in HR department and like this, take the names department wise. Create a column in the list and give it the name "Users". Choose the type of the field as "People or Group" and select "username" in the last drop down list box. Dont forget to click Yes in "Allow Multiple selections". Once you are done, open SharePoint Designer. In SharePoint designer create a new workflow and write the if condition like:

If department is Finance
     then set the value of the field "Users" equal to usernames

Now here you need to write the usernames of the people who are in finance department in the following manner: jason; david; vic;

Always remember that you have to write the usernames as you selected "usernames" while creating the column "Users". You can get a person's username from his or her account. name like if SHAREPOINT\jason is the account name then the username is jason and SHAREPOINT is the Domain name. Username is case sensitive so write it exactly in the same way as it appears in the account name. You can write any number of usernames seperated by ";".

Create "If" conditions for other departments in the same way, writing their people's usernames in the "Users" field. Once you are done just finish the workflow.

Now come back to the list and click on "Modify this view" for the default view. In filter option, filter the items by selecting "Users" in the field, select "is equal to" and write its value as "[Me]".
Now the filter will work depending on the login user. If the login user name comes in the users column then he will be able to see the item else not.

Whenever an item is created in the list, workflow will run and depending on the departement column value mentioned in the item. Once the item is created, "Users" column value will be set and each department will be able to see their respective department's items.