Použij makro (třeba),
vlož do modulu listu.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastRowName As Byte
Dim cell As Range
Dim FindName As Range
LastRowName = Cells(Rows.Count, "B").End(xlUp).Row
For Each cell In Range("P6:AA" & LastRowName)
If IsEmpty(cell) Then
GoTo dalsi
End If
Set FindName = Range("B6:B" & LastRowName).Find(What:=cell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
cell.Interior.Color = FindName.Interior.Color
dalsi:
Next
End Sub
ad 2)
použij fci Countifcitovat