Страницы: 1
RSS
Удаление одинаковых данных, Если совпадают два значения, то как автоматически удалить оба значения?
 
Есть таблица (csv) с одним столбцом. В нем находятся только номера. Как полностью удалить два повторяющихся значения? Если выбрать параметр "удалить дубли", то второе значение останется. Заранее извиняюсь, если такой вопрос был.
 
Допстолбец такого вида и по нему фильтруйте
Код
=СЧЁТЕСЛИ($A$1:$A$20;A1) > 1

 
Цитата
marsim123 написал: Если выбрать параметр "удалить дубли", то второе значение останется
Как раз не должно остаться! Поэтому это действие и называется "Удалить дубликаты".
Неизлечимых болезней нет, есть неизлечимые люди.
 
Перебираем в цикле строки текста, заносим в словарь считая повторы.
Затем в цикле по словарю выгружаем в новый текст только то, где количество 1.

Вот например так (измените путь к файлу на свой). В конце добавляется лишний перевод строки, что можно убрать усложнением кода, если оно мешает.
Код
Sub tt()
    Dim fso, a, ts, i&, k

    Set fso = CreateObject("Scripting.FileSystemObject")
    a = Split(fso.Getfile("D:\TMP\test.csv").OpenasTextStream(1).ReadAll, vbNewLine)

    With CreateObject("Scripting.Dictionary"): .comparemode = 1

        For i = 0 To UBound(a)
            .Item(a(i)) = .Item(a(i)) + 1
        Next

        Set ts = fso.CreateTextFile("D:\TMP\test2.csv", True)
        For Each k In .keys
            If .Item(k) = 1 Then ts.Writeline k
        Next

        ts.Close: Set ts = Nothing: Set fso = Nothing

    End With

End Sub
Изменено: Hugo - 13.04.2015 09:08:38
Страницы: 1
Наверх