Excel如何参照另一列的排序规则对指定小数数值列进行排序
Excel 实现按 Val-A 相对大小规则排序 Val-B 的方法
需求本质:提取 Val-A 列当前行的相对大小顺序模式,将该模式完全套用到 Val-B 列完成排序,无需手动调整排序规则。
前置准备
确认两张表行数一致,以下为示例区域参考,你可以根据自己的实际数据区域调整公式:
- 表1(ID-A、Val-A):A1:B4,其中Val-A数值在B2:B4
- 表2(ID-B、Val-B):D1:E4,其中Val-B数值在E2:E4
步骤1:提取Val-A的大小顺序模式
在表1旁新增空白辅助列(示例为C列,表头可填「模式序列」),在C2单元格输入公式:=RANK(B2,$B$2:$B$4,0)
公式说明:
- 第三个参数
0代表按降序算排名(数值越大排名越靠前),如果需要按升序算排名可以改成1 $B$2:$B$4为Val-A的数值区域,加$是绝对引用,避免下拉填充时区域偏移
将公式下拉填充到C4,即可得到Val-A每行对应的大小排名,也就是我们要复用的排序模式。
示例中该列计算结果为[1,3,2],对应Val-A当前行的顺序是「第1大→第3大→第2大」
步骤2:生成Val-B的排序依据
在表2旁新增两个空白辅助列:
- 第一列(示例为F列,表头可填「Val-B排名」),在F2输入公式:
=RANK(E2,$E$2:$E$4,0)
第三个参数要和步骤1的RANK参数保持一致,下拉填充到F4,得到每个Val-B数值的大小排名。 - 第二列(示例为G列,表头可填「排序依据」),在G2输入公式:
=MATCH(F2,$C$2:$C$4,0)
公式作用是匹配当前Val-B的排名,在步骤1得到的模式序列中所在的位置,下拉填充到G4,该列数值就是最终的排序参考。
步骤3:执行排序
选中表2的全部数据区域(包含ID-B、Val-B和两个辅助列),点击顶部菜单栏「数据」→「排序」,排序依据选择G列(排序依据列),次序选择「升序」,确认后即可得到符合要求的排序结果。
注意事项
- 如果你的数据行数多于3行,只需要对应调整公式里的统计区域即可,逻辑完全通用
- 因为题目说明Val-A和Val-B内部都不存在相等数值,所以不会出现排名冲突的问题
内容的提问来源于stack exchange,提问作者SolidMechanicsFan
相关产品推荐
相关产品推荐

