Mastering Excel: Filter and Print Specific Salary Slips for Different Branches
Mastering Excel: Filter and Print Specific Salary Slips for Different Branches

Are you struggling to filter and print salary slips for different branches in Excel? You’re not alone. Many payroll managers face this challenge when trying to generate branch-specific salary slips. In this article, we’ll explore why this happens, share real-world examples, provide a step-by-step solution, and even throw in an advanced VBA trick.
Why This Problem Happens
The main issue is that Excel doesn’t have a built-in “filter by branch” feature for salary slips. Most payroll systems export data into a single spreadsheet, mixing all branches together. When you need to print individual salary slips per branch, you have to manually filter and sort the data, which can be time-consuming and error-prone.
Additionally, if your Excel skills are primarily basic (SUM, AVERAGE), you might find yourself at a loss when trying to apply more advanced filtering techniques or automation.
Step-by-Step Solution
Let’s assume you have a spreadsheet with the following columns: Employee ID, Name, Branch, Salary, Deductions, Net Pay.
Manual Filtering and Printing
- Select your data range (including headers).
- Go to the “Data” tab on the Ribbon.
- Click on “Filter”.
- Click the drop-down arrow in the “Branch” column header.
- Uncheck “Select All” and then check only the branch you want to filter for.
- Click “OK”. Your data is now filtered by branch.
- Go to the “Page Layout” tab, adjust your print area (if needed), and click on “Print”.

Advanced Filtering with Criteria Range
- Set up your criteria range. In a new sheet or below your data, set up headers matching your data (Employee ID, Name, Branch, etc.). Leave the cells below blank except for the “Branch” cell where you’ll type the branch name (e.g., “East Branch”).
- Select your data range and go to the “Data” tab.
- Click on “Advanced” in the Sort & Filter group.
- Choose “Filter the list, in-place (Filtering removes all rows that do not match the criteria.)”
- In the “Criteria range:” field, select your criteria range including headers.
- Click “OK”. Your data is now filtered by the branch specified in your criteria range.
Automating with VBA (Macros)
If you’re comfortable with macros, you can automate this process using VBA. Here’s a simple script to filter and print salary slips for a specific branch.
Sub PrintSalarySlips()
Dim ws As Worksheet
Set ws = ActiveSheet
' Prompt user to enter branch name
Dim branchName As String
branchName = InputBox("Enter the branch name:")
' Check if branch name is provided
If branchName = "" Then
MsgBox "Branch name cannot be blank.", vbExclamation
Exit Sub
End If
' Apply filter
ws.Range("A1").AutoFilter Field:=3, Criteria1:=branchName
' Print filtered data
ws.PrintOut Copies:=1
' Turn off filter
ws.AutoFilterMode = False
End Sub
Common Mistakes and Misconceptions
One common mistake is to forget turning off the filter after printing. This can lead to confusion when reopening the file later, as it will appear as if data is missing.
Another mistake is setting up your criteria range incorrectly. Remember, it must include headers that match exactly with your data range headers.
Advanced Variation: Automating Multiple Branches
If you need to print salary slips for multiple branches, you can modify the VBA script to loop through a list of branch names and print them one by one.
Sub PrintAllBranches()
Dim ws As Worksheet
Set ws = ActiveSheet
' List of branches
Dim branches As Variant
branches = Array("East Branch", "West Branch", "North Branch", "South Branch")
' Loop through each branch and print
Dim branchName As Variant
For Each branchName In branches
ws.Range("A1").AutoFilter Field:=3, Criteria1:=branchName
ws.PrintOut Copies:=1
ws.AutoFilterMode = False
Next branchName
' Clear any remaining filters
ws.AutoFilterMode = False
End Sub
Real-World Examples
Example 1: Simple Payroll for Two Branches
In this scenario, you run payroll for two branches – East and West. Each branch has its own set of employees, and you need to generate and print salary slips for each branch separately.
Example 2: Complex Payroll with Multiple Locations
For larger organizations with multiple locations, the process can become more complex. You might have North, South, East, and West branches, and each branch needs individual salary slip reports.
Example 3: Using Criteria Ranges for Different Departments
In another case, you might want to filter not just by branch but also by department within a branch. This requires setting up multiple criteria ranges.

Conclusion and Tool Recommendation
Filtering and printing salary slips for different branches in Excel can be made easier with the right techniques. Whether you use manual filtering, advanced criteria ranges, or VBA macros, there’s a solution that fits your skill level.
If you find yourself struggling with these tasks, consider exploring tools like CelTools, which offers 70+ extra Excel features for auditing, formulas, and automation. It could save you time and reduce errors in your payroll processes.
Written By: Ada Codewell – AI Specialist & Software Engineer at Gray Technical






















