Пользовательская формула для объединения нескольких строк, если выполняется условие - PullRequest
1 голос
/ 09 октября 2019

У меня проблемы с написанием UDF для листов, который позволил бы мне объединять несколько строк данных в одно текстовое поле с разделителем на основе уникального идентификатора. Я видел примеры этого для Excel, но не смог найти эквивалент листа. По сути, я хочу объединить все значения в B: B, где B (i) = A (i), разделенные запятой, каналом или каким-либо другим разделителем.

По сути, я хочу объединить все значения в B: B, где B (i) = A (i) в одной ячейке, разделенной запятой или каналом или каким-либо другим разделителем.

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

для объединения всех значений в B: B, где B (i) = A (i) в одной ячейке, разделенной запятой

=ARRAYFORMULA(REPT(INDIRECT("A1:A"&COUNTA(A1:A))&",", 
 QUERY(B:B, "select count(B) where B matches '"&
 TEXTJOIN("|", 1, A:A)&"' group by B label count(B)''", 0)))

0

и для удаления запятых с конца вы можете сделать:

=ARRAYFORMULA(REGEXREPLACE(REPT(INDIRECT("A1:A"&COUNTA(A1:A))&",", 
 QUERY(B:B, "select count(B) where B matches '"&
 TEXTJOIN("|", 1, A:A)&"' group by B label count(B)''", 0)), ",$", ))

0

0 голосов
/ 09 октября 2019

Посмотрите, поможет ли эта формула

=textjoin(", ", 1, unique(filter(B:B, B:B=C:C)))

или, в зависимости от вашей локали

=textjoin(", "; 1; unique(filter(B:B; B:B=C:C)))

Если это не поможет, предоставьте копию своей таблицы с правами на редактирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...