Объединить уникальные значения ячеек в одной строке
375
Ravi Bhesadadiya
Смотрите ниже изображение моих 3 входов (столбцы A: C) и ожидаемого выхода (столбец D),
Я хотел бы перечислить уникальные значения для каждой строки в качестве вывода, разделенных запятой.
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что вопросы должны демонстрировать разумное количество исследований и понимания решаемой проблемы. Пожалуйста, отредактируйте: а) четко опишите вашу проблему и исследования, проведенные до сих пор для ее решения, или б) включите попытки решения плюс почему они не сработали. В любом случае, убедитесь, что ваши ожидаемые результаты четко представлены.
Tetsujin 6 лет назад
1
Возможный дубликат [объединить две строки в листе Excel, где одна ячейка имеет одинаковое содержимое, а другие ячейки имеют другое содержимое] (https://superuser.com/questions/629493/merge-two-rows-in-excel-worksheet-where- одна клетки-имеет-же-контент-но-другие сотни)
Burgi 6 лет назад
1
Если у вас есть больше столбцов, то добавьте, &IF(COUNTIF(A1:C1,C1)>1,"",","&C1)измените C1 на D1 для четвертого столбца и на E1 для пятого, и так далее.
Также измените A1:C1в COUNTIFсоответствии с диапазоном скольких столбцов вы можете использовать.
Woow, это работает, спасибо PeterH Но проблема в том, что у меня есть 7 входных столбцов, тогда какова будет окончательная формула?
Ravi Bhesadadiya 6 лет назад
0
Смотрите обновление, чтобы ответить @RaviBhesadadiya, если это работает для вас, примите как правильный ответ
PeterH 6 лет назад
0
Идеальное спасибо, вы мне очень помогли !!
Ravi Bhesadadiya 6 лет назад
0
Хороший @PeterH, идеальный 10 ☺
Rajesh S 6 лет назад
0
2
Rajesh S
Этот простой UDF поможет вам объединить уникальные значения в ячейке, разделенной запятой.
Вставьте этот код как модуль с соответствующим листом.
Function CombineUnique(xRg As Range, xChar As String) As String Dim xCell As Range Dim xDic As Object Set xDic = CreateObject("Scripting.Dictionary") For Each xCell In xRg xDic(xCell.Value) = Empty Next CombineUnique = Join$(xDic.Keys, xChar) Set xDic = Nothing End Function
Как это устроено:
Перед запуском этого UNF Добавьте Microsoft Scripting Runtime, используя Инструменты, Ссылки в окне VB Editor.
Чтобы получить желаемый результат, в ячейке D2напишите ниже написанную формулу и заполните.
=CombineUnique(A2:C2,",")
Обратите внимание, при необходимости измените ссылки на ячейки в формуле.
Вы используете Late-Binding. Поэтому нет причин добавлять ссылку на среду выполнения сценариев Microsoft. Это потребуется только в том случае, если вы используете раннее связывание.
Ron Rosenfeld 6 лет назад
0
@RonRosenfeld, в качестве меры предосторожности стоит добавить, что иногда я сталкиваюсь с ошибкой. СПАСИБО за ценные отзывы. ☺
Rajesh S 6 лет назад
0
1
Scott Craner
Если у вас Office 365 Excel, вы можете использовать TEXTJOIN в качестве формулы массива: