Google Sheets中按条件横向查找最后一个符合条件的单元格
Google Sheets 横向查找分组最后一次销售月份解决方案
可行公式方案
假设月份数据在第一行B1:D1,对应分组的销售数值在下方行(如B2:D2对应group 1,B3:D3对应group 2),目标列返回对应分组最后一次销售的月份,可使用以下两种方案:
方案1:XLOOKUP + SORTBY 组合(适配任意销售值排序场景)
在目标单元格(如I2)输入公式:
=XLOOKUP(MAX(B2:D2), SORTBY(B2:D2, B1:D1, FALSE), SORTBY(B1:D1, B1:D1, FALSE))
将公式向下填充即可适配其他分组行。
方案2:INDEX + MATCH 组合(适配销售值随时间递增场景)
如果你的销售数值是随时间递增的(最新销售的数值最大),可以用更简洁的公式:
=INDEX(B1:D1, MATCH(MAX(B2:D2), B2:D2, 0))
你之前公式失败的原因
你尝试的=LOOKUP(H2,SORT(B2:D2),SORT(B1:D1,B2:D2,TRUE))存在两个核心问题:
- 逻辑匹配错误:用分组标识
H2作为查找值,但SORT(B2:D2)是销售数值的排序结果,两者类型不匹配; LOOKUP的特性限制:该函数要求查找范围必须升序排列,且默认返回匹配到的最后一个值,你用SORT打乱了销售值与月份的对应关系,导致无法正确关联。
公式逻辑说明
- 方案1:
SORTBY(B2:D2, B1:D1, FALSE)按月份倒序排列销售值,SORTBY(B1:D1, B1:D1, FALSE)同步倒序排列月份,再用XLOOKUP定位最大销售值对应的月份,确保找到的是最新时间的销售记录; - 方案2:
MAX(B2:D2)提取当前行最大销售值,MATCH找到该值在销售列的位置,INDEX返回对应位置的月份,适合销售数值随时间递增的场景。
内容的提问来源于stack exchange,提问作者Kevin L
相关产品推荐
相关产品推荐

