首页 > 解决方案 > 存在匹配项时将单元格值合并到一个单元格中

问题描述

我有这四列

 Handle           Title          Images                   Joined Images                  
 Dalmas HG       Dalmas HG      http://4b1e4d.jpg    http://4b1e4d.jpg,http://ee78e4.jpg, http://7390f6.jpg
 Dalmas HG                      http://ee78e4.jpg
 Dalmas HG                      http://7390f6.jpg
 Klyftig         Klyftig        http://7390f6.jpg
 Klyftig                        http://8ffa40.jpg
 Klyftig                        http://f1627e.jpg
 Klyftig                        http://f21eda.jpg
 Klyftig                        http://6001d2.jpg

然后,如果它们具有相同的句柄,我想加入图像。但我找不到如何做的谜语。

这就是我试图解决它的方式

   DALMAS   =if(A2=B2,JOIN(",", C2:C4),IFERROR(VLOOKUP(C2:C,3,FALSE)))
KLYFTIG =if(A5=B5,JOIN(",", C5:C9),IFERROR(VLOOKUP(C2:C,3,FALSE)))

返回:http ://4b1e4d.jpg、http://ee78e4.jpg、http ://7390f6.jpg

但这意味着当我到达下一个句柄时,我需要手动更改索引。

关于如何更动态地解决这个问题的任何想法?我有这个包含公式的电子表格。

谷歌表格

标签: google-sheetsgoogle-sheets-formula

解决方案


我在这里复印了你的表格

这个公式似乎有效,并且应该适用于最多约 5,000 张图像?也许更多。取决于有多少组。它使用我(和其他一些人)称之为 Query() “smush”的东西。这是一种使用查询标头参数按列将一大堆数据连接在一起的技巧。

=ARRAYFORMULA(TRANSPOSE(SUBSTITUTE(TRIM(QUERY(IF(TRANSPOSE(D2:D)=VLOOKUP(ROW(A2:A),FILTER({ROW(A2:A),A2:A},A2:A<>""),2),B2:B&CHAR(10),),,9^9)),CHAR(10),",")))

推荐阅读