从 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
我的数据(名称)分布在 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