Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Сортировка данных в Excel


Автор: Гость_Ирина 12.2.2004, 11:45
Пожалуйста, кто сможет помочь!
Имеется таблица с тремя столбцами данных.....
таблица отражает размеры заготовки, задаваемой в производство.....
Необходимо отсортировать таблицу таким образом, чтобы подсчитывались строки с совпадением по всем трем столбцам (параметрам : ширине, толщине и длине)...и велся подсчет (частота) встречающихся параметров.....
предположим, в списке есть 687 строк с совпадением по всем трем параметрам (толщина заготовки 25 мм, ширина 1550 мм и длина 12000)......нужно оставить одну строку с этими параметрамит и указать частоту 687.....
Вот такая вот задача........бьюсь уже третий день.....нужно срочно обработать эти данные..... ;-(
Прошу вас о помощи

Автор: hobotyara 13.2.2004, 11:42
Option Explicit


Public Sub Sortiorovka()

Dim intNumStr As Integer
Dim intKolStr As Integer

Cells(1, 1).Select
intKolStr = ActiveCell.CurrentRegion.Rows.Count
Range("A1:C" & intKolStr).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1") _
, Order2:=xlAscending, Key3:=Range("C1"), Order3:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("D1:D" & CStr(intKolStr)).Value = 1
For intNumStr = intKolStr To 2 Step -1
If Cells(intNumStr, 1).Value = Cells(intNumStr - 1, 1).Value And Cells(intNumStr, 2).Value = Cells(intNumStr - 1, 2).Value _
And Cells(intNumStr, 3).Value = Cells(intNumStr - 1, 3).Value Then
Cells(intNumStr - 1, 4).Value = Cells(intNumStr - 1, 4).Value + Cells(intNumStr, 4).Value
Rows(intNumStr).EntireRow.Delete
End If
Next intNumStr

End Sub

Автор: Unregistered 13.2.2004, 16:28
А стондартные фильтр и сортинг неустраимвают

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)