Excel单公式实现按日期筛选并排序客户名单的方法
解决Excel筛选后按指定列排序的单公式方案
你的公式报错是因为SORT的排序依据参数必须和FILTER返回的结果行数匹配——原公式里用了整个B列(B2:B5)作为排序依据,但FILTER只返回了C列有值的行,两者行数不一致,所以触发#VALUE!错误。
直接用下面的单公式就能一步完成需求:
方案1:用INDEX提取目标列
=INDEX(SORT(FILTER(A2:B5,C2:C5<>""),2,1,FALSE),,1)
- 先通过
FILTER(A2:B5,C2:C5<>"")筛选出C列有值的客户名称+生效日期两行数据 - 再用
SORT(...,2,1,FALSE)按第2列(生效日期)升序排序(最后一个参数FALSE表示不区分大小写,可省略) - 最后用
INDEX(...,1)提取排序后的第1列(客户名称)
方案2:用CHOOSECOLS更简洁(Excel 365/2021及以上版本支持)
=CHOOSECOLS(SORT(FILTER(A2:B5,C2:C5<>""),2,1),1)
CHOOSECOLS可以直接指定要提取的列序号,写法比INDEX更直观。
测试后这两个公式都能直接返回按生效日期排序的目标客户名称,不需要额外辅助列或步骤。
内容的提问来源于stack exchange,提问作者BruceWayne
相关产品推荐
相关产品推荐

