在Excel中应用SortBy实现Unique-Filter功能遇问题求助
Excel函数问题解决
问题分析
你用的两个函数存在以下问题:
- 第一个函数
=UNIQUE(FILTER(SORTBY(A2:A15, C2:C15,1),B2:B15="EU", ""))逻辑顺序错误:先对所有行的A列按C列排序,再筛选B列为EU的行,排序逻辑未针对EU子集,结果不符合预期。 - 第二个函数
=LET(x, FILTER(A2:C5,B2:B15="EU",""), SORTBY(x,INDEX(x,0,3),1))维度不匹配:FILTER的区域是A2:C5(仅4行),但条件区域是B2:B15(14行),Excel会因数组行数不一致报错。
正确函数写法
写法一(分步逻辑)
=UNIQUE(SORTBY(FILTER(A2:A15,B2:B15="EU",""),FILTER(C2:C15,B2:B15="EU",""),1))
写法二(用LET简化,避免重复计算)
=LET( filtered_data, FILTER(A2:C15,B2:B15="EU",""), sorted_data, SORTBY(filtered_data,INDEX(filtered_data,0,3),1), UNIQUE(INDEX(sorted_data,0,1)) )
逻辑说明
- 先用
FILTER(A2:C15,B2:B15="EU","")筛选出所有B列为EU的行,确保筛选区域和条件区域行数完全匹配; - 再用
SORTBY对筛选后的区域按第3列(C列)升序排序; - 最后提取排序后区域的第1列(A列),用
UNIQUE去重得到最终结果。
内容的提问来源于stack exchange,提问作者Hytool
相关产品推荐
相关产品推荐

