подсчёт повторяющихся строк в Excel

Программирование на Visual Basic for Applications
abraxx
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 15.04.2005 (Пт) 14:27

подсчёт повторяющихся строк в Excel

Сообщение abraxx » 15.04.2005 (Пт) 15:11

Кто-нибудь сталкивался с такой проблемой? Строк - ооочень много.
Повторяющиеся надо посчитать и дописать в конец таблицы в следующем виде: строка - число повторений. Функцию для подсчёта повторяющихся ячеек не предлагать :) (или подскажите, как можно её видоизменить)

Заранее спасибо!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.04.2005 (Пт) 15:56

Что разумеется под словом "строка"? Пара ячеек или длинная вправо? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

abraxx
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 15.04.2005 (Пт) 14:27

Сообщение abraxx » 15.04.2005 (Пт) 16:10

куча ячеек идущих друг за другом по горизонтали :)
я так думаю, это всё для начала в массив занести надо, а потом шаманить с ним?

Brudda
Обычный пользователь
Обычный пользователь
 
Сообщения: 79
Зарегистрирован: 21.02.2005 (Пн) 14:47
Откуда: Рига

Сообщение Brudda » 15.04.2005 (Пт) 17:21

Привет. Я не уверен, что правильно понял как у тебя расположены данные, ну, да, это не принципиально.
У мнея есть алгоритм, котоый делает следующее
1) копирует список значений на WorkSheet
2) строит список уникальных значений из имеющегося списка
3) уничтожает исходный список

Вот код. Думаю, его, немного переделав, можно использовать. Утверждать, что он супер эффективный не берусь, но работает хорошо.

С почтением,
Brudda
Код: Выделить всё
' Creating a list of branches---------------------------------------------------
Sheets("Regions").Range("A1:A30000").Value = Sheets("Sheet1").Range("B2:B30000").Value

    Worksheets("Regions").Range("A1").Sort key1:=Worksheets("Regions").Range("A1")
    Set currentCell = Worksheets("Regions").Range("A1")
    Do While Not IsEmpty(currentCell)
        Set nextCell = currentCell.Offset(1, 0)
        If nextCell.Value <> currentCell.Value Then
            Row = Row + 1
            Worksheets("Regions").Cells(Row, 2).Value = currentCell.Value
        End If
        Set currentCell = nextCell
    Loop
   Worksheets("Regions").Range("A1").EntireColumn.Delete




Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48

    TopList