![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Алгоритм вывода списка элементов, удовлетворяющих определенному условию
Например, для данных, представленных в заданной таблице выведем на лист список сотрудников, отработавших больше 20 часов в таблицу с заголовками столбцов: «Фамилия», «Отдел», «Отработано часов». Рассмотрим таблицу. Данные о количестве отработанных часов записаны в четвертом столбце, начиная со второй строки. Нам нужно просматривать четвертый столбец, и, если мы встретили значение больше 20, то выводить на лист фамилию, отдел и количество отработанных часов. Словесное описание алгоритма: 1) определим количество заполненных строк во 2-м столбце, результат сохраним в переменной N; 2) запишем на лист в строку с номером N+2 заголовки столбцов новой таблицы; 3) определим номер строки, в которую будем выводить искомые значения NSTR=N+3; 4) присвоим счетчику I первоначальное значение 2; 5) рассмотрим содержимое ячейки в I-й строке и в 4-м столбце, если содержимое больше 20, то в строку с номером NSTR выведем фамилию, отдел и количество отработанных часов; 6) если просматриваемая строка не последняя, то увеличиваем значение счетчика на 1 и переходим к пункту 3, в противном случае заканчиваем работу.
Программное описание алгоритма.
Rem определяем количество заполненных ячеек на листе «Лист1» в ‘диапазоне D: D, результат сохраняем в переменной N.
N=Application.CountA(Sheets(“Лист1”).Range(“D: D”)) ‘В строку с номером N+2 и столбцы первый, второй и третий запишем ‘заголовки столбцов новой таблицы
Cells(N+2, 1)=”Фамилия”: Cells(N+2, 2)=”Отдел” Cells(N+2, 3)=”Отработано часов” ‘Определим номер строки, в которую будем выводить искомые ‘значения.
NSTR=N+3
‘открываем цикл со счетчиком I, изменяющимся от 2 до N, шаг 1, ‘ счетчику I присваивается значение 2
For I=2 to N ‘если значение в I-й строке и 4-м столбце превышает 20 (отработано ‘часов). Номер строки ‘NSTR увеличиваем на единицу (следующая ‘строка).
If Cells(I, 4)> 20 Then
‘тогда в строку с номером NSTR и столбец с номером 1 выводим содержимое ‘I-й строки и 1-го столбца (фамилия).
Cells(NSTR, 1)=Cells(I, 1)
‘в строку с номером NSTR и столбец с номером 2 выводим содержимое I-й строки и 2-го ‘столбца (отдел)
Cells(NSTR, 2)=Cells(I, 2)
‘в строку с номером NSTR и столбец с номером 3 выводим содержимое I-й ‘строки и 4-го столбца (отработано часов)
Cells(NSTR, 3)=Cells(I, 4)
‘увеличиваем номер строки NSTR на единицу
NSTR=NSTR+1
‘закрываем условный оператор
End If
‘ закрываем цикл, к счетчику добавляется шаг (у нас 1), проверяется, ‘не превышено ли конечное значение счетчика, если не превышено, ‘к сумме добавляется значение очередного элемента. Next
|