Реализацию алгоритма вычислительной задачи в
электронных таблицах Excel возможно, так как они
выполняют необходимые требования, предъявляемые
к среде реализации алгоритма [Глущенко Ю. В.
Обоснование использования языка
программирования в учебном процессе (в печати)].
Для реализации вычислительных алгоритмов
необходимо уметь реализовывать базовые
структуры алгоритмов. На примерах задач,
приводящих к базовым структурам, разберемся с
реализацией вычислительного процесса базовых
структур в электронных таблицах. Можно
предложить следующий алгоритм:
- Составление спецификаций переменных заданного
алгоритма в виде таблицы, в столбцах которой
будут Имя переменной в алгоритме, назначение,
тип, диапазон, адрес в Excel, вид реализации. - Разработка таблиц ВводаИнформации.
- Разработка таблицы подзадачи
ОбработкаИнформации. - Разработка таблицы ВыводаРезультата.
- Тестирование построенных таблиц.
Линейные алгоритмы
ЗАДАЧА. Задан алгоритм в виде:
НАЧАЛО_АЛГОРИТМА
- Ввести значения сторон треугольника а, в, с.
- Вычислить значение полупериметра р = (а+в+с)/2
- Вычислить площадь треугольника S=(p*(p-а)*(р-в)*(р-с)).
- Вывести значение S.
КОНЕЦ_АЛГОРИТМА
Реализовать вычисления по заданному алгоритму
в Excel.
РЕШЕНИЕ.
1. Спецификация переменных исходного
алгоритма:
№ п/п. |
Имя перем. в алгоритме |
Назначение |
Тип |
Диапазон |
Адрес |
Вид реализации |
Переменные входного потока |
||||||
1 | А | Сторона тр-ка | Вещ | 0, + | B3 | <число> |
2 | В | Сторона тр-ка | Вещ | 0, + | B4 | <число> |
3 | С | Сторона тр-ка | Вещ | 0, + | В5 | <число> |
Переменные блока |
||||||
4 | Р | полупериметр | Вещ | 0, + | Е3 | <формула> |
5 | S | Площадь тр-ка | Вещ | 0, + | Е4 | <формула> |
Переменные выходного |
||||||
6 | S | Площадь тр-ка | Вещ | 0, + | Н3 | <формула> |
2. Разработка таблицы ВводаИнформации
Таблица ВводаИнформации должна содержать
значения переменных входного потока. Ее
реализация показана на Рис. 1.
3. Разработка таблицы подзадачи
ОбработкаИнформации
В данной таблице необходимо провести
вычисления полупериметра и площади. Оба эти
параметра вводятся с помощью формул в
соответствующие ячейки. Реализация данной
таблицы приведено на Рис. 1.
4. Разработка таблицы ВыводаРезультатов
Таблица ВыводаРезультатов должна содержать
значения переменных выходного потока. Ее
реализация показана на Рис. 1.
5. Тестирование разработанных таблиц
Для тестирования полученных таблиц строим
таблицу теста по следующему шаблону:
№ п/п. | Имя | Назначение | Значение/результат | ||||
1 | А | Входной поток | 1 | 3 | 1 | ||
2 | В | 1 | 4 | 1 | |||
3 | С | 4 | 5 | 2 | |||
4 | Р | Промежуточные | 3 | 6 | 2 | ||
5 | S | Выходной поток | Ошибка | 6 | 0 |
ЗАДАЧА РЕШЕНА.
Задачи для самостоятельной работы можно найти
в Приложении 1.
Алгоритм ветвления
ЗАДАЧА. Задан алгоритм в виде:
НАЧАЛО_АЛГОРИТМА
- Ввести значение переменной Х.
- ЕСЛИ Х не больше 0,
ТО Y:=Х*Х, ИНАЧЕ Y:=Х+1. - Вывести значение переменной Y.
КОНЕЦ_АЛГОРИТМА
Реализовать вычисления по заданному алгоритму
в Excel.
РЕШЕНИЕ.
1. Спецификация переменных исходного
алгоритма:
2. Разработка таблицы ВводаИнформации
Таблица ВводаИнформации должна содержать
значения переменных входного потока. В нашем
случае значение X. Ее реализация показана на Рис. 2.
3, 4. Разработка таблицы подзадачи
ОбработкаИнформации.
В данной задаче можно (и нужно) объединить
задачи ОбработкиИнфориации и ВыводаРезультатов,
построив только таблицу ВыводаРезультатов. Ее
реализация показана на Рис. 2.
5. Тестирование разработанной таблицы.
Для тестирования полученной таблицы
необходимо взять минимум три значения Х:
- слева от ветвления,
- в точке ветвления,
- справа от точки ветвления.
Значения берутся так, чтобы просто было
проверить результат. Поэтому построим таблицу
тестирования в виде:
Имя переменной | ЗНАЧЕНИЕ/РЕЗУЛЬТАТ | ||
Слева от точки ветвления | В точке ветвления | Справа от точки ветвления | |
X | -5 | 0 | 2 |
Y | 25 | 0 | 3 |
ЗАДАЧА РЕШЕНА.
Задачи для самостоятельной работы можно найти
в Приложении 2.
Циклические алгоритмы
ЗАДАЧА. Задан алгоритм в виде:
НАЧАЛО_АЛГОРИТМА
- Ввести значение целочисленной переменной
1<=N<=10. - S:= 0 {Начальное значение
сумматора равно нулю}. - I:= 0 {Начальное
значение индекса цикла равно нулю}. - I:=I+1 {Текущее значение индекса
цикла}. - S:=S+I
{накопление
суммы}. - ЕСЛИ N>I то идти на п.4
{конец цикла с постусловием} - Вывести значение
S
{Вывод результата}.
КОНЕЦ_АЛГОРИТМА
Реализовать вычисления по заданному алгоритму
в Excel.
РЕШЕНИЕ.
1. Спецификация переменных исходного
алгоритма:
№ п/п. | Имя переменной в алгоритме. | Назначение | Тип | Диапазон | Адрес | Реализация |
Переменные входного потока | ||||||
1 | N | ПВхП | ц | 1..10 | B3 | <число> |
Индекс цикла | ||||||
1 | i | индекс | ц | 1..N | А10:A50 | <массив> |
5 | S | ПВхдП | ц | <=55 | B10:B50 | <формула> |
Переменные выходного потока. | ||||||
5 | S | ПВхдП | ц | <=55 | Е3 | <формула> |
2. Разработка таблицы ВводаИнформации
Таблица ВводаИнформации должна содержать
значения переменных входного потока. В нашем
случае значение N. Ее реализация показана на Рис. 3.
3. Разработка таблицы подзадачи
ОбработкаИнформации
Реализация обработки информации возможна лишь
с использованием циклического алгоритма.
В случае с Excel данную задачу необходимо разбить
на три:
- Построение столбца индексов цикла.
- Построение столбца элементов массива.
ЗАДАЧА №1 ПОСТРОЕНИЕ СТОЛБЦА ИНДЕКСА ЦИКЛА.
Данную задачу сформулируем в виде:
Построить столбец значений индекса цикла в
интервале [1..N (задано)]. При этом с изменением
значения N в ячейке В3 должно изменяться и
количество значений индекса цикла в расчетной
таблице.
Эта задача решается в столбце А начиная со строки
№10.
Важно отметить, что протяжку можно вести до
любого номера строки лишь бы при всех изменениях
N протяжка формулы захватывала все строки
изменения значения индекса цикла. Необходимо
только помнить, что при протяжке увеличивается
объем файла, то есть чем глубже протянем формулу,
тем большим будет объем полученного файла и,
возможно, медленнее будет работать Excel с этим
файлом.
Рис. 3.
ПЕРВАЯ ЗАДАЧА РЕШЕНА
ЗАДАЧА №2. ПОСТРОЕНИЕ СТОЛБЦА ЭЛЕМЕНТОВ ЦИКЛА.
Здесь под элементом цикла будем понимать
текущее значение S, зависящее от значения индекса
цикла.
Сформулируем задачу в следующем виде:
Для каждого значения индекса цикла определить
текущее значение S.
Столбец В дает нам текущие значения S=f(<индекс
цикла>), при этом протяжка формулы в столбце В
должна быть не меньше протяжки в столбце А.
Рис. 3.
ВТОРАЯ ЗАДАЧА РЕШЕНА.
4. Разработка таблицы подзадачи
ВыводРезультатов
Для решения данной задачи следует понять, что
выходным значением S будет наибольшее из
значений в ячейках В [10…]. Конечное значение
интервала в В определяется протяжкой формул в
задачах №№1, 2. Пусть формулы протянули до строки
№50. Естественно, наибольшим S будет для
наибольшего значения индекса цикла, так как на
каждом шаге прибавляется число большее 1.
Следовательно, в ячейку Е3 необходимо ввести
формулу
Е3 =>[=МАКС(b10:b50)]
Рис. 3.
И если помнить, что значение пустой ячейки Excel
воспринимает как «0», то…
ТРЕТЬЯ ЗАДАЧА РЕШЕНА.
5. Тестирование полученных таблиц
Для тестирования полученной таблицы строим
таблицу теста по следующему шаблону:
№ п/п. | Имя | назначение | Значение/результат | ||||
1 | N | Вход | 1 | 5 | 7 | 9 | 10 |
2 | S | Выход | 1 | 15 | 28 | 45 | 55 |
ЗАДАЧА РЕШЕНА.
Задачи для самостоятельной работы можно найти
в Приложении 3.
Линейные алгоритмы в MS Excel
В рамках табличного процессора MS Excel возможна реализация линейных алгоритмов, главным назначением которых является вычисление функций зависящих от одного и более параметра. Для реализации линейного алгоритма в раках MS Excel используются формулы, записанные в рамках синтаксиса программы.
Формулы – это математические выражения, записанные в ячейки листа MS Excel используя стандартный для него синтаксис в рамках которых выполняется вычисления. В MS Excel формулы начинаются со знака равенства (=). Например, формула вычисления разницы меду 10 и отношением 12 к 3 имеет вид «=10-12/3». Формула может содержать такие элементы, как: функция, ссылка, оператор, контакта.
Функция – это стандартная формула, которая возвращает результат выполнения определенных действий над значениями, выступающими в качестве аргументов. Например, функция COS(ЧИСЛО) – возвращает косинус от заданного числа. Использование функции позволяет упростить линейное выражение в ячейках листа, что значительно уменьшает длину формул.
Константа – это постоянное (не вычисляемое) значение. Например, число 2 или текст «Сумма» являются константами. Выражение или результаты вычисления заданного выражения константами не являются, контактна может быть прописана в отдельной ячейке листа MS Excel.
Основные функции, которые могут понадобиться при выполнении практических заданий в MS Excel при изучении дисциплины, представлены в таблице 1.
Основные функции MS Excel
Функция | Результат выполнения функции | Пример |
ABS(число) | Модуль числа или модуль от результата вычисления выражения, записанного в качестве аргумента функции | = ABS(-2) функция вернет значение 2 = ABS(10-3*2) функция вернет значение 4 |
ПИ() | Возвращает число 3,14159265358979, которое является математической константой π с точностью до 15 цифр. | = ПИ() функция вернет значение 3,14159265358979 |
COS(число) | Возвращает косинус заданного числа или косинус от результата вычисления выражения, записанного в качестве аргумента функции. Считается, что аргументом функции является угол в радианах. | = COS(0) функция вернет значение 1 = COS(ПИ()) функция вернет значение -1 |
SIN(число) | Возвращает синус заданного числа или синус от результата вычисления выражения, записанного в качестве аргумента функции. Считается, что аргументом функции является угол в радианах. | = SIN(0) функция вернет значение 0 = SIN(ПИ()/2) функция вернет значение 1 |
TAN(число) | Возвращает тангенс заданного числа или тангенс от результата вычисления выражения, записанного в качестве аргумента функции. Считается, что аргументом функции является угол в радианах. | = TAN(0) функция вернет значение 0 = TAN(ПИ()/4) функция вернет значение 1 |
EXP(число) | Возвращает значение «e», возведенное в степень, которая записана в аргументе функции как число или выражение. | = EXP(0) функция вернет значение 1 = EXP(1) функция вернет значение числа «е» приблизительно 2,71828 |
LN(число) | Возвращает натуральный логарифм числа или натуральный логарифм от результата вычисления выражения, записанного в качестве аргумента функции. Аргумент функции должен быть положительным вещественным числом. | =LN(EXP(1)) функция вернет значение 1 =LN(3) функция вернет значение натурального логарифма от 3 (1,098612) |
КОРЕНЬ(число) | Возвращает положительное значение квадратного корня числа или выражения, записанного в качестве аргумента функции. Аргумент функции должен быть больше 0. | =КОРЕНЬ(4) функция вернет значение 2 =КОРЕНЬ(16+ABS(-9)) функция вернет значение 5 |
В таблице 1 приведен далеко не полный список математических и тригонометрических функций, являющихся стандартными для MS Excel. Более подробную информацию о функциях можно получить в справке программы.
В формулах используются простые математические операции:
Сложение в MS Excel – «+», пример «=В3+143» (складывает значение ячейки B3 и число 143).
Вычитание в MS Excel – «-», пример «=B3-143» (вычитает из значения ячейки B3 и число 143).
Умножение в MS Excel – «*», пример «=B3*143» (умножает значение ячейки B3 на число 143).
Деление в MS Excel – «/», пример «=B3/143» (делит значение ячейки B3 на число 143).
Возведение в степень в MS Excel – «^»,«=B3^143» (возводит значение ячейки B3 в степень 143).
Пример реализации линейного алгоритма в MS Excel
Рассмотрим на примере реализацию линейного алгоритма в MS Excel: необходимо рассчитать по формулам величину значений функций и : , , отрезок разбивает с шагом 0,5.
Реализация линейного алгоритма в MS Excel:
1. Создадим на листе 1 в ячейках А1, B1, C1 заголовок таблицы данных для реализации линейного алгоритма X, F1, F2 соответственно (рис. 3).
2. Заполним столбец А значениями аргумента функции X с шагом 0,5 (рис. 3) начиная с ячейки A2.
Рис. 3. Структура линейного алгоритма в MS Excel
3. Запишем выражение используя синтаксис MS Excel в ячейке В2. Для формулы выражения записанного в В2 аргументом x является значение, записанное в ячейке A2. Выражение в ячейке В2 имеет вид (рис. 4): =(SIN(A2)+EXP(1))/(COS(A2)^2-SIN(A2)).
Рис. 4. Вычисление
После записи формулы выражения в ячейке В2, нажимаем Enter и растягиваем формулу на весь диапазон аргумента x.
4. Запишем выражение используя синтаксис MS Excel в ячейке С2. Для формулы выражения записанного в С2 аргументом является значение, вчисленное в ячейке В2. Выражение в ячейке С2 имеет вид (рис. 5): =3*(B2^3+B2^2-2*B2).
Рис. 5. Вычисление
После записи формулы выражения в ячейке C2, нажимаем Enter и растягиваем формулу на весь диапазон аргумента x.
После завершения реализации линейного алгоритма о вычислении двух функций и структура вычисления линейного алгоритма имеет вид представленный на рис. 6.
Рис. 6. Результат реализации линейного алгоритма
Рассмотренный выше пример, является примером реализации части задания № 1 самостоятельной работы, в рамках задания 1 еще необходимо построить и отформатировать диаграммы, что будет рассмотрено в разделе 4 (см. раздел 4, Построение простой точечной диаграммы в MS Excel).
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой.
Источник
РЕАЛИЗАЦИЯ АЛГОРИТМОВ С ПОМОЩЬЮ МАКРОСОВ В EXCEL
Цель работы: получить практические навыки разработки функций для реализации линейных, разветвляющихся и простейших циклических алгоритмов с помощью макросов в Excel.
Теоретические сведения
Реализация линейных и разветвляющихся алгоритмов
В Visual Basic for Application для задания значения переменной используется оператор присваивания. Этот оператор имеет следующий вид:
Выражение может быть арифметическим, текстовым или логическим.
Для записи выражений используются арифметические, текстовые и логические операции (операторы).
Арифметические операторы служат для выполнения арифметических действий над числами (таблица 16.1).
Таблица 16.1 ‑ Арифметические операторы
Арифметический оператор | Действие | Пример |
+ (знак плюс) | Сложение | 3+3 |
– (знак минус) | Вычитание Унарный минус | 3–1 –1 |
* (звездочка) | Умножение | 3*3 |
/ (косая черта) (обратная черта) | Деление Целочисленное деление | 5/8 (результат 0.625) 58 (результат 0) |
% (знак процента) | Процент | 20% |
^ (крышка) | Возведение в степень | 3^2 (аналогично 3*3) |
Для объединения нескольких текстовых строк в единую последовательность букв служит текстовый оператор &. Например, выражение «Энергетический » & «факультет» эквивалентно записи «Энергетический факультет».
Для записи разветвляющихсяалгоритмов используется оператор If(Если), который имеет две формы записи.
1. Однострочная запись:
Ifусловие Then [оператор]
If условие Then [оператор 1] [Elseоператор 2]
2. Многострочная запись:
If условие Then
End If
В однострочном операторе условие и выполняемые при соблюдении условия действия располагаются в одной строке. В том случае, если при выполнении условия требуется выполнение блока операторов, используется многострочный оператор.
После имени конструкции If должно следовать логическое выражение, содержащее условие. Для создания сложных условий используются логические операции And (И) и Or (Или). В качестве условия могут выступать следующие логические выражения: сравнение переменной с другой переменной, константой или функцией; любая переменная; выражение; поле базы данных; функция, принимающие значения True (Истина) или False (Ложь).
Конструкция If…Then (Тогда)…Else (Также)аналогична конструкции If. Then, но позволяет задать действия, исполняемые как при выполнении условий, так и в случае их невыполнения.
Команда Ifможет проверить только одно условие. Если требуется осуществить переход управления в зависимости от результатов проверки нескольких условий, то дополнительное условие можно задать с помощью оператора Else If (Также Если). Оно будет анализироваться только в том случае, если предыдущее условие ложно.
Ключевое слово End If обозначает конец многострочной конструкции и его наличие в команде в этом случае обязательно. Если указанное условие выполняется, то есть результат проверки равен True (Истина), то выполняются операторы, следующие за ключевым словом Then. Если условие не выполняется, то Visual Basic переходит к выполнению операторов, следующих за указанным оператором.
В качестве примера приведем функцию определения корней квадратного уравнения:
Function Корни(a, b, c)
d = b ^ 2 — 4 * a * c
x1 = (-b + d ^ (1 / 2)) / (2 * a)
x2 = (-b — d ^ (1 / 2)) / (2 * a)
Корни = «x1=» + str(x1) + «; x2=» + str(x2)
Корни = «корней нет»
Конструкция Select Сase позволяет обрабатывать в программе несколько условий и аналогична блоку конструкций If…Then…Else. Эта конструкция состоит из анализируемого выражения и набора операторов Case (в случае) на каждое возможное значение выражения. Работает эта конструкция следующим образом. Сначала вычисляется значение заданного в конструкции выражения. Затем полученное значение сравнивается со значениями, задаваемыми в операторах Сase конструкции. Если найдено искомое значение, выполняются команды, приписанные данному оператору Case. После завершения выполнения конструкций управление будет передано конструкции, следующей за ключевым словом End Select. Запись конструкции Select Case следующая:
Select Case сравниваемое значение
CASE значение 1
CASE значение 2
End Select
В начале конструкции расположены ключевые слова Select Case, указывающие, что расположенный рядом с ними параметр “сравниваемое значение” будет проверяться на несколько значений. Далее следуют группы команд, начинающиеся с ключевого слова Case. Если параметр “сравниваемое значение” равен значению, указанному в текущем операторе Case, то будут выполняться команды, расположенные между этим и следующим ключевым словом Case.
В качестве примера воспользуемся конструкцией Select Case для выбора удельного активного сопротивления и расчета полного активного сопротивления R в зависимости от заданной марки провода воздушной линии электропередачи:
Источник
Большинство типовых
вычислительных алгоритмов в Excel оформлены
в виде стандартных функций и вызываются
с помощью программы Мастер функций (см.
подразд. 1.9). Самые популярные
из них:
-
ЕСЛИ() – позволяет
предусмотреть разные варианты заполнения
ячейки; -
СУММ(), ПРОИЗВЕД()
– соответственно суммирование и
перемножение значений из одного или
нескольких блоков; -
СУММПРОИЗВ() –
суммирование произведений соответствующих
элементов двух или нескольких массивов; -
СРЗНАЧ(), СРГЕОМ()
– расчет соответственно среднего
арифметического и геометрического по
числам в заданных блоках; -
СЧЕТ() – определение
количества чисел в заданном блоке.
Более сложные
алгоритмы оформлены в виде команд и
заказываются через меню Сервис. Наиболее
важные из них:
-
Подбор параметра…
– нахождение аргумента, при котором
функция примет нужное значение; -
Поиск решения…
– решение систем уравнений и задач
оптимизации; -
Пакет анализа –
содержит программы, необходимые при
статистической обработке данных.
Если нужная для
вычислений команда отсутствует в меню,
ее можно установить с помощью команды
Сервис Надстройки…
6.1. Общие сведения о функции если()
Функция ЕСЛИ()
позволяет предусмотреть разные способы
заполнения одной и той же ячейки. То,
каким из них следует воспользоваться
в данный момент, Excel определяет
самостоятельно по тому, выполняется
или нет при введенных данных указанное
в функции условие. Стандартный формат
функции имеет следующий вид:
ЕСЛИ(Логическое_выражение;
Значение_если_истина;Значение_если_ложь)
Здесь:
-
Логическое_выражение
– это условие, которое при одних
значениях введенных данных выполняется,
при других – нет; -
Значение_если_истина
– алгоритм, по которому определяется
значение функции, когда условие
оказывается правильным; -
Значение_если_ложь
– алгоритм, по которому определяется
значение функции, когда условие
оказывается неправильным.
В роли алгоритмов,
которые выбирает функция ЕСЛИ(), могут
выступать расчетные выражения, другие
функции, ссылки на ячейки, где находится
нужная информация, текстовые строки и
т. п.
Рассмотрим действие
этой функции на конкретных примерах.
6.2. Выбор из двух вариантов по одному условию
Пример
Поставщик ввел
оптовую скидку на цену для больших
партий товара. Надо составить шаблон
для расчета стоимости любой партии
товара.
Составим таблицу
из констант, необходимых для расчета.
В ячейки А1:А4 введем названия констант:
«ОбъемПартии», «ОптБарьер»,
«РознЦена», «ОптЦена». Присвоим
ячейкам В1:В4 такие же имена (удобно
пользоваться командой Вставка
Имя
Создать…). В ячейку С1 введем
текст «СтоимПартииТовара».
Сделаем активной
ячейку С2 и вызовем через Мастер функций
функцию ЕСЛИ(). В окне аргументов в
текстовые поля введем следующие значения:
-
В поле
«Логическое_выражение:» вводится
условие, по которому Excel будет выбирать
нужный вариант действий. Его можно
составить так:
ОбъемПартии<=ОптБарьер
-
В поле
«Значение_если_истина:» указывается
способ, по которому следует рассчитывать
функцию, если условие оказалось
правильным при тех данных, которые
введены во влияющие ячейки в данный
момент. Для нашего примера этот аргумент
выглядит следующим образом:
ОбъемПартии*
РознЦена
-
В поле
«Значение_если_ложь:» указывается,
как рассчитывать функцию, если условие
не выполняется. Для нашего примера
следует ввести
ОбъемПартии*ОптЦена
Расчетный шаблон
готов. Чтобы проверить его, введите
удобные для устных расчетов числа в
ячейки В1:В4 и проверьте, правильно ли
функция ЕСЛИ() выбрала формулу для
заполнения ячейки С2. Введите в В1 другой
объем партии, при котором требуется
использовать другую цену при расчете
стоимости покупки. Если в обоих случаях
получены верные результаты, можно
красиво отформатировать ячейки А1:С4
(см.
подразд. 1.13–1.16) и пользоваться
этим шаблоном, меняя только значения
констант в В1:В4.
Пример
В таблице значений
функции y = 2cos(x
+ 2)e0,5xнадо отметить символом «*» строку
с минимальным значением.
Введем в ячейки
А1 и В1 подписи «X» и
«Y», в блок А2:А11 –
значения аргументов, в блок В2:В11 –
формулу расчета функции. Столбец С
зарезервируем для заказанной в условии
метки. В ячейкуD1 введем
текст «минимум», в ячейкеD2
с помощью функции МИН() найдем это
значение в блоке В2:В11.
Выделим ячейку С2
и вызовем через Мастер функций функцию
ЕСЛИ(). Условие, по которому Excel выбирает
нужный вариант действий, составим так:
В2=$D$2. В строку второго
аргумента вводим символ «*» (без
кавычек), в третий – пробел и нажмем
после этого <ОК>. С помощью протяжки
скопируем полученную формулу на блок
С2:С11.
Задание
Посмотрите, какой
вид приняла функция в разных ячейках
этого блока.
Рассмотрим функцию
ЕСЛИ() в той строке, в которой появилась
«*». Значение функции y
в этой строке минимально. Левая и
правая части условия оказались
одинаковыми, т. е. первый аргумент –
правильный. Поэтому для заполнения
своей ячейки функция ЕСЛИ выбрала то,
что указано во втором аргументе. Для
значений функцииув других строках
условие, введенное в функцию ЕСЛИ(),
оказывается неверным, поэтому она
заполняет свои ячейки по варианту
третьего аргумента. В нашем случае это
пробел, который невидим на экране,
поэтому ячейки кажутся пустыми.
Измените аргументы,
введенные в А2:А11. «*» переместилась
в другую строку, хотя формулы в С2:С11 не
были изменены (после изменения данных
каждая функция ЕСЛИ() автоматически
проверила свой первый аргумент заново
и приняла новое управляющее решение,
каким правилом пользоваться для
заполнения своей ячейки).
Задание
В ячейку А1 введите
формулу:
=ЕСЛИ(С3=37;»СЕНО»;»СОЛОМА»)
Определите влияющую
ячейку (команда
Сервис
Зависимости
Влияющие ячейки) и введите в
нее такое число, при котором СОЛОМА
превратится в СЕНО.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
#Руководства
- 23 май 2022
-
0
Как с помощью макросов автоматизировать рутинные задачи в Excel? Какие команды они выполняют? Как создать макрос новичку? Разбираемся на примере.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Макрос (или макрокоманда) в Excel — алгоритм действий в программе, который объединён в одну команду. С помощью макроса можно выполнить несколько шагов в Excel, нажав на одну кнопку в меню или на сочетание клавиш.
Обычно макросы используют для автоматизации рутинной работы — вместо того чтобы выполнять десяток повторяющихся действий, пользователь записывает одну команду и затем запускает её, когда нужно совершить эти действия снова.
Например, если нужно добавить название компании в несколько десятков документов и отформатировать его вид под корпоративный дизайн, можно делать это в каждом документе отдельно, а можно записать ход действий при создании первого документа в макрос — и затем применить его ко всем остальным. Второй вариант будет гораздо проще и быстрее.
В статье разберёмся:
- как работают макросы и как с их помощью избавиться от рутины в Excel;
- какие способы создания макросов существуют и как подготовиться к их записи;
- как записать и запустить макрос начинающим пользователям — на примере со скриншотами.
Общий принцип работы макросов такой:
- Пользователь записывает последовательность действий, которые нужно выполнить в Excel, — о том, как это сделать, поговорим ниже.
- Excel обрабатывает эти действия и создаёт для них одну общую команду. Получается макрос.
- Пользователь запускает этот макрос, когда ему нужно выполнить эту же последовательность действий ещё раз. При записи макроса можно задать комбинацию клавиш или создать новую кнопку на главной панели Excel — если нажать на них, макрос запустится автоматически.
Макросы могут выполнять любые действия, которые в них запишет пользователь. Вот некоторые команды, которые они умеют делать в Excel:
- Автоматизировать повторяющиеся процедуры.
Например, если пользователю нужно каждый месяц собирать отчёты из нескольких файлов в один, а порядок действий каждый раз один и тот же, можно записать макрос и запускать его ежемесячно.
- Объединять работу нескольких программ Microsoft Office.
Например, с помощью одного макроса можно создать таблицу в Excel, вставить и сохранить её в документе Word и затем отправить в письме по Outlook.
- Искать ячейки с данными и переносить их в другие файлы.
Этот макрос пригодится, когда нужно найти информацию в нескольких объёмных документах. Макрос самостоятельно отыщет её и принесёт в заданный файл за несколько секунд.
- Форматировать таблицы и заполнять их текстом.
Например, если нужно привести несколько таблиц к одному виду и дополнить их новыми данными, можно записать макрос при форматировании первой таблицы и потом применить его ко всем остальным.
- Создавать шаблоны для ввода данных.
Команда подойдёт, когда, например, нужно создать анкету для сбора данных от сотрудников. С помощью макроса можно сформировать такой шаблон и разослать его по корпоративной почте.
- Создавать новые функции Excel.
Если пользователю понадобятся дополнительные функции, которых ещё нет в Excel, он сможет записать их самостоятельно. Все базовые функции Excel — это тоже макросы.
Все перечисленные команды, а также любые другие команды пользователя можно комбинировать друг с другом и на их основе создавать макросы под свои потребности.
В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.
Есть два способа создания макроса в Excel:
- Написать макрос вручную.
Это способ для продвинутых пользователей. Предполагается, что они откроют окно Visual Basic в Еxcel и самостоятельно напишут последовательность действий для макроса в виде кода.
- Записать макрос с помощью кнопки меню Excel.
Способ подойдёт новичкам. В этом варианте Excel запишет программный код вместо пользователя. Нужно нажать кнопку записи и выполнить все действия, которые планируется включить в макрос, и после этого остановить запись — Excel переведёт каждое действие и выдаст алгоритм на языке VBA.
Разберёмся на примере, как создать макрос с помощью второго способа.
Допустим, специальный сервис автосалона выгрузил отчёт по продажам за три месяца первого квартала в формате таблиц Excel. Эти таблицы содержат всю необходимую информацию, но при этом никак не отформатированы: колонки слиплись друг с другом и не видны полностью, шапка таблицы не выделена и сливается с другими строками, часть данных не отображается.
Скриншот: Skillbox Media
Пользоваться таким отчётом неудобно — нужно сделать его наглядным. Запишем макрос при форматировании таблицы с продажами за январь и затем применим его к двум другим таблицам.
Готовимся к записи макроса
Кнопки для работы с макросами в Excel находятся во вкладке «Разработчик». Эта вкладка по умолчанию скрыта, поэтому для начала разблокируем её.
В операционной системе Windows это делается так: переходим во вкладку «Файл» и выбираем пункты «Параметры» → «Настройка ленты». В открывшемся окне в разделе «Основные вкладки» находим пункт «Разработчик», отмечаем его галочкой и нажимаем кнопку «ОК» → в основном меню Excel появляется новая вкладка «Разработчик».
В операционной системе macOS это нужно делать по-другому. В самом верхнем меню нажимаем на вкладку «Excel» и выбираем пункт «Параметры…».
Скриншот: Skillbox Media
В появившемся окне нажимаем кнопку «Лента и панель».
Скриншот: Skillbox Media
Затем в правой панели «Настроить ленту» ищем пункт «Разработчик» и отмечаем его галочкой. Нажимаем «Сохранить».
Скриншот: Skillbox Media
Готово — вкладка «Разработчик» появилась на основной панели Excel.
Скриншот: Skillbox Media
Чтобы Excel смог сохранить и в дальнейшем использовать макрос, нужно пересохранить документ в формате, который поддерживает макросы. Это делается через команду «Сохранить как» на главной панели. В появившемся меню нужно выбрать формат «Книга Excel с поддержкой макросов».
Скриншот: Skillbox Media
Перед началом записи макроса важно знать об особенностях его работы:
- Макрос записывает все действия пользователя.
После старта записи макрос начнёт регистрировать все клики мышки и все нажатия клавиш. Поэтому перед записью последовательности лучше хорошо отработать её, чтобы не добавлять лишних действий и не удлинять код. Если требуется записать длинную последовательность задач — лучше разбить её на несколько коротких и записать несколько макросов.
- Работу макроса нельзя отменить.
Все действия, которые выполняет запущенный макрос, остаются в файле навсегда. Поэтому перед тем, как запускать макрос в первый раз, лучше создать копию всего файла. Если что-то пойдёт не так, можно будет просто закрыть его и переписать макрос в созданной копии.
- Макрос выполняет свой алгоритм только для записанного диапазона таблиц.
Если при записи макроса пользователь выбирал диапазон таблицы, то и при запуске макроса в другом месте он выполнит свой алгоритм только в рамках этого диапазона. Если добавить новую строку, макрос к ней применяться не будет. Поэтому при записи макроса можно сразу выбирать большее количество строк — как это сделать, показываем ниже.
Для начала записи макроса перейдём на вкладку «Разработчик» и нажмём кнопку «Записать макрос».
Скриншот: Skillbox Media
Появляется окно для заполнения параметров макроса. Нужно заполнить поля: «Имя макроса», «Сохранить в», «Сочетание клавиш», «Описание».
Скриншот: Skillbox Media
«Имя макроса» — здесь нужно придумать и ввести название для макроса. Лучше сделать его логически понятным, чтобы в дальнейшем можно было быстро его найти.
Первым символом в названии обязательно должна быть буква. Другие символы могут быть буквами или цифрами. Важно не использовать пробелы в названии — их можно заменить символом подчёркивания.
«Сохранить в» — здесь нужно выбрать книгу, в которую макрос сохранится после записи.
Если выбрать параметр «Эта книга», макрос будет доступен при работе только в этом файле Excel. Чтобы макрос был доступен всегда, нужно выбрать параметр «Личная книга макросов» — Excel создаст личную книгу макросов и сохранит новый макрос в неё.
«Сочетание клавиш» — здесь к уже выбранным двум клавишам (Ctrl + Shift в системе Windows и Option + Cmd в системе macOS) нужно добавить третью клавишу. Это должна быть строчная или прописная буква, которую ещё не используют в других быстрых командах компьютера или программы Excel.
В дальнейшем при нажатии этих трёх клавиш записанный макрос будет запускаться автоматически.
«Описание» — необязательное поле, но лучше его заполнять. Например, можно ввести туда последовательность действий, которые планируется записать в этом макросе. Так не придётся вспоминать, какие именно команды выполнит этот макрос, если нужно будет запустить его позже. Плюс будет проще ориентироваться среди других макросов.
В нашем случае с форматированием таблицы заполним поля записи макроса следующим образом и нажмём «ОК».
Скриншот: Skillbox Media
После этого начнётся запись макроса — в нижнем левом углу окна Excel появится значок записи.
Скриншот: Skillbox Media
Пока идёт запись, форматируем таблицу с продажами за январь: меняем ширину всех столбцов, данные во всех ячейках располагаем по центру, выделяем шапку таблицы цветом и жирным шрифтом, рисуем границы.
Важно: в нашем случае у таблиц продаж за январь, февраль и март одинаковое количество столбцов, но разное количество строк. Чтобы в случае со второй и третьей таблицей макрос сработал корректно, при форматировании выделим диапазон так, чтобы в него попали не только строки самой таблицы, но и строки ниже неё. Для этого нужно выделить столбцы в строке с их буквенным обозначением A–G, как на рисунке ниже.
Скриншот: Skillbox Media
Если выбрать диапазон только в рамках первой таблицы, то после запуска макроса в таблице с большим количеством строк она отформатируется только частично.
Скриншот: Skillbox Media
После всех манипуляций с оформлением таблица примет такой вид:
Скриншот: Skillbox Media
Проверяем, все ли действия с таблицей мы выполнили, и останавливаем запись макроса. Сделать это можно двумя способами:
- Нажать на кнопку записи в нижнем левом углу.
- Перейти во вкладку «Разработчик» и нажать кнопку «Остановить запись».
Скриншот: Skillbox Media
Готово — мы создали макрос для форматирования таблиц в границах столбцов A–G. Теперь его можно применить к другим таблицам.
Запускаем макрос
Перейдём в лист со второй таблицей «Февраль_2022». В первоначальном виде она такая же нечитаемая, как и первая таблица до форматирования.
Скриншот: Skillbox Media
Отформатируем её с помощью записанного макроса. Запустить макрос можно двумя способами:
- Нажать комбинацию клавиш, которую выбрали при заполнении параметров макроса — в нашем случае Option + Cmd + Ф.
- Перейти во вкладку «Разработчик» и нажать кнопку «Макросы».
Скриншот: Skillbox Media
Появляется окно — там выбираем макрос, который нужно запустить. В нашем случае он один — «Форматирование_таблицы». Под ним отображается описание того, какие действия он включает. Нажимаем «Выполнить».
Скриншот: Skillbox Media
Готово — вторая таблица с помощью макроса форматируется так же, как и первая.
Скриншот: Skillbox Media
То же самое можно сделать и на третьем листе для таблицы продаж за март. Более того, этот же макрос можно будет запустить и в следующем квартале, когда сервис автосалона выгрузит таблицы с новыми данными.
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Время на прочтение
1 мин
Количество просмотров 6.7K
Педагог-новатор Виктор Федорович Шаталов в 70-х годах прошлого века разработал систему обучения с использованием опорных сигналов — взаимосвязанных ключевых слов, условных знаков, рисунков и формул с кратким выводом [1].
Опорным алгоритмом в Excel будем называть набор изображений и алгоритмов (формул), особым образом расположенных на Excel-листе, который помогает активизировать мышление обучающихся.
Приведу пример использования опорного алгоритм в Excel, например, при изучении алгоритма Диффи-Хелмана на занятии по криптографии.
Следуя методике Шаталова последовательность действий такова:
Первый этап. Образно-эмоциональное объяснение учителем материала. Также можно использовать просмотр видео-урока из Академии Хана по основам криптографии:
Второй этап. Сжатое изложение учебного материала с помощью Excel-алгоритма.
Рис. Опорный Excel-алгоритм Диффи-Хелмана
Расшифровка алгоритма:
Имеются два простых числа 13 и 7, которые знают Элис и Боб (и открыт для Ив).
Элис и Боб придумывают два числа — 3 и 10 соответственно.
Далее начинается обмен:
Элис отправляет 5 -> =ОСТАТ(F17^C6;F16)
Боб вычисляет общий ключ 12 -> =ОСТАТ(E5^H6;F16)
Боб отправляет 4 -> =ОСТАТ(F17^H6;F16)
Боб вычисляет общий ключ 12 -> =ОСТАТ(F7^C6;F16)
В итоге они имеют общий ключ 12, который не знает Ив.
Далее… закрепление материала, решение задач, использование программы CrypTool, обмен по сети между обучающимися зашифрованными сообщениями.
Подобные Excel-алгоритмы можно встретить в сети, например, Цезаря, Вижинера, Энигму, однако названия этой методике в педагогике не нашел.
Ссылки:
» ru.wikipedia.org/wiki/Шаталов,_Виктор_Фёдорович
» ru.wikipedia.org/wiki/Протокол_Диффи_—_Хеллмана