Объединить значение ячейки в одну ячейку при наличии совпадений - PullRequest
0 голосов
/ 16 июня 2020

У меня есть четыре столбца

 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 Sheet

Ответы [ 2 ]

2 голосов
/ 16 июня 2020

Я сделал копию вашего листа здесь .

Кажется, эта формула работает и должна работать примерно с 5000 изображений? может больше. зависит от того, сколько есть наборов. он использует то, что я (и некоторые другие) называю Query () «smu sh». Это своего рода трюк с использованием параметра заголовка запроса для объединения всей группы данных по столбцам.

=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),",")))
0 голосов
/ 16 июня 2020

Не уверен, как вы хотите получить результат, но если вам нужен объединенный список всех jpeg для каждого имени, вы можете попробовать

=arrayformula(regexreplace({unique(A2:A), trim(transpose(query(if((transpose(unique(A2:A))=A2:A)*len(A2:A),B2:B&",",),,50000)))},",$", ))

Примечание: я удалил ведущие пробелы перед некоторыми именами .

Screenshot

...