将查询结果合并到 Google 个工作表中,结果大小不匹配

Combine Query Results in Google Sheets with Mismatched Result Sizes

我正在尝试使用一个公式,我可以继续向其中添加查询以具有不同的条件和排序算法。结果会有不同的大小,但都来自相同的 sheet。这是我正在尝试的:

=ARRAYFORMULA(IFERROR({iferror(QUERY(Available!$A:$M, "select A,B,C,D,E,F,G,H,I,J,K,L,M where M like '%Blah' order by B desc");iferror(QUERY(Available!$A:$M, "select A,B,C,D,E,F,G,H,I,J,K,L,M where C = 'Bleh' order by B asc limit 3"),A2:M2/0)})))

在上面的示例中,第一个查询将查看 sheet 并找到一组列,其中列 M 包含 "Blah",对其进行排序并提供结果。这很好用。当我添加第二个查询时,我希望它将结果附加到上一个查询。我希望能够继续构建此公式,以便将来可以添加更多独立排序和限制的查询。在第二个查询中,我只想要 3 个反向排序的结果,并且 C 列读取 "Bleh."

想通了。这是一个使用更简单示例的语法问题。我能够使用这个让它工作:

={QUERY(Available!$A:$M, "select A,B,C,D,E,F,G,H,I,J,K,L,M where M like '%Blah' order by B desc");QUERY(Available!$A:$M, "select A,B,C,D,E,F,G,H,I,J,K,L,M where C = 'Bleh' order by B desc")}

最初我试过这个,但使用 , 作为分隔符,用于使用列组合范围。为了使用行来组合您需要使用 ; 作为分隔符的范围。

它可以简单地像:

=IFERROR(QUERY(
 {IFERROR(QUERY(Available!A3:M, "where M like '%Blah' order by B desc", 0), 
 {"","","","","","","","","","","","",""});
 IFERROR(QUERY(Available!A3:M, "where C = 'Bleh' order by B desc", 0), 
 {"","","","","","","","","","","","",""})}, 
 "where Col1 is not null", 0))