Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Удаление дубликатов текстовых данных в ячейке - возможно ли? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление дубликатов текстовых данных в ячейке - возможно ли? (Макросы/Sub)
Удаление дубликатов текстовых данных в ячейке - возможно ли?
Nowak Дата: Вторник, 12.08.2014, 23:00 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Есть столбец с текстовыми данными разделенными запятыми с пробелами.
Пример содержимого ячейки:
[Librerie, Librerie per camerette, libreria, libreria, Librerie in legno, Librerie per camerette in legno, Librerie, in stile moderno, Librerie per camerette, in stile moderno]
Наблюдаемые дубликаты в примере: [librerie], [libreria], [librerie per camerette], [in stile moderno]
Задача:
Удалить дубликаты значений в каждой ячейке столбца без учета регистра.


Сообщение отредактировал Nowak - Вторник, 12.08.2014, 23:03
 
Ответить
СообщениеЕсть столбец с текстовыми данными разделенными запятыми с пробелами.
Пример содержимого ячейки:
[Librerie, Librerie per camerette, libreria, libreria, Librerie in legno, Librerie per camerette in legno, Librerie, in stile moderno, Librerie per camerette, in stile moderno]
Наблюдаемые дубликаты в примере: [librerie], [libreria], [librerie per camerette], [in stile moderno]
Задача:
Удалить дубликаты значений в каждой ячейке столбца без учета регистра.

Автор - Nowak
Дата добавления - 12.08.2014 в 23:00
Rioran Дата: Среда, 13.08.2014, 10:46 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Nowak, здравствуйте.

Возможно. Во вложении файл с кнопкой, код макроса:

[vba]
Код
Sub String_Undoubler()

'Author:    Roman Rioran Voronov
'Date:      the 13-th of August, 2014
'Feedback:  voronov_rv@mail.ru

'Purpose:   Realisation of algorithm for excel-world.ru user
'           http://www.excelworld.ru/forum/10-12448-1?lZ4feq#

Dim X As Long 'To roll rows
Dim strX As String 'To deal with cells
Dim A As Long 'To roll through strX
Dim B As Long 'To find amount of strings inside strX
Dim C As Long 'To remember last ", " position in strX
Dim D As Long 'To roll inner circle for arrX
Dim Y As Boolean 'May we join this piece to strX?
Dim arrX() 'To keep different pieces

With ThisWorkbook.Sheets("Data")
Application.ScreenUpdating = False

For X = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
      strX = .Cells(X, 1).Value
      If strX = "" Then Exit For
      B = (Len(strX) - Len(Replace(strX, ", ", ""))) / Len(", ")
      ReDim arrX(1 To B + 1)
      C = InStr(1, strX, ", ", 1)
      arrX(1) = Left(strX, C - 1)

      'Filling arrX with values
      For A = 1 To B
          If A = B Then
              arrX(A + 1) = Right(strX, Len(strX) - (C + 1))
              Exit For
          End If
          arrX(A + 1) = Left(Right(strX, Len(strX) - (C + 1)), InStr(C + 1, strX, ", ", 1) - (C + 2))
          C = InStr(C + 1, strX, ", ", 1)
      Next A
        
      'Reforging strX
      strX = arrX(1)
      For A = 2 To B + 1
          Y = True
          For D = 1 To A - 1
              If arrX(A) = arrX(D) Then
                  Y = False
                  Exit For
              End If
          Next D
          If Y Then
              strX = strX & ", " & arrX(A)
          End If
      Next A
        
      .Cells(X, 1).Value = strX
Next X

Application.ScreenUpdating = True
End With
End Sub
[/vba]
К сообщению приложен файл: Rio_Stringer.xlsm (18.4 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Среда, 13.08.2014, 10:47
 
Ответить
СообщениеNowak, здравствуйте.

Возможно. Во вложении файл с кнопкой, код макроса:

[vba]
Код
Sub String_Undoubler()

'Author:    Roman Rioran Voronov
'Date:      the 13-th of August, 2014
'Feedback:  voronov_rv@mail.ru

'Purpose:   Realisation of algorithm for excel-world.ru user
'           http://www.excelworld.ru/forum/10-12448-1?lZ4feq#

Dim X As Long 'To roll rows
Dim strX As String 'To deal with cells
Dim A As Long 'To roll through strX
Dim B As Long 'To find amount of strings inside strX
Dim C As Long 'To remember last ", " position in strX
Dim D As Long 'To roll inner circle for arrX
Dim Y As Boolean 'May we join this piece to strX?
Dim arrX() 'To keep different pieces

With ThisWorkbook.Sheets("Data")
Application.ScreenUpdating = False

For X = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
      strX = .Cells(X, 1).Value
      If strX = "" Then Exit For
      B = (Len(strX) - Len(Replace(strX, ", ", ""))) / Len(", ")
      ReDim arrX(1 To B + 1)
      C = InStr(1, strX, ", ", 1)
      arrX(1) = Left(strX, C - 1)

      'Filling arrX with values
      For A = 1 To B
          If A = B Then
              arrX(A + 1) = Right(strX, Len(strX) - (C + 1))
              Exit For
          End If
          arrX(A + 1) = Left(Right(strX, Len(strX) - (C + 1)), InStr(C + 1, strX, ", ", 1) - (C + 2))
          C = InStr(C + 1, strX, ", ", 1)
      Next A
        
      'Reforging strX
      strX = arrX(1)
      For A = 2 To B + 1
          Y = True
          For D = 1 To A - 1
              If arrX(A) = arrX(D) Then
                  Y = False
                  Exit For
              End If
          Next D
          If Y Then
              strX = strX & ", " & arrX(A)
          End If
      Next A
        
      .Cells(X, 1).Value = strX
Next X

Application.ScreenUpdating = True
End With
End Sub
[/vba]

Автор - Rioran
Дата добавления - 13.08.2014 в 10:46
nilem Дата: Среда, 13.08.2014, 13:57 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
еще вот здесь можно посмотреть


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениееще вот здесь можно посмотреть

Автор - nilem
Дата добавления - 13.08.2014 в 13:57
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление дубликатов текстовых данных в ячейке - возможно ли? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!