Excel多步骤FILTER动态数组函数实现方案咨询
解决方案(Excel 365/2021 动态数组版本)
公式1(自动排序取前三,简洁直观)
=TAKE(SORT(FILTER(B2:C100,TEXT(A2:A100,"yyyy-mm")=TEXT(MAX(A2:A100),"yyyy-mm")),2,-1),3,1)
逻辑拆解:
TEXT(A2:A100,"yyyy-mm")=TEXT(MAX(A2:A100),"yyyy-mm"):将日期统一转为「年-月」格式,筛选出最新月份的所有销售数据(姓名+销售额)SORT(...,2,-1):对筛选出的最新月份数据,按第2列(销售额)降序排序TAKE(...,3,1):提取排序结果的前3行、第1列(即销售人员姓名)
公式2(支持并列第3的人员全部显示)
=FILTER(B2:B100, (TEXT(A2:A100,"yyyy-mm")=TEXT(MAX(A2:A100),"yyyy-mm"))* (C2:C100>=LARGE(FILTER(C2:C100,TEXT(A2:A100,"yyyy-mm")=TEXT(MAX(A2:A100),"yyyy-mm")),3)) )
逻辑拆解:
- 先通过
FILTER(C2:C100,TEXT(A2:A100,"yyyy-mm")=TEXT(MAX(A2:A100),"yyyy-mm"))提取最新月份的所有销售额 - 用
LARGE(...,3)获取该月份销售额的第3高值作为筛选阈值 - 最后筛选出「属于最新月份」且「销售额≥第3高值」的销售人员姓名
你之前公式的问题
A2:A100=MAX(A2:A100):仅匹配最新的单个日期(而非整个月份),如果最新月份有多个日期,会漏掉大部分数据C2:C100=LARGE(C2:C100,3):取的是全表销售额的第3高,而非最新月份的,导致两个条件互斥,无法得到有效结果
内容的提问来源于stack exchange,提问作者John63
相关产品推荐
相关产品推荐

