Страницы: 1
RSS
Удаление неявных дублей формулой
 
Здравствуйте! Подскажите пожалуйста как можно удалить неявные дубли с помощью формулы? в макросах и тп ничегошеньки не понимаю((
Есть большое список слов, но к сожалению в нем не малый процент неявных дублей, пример - купить вертолет , вертолет купить..
Как можно убрать один из таких неявных дублей, какой именно значения не имеет.
Заранее большое Вам спасибо за отклик и за помощь, ребята!!!  
 
Формулы не могут удалять ячейки, равно как и изменять значения других ячеек.
С помощью формул можно лишь попытаться найти дубли(хотя в Вашем случае это будет весьма сложно и не уверен, что без макросов здесь можно обойтись).
Не так давно на одном из форумов делал похожую функцию - могу выложить, если боязнь макросов пройдет :-)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Если в ячейке количество слов одинаковое, то, как вариант, остсортировать слова в ячейке и удалить сдвоенные пробелы.
Тогда можно попытаться сравнить.
Но, опять же, не формулами, а макросом
Изменено: Александр Моторин - 29.03.2015 12:59:21
 
UDF
Без удаления строк. Просто выборка.
Не проблема прикрутить удаление строк
Изменено: Александр Моторин - 29.03.2015 13:36:43
 
Подскажите,как можно сделать сортировку дублей по словосочетаниям, которые написаны в разном порядке:
окна купить
купить окна
-----
заказать окно спб
спб окно заказать
-----
спб купить срочно
срочно купить спб
-----
те по своему смыслу они одни и теже,но при этом эксель просто так не определит,что слова являются дублями.=\
У меня более 1000 слов, в которых есть подобные комбинации,как сделать это наиболее просто и быстро?
 
Написание дублей оставлять как были?
Или  слова упорядочить в ячейках?
 
можно описание и изменить, но самое главное удалить дубли!
 
ну так, для развлечения. Ваши данные в столбце А с 1 строки, в соседний столбец той же строки выводим, дублем какой строки она является. Нет дублей - ничего не выводим. По итогу строки, у которых сбоку ничего нет - оригиналы, остальные - дубли.
Код в модуль листа:
Код
Sub qqqq()
Dim ar0(), ar1(), ar2(), i&, j&, k&, lr&, oDic As Object
Dim flag As Boolean
lr = Cells(Rows.Count, 1).End(xlUp).Row
ar0 = Range(Cells(1, 1), Cells(lr, 1)).Value2
ReDim ar1(1 To lr, 1 To 2)
For i = 1 To lr
    ar1(i, 1) = Split(Trim(ar0(i, 1)), " ")
    Set oDic = CreateObject("scripting.dictionary")
    For j = 0 To UBound(ar1(i, 1))
        oDic.Item(ar1(i, 1)(j)) = i
    Next
    Set ar1(i, 2) = oDic
Next
ReDim ar2(1 To lr, 1 To 1)
For i = 1 To lr
    For j = i + 1 To lr
        If i <> j And UBound(ar1(i, 1)) = UBound(ar1(j, 1)) Then
            flag = True
            For k = 0 To UBound(ar1(i, 1))
                If Not ar1(i, 2).exists(ar1(j, 1)(k)) Then flag = False
            Next
            If flag Then ar2(j, 1) = "d" & i
            flag = False
        End If
    Next
Next
Range(Cells(1, 2), Cells(lr, 2)) = ar2
End Sub
F1 творит чудеса
 
Формулами... для разнообразия.
Страницы: 1
Наверх