Excel按名称对两列排序时如何优先排列共有值再排列独有值
解决方案
你只需要新增两个辅助列作为排序依据即可,操作逻辑如下:
- 第一步:新增第一级排序辅助列,用来区分共有值和独有值
假设你的A列是待排序列,C列是对照列,在A列旁边的空白列(比如B列)B1单元格输入公式:=IF(ISNA(MATCH(A1,C:C,0)),2,1)
公式逻辑:如果A列当前值在C列无法匹配(属于独有值)就标记为2,匹配成功(属于共有值)就标记为1,排序时标记为1的共有值会自动排在最前面。 - 第二步:新增第二级排序辅助列,用来确定同类别内部的排序规则
在另一空白列(比如D列)D1单元格输入公式:=IF(B1=1,MATCH(A1,C:C,0),ROW())
公式逻辑:共有值按在C列的匹配位置排序,和你原来的需求一致;独有值默认按当前行号排序,你也可以根据需要替换成其他排序逻辑(比如按值本身升序/降序)。 - 第三步:执行排序
全选你的所有数据区域,自定义排序规则设置为先按第一辅助列升序,再按第二辅助列升序即可。
如果需要同时对C列也做对齐排序,只需要给C列也设置对应的辅助列,标记共有/独有状态、匹配A列的位置,按同样规则排序即可,就能实现两列共有值对齐排在最前,后面跟随各自的独有值。
注:如果公式执行报错,可把公式内的分号替换为逗号适配中文地区的Office/WPS设置。
内容的提问来源于stack exchange,提问作者robson11224
相关产品推荐
相关产品推荐

