Drew Sherman's solution is very good, but the list should be contiguous (it offers manual sorting, and this is unacceptable to me). Guitartrower's solution is a bit slower if the number of elements is large and does not match the order of the original list: it displays a sorted list independently.
I need the initial order of the items (which were sorted by date in another column), and, in addition, I wanted to exclude the item from the final list not only if it was duplicated, but for a number of other reasons,
My solution is an improvement on the Drew Sherman solution. Similarly, this solution uses 2 columns for intermediate calculations:
Column A:
A list with duplicates and possibly spaces that you want to filter. As an example, I will put it in the interval A11: A1100, because I was not able to move Drew Sherman's solution in a situation where it did not start on the first line.
Column B:
This formula will print 0 if the value in this line is valid (contains a non-duplicate value). Note that you can add any other exception conditions you want in the first IF, or as another external IF.
=IF(ISBLANK(A11);1;IF(COUNTIF($A$11:A11;A11)=1;0;COUNTIF($A11:A$1100;A11)))
Use a smart copy to populate the column.
Column C:
In the first line we find the first valid line:
=MATCH(0;B11:B1100;0)
From this position, we are looking for the following valid value with the following formula:
=C11+MATCH(0;OFFSET($B$11:$B$1100;C11;0);0)
Put it on the second row and use a smart copy to fill in the rest of the column. This formula will throw a # N / D error if there is no more unique point. We will take advantage of this in the next column.
Column D:
Now we just need to get the values indicated by column C:
=IFERROR(INDEX($A$11:$A$1100; C11); "")
Use a smart copy to populate the column. This is a unique, unique conclusion.