如何在SORTN函数内嵌套FILTER并指定排序列解决报错
问题根因
SORTN 函数要求排序依据的范围/数组的行数必须和待排序的范围/数组的行数完全一致:
- 你公式里
FILTER(AssessScores,AssessScoreStudent=C4,AssessOppor=A$1)返回的是过滤后的结果,行数远小于原始数据的300行 - 你直接传入的
TimestampScores是全量300行的命名范围,和过滤后的结果行数不匹配,就会触发范围大小不匹配的报错 - 不加排序参数的时候SORTN默认按待排序范围本身的值排序,自然不会有不匹配的问题
修复方案
你只需要把排序依据的列也同步做相同规则的过滤,保证和待排序的AssessScores过滤结果行数一致即可,修改后的公式如下:
=SORTN(FILTER(AssessScores,AssessScoreStudent=C4,AssessOppor=A$1),1,0,FILTER(TimestampScores,AssessScoreStudent=C4,AssessOppor=A$1),FALSE)
如果觉得两次写过滤条件冗余,也可以先把符合条件的关联数据一次性过滤出来再处理,逻辑更清晰:
=SORTN(FILTER(HSTACK(AssessScores,TimestampScores),AssessScoreStudent=C4,AssessOppor=A$1),1,0,2,FALSE)
该公式先把AssessScores和对应的TimestampScores按行拼接,过滤后按第二列(即时间戳列)排序取第一条结果,最后按需提取需要的列即可。
内容的提问来源于stack exchange,提问作者Christian Butcher
相关产品推荐
相关产品推荐

