我有这样的表。在现实生活中,它将有超过1000行。
Client | Group -------------- Merry | A Merry | C Susan | B Mike | C Susan | A Joe | A Tom | B Tom | C
我列出了从Google表格中填写的所有客户。我想在第一行中仅使用arrayformula将Group列填充到每个客户端的组中。我想要的输出是:
Name | Groups ---------------- Joe | A Tom | B, C Mike | C Merry | A, C Susan | A, B Peter |
我最好的结果是:
Name | Groups | | | | | | | | ---------------------------------------------- Joe | | | | | | A | | | Tom | | | | | | | B | C | Mike | | | | C | | | | | Merry | A | C | | | | | | | Susan | | | B | | A | | | | Peter | | | | | | | | |
看起来它符合我的要求,但我无法将所有这些列合并为一个。公式是:
= ARRAYFORMULA(IF(名称<>"&#34 ;; IF(名称= TRANSPOSE(FILTER(客户端; LEN(客户端))); TRANSPOSE(FILTER(基; LEN(组))) ;);))
我使用" name"," client"和"组"作为根据列标题命名的范围。
样本表在这里(仅供查看): https://docs.google.com/spreadsheets/d/1VFnmyDTQhlCaANAvkzLgzKRKchPsGzFn4hDZYOoJF_M/edit?usp=sharing
答案 0 :(得分:1)
除了Rubén的解决方案,还可以尝试
b1
注意:根据您的语言环境,您可能需要使用此公式:
=arrayformula( regexreplace( { unique(A3:A), trim( transpose( query( if( ( transpose(unique(A3:A)) = A3:A ) * len(A3:A), B3:B & ",", ), "select *", 50000) ) ) }, ",$", "" ) )
答案 1 :(得分:0)
此时考虑到“最佳结果”在链接电子表格中的H3:O8
上。
以下公式返回所需的结果:
=ArrayFormula(substitute(transpose(trim(query(transpose(H3:O8);"select *";ROWS(A:A))));" ";","))
解释
QUERY连接用空格字符分隔它们的行值。上面的公式使用此功能来连接到目前为止由OP获得的结果,然后TRIM用于删除多余的空格,而SUBSTITUTE用逗号替换剩余的空格。