【问题标题】:Google Sheets: Arrayformula for summarizing textjoined arrays (query/filter...)Google 表格:用于汇总文本连接数组的 Arrayformula(查询/过滤器...)
【发布时间】:2022-02-22 21:11:56
【问题描述】:

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

我做了一个简单的例子,我的数据(大致)看起来如何以及我想如何总结它。 在 table1 中,您可以看到 project_members 填充在不同的项目中。 表 2 显示了我希望如何可视化我的数据。在 D 列中,列出了唯一的 project_id,到目前为止一切都很好。现在我希望 E 列显示我可以在他们旁边找到的项目中的每个成员。

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

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

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

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

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

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

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

【问题讨论】:

  • 请分享指向您的电子表格的链接、电子表格的副本或包含一些真实数据的虚拟电子表格。无论您选择哪个,请指明您希望结果显示在哪里(尽管我建议您将结果显示在他们自己的工作表中)。
  • 嘿 Erik,这里是一个虚拟版本的链接:docs.google.com/spreadsheets/d/… 在我的实际应用程序中,我希望结果出现在不同的工作表中,但在这种情况下应该是无关紧要的,因为我只是在根据我的需要调整公式之前,一般需要一个可行的解决方案:)

标签: google-sheets automation google-sheets-formula formula array-formulas


【解决方案1】:

解决方案

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

=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,)),然后应用 query(,,9*9) 收集每一列中的所有项目

【讨论】:

  • 嗨,迈克,感谢您的回复。问题是,项目不断增加,需要更动态的解决方案。我想要一个(数组)公式,它会自动为整列生成结果,而不需要引用静态范围。
  • 我为误解表示歉意,但确实如此。我会澄清我的答案。 Ich entschuldige mich für das Missverständnis, aber ja, das ist bereits der Fall。 Ich werde meine Antwort präzisieren。
  • 谢谢迈克!你的公式也有效!
  • 回答你的问题,我使用的 9^9 也是查询的第三个参数。就是说查询函数的结果表头要取9^9行数据!!这意味着整体......这是合并或连接 ech 列中所有项目的技巧。
【解决方案2】:

查看我新添加的工作表(“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]+$";"")})

这个公式很复杂,所以我邀请任何有兴趣的人把它拆开,然后重新组合起来理解。

【讨论】:

  • 嘿埃里克!非常感谢!这真的很好用!这个公式非常复杂,我不理解“9^9”部分,但它确实发挥了作用。
  • 每当您在公式中看到9^9 时,这只是一种普遍接受的说法,即“一个非常高的数字”或“比你需要的更多”。如果您将9^9 替换为10,那么您的小示例将同样有效;但由于您的最终元素数量未知,9^9 保证您将被覆盖。如果您感觉好些,请将其更改为大于您尝试使用该公式处理的最大行数的数字,应该没问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 2021-10-09
  • 2021-08-11
  • 2021-06-05
  • 2021-03-31
  • 2021-04-30
相关资源
最近更新 更多