OK.. I'll have to make a modification.
this ONLY looks for "F" in column "A"...
but you said that it could be anywhere...
 Any cell  that contains only "F" should be changed...
I'll make the changes.
 Try this one:
Option Explicit
Sub Update()
    Dim Data_Rowcnt, I, C, HideCnt, AlertFlag
    HideCnt = 0
    Application.ScreenUpdating = False
    Data_Rowcnt = Application.WorksheetFunction.CountA(Range("A1: A65500"))
    Cells.EntireRow.Hidden = False
    Application.StatusBar = "Processing " & Data_Rowcnt & " Records"
    For I = 1 To Data_Rowcnt
        If (I Mod (Round(Data_Rowcnt / 20, 0)) = 0) Then
Application.StatusBar = I & " of " & Data_Rowcnt & " = " & Round((I /
Data_Rowcnt) * 100, 0) & "%"
        AlertFlag = False
        For C = 1 To 20 'Look in columns  A to T
            If (UCase(Cells(I, C)) = "F") Then
                Cells(I, 1) = "Alert"
                AlertFlag = True
                Exit For
            End If
        Next C
        If (UCase(Cells(I, 12)) = "PASSPORT") And (Not AlertFlag) Then
            HideCnt = HideCnt + 1
            Rows(I).EntireRow.Hidden = True
        End If
    Next I
    Cells.Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
       Order2:=xlAscending, Header:=xlYes, _
       OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Application.ScreenUpdating = True
    MsgBox HideCnt & " rows  hidden"
    Application.StatusBar = False
End Sub
BEWARE:  It DOES "assume" that there ALWAYS is data  in column "A".
If this is not a good assumption, are there other columns that
ALWAYS have data?