我有一张名为“购买”的Google工作表,其中包含各种要购买的不同商品的列。第一列称为状态,它包含如下值:
Research, Approval, Purchasing, Shipping, Invoicing, Complete.
我想编写一个SQL语句来检索所有不完整的订单,但是我想订购它们以便所有的研究都先进行,批准第二,购买第三,依此类推。
我目前的公式是:
=QUERY(Purchases;SELECT * WHERE A <> 'Completo';1)
这会检索正确的项目,但它们是混合的而不是我想要的顺序。有人能帮助我做得比这更好吗?非常感谢!
答案 0 :(得分:1)
您需要按列表中的值制作自定义排序顺序。
假设您的数据在A:B范围内:
=QUERY({arrayformula(
VLOOKUP(A:A,
{{"Research";"Approval";"Purchasing";"Shipping";"Invoicing"},{1;2;3;4;5}},2,)),
A:B},
"SELECT Col2, Col3 WHERE Col2 <> 'Complete' and Col2 <> '' order by Col1",1)
注意:
{{"Research";"Approval";"Purchasing";"Shipping";"Invoicing"},{1;2;3;4;5}}
是排序值的列表,您可以使用范围代替。A:B
更改为Purchases
范围Col1
表示法,因为源数据将是一个数组,而不是范围。select *
,但会返回带有数字的列: