It is difficult to give clear answers without a sense of the purpose of any field, but I'll take a stab at it.
I'm assuming you want either one or zero function class on each record. If the data is as sparse in the table as it is in the example data, then I would have a separate table with only the two significant fields
and an autokey. I assumed INTID is the primary key of the big table. If not, be sure there is one, and use that as the foreign key in the small table.
Code:
tblBigStuff
INTID AutoKey
Agency_ID Number
MAP_ID Text
tblAgenFunc
RecID Autokey
INtID FK to tblBigStuff
FuncClass Text
Next, you create records in tblAgenFunc for only the highest (desired) record for each INTID. Then you drop the field from tblBigStuff.
Now, if it's valid for an IntID to have multiple different functions, you can add multiple records, and in the join you select only the highest one. Plenty of ways to handle this one.