Este VBA deve fazer isso. Tenho certeza de que existe uma fórmula, mas acho muito mais fácil ler o VBA nessas situações
Sub FindUniques()
'Define and set variables
Dim rangeIn As Range, rangeOut As Range
Set rangeIn = Application.Selection
Set rangeIn = Application.InputBox("Input Range", "Input Range", rangeIn.Address, Type:=8)
Set rangeOut = Application.InputBox("Select the first cell to output to", "Output Range Start", Type:=8)
Dim colLoop, rowLoop
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Dim curVal
'Loop through range columns
For colLoop = 1 To rangeIn.Columns.Count
'Loop through range rows
For rowLoop = 1 To rangeIn.Rows.Count
'Get the value of cell in current column, current row
curVal = rangeIn.Cells(rowLoop, colLoop).Value
'Check if we've already added this to the dictionary. If we have, it's not unique, skip it
If Not dic.Exists(curVal) And curVal <> "" Then
'Write the value in place of our output
rangeOut.Value = curVal
'Add the value to our dictionary so it'll be skipped if it comes up again
dic(curVal) = ""
'Go to the next cell down ready to write the next one
Set rangeOut = rangeOut.Offset(1, 0)
End If
Next
Next
End Sub