Google Sheets QUERY函数按指定状态顺序筛选非完成订单
解决方案:自定义状态排序的Google Sheets QUERY公式
我来帮你搞定这个自定义排序的问题!你的原公式已经正确筛选出了非Complete状态的订单,但默认的字母排序不符合你的优先级需求。要实现 Research > Approval > Purchasing > Shipping > Invoicing 的排序逻辑,我们可以在QUERY语句里用CASE语句给每个状态分配专属的排序权重,然后按这个权重排序。
修改后的完整公式
=QUERY(Purchases; "SELECT * WHERE A <> 'Complete' ORDER BY CASE A WHEN 'Research' THEN 1 WHEN 'Approval' THEN 2 WHEN 'Purchasing' THEN 3 WHEN 'Shipping' THEN 4 WHEN 'Invoicing' THEN 5 END"; 1)
关键细节说明
CASE语句的作用:给每个指定状态分配一个数字优先级,数字越小排序越靠前。这样就强制让Research排第一,Approval第二,完全匹配你想要的顺序。- 拼写一致性检查:如果你表格里的状态值确实是西班牙语的
Completo(比如你原公式里写的),记得把WHERE A <> 'Complete'改成WHERE A <> 'Completo',必须和单元格里的实际内容完全匹配,否则筛选会失效。 - 表头保留:公式末尾的
1表示你的表格第一行是表头,这个和你原公式保持一致就行。
这个修改后的公式会先筛选出所有状态不为Complete的订单,再严格按照你指定的优先级排列结果。
内容的提问来源于stack exchange,提问作者Simone Romeo
相关产品推荐
相关产品推荐

