Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Алгоритм вывода списка элементов, удовлетворяющих определенному условию






Например, для данных, представленных в заданной таблице выведем на лист список сотрудников, отработавших больше 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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.