从 Excel 中的范围创建唯一值列表

Create list of unique values from a range in Excel

我的数据(名称)分布在 Excel 中的 sheet 中。它在 A 到 M 列中。 有些行在每一列 (A-M) 中都有数据,有些行什么都没有。

我想提取范围内每个唯一值的列表(或者甚至是每个值的列表,然后我可以删除重复项)。

我这辈子都不知道该怎么做,也没有在网上找到从 RANGE 而非单个列中提取唯一值的示例。

有什么想法吗?如果您需要数据的屏幕截图以获取更多上下文,请告诉我。

你可以使用Go to Special (Ctrl+G -> Special) 到select blanks 并删除它们(Ctrl+- 单元格 selected)。然后使用描述的公式 here 将所有列堆叠在一起,一个一个地堆叠起来。然后用值替换公式,最后使用 Remove Duplicates.

试试这个宏:

Sub MAINevent()
    Dim it As Range, r As Range, x0
        With CreateObject("scripting.dictionary")
            For Each it In Range("A:M").SpecialCells(2)
                x0 = .Item(it.Value)
            Next

            Set r = Cells(1, "N").Resize(.Count, 1)
            r.Value = Application.Transpose(.Keys)
        End With
End Sub