vba - Excel VBA Excel 如何对重复值进行排序?

标签 vba excel sorting

我想知道 Excel 如何对相同的值进行排序。我有身份证号码,但有时会出现重复的身份证号码。我不确定 Excel 将如何决定如何订购这些?它会只查看相邻行中的信息,然后将这些值作为部分或顺序进行比较吗?

如果我有:

Column A | Column B
166          C
166          A
166          B

然后按降序对 A 列进行排序,我会得到:

Column A | Column B
166          C
166          A  
166          B

或者我会得到:

Column A | Column B
166          A
166          B
166          C

谢谢。

最佳答案

Excel 的排序应该是稳定排序,因此应保留相等元素的顺序。您应该能够执行类似于基数排序的操作,对行进行多次排序,从最不重要的列到最重要的列。您可以一次按 3 列对行进行排序。

如果使用 Visual Basic 进行排序,请注意选择排序和快速排序并不稳定。请改用插入排序(稳定)或冒泡排序(稳定)。我不知道是否可以用VBA实现合并排序(稳定)。

如果 VBA 可以实现的话,可以通过将比较中的行号作为最低有效比较器来使不稳定排序变得稳定。

关于vba - Excel VBA Excel 如何对重复值进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33618992/

相关文章:

excel - 索引/匹配 - 如果第一个值为空白,则查找第二个值

javascript - 按两列对 HTML 表格进行排序

vba - 在 Excel VBA 中,根据列数据创建新行

Excel VBA Dim 声明难题

excel - vba - 循环通过 3 列

vba - 如何在VBA中删除前一行或后一行非空的空行

excel - 访问类中的公共(public)字典

excel - Excel 中与区域设置无关的文本函数

Linux grep 和排序日志文件

ruby-on-rails - 排序多态关联的最佳方法