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 的行中收集所有文本的主要内容,如果未能解决你的问题,请参考以下文章