Удалить дубликаты из ArrayFormula - PullRequest
0 голосов
/ 04 декабря 2018

Прямо сейчас моя формула:

=ARRAYFORMULA(TEXTJOIN(", ", TRUE, IF(REGEXMATCH(B2:D7,F2),A2:A7,"")))

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

Например, она возвращает: «Evolution, Route158, маршрут 161, маршрут 161, маршрут 161 ', если значение найдено в нескольких ячейках в одной строке.Я хотел бы знать, как удалить эти дубликаты или сделать поиск только для поиска «уникальных» значений.

1 Ответ

0 голосов
/ 04 декабря 2018

Попробуйте

=ARRAYFORMULA(TEXTJOIN(", ", TRUE, UNIQUE(TRANSPOSE(IF(REGEXMATCH(B2:D7,F1),A2:A7,)))))

РЕДАКТИРОВАТЬ: приведенная выше формула должна создать один столбец из соответствующих ячеек.Это должно работать

=ARRAYFORMULA(join(", ", substitute(unique(transpose(split(textjoin(" ", 1, query(UNIQUE(TRANSPOSE(IF(REGEXMATCH(B2:D7,F1),substitute(A2:A7, " ", "|"),))),,rows(A2:A7))), " "))), "|"," ")))

Но лучше / проще было бы попробовать что-то вроде

=JOIN(", ", FILTER(A2:A7, MMULT(--regexmatch(B2:D7, F1), TRANSPOSE(COLUMN(B1:D1)^0))>0))

Эта формула «подсчитывает» количество совпадений в строке, а затем возвращает FILTER ()значения в A с количеством> 0. Посмотрите, поможет ли это?

...