Google 工作表:用于汇总文本连接数组的数组公式 (query/filter...)

Google Sheets: Arrayformula for summarizing textjoined arrays (query/filter...)

我在 Google 工作表使用 Arrayformula 汇总单个单元格中一列的值时遇到问题。

我做了一个简单的例子,说明我的数据(大约)是什么样子以及我想如何总结它。 在表 1 中,您可以看到 project_members 填充在不同的项目中。 表 2 显示了我希望如何可视化我的数据。在 D 列中列出了唯一的 project_ids,到目前为止一切顺利。现在我希望 E 列显示我可以在他们旁边找到的项目中的每个成员。

[示例][1] [1]: https://i.stack.imgur.com/1v1mk.png

我已经设法用这个得到了我想要的东西:

=TEXTJOIN(" , ";1;FILTER(B:B;A:A=D2))

=TEXTJOIN(" , ";1;QUERY(A:D;"Select B 其中 A 包含 '"& D2 &"' ";0))

现在我的实际数据集比这个例子大得多,而且数据还在不断增加。这就是为什么我需要将 E 列中的公式自动化。 我试过这个:

=ARRAYFORMULA(TEXTJOIN(" , ";1;QUERY(A:D;"Select B 其中 A 包含 '"& D:D &"' ";0)))

但这不起作用。 感谢您的帮助!

解决方案

试试这个将添加的行(德语表示法)考虑在内的独特数组公式

=ARRAY_CONSTRAIN( transpose({transpose(unique(A2:A));arrayformula(trim(query(arrayformula(if(A2:A=transpose(unique(A2:A));B2:B&",";));;9^9)))});counta(unique(A2:A));2)

施工说明

最重要的一步是在 D2(美国表示法)=arrayformula(if(A2:A10=transpose(unique(A2:A10)),B2:B10,)),然后应用查询(,9*9) 来收集每列中的所有项目

查看我新添加的 sheet(“Erik Help”)和这个公式:

=ArrayFormula({A1:B1;REGEXREPLACE(TRIM(SPLIT(FLATTEN(QUERY(QUERY({A2:A&"~"\B2:B&","}; "Select MAX(Col2) where Col2 IS NOT NULL GROUP BY Col2 PIVOT Col1");; 9^9));"~"));"[,\s]+$";"")})

这个公式比较复杂,请有兴趣的朋友拆开再组合起来理解。