Страницы: 1
RSS
удалить дублирующие строки, при условии, что они идут подряд
 
Есть таблица,  нужно, чтобы автоматически удалялись строки, которые дублируються в стобце А, но при условии, що одинаковые ячейки идут друг за другом, остаться должно только первое значение.
В фалике подкорасил цветом.
Помогите пожалуйста.
 
вот 5 строк:
1
1
2
1
1
что должно остаться?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
вариант с формулой, дальше ручками удалить
 
должно остаться
1
2
1

Цитата
mechanix 85 написал: вариант с формулой
Спасибо, это, как видно из файлика, я и сам сделал, правда другим  методом)
Нужнно именно автоматизировать.
Изменено: vikttur - 24.07.2021 12:32:12
 
Код
Sub DelDubl()
  Dim r&, t, rg As Range
  Set t = ActiveSheet.ListObjects(1)
  For r = 2 To t.ListRows.Count
    If t.ListRows(r).Range.Cells(1) = t.ListRows(r - 1).Range.Cells(1) Then
      If rg Is Nothing Then Set rg = t.ListRows(r).Range _
                       Else Set rg = Union(rg, t.ListRows(r).Range)
    End If
  Next
  If Not rg Is Nothing Then rg.Delete
End Sub
Изменено: Ігор Гончаренко - 23.07.2021 15:35:17
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Нужнно именно автоматизировать.
Адаптируйте для умной таблицы
Код
Sub DelRow()
Dim i As Long
Dim iLastRow As Long
   iLastRow = Cells(Rows.Count, "A").End(xlUp).Row - 1
  For i = iLastRow To 2 Step -1
    If Cells(i - 1, "A") = Cells(i, "A") Then Rows(i).Delete
  Next
End Sub
 
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([Столбец1] = 0))
in
    #"Строки с примененным фильтром"
 
Вариант формулой.
Код
=INDEX(A:A;AGGREGATE(15;6;ROW($A$2:$A$200)/($A$1:$A$200<>$A$2:$A$201);ROW(1:1)))
Страницы: 1
Наверх