寻求Excel公式帮助:确定数值在数组中的正确分组位置
包裹分组匹配解决方案
原始分组表
| 分组(Group) | 最大长度(Max Length) |
|---|---|
| 1 | 45 |
| 2 | 61 |
| 3 | 120 |
| 4 | 150 |
问题分析
需为70cm的包裹匹配正确分组:70超过分组2的最大长度61,应归入分组3。但现有尝试存在问题:
MATCH(70, B1:B4, 1)返回2(匹配到≤70的最大值61,对应分组2),结果错误。MATCH(70, B1:B4, -1)返回#N/A,因该模式要求数据降序排列,而分组顺序需保持现状。
可行解决方案
以下方法无需调整原有分组顺序,可直接得到正确结果:
1. INDEX + FILTER组合
筛选出所有最大长度大于70的行,取第一个结果对应的分组:
=INDEX(FILTER(A:A, B:B > 70), 1)
2. XMATCH函数(推荐)
利用XMATCH的search_mode=2直接查找第一个大于目标值的元素位置,再通过INDEX获取分组号:
=INDEX(A:A, XMATCH(70, B:B, 2))
3. SUMPRODUCT统计计数
统计小于等于70的最大长度数量,加1即为目标分组:
=SUMPRODUCT(--(B:B <= 70)) + 1
所有方法均会返回预期结果:分组3
内容的提问来源于stack exchange,提问作者Catrina Field
相关产品推荐
相关产品推荐

