如何使用 QUERY 将唯一字符串连接到自己的列中?

问题描述 投票:0回答:1

我们有一张包含所有日历事件的表:

“日历事件”表

eventId  name       startDate        endDate            guest
A   Bob             10/7/2024 18:00  10/7/2024 19:00    [email protected]       
B   Mike            10/9/2024 18:00  10/9/2024 19:00    [email protected]      
C   Bob             10/9/2024 19:00  10/9/2024 20:00    [email protected]       
D   Bob             10/9/2024 20:00  10/9/2024 21:00    [email protected]       
E   Cancelled Mike  10/11/2024 16:00 10/11/2024 17:00   [email protected]      
F   Other event     10/11/2024 16:00 10/11/2024 17:00

我们有一个数据透视表可以满足我们的需要,但我们需要将其替换为

QUERY
函数,以便在应用程序脚本运行时可以自动填充它。不幸的是,这不适用于数据透视表。

工作表“数据透视表”(所需结果)

guest        eventCount evenTitle
                1       Other event 
[email protected]   3       Bob
[email protected]  2       Mike, Cancelled Mike

我们能够正确重现前两列:

=QUERY(CalendarEvents!A5:Z, "SELECT E, count(E) GROUP BY E",1)

但是,我们似乎无法在第三列中获得唯一的字符串(

eventTitle
)。我们希望这会起作用,但事实并非如此:

=QUERY(CalendarEvents!A5:Z, "SELECT E, count(E), STRING_AGG(DISTINCT B, ', ') GROUP BY E",1)

错误:无法解析函数 QUERY 参数 2 的查询字符串:PARSE_ERROR:在第 1 行第 31 列遇到“”(“”(“”。期望出现以下之一:

这是测试表

谢谢您的帮助。

google-sheets google-sheets-formula
1个回答
1
投票

以下是您可以相应调整的通用方法:

=query({B6:B,E6:E,map(E6:E,lambda(Σ,textjoin(", ",1,unique(filter(B6:B,E6:E=Σ)))))},
 "Select Col2,count(Col1),Col3 Where Col1!='' group by Col2,Col3 label count(Col1) ''",0)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.