Смотрите ниже изображение моих 3 входов (столбцы A:C) и ожидаемого выхода (столбец D),
Я хотел бы перечислить уникальные значения для каждой строки в качестве вывода, разделенных запятой.
Смотрите ниже изображение моих 3 входов (столбцы A:C) и ожидаемого выхода (столбец D),
Я хотел бы перечислить уникальные значения для каждой строки в качестве вывода, разделенных запятой.
В ячейке D1 используйте:
=TRIM(A1&IF(COUNTIF(A1:C1,B1)>1,"",","&B1)&IF(COUNTIF(A1:C1,C1)>1,"",","&C1))
Затем перетащите вниз.
Если у вас есть больше столбцов, добавьте &IF(COUNTIF(A1:C1,C1)>1,"",","&C1)
измените C1 на D1 для четвертого столбца и на E1 для пятого и т.д.
Также измените A1:C1
в COUNTIF
для соответствия диапазону количества столбцов, которые вы можете использовать.
Этот простой 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
Как это устроено:
Чтобы получить желаемый результат, в ячейке D2
напишите ниже
Формула написана и заполнена.
=CombineUnique(A2:C2,",")
Обратите внимание, при необходимости измените ссылки на ячейки в формуле.
Если у вас Office 365 Excel, вы можете использовать TEXTJOIN в качестве формулы массива:
=TEXTJOIN(",",TRUE,IF(COLUMN(A2:C2)=MATCH(A2:C2,A2:C2,0),A2:C2,""))
Будучи формулой массива, она должна быть подтверждена Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.
Это повторяет и проверяет, является ли экземпляр первым, и если это так, он добавит его в строку.