Arrayformula - 从具有相同键 ID 的行中收集所有文本

Posted

技术标签:

【中文标题】Arrayformula - 从具有相同键 ID 的行中收集所有文本【英文标题】:Arrayformula - Gather all text from rows with same key id 【发布时间】:2022-01-18 18:08:09 【问题描述】:

我正在尝试创建一个数组公式,它将查看“key id”列并从具有相同“key id”的所有行的另一列中收集所有文本:

-- col A / col B / col C

1- 密钥 ID/注释/编译注释


2- A1BZ / TACO / TACO FROG

3- T212 / 玉米 / 玉米苹果

4- T212 / 苹果 / 玉米苹果

5- CD41 / 狗 / 狗

6- A1BZ / 青蛙 / 塔可青蛙

我将它与 appsheet 一起用作后端公式,并且由于工作表处于活动状态(删除并添加了行,我需要这是一个数组公式。我认为某种类型的 JOIN() 带有 IF 语句。但我请注意提出任何可行的方法。如果它不是带有 FILTER() 的数组公式,我可以让它工作。

想法?

【问题讨论】:

分享您的工作表副本 我不清楚你在这里问什么。您显示三三列数据;但是你想要什么输出/返回?它应该是什么样子?它应该去哪里? (或者您是说您希望公式使用 Col-A 和 Col-B 数据来返回您在 Col-C 中显示的内容?) 通过共享电子表格,请注意your email address can be accessed by the public。 Tables 是首选。您可以使用公式轻松创建表格:=ARRAYFORMULA("|"&A1:G20),如果您想共享A1:G20。但是,第一行 A1:G1 必须是标题行,第二行 A2:G2 应该只在所有单元格中包含破折号 -- 【参考方案1】:

请参阅我上面的评论和问题。但是,如果我的括号问题的答案是肯定的,您可以删除 Col-C 中的所有内容(包括标题)并将以下公式放在单元格 C1 中:

=ArrayFormula("COMPILED NOTES"; IF(A2:A="",,VLOOKUP(A2:A,TRIM(SPLIT(FLATTEN(QUERY(QUERY(A2:A&"~",B2:B,"Select MAX(Col2) WHERE Col2 Is Not Null GROUP BY Col2 PIVOT Col1"),,9^9)),"~")),2,FALSE)))

【讨论】:

对不起,我不清楚公式需要放在哪里。用于收集 colB 音符数据的数组公式将在 C1 中。 工作就像一个魅力。我对查询的语法很模糊,但这表示它是一个易于遵循且适应性很强的公式。感谢您的帮助 很高兴它如您所愿,汤姆。如果 学习 表格功能对您很重要,那么学习一件事的最佳方法是将其拆开、研究并重新组合起来。因此,如果以理解为目标,我鼓励您使用这个公式,从内到外做到这一点。

以上是关于Arrayformula - 从具有相同键 ID 的行中收集所有文本的主要内容,如果未能解决你的问题,请参考以下文章

SQL Join 一对多从满足条件的相同键值组中提取值

如何将多个函数与ArrayFormula结合使用

具有相同 ID 键字段的多对多

识别具有相同 ID 的列

无法跟踪实体类型的实例,因为已经在跟踪具有相同键值对的另一个实例 'Id'

GET 调用:已添加具有相同密钥的项目。键:标识