Объединить список идентификаторов на основе совпадающих идентификаторов в списке через запятую в другом столбце - PullRequest
1 голос
/ 18 октября 2019

Использование листов Google: у меня есть два столбца.

Столбец A - это список идентификационных номеров:
N1
N2
N3
N4
N5

Столбец B - это список других, разделенных запятымиИдентификационные номера в столбце A относятся к идентификационному номеру в той же строке:
N2, N3
N3, N4
(ноль)
(ноль)
N1

Iпытаюсь создать формулу в третьем столбце, столбце C, который будет отображать разделенный запятыми список номеров идентификаторов из столбца A, которые соответствуют номерам, введенным в столбце B.

Ожидаемый результат:
А |Б |C
N1 |N2, N3 |N4, N5
N2 |N3, N4 |N1
N3 |(ноль) |N1, N2
N4 |N1 |N2
N5 |N1 |(null)


Наиболее близкая, которую я мог получить, была эта формула здесь:

=arrayFormula({concatenate(rept(A:A&",",B:B=A2))})


Но это будет работать, только если несколько элементов не были введеныв столбец B, поэтому при использовании этого значения в столбце C будет возвращаться только «N4, N5», а не остальное, показанное в намеченном результате.

Редактировать (обновленное изображение): сейчас я вижу следующее, кажется, где-то ошибка: UpdatedImage

1 Ответ

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

попробуй так:

=ARRAYFORMULA(IFERROR(VLOOKUP(A1:A, 
 {QUERY(QUERY(SPLIT(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(IFERROR(SPLIT(B1:B, ","))<>"", "♦"&SPLIT(B1:B, ",")&"♠"&A1:A, ))
 ,,999^99)),,999^99), "♦"))), "♠"), 
 "select Col1,count(Col1) group by Col1 pivot Col2"), "select Col1 offset 1", 0), 
 SUBSTITUTE(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(ISNUMBER(
 QUERY(QUERY(SPLIT(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(IFERROR(SPLIT(B1:B, ","))<>"", "♦"&SPLIT(B1:B, ",")&"♠"&A1:A, ))
 ,,999^99)),,999^99), "♦"))), "♠"), 
 "select count(Col1) group by Col1 pivot Col2"), "offset 1", 0)), 
 QUERY(QUERY(SPLIT(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(IFERROR(SPLIT(B1:B, ","))<>"", "♦"&SPLIT(B1:B, ",")&"♠"&A1:A, ))
 ,,999^99)),,999^99), "♦"))), "♠"), 
 "select count(Col1) group by Col1 pivot Col2"), "limit 0", 1)&",", ))
 ,,999^99))), ",$", ), ", ", ",")}, 2, 0)))

0

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