Страницы: 1
RSS
Объединить значения соседних ячеек в одну , удалив с последних дубликаты
 
Здравствуйте !
Нужно в ячейку "a3" переместить значения всех 3-их ячеек справа , удалив с них дубли (но чтоб остались уникальные значения) . Если задача тяжелая , можно не всех , а только 6 первых ячеек справа .

К примеру ячейка а3 пустая. Справа ячейки со значениями "38" , "38", "41", 40 , а все что правее -  пустые . Нужно чтобы ячейка а3 имела значение "38, 41, 40" (без пробелов в конце) или значение без запятых "38 41 40"  .

Пример прилагается

Заранее спасибо за помощь!
Изменено: Дмитрий - 20.07.2020 10:02:06
 
добрый день. какая у вас версия Excel?
в последней просто:
Код
=ОБЪЕДИНИТЬ(" ";1;УНИК(B3:AK3))
Соблюдение правил форума не освобождает от модераторского произвола
 
Добрый день ! У меня excel 2007
а с какой версии екселя я смогу использовать эту функцию , подскажите? Купить новую версию единственный вариант или есть альтернатива в моей версии ?
 
добрый день, для диапазона B:AK
Код
=СЖПРОБЕЛЫ(СЦЕПИТЬ(ЕСЛИ(СЧЁТЕСЛИ(B3:B3;B3)>1;"";B3);ЕСЛИ(СЧЁТЕСЛИ(B3:C3;C3)>1;"";" "&C3);ЕСЛИ(СЧЁТЕСЛИ(B3:D3;D3)>1;"";" "&D3);ЕСЛИ(СЧЁТЕСЛИ(B3:E3;E3)>1;"";" "&E3);ЕСЛИ(СЧЁТЕСЛИ(B3:F3;F3)>1;"";" "&F3);ЕСЛИ(СЧЁТЕСЛИ(B3:G3;G3)>1;"";" "&G3);ЕСЛИ(СЧЁТЕСЛИ(B3:H3;H3)>1;"";" "&H3);ЕСЛИ(СЧЁТЕСЛИ(B3:I3;I3)>1;"";" "&I3);ЕСЛИ(СЧЁТЕСЛИ(B3:J3;J3)>1;"";" "&J3);ЕСЛИ(СЧЁТЕСЛИ(B3:K3;K3)>1;"";" "&K3);ЕСЛИ(СЧЁТЕСЛИ(B3:L3;L3)>1;"";" "&L3);ЕСЛИ(СЧЁТЕСЛИ(B3:M3;M3)>1;"";" "&M3);ЕСЛИ(СЧЁТЕСЛИ(B3:N3;N3)>1;"";" "&N3);ЕСЛИ(СЧЁТЕСЛИ(B3:O3;O3)>1;"";" "&O3);ЕСЛИ(СЧЁТЕСЛИ(B3:P3;P3)>1;"";" "&P3);ЕСЛИ(СЧЁТЕСЛИ(B3:Q3;Q3)>1;"";" "&Q3);ЕСЛИ(СЧЁТЕСЛИ(B3:R3;R3)>1;"";" "&R3);ЕСЛИ(СЧЁТЕСЛИ(B3:S3;S3)>1;"";" "&S3);ЕСЛИ(СЧЁТЕСЛИ(B3:T3;T3)>1;"";" "&T3);ЕСЛИ(СЧЁТЕСЛИ(B3:U3;U3)>1;"";" "&U3);ЕСЛИ(СЧЁТЕСЛИ(B3:V3;V3)>1;"";" "&V3);ЕСЛИ(СЧЁТЕСЛИ(B3:W3;W3)>1;"";" "&W3);ЕСЛИ(СЧЁТЕСЛИ(B3:X3;X3)>1;"";" "&X3);ЕСЛИ(СЧЁТЕСЛИ(B3:Y3;Y3)>1;"";" "&Y3);ЕСЛИ(СЧЁТЕСЛИ(B3:Z3;Z3)>1;"";" "&Z3);ЕСЛИ(СЧЁТЕСЛИ(B3:AA3;AA3)>1;"";" "&AA3);ЕСЛИ(СЧЁТЕСЛИ(B3:AB3;AB3)>1;"";" "&AB3);ЕСЛИ(СЧЁТЕСЛИ(B3:AC3;AC3)>1;"";" "&AC3);ЕСЛИ(СЧЁТЕСЛИ(B3:AD3;AD3)>1;"";" "&AD3);ЕСЛИ(СЧЁТЕСЛИ(B3:AE3;AE3)>1;"";" "&AE3);ЕСЛИ(СЧЁТЕСЛИ(B3:AF3;AF3)>1;"";" "&AF3);ЕСЛИ(СЧЁТЕСЛИ(B3:AG3;AG3)>1;"";" "&AG3);ЕСЛИ(СЧЁТЕСЛИ(B3:AH3;AH3)>1;"";" "&AH3);ЕСЛИ(СЧЁТЕСЛИ(B3:AI3;AI3)>1;"";" "&AI3);ЕСЛИ(СЧЁТЕСЛИ(B3:AJ3;AJ3)>1;"";" "&AJ3);ЕСЛИ(СЧЁТЕСЛИ(B3:AK3;AK3)>1;"";" "&AK3)))
 
Спасибо огромное! Для моей версии как раз выход из ситуации.  
 
Дмитрий Кушнарёв, вариант (но кажется будут не корректные данные когда у вас есть информация в 1 столбце)
Код
Sub scep_unik()
Dim i As Long, n As Long, k As Long, lr As Long, lcol As Long
Dim MyCol As New Collection
Application.ScreenUpdating = False
lr = Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To lr
lcol = Cells(i, Columns.Count).End(xlToLeft).Column
Set MyCol = New Collection
    For n = 2 To lcol
    On Error Resume Next
    If Cells(i, n) <> "" Then MyCol.Add Cells(i, n).Value, CStr(Cells(i, n).Value)
    Next n
    
    For k = 1 To MyCol.Count
    Cells(i, 1) = Cells(i, 1) & " " & MyCol(k)
    Next k
     
Next i

Application.ScreenUpdating = True
End Sub
Изменено: Mershik - 20.07.2020 17:34:29
Не бойтесь совершенства. Вам его не достичь.
Страницы: 1
Наверх