Excel技术问题:如何从指定行下方返回列中的次大数值
提取指定行下方的次大数值对应合同号
现有实时刷新的表格,结构如下:
| 合同编号 | 数量 |
|---|---|
| L 1 | 25 |
| L 2 | 278 |
| L 3 | 12 |
| L 4 | 6 |
需求:获取L2行下方的次大数值对应的合同编号(即示例中的L3),且不能删除无关行。
你当前使用的公式未限定“指定行下方”的范围,会遍历整个列的数值,无法满足需求。可以改用以下公式实现:
=INDEX(Table1[contract],AGGREGATE(15,6,ROW(Table1[qty])-ROW(Table1[#Headers])/(Table1[qty]=AGGREGATE(14,6,Table1[qty]/(ROW(Table1[qty])>MATCH("L2",Table1[contract],0)),2)),1))
公式说明:
MATCH("L2",Table1[contract],0):精准定位L2所在的行号AGGREGATE(14,6,Table1[qty]/(ROW(Table1[qty])>MATCH("L2",Table1[contract],0)),2):仅筛选L2行下方的数量值,提取其中的次大值(参数14代表取大值,6忽略错误值,2代表第2大)- 外层
AGGREGATE定位该次大值对应的行位置,最终通过INDEX返回对应的合同编号
内容的提问来源于stack exchange,提问作者jels_help
相关产品推荐
相关产品推荐

