You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用公式灵活提取降序排序后指定排名区间的数值?

问题描述

现有表格如下:

AB
110060
25050
38040
410
520
670
730
890
940
1060

需求:

  • 将A列(A1:A10)的数值降序排序;
  • 在B列仅显示降序后排名第5、6、7位的数值。

目前已通过公式 =TAKE(SORT(A1:A10;;-1);5) 实现降序并取前5位,但需要能灵活指定排名区间的公式。

解决方案

以下两种方法都能满足灵活指定区间的需求:

方法1:DROP + TAKE 组合

利用DROP剔除区间前的元素,再用TAKE提取需要的数量,公式如下:

=TAKE(DROP(SORT(A1:A10;;-1);4);3)
  • SORT(A1:A10;;-1):对A列数值降序排序,得到完整排序后的数组;
  • DROP(...,4):移除排序数组的前4个元素,从第5位开始保留;
  • TAKE(...,3):提取接下来的3个元素,对应第5、6、7位。

灵活调整说明

如果需要提取第N到第M位:

  • 将DROP的第二个参数改为N-1(剔除前N-1个元素);
  • 将TAKE的第二个参数改为M-N+1(提取M-N+1个元素)。

示例:提取第3-6位时,公式为 =TAKE(DROP(SORT(A1:A10;;-1);2);4)

方法2:INDEX + SEQUENCE 组合

用SEQUENCE生成指定区间的行号,再通过INDEX从排序数组中取值,公式如下:

=INDEX(SORT(A1:A10;;-1);SEQUENCE(3;1;5))
  • SEQUENCE(3;1;5):生成从5开始的3个连续整数(即5、6、7),对应目标排名的位置;
  • INDEX(...,上述序列):从排序后的数组中取出对应位置的数值。

灵活调整说明

如果需要提取第N到第M位:

  • 将SEQUENCE的第一个参数改为M-N+1(生成的数字数量);
  • 将SEQUENCE的第三个参数改为N(起始数字)。

示例:提取第2-5位时,公式为 =INDEX(SORT(A1:A10;;-1);SEQUENCE(4;1;2))

内容的提问来源于stack exchange,提问作者Michi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 09:41:10