2015-06-17 4 views
-1

У меня есть одна колонка в excel, где есть список значений.Хранить значение в одной ячейке

что я хочу сделать, это я хочу удалить повторяющиеся значения из этого столбца и хочу сохранить все эти уникальные значения в одной ячейке например. после того, как removeing ​​дубликаты, если есть список ниже значений БКП OIP OWL OVL Тогда я хочу, чтобы хранить эти данные в одной ячейке т.е. БКП, ОИС, OWL, OVL

Пожалуйста, помогите ... это будет хорошо, если будет какой-либо код VBA или первенствовать формула

Sample

+0

'Пожалуйста, помогите ... это будет хорошо, если будет какой-либо код vba или формула excel. Будет хорошо, если бы я мог получить оплату за такие вопросы: D Возможно, вы захотите увидеть [How To Ask Good Вопросы] (http://stackoverflow.com/help/how-to-ask) –

+0

Добро пожаловать в SO. Это не бесплатная служба написания кода, но мы будем рады помочь вам с вами. Покажите нам, что вы пробовали, и где вы столкнулись с проблемами. Существует множество примеров подобных проблем на SO, которые должны дать вам начало. Вы можете начать с проверки Excel HELP для «удаления дубликатов», затем выполните поиск SO для того, чтобы объединить переменное количество ячеек в один. –

ответ

0

спасибо за помощь ...

я сделал с моим собственным ..... однако действительно спасибо за то же самое ...

Sub combine() 
Dim mstr, mstr2 As String 
Dim v As Range 
Set v = Sheets("Data").Range("A1") 
mstr = "" 
mstr2 = "" 
i = 0 
Do 
i = i + 1 
v.Cells(i, 1).Select 

If IsNumeric(v.Cells(i, 1)) = True Then 
mstr = mstr + "'" + str(v.Cells(i, 1)) + "' or " 
mstr2 = mstr2 + "'" + str(v.Cells(i, 1)) + "' , " 
Else 
mstr = mstr + "'" + v.Cells(i, 1) + "' or " 
mstr2 = mstr2 + "" + v.Cells(i, 1) + " , " 
End If 

Loop While IsEmpty(v.Cells(i + 1)) = False 
mstr = Left(mstr, Len(mstr) - 4) 
mstr2 = Left(mstr2, Len(mstr2) - 4) 
Sheets("Data").Range("C3") = mstr 
Sheets("Data").Range("C4") = mstr2 

End Sub 
0

Вы можете создать следующую пользовательскую функцию:

Function UniqueInString(InputList As Range) As String 

    Dim inputListArray() As String 

    Dim cell As Range 
    Dim size As Integer 
    size = 0 
    ReDim Preserve inputListArray(size) 
    For Each cell In InputList.Cells 
     If Not (UBound(Filter(inputListArray, cell.Value)) > -1) Then 
      ReDim Preserve inputListArray(size) 
      inputListArray(size) = cell.Value 
      size = size + 1 
     End If 
    Next cell 


    Dim counter As Integer 
    Dim result As String 
    result = "" 
    For counter = 0 To UBound(inputListArray) 
     result = result + inputListArray(counter) + "," 
    Next counter 
    result = Left(result, Len(result) - 1) 
    UniqueInString = result 
End Function 

Это Виль дать вам уникальные записи в одной ячейке, без необходимости создавать уникальный список записей. Просто вызовите эту функцию в списке, содержащем все записи. Заметьте, что я не делаю этого так хорошо, если там очень много записей.

Смежные вопросы