powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Уникальные значения в Excel
7 сообщений из 7, страница 1 из 1
Уникальные значения в Excel
    #34076530
andre1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,
нужна помощь в Excel,
Есть таблица типа:

id data sum_rbl id_A data_A sum_rbl_A
-----------------------------------------------------------------
1 20.5.2006 1000 1 20.5.2006 100
1 20.5.2006 1000 2 20.6.2006 200
1 20.5.2006 1000 3 20.7.2006 400


Можно как нибудь сделать чтобы в Excel отображалось так

id data sum_rbl id_A data_A sum_rbl_A
-----------------------------------------------------------------
1 20.5.2006 1000 1 20.5.2006 100
2 20.6.2006 200
3 20.7.2006 400


Заранее спасибо,
...
Рейтинг: 0 / 0
Уникальные значения в Excel
    #34076578
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я тебя правильно понял, то нодо удалить повторяющиеся записи со сдвигом влево?
...
Рейтинг: 0 / 0
Уникальные значения в Excel
    #34077012
andMegaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй этот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 tt =  1 
Label1:
   For i = tt To ActiveCell.SpecialCells(xlLastCell).Row
       If Cells(i,  1 ).Value = Cells(i +  1 ,  1 ).Value Then
       Cells(i +  1 ,  1 ).Delete Shift:=xlToLeft
          tt = i
          GoTo Label1
       End If
   Next i
Если не правильно понял, то дай знать
...
Рейтинг: 0 / 0
Уникальные значения в Excel
    #34079003
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если нужно удалять 3 ячейки со смещением влево, при условии что дата и сумма повторяются, то тогда так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Public Sub DeleteDuplicateUtems()
    Dim rng As Range
    Dim lngI As Long
    Dim varValue1 As Variant
    Dim varValue2 As Variant
    Dim strFormula As String

    Application.ScreenUpdating = False

    Set rng = ActiveSheet.UsedRange

    For lngI = rng.Rows.Count To  1  Step - 1 
        varValue1 = rng.Cells(lngI,  2 ).Value
        varValue2 = rng.Cells(lngI,  3 ).Value
        strFormula = "=SUMPRODUCT((" & rng.Columns( 2 ).Address _
          & "=" & CLng(varValue1) & ")*(" _
          & rng.Columns( 3 ).Address & "=" & varValue2 & "))"
          
        If Evaluate(strFormula) >  1  Then
            Range(Cells(lngI,  1 ), Cells(lngI,  3 )).Delete Shift:=xlToLeft
        End If
    Next lngI

    Application.ScreenUpdating = True
End Sub
...
Рейтинг: 0 / 0
Уникальные значения в Excel
    #34081267
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у списка есть заголовки и строк не 3, а сильно больше, то:

Вариант 1: Очень быстрый . Условие - если исключена возможность нахождения более 8.192 несмежных строк (например если зарание известно, что нет 8196 уникальных комбинаций или общее число строк не превышает 16.384 )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Sub test1()
    Dim rng As Range, x As String
    With ActiveSheet.UsedRange
        Set rng = .Range(.Cells( 1 ,  1 ), Cells(.Rows.Count,  3 ))
    End With
    
    Application.ScreenUpdating = False
    rng.AdvancedFilter xlFilterInPlace, , , True
    x = rng.SpecialCells(xlCellTypeVisible).Address
    rng.EntireColumn.Insert
    With ActiveSheet
        .Range(x).Value =  1 
        With .[A:C]
            .SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
            .EntireColumn.Delete
        End With
    End With
    ActiveSheet.ShowAllData
    Application.ScreenUpdating = True
End Sub

Вариант 2: Относительно быстрый . Если условие касающееся 8192 несмежных строк не выполняется:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub test2()
    Dim rng As Range, i As Long
    With ActiveSheet.UsedRange
        Set rng = .Range(.Cells( 1 ,  1 ), Cells(.Rows.Count,  3 ))
    End With
    
    Application.ScreenUpdating = False
    rng.AdvancedFilter xlFilterInPlace, , , True
    For i = rng.Rows.Count To  2  Step - 1 
        If rng.Rows(i).Hidden Then rng.Rows (i)
    Next i
    ActiveSheet.ShowAllData
    Application.ScreenUpdating = True
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Уникальные значения в Excel
    #34081289
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка к моему предыдущему сообщению:

"...например если зарание известно, что нет 8196 уникальных комбинаций..."

читать как

"...например если зарание известно, что нет 8192 уникальных комбинаций..."

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Уникальные значения в Excel
    #34081408
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка к Варианту 2 - случайно стер .Delete Shift:=xlToLeft :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub test2()
    Dim rng As Range, i As Long
    With ActiveSheet.UsedRange
        Set rng = .Range(.Cells( 1 ,  1 ), Cells(.Rows.Count,  3 ))
    End With
    
    Application.ScreenUpdating = False
    rng.AdvancedFilter xlFilterInPlace, , , True
    For i = rng.Rows.Count To  2  Step - 1 
        If rng.Rows(i).Hidden Then rng.Rows(i).Delete Shift:=xlToLeft
    Next i
    ActiveSheet.ShowAllData
    Application.ScreenUpdating = True
End Sub


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Уникальные значения в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]