Join 如何将此公式的数组结果与一个"&引用;?

Join 如何将此公式的数组结果与一个"&引用;?,join,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,Join,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,我试着在我能想到的每一个地方将JOIN添加到这个公式中,但没有一个是正确的 =ARRAYFORMULA(Iferor(VLOOKUP)(D2:D&E2:E, 这句话的意思是:TRIM(转译( {索引(查询(IFERROR)(拆分(排序(唯一)(IF((LEN(tasksAssociations!C2:C&tasksAssociations!D2:D))*(LEN(tasksAssociations!G2:G)), tasksAssociations!C2:C和tasksAssociations!

我试着在我能想到的每一个地方将
JOIN
添加到这个公式中,但没有一个是正确的

=ARRAYFORMULA(Iferor(VLOOKUP)(D2:D&E2:E,
这句话的意思是:TRIM(转译(
{索引(查询(IFERROR)(拆分(排序(唯一)(IF((LEN(tasksAssociations!C2:C&tasksAssociations!D2:D))*(LEN(tasksAssociations!G2:G)),
tasksAssociations!C2:C和tasksAssociations!D2:D和“♦"&tasksAssociations!G2:G,),1,1),”♦")), 
“选择Col1,count(Col1),其中Col1不为空,按Col1 pivot Col2分组”,0),,1),如果(
ISNUMBER(查询(IFERROR)(拆分(排序)(唯一)(如果((LEN(tasksAssociations!C2:C&tasksAssociations!D2:D))*(LEN(tasksAssociations!G2:G)),
tasksAssociations!C2:C和tasksAssociations!D2:D和“♦&tasksAssociations!G2:G,)、1、1、♦")), 
“选择计数(Col1),其中Col1不为空,按Col1 pivot Col2分组”,0),
查询(IFERROR(拆分(排序)(唯一)(如果((LEN(tasksAssociations!C2:C&tasksAssociations!D2:D))*(LEN(tasksAssociations!G2:G)),
tasksAssociations!C2:C和tasksAssociations!D2:D和“♦♥&tasksAssociations!G2:G,)、1、1、♦")),
“选择计数(Col1),其中Col1不为空(按Col1 pivot Col2 limit 0,0分组),)})
,,999^99))), "♥"))), {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, 0)))
结果是多个列/行。我想保留这些行,但用“
”连接列值

也许像这样:

=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(IFERROR(VLOOKUP(D2:D&E2:E, 
 TRIM(IFERROR(SPLIT(TRIM(TRANSPOSE(QUERY(TRANSPOSE(
 {INDEX(QUERY(IFERROR(SPLIT(SORT(UNIQUE(IF((LEN(tasksAssociations!C2:C&tasksAssociations!D2:D))*(LEN(tasksAssociations!G2:G)), 
 tasksAssociations!C2:C&tasksAssociations!D2:D&"♦"&tasksAssociations!G2:G, )), 1, 1), "♦")), 
 "select Col1,count(Col1) where Col1 is not null group by Col1 pivot Col2", 0),,1), IF(
 ISNUMBER(QUERY(IFERROR(SPLIT(SORT(UNIQUE(IF((LEN(tasksAssociations!C2:C&tasksAssociations!D2:D))*(LEN(tasksAssociations!G2:G)), 
 tasksAssociations!C2:C&tasksAssociations!D2:D&"♦"&tasksAssociations!G2:G, )), 1, 1), "♦")), 
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2", 0)),
 QUERY(IFERROR(SPLIT(SORT(UNIQUE(IF((LEN(tasksAssociations!C2:C&tasksAssociations!D2:D))*(LEN(tasksAssociations!G2:G)), 
 tasksAssociations!C2:C&tasksAssociations!D2:D&"♦♥"&tasksAssociations!G2:G, )), 1, 1), "♦")),
 "select count(Col1) where Col1 is not null group by Col1 pivot Col2 limit 0", 0), )})
 ,,999^99))), "♥"))), {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}, 0)), " ", "♫")),,999^99))), " ", ", "), "♫", " "))

非常感谢!我看到您将它包装在三个
替换
中。我理解其中一个如何用
替换空格。”♫“
然后再返回。这里的逻辑是什么?显然是必要的,但对我来说没有意义。query smash(例如:
TRANSPOSE(TRANSPOSE(…),999^99))
)将所有列合并到一列中,并且每一列都用额外的空格分隔(例如:col1value col2value col3value…)但我们需要逗号+空格作为分隔符,所以在查询粉碎之前,数据集中的所有空格都被替换为唯一的符号,然后查询粉碎使用空格分隔符连接所有列。然后,我们用逗号+空格替换空格分隔符,然后用空格替换唯一的符号,返回粉碎之前的所有原始空格