如何在QUERY中使用CONCAT?

How to use CONCAT in QUERY?

我有一个 table:

 A     |   B      |     C
BEN    |  MOSKOW  |    YES
ANTON  |  IRKUTSK |     NO
VIKTOR |  PARIS   |    YES
BEN    |  PARIS   |    YES
ANTON  |  TORONTO |     NO
DON    | TORONTO  |    YES
ANNA   | IRKUTSK  |    YES
BEN    |  MOSKOW  |     NO

并尝试了一个公式:

=UNIQUE(query(A:C; "Select A,B,C where A contains 'BEN' OR A contains 'ANTON' order by A"))

和一个数组公式:

=arrayformula(UNIQUE(query(A:C; "Select A,B,C where A contains 'BEN' OR A contains 'ANTON' order by A")))

但结果在列中:

ANTON  |  IRKUTSK |     NO
ANTON  |  TORONTO |     NO
BEN    |  MOSKOW  |    YES
BEN    |  PARIS   |    YES
BEN    |  MOSKOW  |     NO

而我只需要每行一个单元格的结果,如下所示:

ANTON IRKUTSK NO
ANTON TORONTO NO
BEN MOSCOW YES
BEN PARIS YES
BEN MOSKOW NO

Google 工作表 query 中没有 concat 选项。

JPV 建议的解决方法可能适合您:

使用公式:

=ARRAYFORMULA( SUBSTITUTE( trim(transpose(query(transpose(_your_query_here_),,COLUMNS(_your_query_here_))))," "," → ") )

" → " 更改为 space " " 以将结果与 space 连接。


有关表格中 SQL 的更多信息:

https://developers.google.com/chart/interactive/docs/querylanguage

使用转置两次。

=transpose(query(transpose(_you query_);;COLUMNS(_you query_)))

以我的问题为例:

=transpose(query(transpose(UNIQUE(query(A:C; "select * where A contains 'BEN' OR A contains 'ANTON' order by A")));;COLUMNS(UNIQUE(query(A:C; "select * where A contains 'BEN' OR A contains 'ANTON' order by A")))))

结果:

ANTON IRKUTSK NO
ANTON TORONTO NO
BEN MOSCOW YES
BEN PARIS YES
BEN MOSKOW NO

不幸的是,我的问题恰恰相反,当我使用常规查询时,表格会连接我的字符串。

=QUERY('Co-voiturage'!D21:F24;"select D, E Where F <> 0")