Excel - 按列对行进行分组,然后按另一列排序

Excel - 按列对行进行分组,然后按另一列排序

我有一个电子表格,其中一列包含人员的邮政编码,另一列包含分配给他们的 ID。

我想按照 ID 列对此工作表进行排序,但也希望将所有具有相同邮政编码的人分组在一起。

接下来应出现哪一行的优先级列表如下。

  • 具有与前一个条目相同邮政编码的下一个最低 ID。
  • 下一个最小 ID

作为一种算法实现,这将相当简单,但我不知道如何使用 Excel 选项来做到这一点。

我尝试过先按邮政编码排序,然后按 ID 排序,但失败了,但这只会将邮政编码分组,并正确排序每个邮政编码的 ID。它不会将第一个 ID 放在最上面,而是将第一个邮政编码放在最上面。

我也尝试过为每个邮政编码创建组,但如果我按 ID 排序,这些组就不会聚在一起。

一些示例数据如下:

邮政编码

TR-002 7586 KO
TR-004 7896 吉隆坡
TR-007 7586 KO
TR-012 7493 KP
TR-088 6868 KK
TR-101 7493 KP

我想按以下方式排序:

邮政编码

TR-002 7586 KO
TR-007 7586 KO
TR-004 7896 吉隆坡
TR-012 7493 KP
TR-101 7493 KP
TR-088 6868 KK

答案1

我自己找到了解决方案。

首先按 ID 排序,然后我添加了一个具有以下公式的新列:

=INDEX($B$1:$B$278,MIN(IF($I$2:$I$278=$I4,ROW($I$2:$I$278))))

根据需要替换边界。

它的工作原理是,它获取具有相同邮政编码的所有行的列表(IF 语句),然后获取其中最小的一行(具有最低 ID 的行)。这会将每个 ID 映射到具有相同邮政编码的最低 ID。

然后我按这个新列和 ID 列进行排序,数据就按照我想要的顺序排列了。

我采用 ROW 值然后使用 INDEX 将其转换回来的原因是我的 ID 可以包含非数字字符,而 MIN 函数不适用于这些字符。

相关内容