Finding Matches in a Range / Formatting Call to Sub
What you want to do is called refactoring - combining similar methods into a single function.

You have two loops-

 For softwareCol = 0 To 10
 Next softwareCol

 For softwareCol = 0 To 5
      If Not (softwareCol = 2 Or softwareCol = 4)
 Next softwareCol


I don't see an easy way to eliminate those loops. 



Let's focus on what you want to combine

If targetSoftware = cell.Value &amp; " " &amp; cell.Offset(0, 1).Value Then
   cell.Rows.Hidden = False
End If
If targetSoftware = cell.Value &amp; " " Then
   cell.Rows.Hidden = False
End If


You can do this in a boolean function -

Private Function NeedsToHide(ByVal targetSoftware As String, ByVal firstValue As String, Optional ByVal secondValue As String = vbNullString) As Boolean
    If targetSoftware = firstValue &amp; " " &amp; secondValue Then
        NeedsToHide = False
    Else
        NeedsToHide = True
    End If
End Function


So now it's just

 For softwareCol = 0 To 10
    'etc
    cell.Rows.Hidden = NeedsToHide(targetSoftware, cell.Value, cell.Offset(0, 1).Value)
 Next softwareCol

 For softwareCol = 0 To 5
    'etc
     cell.Rows.Hidden = NeedsToHide(targetSoftware, cell.Value)
 Next softwareCol