excel - 在 Excel 中按字母顺序排序的顺序公式

标签 excel sorting indexing excel-formula vba

我目前正在起草一个电子表格,它将自动删除重复项并按字母顺序排列列表:

enter image description here

我在 G 列中使用 COUNTIF() 函数创建排序顺序,然后使用 VLOOKUP() 在 J 列中查找排序。

我遇到的问题是我似乎无法让我的 SortOrder 列正常运行。目前,它为两个数字 1 创建索引,这意味着以黄色突出显示的单元格被遗漏,并且排序列表中的最后一个条目为空:

enter image description here

如果有人能为我找到并纠正这个错误,我将非常感激,因为它一整天都让我发疯!非常感谢。

最佳答案

我将提供我常用的方法,将原始数据自动拉入已排序、已删除重复的列表中:

假设原始数据位于 A 列中。在 B 列中,每次该行在 A 列中显示非重复项时,使用此公式增加计数器。硬线 B2 为“1”,并在 B3 中使用此公式并向下拖动。

=if(iserror(match(A3,$A$2:A2,0)),B2+1,B2)

这利用了这样一个事实:当我们在修订后的列表中引用此行计数器时,我们将使用 match 函数,该函数仅检查第一个匹配的数字。然后假设您希望在 D 列上显示新的数据列表(通常我这样做是为了显示目的,因此要么“分组”[隐藏]形成公式的列,要么在另一个选项卡上执行此操作)。您可以避免此步骤,但如果您已经在使用辅助列,我通常会在不同的列中执行每个步骤 - 更容易记录。在 C 列中,从 C3 [C2 硬编码为 1] 开始并向下拖动,只有一个简单的计数器,它会错误检查到列表末尾的停止点:

=if(C2<max(B:B),C2+1," ")

然后在 D 列中,从 D2 开始向下拖动:

=iferror(index(A:A,match(C2,B:B,0)),"")

索引函数就像 vlookup 函数的一半 - 当您为其提供行号时,它会从给定数组中提取结果。 match 函数类似于 vlookup 函数的另一半 - 它为您提供给定数组中某个项目出现的行号。

希望这对您将来也有帮助。

关于excel - 在 Excel 中按字母顺序排序的顺序公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31346044/

相关文章:

vba - 在 VBA 中启用字典对象

python - Numpy 按列按循环对矩阵进行排序

java - 排序算法实现

Mysql Innodb 在大多数空值的列上建立索引

python - 有什么方法可以使用 itertools groupby 删除列表中相邻的重复项,但保留原始索引?

vba - 查找时的错误代码为 91

excel - 更改原始电子表格后更新电子表格

excel - 如何将多维excel表格转换为一维?

javascript - js根据相等列的id按不同列进行二次排序

ios - 对于非英语歌曲,如何使用 # 显示看起来像 iPod 音乐的索引