昨天兰色推送的多列查询公式,忽略了filter筛选后的顺序,导致公式结果错误,今天特纠正一下。
原公式:
=FILTER(CHOOSECOLS(A2:E8,MATCH(TOCOL(H1:P1,1),1:1,0)),COUNTIF(G2:G11,C2:C8)>0)
解决这个问题的思路是把生成的结果按G列排序。按G 列排序,先列出公式再解释
= DROP(LET(x, FILTER(CHOOSECOLS(A2:E8,MATCH(TOCOL(G1:P1,1),1:1,0)),COUNTIF(G2:G11,C2:C8)>0) , SORTBY(x,MATCH(CHOOSECOLS(x,1),G:G,0) )),,1)
筛选后的结果
=FILTER(CHOOSECOLS(A2:E8,MATCH(TOCOL(G1:P1,1),1:1,0)),COUNTIF(G2:G11,C2:C8)>0)
为了让公式更简捷,这里使用了LET函数,x在后面代替上面的筛选结果表达式
= LET(x,筛选结果部分
查询筛选结果A列在G列的位置,然后让筛选结果根据查询结果排序
SORTBY(x,MATCH(CHOOSECOLS(x,1),G:G,0)
排序后因为多了一列姓名,所以用drop把第一列删除掉
DROP(筛选后的结果,,1)
最后看一下动态结果:
本周日的课开始预约了