如何将过滤器公式创建为数组公式

How to create a filter formula as an arrayformula

我有多个列依赖于这个公式。

我有这样的例子,一个员工可以为同一个项目分配多个任务,我使用公式合并行并添加导致相应行中出现额外行的值:

我首先执行 = Unique(A3:D) 来提取列表,然后:

=IF($A3<>"",join(", ",filter(Sheet1!E:E,Sheet1!$A:$A=$G3)),"")

我怎样才能使它成为一个 ArrayFormula? 我这样试过,但结果不正确:

=arrayformula(IF($A2:A<>"",join(", ",filter(Sheet1!E:E,Sheet1!$A:$A=$G2:G)),""))

这是一个示例电子表格: https://docs.google.com/spreadsheets/d/1cLXNidk6FSZbUeU0CK3XlMPWdpBMbnKMXC5gzTfMvY0/edit?usp=sharing

一次搞定:

=ARRAYFORMULA(SPLIT(REGEXREPLACE(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE({
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select Col1,count(Col1) where Col1 is not null group by Col1 pivot Col2", 0),
 "select Col1 offset 1", 0),
 IF(QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "offset 1",0)<>"", 
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, "♦"&E3:E&","}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "limit 0",1), )})
 ,,999^99))), ", ♦", ", "), ",$", ), "♦"))


仅列 K:

=QUERY(ARRAYFORMULA(SPLIT(REGEXREPLACE(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE({
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select Col1,count(Col1) where Col1 is not null group by Col1 pivot Col2", 0),
 "select Col1 offset 1", 0),
 IF(QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, E3:E}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "offset 1",0)<>"", 
 QUERY(QUERY(IF(A3:A<>"", {A3:A&"♦"&B3:B&"♦"&C3:C&"♦"&D3:D, "♦"&E3:E&","}, ), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0), "limit 0",1), )})
 ,,999^99))), ", ♦", ", "), ",$", ), "♦")), "select Col5", 0)