Вы находитесь на странице: 1из 516

Воспользуйтесь богатым опытом отечественных специалистов!

"Эта книга поможет любому, кто


имеет минимальные навыки работы
с компьютером, изучить и освоить
на практике те возможности
популярного пакета MS Excel,
которые будут полезны при решении
прикладных научных и инженерных
задач. И хотя традиционно Excel
воспринимается как офисное
приложение, этот пакет может
с успехом использоваться для
обработки результатов
эксперимента или
проведения
углубленного
анализа
имеющихся
данных ".

Научные
вычисления
в Microsoft
Работа с формулами Excel, построение диаграмм и графиков,
написание собственных программ на языке VBA
Решение уравнений, в том числе дифференциальных и
интегральных, вычисление производных и интегралов
Выполнение интерполяции, нахождение экстремумов функций,
в том числе условных, статистическая обработка данных
Использование в Excel надстройки символьных
преобразований

А.Н. Васильев
Джон Уокенбах
"Мистер Электронная таблица
представляет

http://www.williamspublishing.com http://www.diaiektika.com
Решение практических задач

Научные
вычисления
в Microsoft
Excel
Решение практических задач

Научные
вычисления
в Microsoft
Excel

А.Н. Васильев

Компьютерное издательство "Диалектика'


Москва • Санкт-Петербург • Киев
2004
ББК 32.973.26-018.2.75
В19
УД К 681.3.07

Компьютерное издательство "Диалектика"


Зав. редакцией А.В. Слепцов
По общим вопросам обращайтесь в издательство "Диалектика" по адресу:
info@dialektika.com, http://www.dialektika.com

Васильев, А.Н.
В19 Научные вычисления в Microsoft Excel. -- M. : Издательский дом
"Вильяме", 2004. - 512 с.: ил.
ISBN 5-8459-0573-7 (рус.)

В книге обсуждается использование Excel для решения прикладных науч-


ных и инженерно-физических задач. Помимо основных сведений о принци-
пах работы в Excel, читателю предлагается большое количество практических
примеров, охватывающих дифференцирование и интегрирование функций,
решение уравнений, в том числе дифференциальных и интегральных, поиск
экстремумов функций, выполнение интерполяции и аппроксимации. Анали-
зируются методы использования Excel для решения задач теории вероятно-
стей и математической статистики. Отдельная глава книги посвящена вопро-
сам программирования в Excel. Дополнительно в книге описываются методы
совместного использования Excel и Maple. Книга будет полезна как нович-
кам, так и опытным пользователям.
ББК 32.973.26-018.2.75

Все названия программных продуктов являются зарегистрированными торговыми мар-


ками соответствующих фирм.
Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в
какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или ме-
ханические, включая фотокопирование и запись на магнитный носитель, если на это нет
письменного разрешения издательства "Диалектика".
Copyright © 2004 by Dialektika Computer Publishing.
All rights reserved including the right of reproduction in whole or in part in any form.

ISBN 5-8459-0573-7 (рус.) © Компьютерное изд-во "Диалектика", 2004


Оглавление
ЧАСТЬ I. ОСНОВЫ EXCEL 17
Глава 1. Знакомство с Excel 18
Глава 2. Анализ данных в Excel 109
Глава 3. Программирование в Excel 187

ЧАСТЬ II. РЕШЕНИЕ ЗАДАЧ 291


Глава 4. Методы вычислительной математики 292
Глава 5. Теория вероятностей и математическая статистика 391
Глава 6. Совместное использование Excel и Maple 457
Приложение 506
Заключение 510
Содержание

Вступление 11
Немного об Excel и не только 11
Структура книги 12
Обратная связь 14
Благодарности 15
Ждем ваших отзывов! 16

ЧАСТЬ I. ОСНОВЫ EXCEL 17


,
Глава 1. Знакомство с Excel 18
Основные понятия 18
Электронные таблицы 18
Рабочее окно Excel 20
Полезные советы 24
Команды панели меню 26
Общие замечания 27
Меню File 28
Меню Edit 30
Меню View 33
Меню Insert 35
Меню Format 36
Меню Tools 38
Меню Data 40
Меню Window 41
Меню Help 42
Панели инструментов 44
Стандартная панель инструментов 44
Панель инструментов Formatting 46
Область задач 47
Методы работы с документами 49
Ввод данных 49
Типы данных 51
Заполнение диапазона ячеек 53
Указатели курсора мыши 54
Форматирование данных 55
Форматирование данных в ячейке 56
Пример выполнения форматирования 75
Форматирование рабочих листов 88
Настройка графического интерфейса пользователя 97
Управление панелями инструментов 97
Создание панелей пользователя 103
Восстановление панелей и меню 106
Типы документов и использование шаблонов 107
Глава 2. Анализ данных в Excel 109
Формулы в Excel 109
Ввод формул 109
Выполнение простых ссылок 111
Абсолютные и относительные ссылки 112
Ссылки в формате строка-столбец 118
Ссылки на ячейки разных листов и книг 119
Функции в Excel 121
Вставка функций 121
Математические функции 122
Логические функции 125
Функции для работы с текстовыми параметрами 126
Статистические функции 128
Подключение надстроек 133
Примеры использования функций 136
Цепь постоянного тока 136
Цепь переменного тока 139
Цепь с катушкой и конденсатором 142
Использование названий 146
Использование названий для ячеек и диапазонов 146
Использование названий для формул и констант 150
Использование меток при ссылках на ячейки 153
Создание диаграмм и графиков 157
Создание диаграммы 158
Внесение изменений в диаграммы 168
Пример построения графика функции 174
Глава 3. Программирование в Excel 187
Создание макросов 187
Простой макрос 188
Макрос с относительными ссылками 190
Сохранение макросов 192
Основы интерфейса редактора VBA 193
Редактор VBA 194
Меню File 195
Меню Edit 197
Меню View 200
Меню Insert 202
Меню Format 203
Меню Debug 206
Меню Run 208
Меню Tools 209
MemoAdd-Ins 210
Меню Window 211

Содержание
Меню Help
Стандартная панель инструментов 212
Панель редактирования 214
Панель отладки 215
Панель инструментов User Form 216
Создание и редактирование кода 217
Функции пользователя 224
Создание функции 224
Сохранение и доступность функций 230
Переменные и типы данных 232
Рекурсия и необязательные аргументы 237
Использование функций приложения 243
Создание и работа с формами 246
Создание формы 247
Переопределение элементов формы 260

ЧАСТЬ II. РЕШЕНИЕ ЗАДАЧ 291


Глава 4. Методы вычислительной математики 292
Решение уравнений и систем 293
Встроенные утилиты Excel для решения уравнений 305
Системы уравнений 317
Надстройка оптимизации и поиска решений 324
Приближенные методы решения уравнений и систем 337
Метод половинного деления 337
Метод хорд 342
Метод Ньютона 345
Решение систем уравнений 353
Вычисление производных и интегралов 364
Вычисление производных 364
Вычисление интегралов 373
Дифференциальные и интегральные уравнения 380
Обыкновенные дифференциальные уравнения 381
Системы дифференциальных уравнений 383
Интегральные уравнения 386
Глава 5. Теория вероятностей и математическая статистика 391
Основы теории вероятностей 392
Базовые понятия теории вероятностей 392
Корреляция данных 396
Методы математической статистики 402
Основные понятия математической статистики 403
Встроенные функции Excel 404
Методы оценок 405
Регрессия 416
Линейная регрессия 416
Нелинейная регрессия 419

8 Содержание
Использование функций регрессии 420
Надстройка анализа данных 424
Генерирование случайных чисел 424
Регрессионный анализ 428
Утилита Descriptive Statistics 436
Создание гистограмм 439
Утилита Moving Average 442
Экспоненциальное сглаживание 444
Интерполяция и аппроксимация 446
Линия тренда 446
Интерполяция Лагранжа 452
Глава 6. Совместное использование Excel и Maple 457
Подключение надстройки Maple Excel Add-In 458
Основы командного языка Maple 460
Выражения в Maple 461
Математические функции Maple 464
Дифференцирование выражений 465
Интегрирование функций и выражений 466
Решение уравнений 467
Использование функций Maple в рабочих листах Excel 470
Ввод формул 470
Выполнение ссылок на ячейки 472
Создание графиков 475
Настройка параметров Maple при работе с Excel 483
Выполнение настроек 484
Вставка функций 486
Использование справочной системы 488
Совместное использование данных в Maple и Excel 490
Копирование данных из Excel 490
Копирование данных из Maple 492
Примеры решения задач 493
Разложение функции в ряд Тейлора 493
Параметрическая производная 495
Вычисление криволинейного интеграла 497
Интерполяция 499
Динамика 502
Приложение 506
Заключение 510
Список литературы 510
Предметный указатель 511

Содержание
Вступление

Немного об Excel и не только


Компьютеры прочно вошли в нашу повседневную жизнь. Они используются прак-
тически везде. Однако есть область, в которой привлечение автоматизированных вы-
числительных средств актуально как нигде более. Речь идет о проведении научно-
прикладных исследований. Причем проблему в этом случае можно условно разделить
как бы на две составляющие: это, во-первых, получение, сбор и обработка данных и, во-
вторых, представление в наглядном виде результатов исследований. В соответствии с
возникающими задачами с каждым годом появляются новые и совершенствуются су-
ществующие программные продукты. При этом происходят вполне закономерные
процессы, связанные с тем, что часть предлагаемых на рынке программных средств
упомянутой направленности остаются незамеченными или используются узким кру-
гом специалистов, а другие, напротив, получают всеобщее признание, а вместе с ним и
"путевку в жизнь". Не последнюю роль играет то, на какую аудиторию рассчитан тот
или иной программный продукт. Другими словами, каждое приложение подразумева-
ет, для успешного его использования, определенный уровень подготовки потенциаль-
ного пользователя. Понятно, что чем выше требования к пользователю, тем меньше
шансов у приложения стать массовым. В известном смысле это дилемма, поскольку
далеко не каждый готов с головой окунуться в язык команд, инструкций и непонятных
терминов, чтобы иметь возможность воспользоваться услугами предлагаемого про-
граммного продукта. Безусловно, для людей с профессиональным подходом к делу это
препятствием не является. Тем не менее, ситуация не самая оптимистичная. Отсюда
прослеживается тенденция, не очень строгая, правда: чем шире возможности прило-
жения — тем сложнее его использовать (в плане объема информации, которую пользо-
вателю нужно усвоить для работы с приложением). Однако, как известно, нет такого
правила, в котором не было бы исключений. Есть счастливые исключения и в данном
случае. В качестве такового можно привести приложение Excel из пакета Micro-
soft Office. Именно этому приложению и посвящена данная книга. В частности, здесь
излагаются подходы, которые могут использоваться в процессе проведения приклад-
ного инженерно-физического анализа.
Сразу следует отметить, что это приложение, будучи составной частью популяр-
ного пакета (имеется в виду Microsoft Office), по массовости своего использования
уступает, пожалуй, только другому приложению этого же пакета (имеется в виду ре-
дактор Word). Хотя это утверждение основано и не на статистических данных, одна-
ко, думается, выглядит вполне правдоподобно. В любом случае, малознакомым ши-
рокому кругу пользователей приложение Excel никак не назовешь. Однако прило-
жение это, несмотря на свою популярность, имеет в некотором отношении
незаслуженную репутацию. За ним крепко укоренилась слава среды для составле-
ния финансовых отчетов, выполнения экономических прогнозов и подобного этому
рода деятельности. Это — правда, но далеко не вся. У приложения есть существен-
ный, и, как представляется, не до конца раскрытый потенциал, и финансово-
экономический анализ — это всего лишь одна из возможных областей применения
Excel, важная, но далеко не единственная. Именно в том, чтобы показать возможно-
сти Excel при решении прикладных задач, и состоит цель данной книги.
При проведении научного исследования или решении каких-то прикладных про-
блем выбор рабочего приложения, с помощью которого автоматизируется процесс,
является далеко не последним моментом. Причем среди самих приложений просле-
живается достаточно серьезная конкуренция. Среди них можно выделить базовые,
лидирующие приложения на рынке программных услуг, к числу которых следует
отнести и Excel.
Обычно выбор конкретного приложения основывается на его функциональных
возможностях, способе взаимодействия пользователя с ним и, в перспективе, воз-
можностями по представлению конечных результатов. В этом отношении хочется
отметить сильные и слабые стороны Excel. В частности, данное приложение предос-
тавляет к услугам пользователя достаточно широкий набор встроенных утилит и
функций, которые позволяют решать самые разнообразные задачи, в том числе вы-
полнять сложные вычисления и решать уравнения и системы. Исключительно ши-
роки возможности Excel в области статистического анализа. Если учесть, кроме это-
го, возможность подключения надстроек и создания программных модулей, то арсе-
нал средств данного приложения выглядит более чем внушительно. К плюсам
можно добавить и относительную простоту в обращении с этим приложением.
Высокая степень совместимости приложения с прочими программными продуктами,
и, в первую очередь, из пакета Microsoft Office, — также не последний аргумент в
пользу Excel. Безусловно, в этой радужной картине есть и серые тона. Например,
в Excel практически нереально выполнять символьные преобразования. Однако и
здесь есть выход из ситуации. В частности, в последней главе книги будет показано,
как в рабочих листах Excel можно использовать команды Maple и с их помощью вы-
полнять вычисления в аналитическом виде. Кроме того, ведь далеко не всегда в та-
ких вычислениях есть необходимость. Большинство задач прикладного характера
подразумевает использование численного анализа. В любом случае, судить о досто-
инствах и недостатках Excel предстоит самому читателю.

Структура книги
Эта книга состоит из двух частей, по три главы в каждой. В первой части приво-
дятся сведения по системе Excel в целом. Глава 1 полностью посвящена графическо-
му интерфейсу пользователя. Здесь описываются основные его элементы, равно как
и способы взаимодействия пользователя с ними. Описание достаточно краткое и
приводится в таком объеме, чтобы читатель смог составить представление об этом
приложении (если он с ним ранее не был знаком). Те из читателей, кто неплохо зна-
ком с основами работы с приложениями пакета Microsoft Office, могут читать эту
главу в режиме ознакомления.
В главе 2 представлены основные сведения, касающиеся работы с приложением.
В частности, уделяется внимание вопросам ввода данных в ячейки таблицы, исполь-
зования формул и математических функций, рассматривается также ряд смежных с
перечисленными проблем.

12 Вступление
Вопросы программирования в Excel обсуждаются в главе 3. Здесь дана справка по
VBA (сокращение от Visual Basic for Applications), с помощью которого в Excel и дру-
гих приложениях пакета Microsoft Office создаются программные модули. Хотя глава и
не может рассматриваться как путеводитель по VBA, все же с ее помощью можно по-
лучить нужные сведения, необходимые в дальнейшем для успешного написания
функциональных программных кодов. В главе приводятся конкретные примеры, на
основе которых и объясняются особенности процесса программирования в Excel.
Следующие три главы второй части имеют самое непосредственное отношение к
вопросам использования Excel на практике. Так, в главе 4 обсуждаются основные под-
ходы численного анализа: рассматриваются методы решения уравнений, показано, как
искать экстремум функций, в том числе и условный, равно как и экстремум функций,
заданных в неявном виде. Кроме этого, проиллюстрированы возможности Excel в пла-
не вычисления производных, в том числе параметрических, интегралов (обычных и
двойных), а также уделено внимание вопросам решения дифференциальных и инте-
гральных уравнений. Все это иллюстрируется на конкретных примерах.
В главе 5 рассматриваются задачи и подходы теории вероятностей и математиче-
ской статистики, благо, в Excel недостатка в соответствующих методах не наблюдается.
Затрагиваемые в этой главе темы, пожалуй, как никакие иные близки к проблемам на-
учных и инженерно-физических исследований. Помимо этого, в главе рассматривают-
ся методы интерполяции и аппроксимации статистических зависимостей.
Наконец, глава 6 содержит полезную информацию о способах совместного ис-
пользования Excel и Maple. В этом случае перед пользователем открываются прак-
тически неограниченные возможности, причем, что существенно, даже в области
символьных преобразований. В главе описываются как общие вопросы работы с со-
ответствующей надстройкой (она подключается для того, чтобы можно было в рабо-
чих листах Excel использовать команды Maple), так и рассматриваются конкретные
примеры, имеющие практическую направленность.
В книге формулы, вводимые в ячейки, элементы графического интерфейса поль-
зователя, а также команды VBA выделяются специальным шрифтом. Это делается
для того, чтобы пользователю было легче ориентироваться в "технической" инфор-
мации. Кроме этого, по ходу книги довольно часто встречаются всевозможные врез-
ки и комментарии. В них вынесена особо важная информация, которую не следует
игнорировать, или такая, что имеет справочный или разъяснительный характер.
Кроме того, некоторые замечания и комментарии по ходу книги повторяются
(не стилистически, но по сути), что избавит читателя от необходимости специально
искать соответствующие места в книге.
В книге используется достаточно много сведений из различных областей: мате-
матического анализа, линейной алгебры, численных методов и т.п. В случае необхо-
димости приводится справка по этим вопросам. Кроме того, в конце книги приво-
дится список рекомендуемой литературы, который поможет читателю в поиске книг
на тот случай, если ему понадобится расширить свой кругозор в области математи-
ческих дисциплин. Кроме непосредственно книг по высшей математике, в списке
можно найти издания, которые будут полезны при ознакомлении читателя с Excel
или Maple. Однако снова хочется отметить, что представленных в книге сведений
все же должно быть вполне достаточно для понимания сути подходов по решению
конкретных задач в Excel.

Вступление 13
При написании книги в качестве базовой использовалась версия Excel 2002 из
пакета Microsoft Office XP. Тем не менее, в большей своей части методы, коды про-
грамм и способы решения задач будут корректно работать и при использовании бо-
лее ранней версии Excel 2000. Более важным обстоятельством является то, что ис-
пользовалась англоязычная версия приложения с такой же операционной системой.
В этой связи читатель должен принять во внимание, что названия функций в рус-
скоязычной версии приложения Excel имеют синтаксис, отличный от приведенного
в книге (однако методы работы с ними от этого не меняются). Менее важным, но все
же существенным обстоятельством, является то, что использовались и соответст-
вующие системные настройки (дата, время, символ валюты, разделители и т.п.).
В русскоязычных версиях они могут отличаться. Однако в тех местах, где такой эф-
фект может быть важен, как правило, приведены соответствующие комментарии.
Поскольку названия меню, панелей, диалоговых окон и т.п. в книге, в силу озна-
ченных выше причин, приводятся на английском языке, в скобках дается перевод.
При этом в расчет принималось и то, что в русскоязычной версии приложения эти
элементы имеют свое название (справедливости ради следует отметить, не всегда
точно соответствующее англоязычной версии приложения). Поэтому была пред-
принята попытка приводить такой перевод, чтобы он, с одной стороны, адекватно
отображал название элемента, а с другой, по возможности, позволял читателю легко
найти соответствующий элемент и при работе с русскоязычной версией приложения
Excel. Насколько это удалось — судить читателю.

Обратная связь
Свои критические замечания, пожелания, мнения о книге и вопросы читатели мо-
гут отправлять автору по адресу vasilev@univ. kiev. ua. Однако в силу объектив-
ных причин автор не обещает, что сможет ответить на все письма. В любом случае не-
сомненный интерес представляет мнение читателей о том, что можно было бы усовер-
шенствовать в книге и на что стоило бы обратить внимание в последующих изданиях.
Автор заранее выражает признательность всем, кто предоставит свои отзывы.

14 Вступление
Благодарности
Автор с огромным удовольствием выражает самую искреннюю благодарность за-
ведующему редакцией издательства "Диалектика" Александру Вадимовичу Слепцову.
Хочется также сказать приятные слова в адрес сотрудников этого издательства, чей
высокий профессионализм находится выше всякой похвалы.
Благодаря гранту Королевского Научного Общества Великобритании у автора бы-
ла возможность в течение года пользоваться, проводя научные исследования в Вели-
кобритании, базами данных, программными пакетами и вычислительными средствами
математического факультета университета города Саутгемптон (Southampton).
Вне всяких сомнений, это существенно поспособствовало процессу написания книги.
Отдельное спасибо профессору Тиму Слуцкину (Tim Sluckiri) за его терпение, понима-
ние и всяческую поддержку.
Пребывание в Великобритании стало возможным также благодаря пониманию и
поддержке со стороны руководства Киевского университета имени Тараса Шевчен-
ко, сотрудником которого автор является. В этой связи хочется выразить благодар-
ность декану физического факультета, член.-кор. НАНУ, проф. Булавину Леониду
Анатольевичу, заведующему кафедрой теоретической физики проф. Пинкевичу
Игорю Павловичу, а также всем сотрудникам кафедры теоретической физики, у ко-
торых в связи с отъездом автора несколько возросла педагогическая нагрузка.
Особое спасибо проф. Ежову Станиславу Николаевичу, у которого эта нагрузка очень
возросла. Наконец (last but not least), автор выражает свою признательность проф.
Решетняку Виктору Юрьевичу, во многом благодаря которому и состоялась поездка
в Великобританию.
Ждем ваших отзывов!
Вы, читатель этой книги, и есть главный ее критик и комментатор. Мы ценим
ваше мнение и хотим знать, что было сделано нами правильно, что можно было сде-
лать лучше и какие еще книги вы хотели бы увидеть изданными издательством
"Диалектика". Нам интересно услышать и любые другие замечания, которые вам
хотелось бы высказать в наш адрес.
Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам
бумажное или электронное письмо, либо просто посетить наш Web-сервер и оста-
вить свои замечания там. Одним словом, любым удобным для вас способом дайте
нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как
сделать наши книги более интересными для вас.
Посылая письмо или сообщение, не забудьте указать название книги и ее авторов,
а также ваш обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязатель-
но учтем его при отборе и подготовке к изданию последующих книг. Наши координаты:
E-mail: info@dialektika.com
WWW: http://www.dialektika.com

Информация для писем из:


России: 115419, Москва, а/я 783
Украины: 03150, Киев, а/я 152
ЧАСТЬ I
Основы Excel
В этой части...
• Знакомство с Excel
• Анализ данных в Excel
• Программирование в Excel
ГЛАВА 1

Знакомство с Excel
В этой главе...
• Основные понятия
• Команды панели меню
• Панели инструментов
• Методы работы с документами
• Форматирование данных
• Настройка графического интерфейса

Основные понятия
В этом разделе речь пойдет о том, что такое электронные таблицы, где, когда и как они
используются. Здесь также будут описаны некоторые базовые понятия и элементы,
имеющие отношение к вопросам организации электронных таблиц и графического ин-
терфейса, с помощью которого осуществляется взаимодействие пользователя с системой.

Электронные таблицы
Не секрет, что компьютеры очень часто используются для обработки больших
массивов данных. Эта задача не менее важна, чем выполнение непосредственно вы-
числений. При этом возникает вопрос: как такие данные систематизировать?
Наиболее распространен способ представления данных в виде таблиц. В этом случае
доступ к информации можно получить, указав адрес ячейки, в которой эта инфор-
мация хранится. Адрес состоит из номера или названия строки и столбца, на пересе-
чении которых размещена ячейка. Этот принцип остается в силе, когда речь заходит
об электронных таблицах. Собственно, таблицами они называются по аналогии с тем
способом, согласно которому систематизируются данные.
Замечание. Тот, кто в школьные годы на уроках литературы играл с соседом по
парте в морской бой, наверняка уже понял, о чем идет речь. Чтобы утопить ко-
рабль противника, нужно указать номер столбца и номер строки, где этот кораб-
лик может находиться. Это аналог ячейки в таблице. Информацией в, данном
случае будет наличие или отсутствие в клетке корабля.
Среди электронных таблиц наиболее популярно приложение Microsoft Excel —
составная часть пакета Microsoft Office. Приложение позволяет не только эффек-
тивно систематизировать данные, но и проводить автоматическую их обработку.
Вместе с приложением предлагается широкий набор весьма полезных встроенных
утилит, благодаря чему у пользователя есть возможность не только быстро и эффек-
тивно анализировать и структурировать данные, но и представлять результат в на-
глядном виде. Тем не менее, важно знать, в каких случаях электронные таблицы мо-
гут быть полезны, а в каких — нет.
Что касается области применения электронных таблиц, то они могут стать неза-
менимым помощником при выполнении статистического, финансового и экономи-
ческого анализа, решении прикладных инженерно-физических задач, выполнении
численных расчетов. Чего однозначно не удастся сделать с помощью электронных
таблиц — это выполнить аналитические вычисления (к примеру отыскать производ-
ные или вычислить интегралы в символьном виде). Хотя, надо отметить, численно
эти задачи в Excel решаются. Кроме того, приложение Excel может использоваться
вместе с другими программными продуктами, такими, например, как Maple или
MathCAD, благодаря чему эффективность работы существенно повышается.
Немаловажен и тот факт, что существуют достаточно широкие возможности по
оформлению рабочих книг Excel (именно так называются документы, создаваемые
этим приложением). Поэтому нет ничего удивительного в том, что наряду с редакто-
ром Word, электронные таблицы Excel являются одним из наиболее популярных
приложений для ведения электронной документации.
В самых общих чертах принцип работы с электронными таблицами Excel состоит
в следующем. В рабочей области, которая разбита на ячейки, пользователь вводит
данные (как правило, численные). Преобразование этих данных осуществляется по-
средством встроенных утилит Excel и результат такого преобразования отображает-
ся в ячейках электронной таблицы. Какие данные и как именно их преобразовывать,
равно как и те ячейки, где должен выводиться результат, определяет пользователь.
Удобство такого подхода состоит в том, что впоследствии, если входные, анализи-
руемые данные изменяются, результат автоматически обновляется и отображается в
соответствующей ячейке. Эта исключительно полезная концепция находит все более
широкое признание в умах инженеров-практиков, поскольку достаточно всего-
навсего внести изменения в начальные параметры, и можно сразу увидеть практиче-
ский эффект — нет необходимости часами повторять однотипные вычисления.

[ Замечание. Что касается бухгалтеров и финансистов, то их сердца давно отданы


Excel. Поэтому ухаживать за девушкой-бухгалтером особого смысла не имеет.
Ее сердце однозначно несвободно.
Кроме непосредственно численных данных в таблицах можно использовать текст
и прочие визуальные эффекты, аналогичные тем, что доступны при работе с тексто-
выми редакторами.

Глава 1. Знакомство с Excel 19


Рабочее окно Excel
Для запуска приложения Excel можно, например, щелкнуть на кнопке Start
(Пуск), после чего в меню Programs (Программы) следует выбрать пункт Microsoft
Excel (рис. 1.1).
Другой способ — найти какой-нибудь файл с расширением . xsl и дважды щелк-
нуть на нем мышью. В этом случае не только запустится приложение, но еще и от-
кроется данный файл.
Замечание. На этом, безусловно, способы запуска приложения совсем не исчер-
пываются, но дальнейшее их перечисление представляется занятием сомнитель-
ного рода.
После запуска приложения открывается окно, вид которого показан на рис. 1.2.
Строка заголовка окна приложения содержит название приложения (Microsoft
Excel) и название рабочего документа. По умолчанию при открытии первого пустого
документа отображается название Book 1 (Книга 1). Далее идет панель меню, пане-
ли инструментов, строка формул, слева от которой размещено поле названия актив-
ной ячейки, область рабочего листа с областью задач в правой части, а также строка
состояния.
Замечание. Область задач, упомянутая выше, является новым элементом графи-
ческого интерфейса в Microsoft Excel 2002. Она используется при создании но-
вых документов, для получения доступа к шаблонам, при открытии уже сущест-
вующих документов и в ряде других случаев.

т -3 Accessories
I CJ3 Startup
' ^ Internet EwptoWf
Si SephotAnWirus
5j Mictotoft Oflee Tools
|2 Microsoft Access
: ^ MicrasoftOilfook ;;
OH MicratoftPoweiPorit '
[PJ Microsoft Pubfchet
_§j GhostsoW

AaobatReader5.1
@ Adobe
[SI MicrasaltWofd
_r) WWW)
^ Expforet.ejte
as.«t .J ;
Рис. 1.1. Запуск приложения Microsoft Excel

20 Часть I. Основы Excel


I F3 Micmsofl Excel - Bookl
Cata Sjndow ttdp

- 10 @, .

•<•• 4 Мен Workbook


Open a workbook __
Notes.xls
Forms, xts
Example, xk
MyData.xls
С^ More workbooks...
New
D Blank Workbook
New From existing workbook
Ц[} Choose workbook...
Newlromjternplate
1§] General Templates...
[§J Templates on my Web Sites.,.
wj Templates on MicrosoFt.com

Cj Add Web Folder...


8} Microsoft Excel Help
Irj Show at startup

Reedy

Рис. 1.2. Окно приложения Microsoft Excel


Наибольший интерес представляет, безусловно, панель меню (рис. 1.3).

Qte В* Sew fistrt Format Tools Qata №dc«

Рис. 1.З. Панель меню приложения Microsoft Excel

В самом левом углу панели размещена пиктограмма меню управления. Сразу после
нее следует девять меню: File (Файл), Edit (Правка), View (Вид), Insert (Вставка), Format
(Формат), Tools (Сервис), Data (Данные), Window (Окно) и Help (Справка). Справа
размещено поле, в которое можно ввести ключевое слово или фразу и получить справку.
Описание команд панели меню можно найти в одном из следующих разделов.

( Замечание. Если в рабочем документе выделена диаграмма, то вместо меню Data


отображается меню Chart (Диаграмма).
Под панелью меню располагаются панели инструментов. Панелей инструментов
в Excel достаточно много, и какие из них будут отображаться при запуске приложе-
ния, зависит от настроек, выполненных пользователем. Обычно по умолчанию ото-
бражается две панели инструментов — стандартная панель инструментов (Standard)
и панель форматирования (Formatting). Причем отображаться они могут по-
разному. Если панели инструментов размещены в одной строке, то они отображают-
ся в свернутом виде, как это показано на рис. 1.2. Чтобы увидеть полностью содер-
жимое панели инструментов, следует щелкнуть на стрелке в правой части соответст-
вующей панели. Если разместить панели одна под другой (для этого достаточно, на-

Гпава 1. Знакомство с Excel 21


пример, мышью перетащить одну из панелей вниз), они отобразятся полностью.
На рис. 1.4 показана стандартная панель инструментов, а на рис. 1.5 представлена
панель инструментов форматирования.

Рис. 1.4. Стандартная панель инструментов

EArW
___ - ,
'
-
- ш - в I н : К » at g! ; Щ> % ,
: - . - , - , - _ - _.

Рис. 1.5. Панель форматирования

Под панелями инструментов размещена строка формул (хотя она может и не


отображаться — в зависимости от настроек системы). Строка формул с пустым по-
лем ввода формулы и полем названия ячейки (в данном случае это левая верхняя
ячейка А1 рабочего листа) представлена на рис. 1.6.

А1 . л ' '•• *

Рис. 1.6. Строка формул с полем названия ячейки

В поле названия ячейки отображается, как несложно догадаться, активная на


данный момент ячейка (ее название).
Замечание. Принцип именования ячеек подробно будет описан несколько позже.
В общем можно отметить, что название формируется из литеры, определяющей
столбец, и номера строки, на пересечении которых находится ячейка. Активной
называется ячейка, которая выделена в данный момент. В эту ячейку можно вво-
дить данные.
В поле строки формул может отображаться содержимое ячейки — значение
(для чисел и текстовых строк) или формула. При вводе или редактировании форму-
лы вид строки формул и поле отображения названия ячейки несколько меняются:
появляется две новые кнопки (вдобавок к той, что можно видеть слева от поля стро-
ки формул на рис. 1.6), а вместо названия активной ячейки отображается раскры-
вающийся список (в свернутом виде) вставки функций. Кнопки, равно как и методы
работы со строкой формул, описываются в главе 2 в разделе, посвященном методам
ввода и редактирования данных в ячейке.

Совет. Чтобы скрыть строку формул, можно воспользоваться командой


View^Formula Bar. Если выбрать эту команду повторно, строка формул снова
будет отображена.
Под строкой формул размещается непосредственно рабочее окно книги (рис. 1.7),
в верхней части которого расположена полоса с названиями столбцов (латинские
литеры А, В, С и т.д.), а слева — полоса с номерами строк.
Справа можно видеть стандартную для приложений Microsoft Office вертикаль-
ную полосу прокрутки, а в нижнем правом углу — горизонтальную.

.22 Часть \. Основы Excel


Рис. 1.7. Вид рабочего окна книги

По умолчанию рабочая книга Excel состоит из трех рабочих листов, которые, опять же
по умолчанию, имеют названия Sheetl (Лист1), Sheet2 (Лист2) и Sheets (ЛистЗ).
В нижней части рабочей области можно видеть корешки вкладок этих листов (рис. 1.8).
Для перехода к листу следует щелкнуть на соответствующей вкладке (ее корешке).
Слева от корешков вкладок расположена полоса их прокрутки (рис. 1.9). Она со-
стоит из четырех кнопок и полезна только в том случае, если количество листов в
книге таково, что корешки их вкладок не могут быть отображены сразу все в нижней
части рабочего окна. Назначение этих кнопок описано в табл. 1.1.

Рис. 1.8. Корешки вкладок


kSheetl рабочих листов книги

Рис. 1.9. Полоса прокрутки


корешков вкладок рабочих листов

Таблица 1.1. Назначение кнопок прокрутки корешков вкладок рабочих листов

Кнопка Назначение
Прокрутка до тех пор, пока не будет отображен корешок вкладки первого
рабочего листа
] Прокрутка на один корешок назад
j Прокрутка на один корешок вперед
3 Прокрутка до тех пор, пока не будет отображен корешок вкладки последнего
листа книги

Внимание! С помощью описанных выше кнопок осуществляется лишь прокрутка


корешков вкладок рабочих листов. При этом переход к соответствующему рабо-
чему листу не происходит.

Непосредственно рабочая область окна состоит из ячеек, куда и вводятся данные.


Каждая ячейка, как уже отмечалось, имеет свой адрес. Столбцы таблицы идентифи-
цируются латинскими литерами начиная с А, строки нумеруются натуральными
числами. Адрес ячейки получается объединением названия столбца и строки, на пе-
ресечении которых размещена ячейка. Так, левая верхняя ячейка имеет адрес А1.
Справа и снизу рабочий лист, по большому счету, не ограничен. Максимальное ко-

Глава 1. Знакомство с Excel 23


личество строк равно 65 536, а максимальное количество столбцов составляет 256.
Столбцы именуются следующим образом: после столбца Z следует столбец АА, затем
АВ и т.д. После AZ идет столбец ВА, и так до столбца IV. В общей сложности рабочий
лист может содержать более 16 миллионов ячеек.
Внимание! Кроме описанного выше способа идентификации ячеек, в Excel пре-
дусмотрена возможность задавать адрес ячейки в формате R1C1. В этом случае
строка и столбец, на пересечении которых находится ячейка, нумеруются числа-
ми. После литеры R указывается номер строки, а после литеры С указывается
номер столбца, на пересечении которых находится ячейка. Например, ячейка А1
получает в этом формате адрес R1С1, ячейка В4 будет иметь адрес R4C2 и т.д.
Наконец, в нижней части окна приложения размещена строка состояния (рис. 1.10).
В строке состояния отображается всевозможная полезная информация, позволяющая
сделать вывод о состоянии системы. В частности, на рис. 1.10 слово Ready (Готово) в
строке состояния свидетельствует о том, что вычисления в рабочем документе выпол-
нены (иногда на их выполнение уходит значительное время) и документ готов к работе
(можно вносить новые данные и редактировать уже существующие). Слово CAPS
свидетельствует о том, что нажата клавиша <Caps Lock> (т.е. активизирован режим:
ввода прописных литер), a NUM — о том, что нажата клавиша <Num Lock>.

С : D i E : F
11
А
~~Т]НШИ
в
Z

шщя^^^я J
N \Sheet l/ShMt2.^9wet3/ |«] * I л!
Ready Sum-10 CAPS MUM

Рис. 1.10. Строка состоять (нижняя часть рисунка)

Кроме того, в данном случае в рабочем листе выделен диапазон ячеек, содержа-
щих числа от 1 до 4. Сумма этих чисел равна 10, и этот факт нашел свое отражение в
строке состояния (сообщение Sum=10).
Замечание. Диапазоном в Excel обычно называется группа ячеек, занимающая
прямоугольную область в рабочем документе. Диапазон задается так: сначала
указывается верхняя левая ячейка диапазона, затем, через двоеточие, нижняя
правая ячейка. О методах работы с диапазонами ячеек подробно рассказывается в
следующей главе. Иногда под диапазоном понимают область ячеек с данными,
окруженную пустыми ячейками.

Описанные выше элементы являются базовыми и во многом определяют функцио-


нальность приложения. Методы работы с ними перечислены в следующих разделах.

( Совет. Чтобы скрыть строку состояния, достаточно выбрать команду View^ Status Bar.
Чтобы снова отобразить строку состояния, используют ту же команду.

Полезные советы
Ниже приведена некоторая полезная информация, касающаяся всевозможных
аспектов работы с рабочими листами и книгами. Эти советы помогут сэкономить

24 Часть I. Основы Excel


время и упростить способ взаимодействия пользователя с приложением. Приведен-
ный ниже список хотя и не полон, однако содержит самые важные сведения.
> Чтобы сделать активным следующий рабочий лист в книге, можно нажать ком-
бинацию клавиш <Ctrl+Page Down>. Перейти к предыдущему рабочему листу
можно с помощью комбинации <Ctrl+Page Up>.
> В процессе работы с большими рабочими листами часто случается, что активная ячей-
ка оказывается вне поля видимости пользователя. Для того чтобы активная ячейка сно-
ва оказалась в области отображения, следует нажать <Ctrl+Backspace>.
> При использовании клавиш со стрелками, вместе с прокруткой рабочего листа
происходит смена активной ячейки. Чтобы этого не было, следует предваритель-
но нажать клавишу <Scroll Lock>. В этом случае в строке состояния появится со-
общение SCRL, свидетельствующее о том, что нажата упомянутая выше клавиша.
> Для доступа к меню можно нажать клавишу <Alt> (левую) в комбинации с той
буквой, что подчеркнута в названии соответствующего меню. Кроме того, доступ
к меню может осуществляться нажатием клавиши с косой чертой (</>). Если эта
клавиша по каким-то причинам пользователя не устраивает, выбором команды
Tools^Options (Сервис^Параметры) можно открыть диалоговое окно Options,
в котором нужно выбрать вкладку Transition (Переход), и на этой вкладке в поле
Microsoft Excel menu or Help key (Меню Microsoft Excel или клавиша справки
Help) задать клавишу перехода к панели меню (рис. 1.11).

Color
Vtew Calculation

j Save ЕфЫМю «к [Microsoft Excel Workbook


; Settings
Wcrosoft Excel щепи or
<•" Microsoft £xcei menus
.(". Lotus 1-2-3 Help
Г~ TransHon navigation joeys
Swet Options
Г~ Transfcton£omtJa evaluation
Г* ТгагвдИоп foniya entry

Puc. 1.11. Вкладка Transition диалогового окна Options

При отмененной опции Transition navigation keys (Клавиши переходов, команда


Tools^Options, вкладка Transition) существует удобный способ перехода между
ячейками таблицы. В частности, если, удерживая клавишу <Ctrl>, нажимать кла-
виши со стрелками, можно осуществлять переходы к границам диапазонов ячеек.
Если активна ячейка с данными, то в направлении, соответствующем нажатой
клавише со стрелкой, будет совершен переход к последней заполненной ячейке в
данном диапазоне. Если активна пустая ячейка, то переход осуществится к пер-
вой заполненной ячейке. Так, на рис. 1.12 активна пустая ячейка А1. Если, на-

Глава 1. Знакомство с Excel 25


пример, нажать клавишу <Ctrl>, и, удерживая ее, клавишу со стрелкой вправо,
затем клавишу со стрелкой вниз, еще раз вниз и влево, то активными будут ячей-
ки G1, G3, G5 и Е5 соответственно. В том случае, если, скажем, при активной
ячейке G11 попытаться перейти вправо (при нажатой клавише <Ctrl>), то ак-
тивной будет ячейка IV11. Дело в том, что поскольку справа от ячейки G11 за-
полненных ячеек нет, то активной станет самая крайняя ячейка в рабочем листе.

Distance!
6 jDistance2
rjOretanceS
i%i*tance4

Speed!
Speed2
Spe«d3
Speed4
Speeds

Puc. 1.12. Переходы к границам диапазона

Чтобы перейти к первой ячейке в текущей строке, следует нажать клавишу <Ноте>.
Для перехода к ячейке А1 нужно нажать комбинацию клавиш <Ctrl+Home>.
При нажатой клавише <Scroll Lock> последующее нажатие клавиши <Ноте>
приводит к активизации первой (левой верхней) ячейки видимой области рабо-
чего окна, а нажатие клавиши <End> — к активизации последней (правой ниж-
ней) ячейки видимой области рабочего окна.
При нажатых клавишах <Ctrl+End> активной будет последняя ячейка в послед-
нем столбце активной области.
Замечание. Активной областью называется диапазон, который включает в себя
все ячейки рабочего листа, где есть данные. Определяется эта область левой
верхней и правой нижней ячейками диапазона с данными.

Команды панели меню


Панель меню предоставляет пользователю доступ к огромному числу команд, с по-
мощью которых осуществляется настройка графического интерфейса пользователя,
создание, редактирование и форматирование рабочих документов, вывод их на печать
и многое другое. Прежде чем приступить непосредственно к описанию команд панели
меню, сделаем некоторые замечания общего характера относительно принципа орга-
низации панели меню и способа взаимодействия пользователя с этой панелью.

26 Часть I. Основы Excel


Общие замечания
, Если щелкнуть на одном из меню мышью, откроется список с командами этого
меню. Причем сразу будут отображены далеко не все команды. Вначале список команд
выводится в упрощенном варианте и содержит только основные элементы. Если
щелкнуть мышкой на двойной стрелке в нижней части раскрывающегося списка, меню
отобразится полностью. На стрелке можно и не щелкать. Через некоторое время оно
само предстанет, так сказать, во всей красе. Эта особенность продемонстрирована на
примере меню Insert (Вставка). На рис. 1.13 можно видеть сокращенный список
команд этого меню, в то время как на рис. 1.14 представлен его полный состав.

Рис. 1.13. Сокращенный BOWS Cs«s... Puc. 1.14. Полный список


список команд меню Insert Columns BOWS команд меню Insert
Sorksheet Columns

Ш Crjart... Worksheet

Ш
Symbol...

Bcture Pagegreak

Hyperlink... сам. Ftjnction...


I
5 Same

Corjiment

Bcture

Diagram...

fibject...

Hyperlpk...

Замечание. За режим отображения списков команд меню отвечает опция Always


show full menus (Всегда показывать полные меню) на вкладке Options диалогово-
го окна Customize (Настройка) (рис. 1.15). Диалоговое окно можно открыть, вы-
брав команду Tools^Customize. Для перехода в режим отображения полных
списков следует поставить флажок данной опции.

Tootjars | Commands Options

Personalized Menus end Toolbars

W show Standard and Formatrjig toobars on two rows


sJTowTtSTmegj*:! .
м fyl menus after a short delay

* my usage data

fc names tn their font .


' Show Screenjjps on toolbars

Рис. 1.15. Режим отображения полных списков

1. Знакомство с Excel 27
Очень часто справа от команды в списке меню указывается комбинация клавиш,
при помощи которой данная команда может быть выполнена. Например, справа от ко-
манды Hyperlink (Гиперссылка) на рис. 1.14 указана комбинация <Ctrl+K>. Это зна-
чит, что команду можно выполнить, если одновременно нажать указанные клавиши.
Многие команды дублируются кнопками на панели инструментов. Если на панели
инструментов для данной команды имеется кнопка, щелчок на которой приводит к ее
выполнению, пиктограмма кнопки, как правило, отображается в списке команд меню
слева от команды. Ниже в сжатом виде приведены характеристики команд панели ме-
ню. Там же представлены комбинации клавиш, с помощью которых эти команды вы-
зываются, а равно и кнопки панели инструментов, соответствующие этим командам.

Меню File
В меню File (Файл) собраны команды, полезные при работе с документами в
целом. Открытое меню представлено на рис. 1.16. Описание команд меню File можно
найти в табл. 1.2.
Следует отметить, что не для всех команд из перечисленных в этой и последующих
таблицах на панелях инструментов отображаются кнопки. В частности, кнопка для
команды Save as Web Page no умолчанию не отображается. Ее следует (если в этом
есть необходимость) самостоятельно добавить на панель инструментов. О том, как это
делается, рассказано в разделе, посвященном настройке графического интерфейса.
Кроме того, подменю содержат команды, для которых также могут быть предусмотре-
ны специальные кнопки. В соответствующих таблицах эти кнопки не представлены,
так что читатель имеет возможность изучить данный вопрос самостоятельно.

туре a questiwi for гдар f* _ ff x


шиш
100%

New
Open a workbook
Notes.xte
MyOata.xls
Forms.xls
Example.xls
More workbooks

General Templates,,.
Templates on my Web Sites...
Templates on Mfcroscrft.com
1 \Vaslev\ExceNJsting5\Notes.xls Mail Recipient (as Attachment)

I \Vasfev\ExcelV.istino.s\MyDeta.xls Routing Recipient...


Add Web Folder.,.
J \Vesfcv\Excel\LUtings\Forms .xb Exchange Folder...
Microsoft Excel Help
1 \Vasitev\Excel\Lislhgs\Example.xl5 Crtne
Show at startup
Exit

Рис. 1.16. Команды меню File

28 Часть I. Основы Excel


Таблица 1.2. Команды меню File

Команда или подменю Комбинация Кнопка па- Описание


клавиш нели меню
New (Новый) <Ctrl+N> Этой командой создается
новый рабочий документ
Open (Открыть) <Ctrl+O> Команда полезна в том случае,
если нужно открыть уже сущест-
вующий документ
Close (Закрыть) Нет С помощью данной команды
можно закрыть документ
Save (Сохранить) <Ctrl+S> Команда сохранения документа

Save As (Сохранить как) Нет Команда сохранения копии до-


кумента. Допускается сохранение
документа в разных форматах
Save as Web Page Нет Команда сохранения докумен-
(Сохранить как та в формате Web-страницы
Web-страницу)
Save Workspace Нет Команда сохранения рабочей
(Сохранить рабочую области. В этом случае сохра-
область) няются не только все открытые
на данный момент рабочие кни-
ги, но также их размер и поло-
жение на экране
Search (Поиск) Нет Команда выполнения темати-
ческого поиска по системе.
Ищутся файлы, удовлетво-
ряющие критериям поиска,
которые задаются в специаль-
ном поле пользователем
Web Page Preview Нет Команда позволяет просматри-
(Просмотр вать рабочий документ в фор-
Web-страницы) мате Web-страницы
Page Setup (Параметры Нет Команда настройки параметров
страницы) страницы. Используется при
выводе документа на печать
Print Area (Область Нет Это подменю содержит две
печати) команды: Set Print Area
(Задать область печати) и
Clear Print Area (Очистить
область печати). Первая
используется для того, чтобы
задать область печати,
вторая — чтобы выполнить
отмену области печати

Глава 1. Знакомство с Excel 29


Окончание табл. 1.2

Команда или подменю Комбинация Кнопка па- Описание


клавиш нели меню
Print Preview (Предвари- Нет Команда просмотра документа
тельный просмотр) перед выводом на печать
Print (Печать) <Ctrl+P> Вывод документа на печать

Send To (Послать) Нет Подменю содержит ряд ко-


манд, полезных в случае пере-
сылки документа по электрон-
ной почте
Properties (Свойства) Нет Сведения о документе

Список файлов Нет Список файлов, открывавшихся


последними. Чтобы открыть один
из них, следует просто щелкнуть
на этом файле мышкой
Exit (Выход) Нет Команда завершения сеанса
работы с приложением Excel

Меню Edit
В меню Edit (Правка) собраны команды редактирования рабочего документа
(рис. 1.17). Они достаточно стереотипны для всех приложений из пакета Microsoft
Office. Это же, кстати, относится и к описанному выше меню File. В табл. 1.3 пере-
числены команды меню Edit с кратким их описанием.

D Blank Workbook
New fromi odfUng workbook

General Templates,..
| uk] Templates on my Web Sites,

Рис. 1.1'7. Команды меню Edit

30 Часть I. Основы Excel


Тагнкца 1.3. Кроапжыозпю Edit
Команда или подменю Комбинация Кнопка Описание
клавиш панели
меню
Undo (Отменить) <Ctrl+Z> Команда отмены последнего
действия
Repeat (Повторить) <Ctrl+Y> Команда повторения
отмененного действия
Cut (Вырезать) <Ctrl+X> Удаление выделенного
фрагмента в буфер обмена
Сору (Копировать) <Ctrl+O Копирование выделенного
фрагмента в буфер обмена
Office Clipboard (Буфер Нет Отображение содержимого
обмена Office) буфера обмена Office. Буфер
может содержать до 24 записей
Paste (Вставить) <Ctrl+V> Вставка содержимого буфера
обмена в активную ячейку или
место размещения курсора
Paste Special Нет С помощью этой команды
(Специальная вставка) можно выполнить вставку
из буфера обмена в формате,
который выбирается пользо-
вателем
Paste as Hyperlink Нет Вставка содержимого буфера
(Вставить как обмена в качестве гиперссыл-
гиперссылку) ки. Эта команда доступна в
тех случаях, когда копируются
данные из других программ —
например, когда в буфер об-
мена скопировано содержимое
ячейки рабочей книги, откры-
той через Internet на удален-
ном компьютере
Fill (Заполнить) Нет Подменю содержит ряд команд,
позволяющих заполнять ячейки
таблицы в полуавтоматическом
режиме на основе ранее внесен-
ных в таблицу данных
Clear (Очистить) Нет Подменю очистки содержимо-
го ячеек. Команды этого
подменю позволяют полно-
стью удалять ячейки
(производить очистку ячеек)
или удалять данные только
определенного типа

Глава 1. Знакомство с Excel 31


Окончание табл. 1.3

Команда или подменю Комбинация Кнопка Описание


клавиш панели
меню
Delete (Удалить) Нет Удаление выделенного
объекта
Delete Sheet (Удалить Нет Удаление листов из рабочей
лист) книги
Move or Copy Sheet Нет Перемещение и копирование
(Переместить или скопи- рабочих листов
ровать лист)
Find (Найти) <Ctrl+F> Поиск данных в рабочем листе
или книге
Replace (Заменить) <Ctrl+H> Поиск и замена данных в со-
ответствии со спецификацией,
заданной пользователем
Go To (Перейти) <Ctrl+G> Переход к тому месту рабоче-
го листа, что определено поль-
зователем в соответствующем
диалоговом окне. Это окно от-
крывается в результате выпол-
нения команды
Links (Связи) Нет Команда отображения и ре-
дактирования внешних связей
в текущем документе. Выво-
дится диалоговое окно с ука-
занием файлов, на которые в
данном рабочем документе
есть ссылки (обычные, не ги-
перссылки), а также сопутст-
вующая информация
Object (Объект) Нет Запускается приложение для
редактирования выделенного
объекта. Приложение опреде-
ляется типом объекта

На рис. 1.17 можно заметить, что первые две команды рассматриваемого меню
(это Undo и Repeat, соответственно) отображены несколько необычно — команды
выделены серым цветом (это означает, что они недоступны), к тому же перед этими
командами появилось слово Can't, что в переводе означает невозможно. Объясняется
все просто — поскольку в документе никакие операции с данными не производились
(на рис. 1.17 изображен чистый документ), то и отменять нечего.

Замечание. Все, что на данный момент недоступно, выделяется, как правило,


серым цветом. Поэтому познакомиться на улице с внешне скромной девушкой
невозможно. А если эта девушка еще и бухгалтер по профессии (то есть ее сердце
несвободно в силу любви к Excel), то шансов нет даже у Мэла Гибсона.

32 Часть I. Основы Excel


В процессе работы, когда команды станут доступны, в соответствующей команд-
ной строке будет отображена не только сама команда, но и описание того действия,
которое можно отменить или повторить. Кроме того, несколько видоизменится пик-
тограмма изображенной слева от команды Repeat кнопки.

Меню View
В меню View (Вид) представлены команды и подменю, позволяющие настраивать
внешний вид рабочего окна приложения Excel. Содержимое меню можно видеть на
рис. 1.18, а в табл. 1.4 представлена основная информация о командах этого меню.

I ЕЗ Microsoft Excel - Bookl НИЩ


iS] Be E* Be» | Insert_ Farmat __loote Qaca WJndow rjelp " Tv : ! , -•-..' L.-ivr.flr, ^ „ 0 X

mal
i D a* H JB -°
Arla l *° jffli Eag» Break Preview
1 Д
A1 |Г*1 Task. Pane '^: ' ' l^: "" •'
A i loobars . »• ^J Standard .._ ГГ
:
- * New wtrttock-.V. ",;.•: ^r x
1 a Bar ?| Formattffig j . Open a workbook
| Notes.xls
3 Status Bar ^% Borders
3 :
MyData.xls
tteada and Footer. . . Forms.xls
5
nts Ш Control Toolbox Example.xls
6
j fir More workbooks...
7 Custoni Views... ;M Oawing
6 , Т New
L'f FyllS! een ^; External Data
9 | D Blank Workbook
..; .... гост. ;^ Forms
I! New from exKtinfl workbook
11 i 1 1 FormiJa Auditing L В i^] Choose workbook...
12 :
Picture „,: New from template
; N

PivotTable •$ j General Tempiates . , .


14
15
1 Protection Lit] Templates on my Web Sites. . -
i
:
&j TemplatesonMicrosoft.com
, Reviewing

is
If
J

jj| Task Pane


i ЩI
i |
| Text To Speech
20 •;
21
~ ~~ •i

! У
, Visual Basic
Watch Window
I -ll
j Q5 Add Web Pokier...
:
1 Web 1 l?l Microsoft Excel Help
1Г M?\J5heeU_/SieeK / Sheets
M 4 /
1 WordArt !T.
МГ
[vj Show at startup

Reair/ : HUM

Рис. 1.18. Содержимое меню View

Таблица 1.4. Команды меню View


Команда или подменю Комбинация Кнопка Описание
клавиш панели
меню
Normal (Обычный) Нет Команда позволяет перейти в режим
общепринятого способа отображения
рабочего документа. В этом случае
рабочий документ выглядит так, как
показано на рис. 1.18

Глава 1. Знакомство с Excel 33


Продолжение табл. 1.4

Команда или подменю Комбинация Кнопка Описание


клавиш панели
меню
Page Break Preview Нет При выборе команды приложение
(Просмотр в режиме переходит в режим отображения
разбивки на страницы) рабочего документа с разбивкой
на страницы. Этот режим обычно
используют для того, чтобы отфор-
матировать документ перед выводом
на печать
Task Pane (Область Нет Команда отображения области задач.
задач) Область отображается, когда возле
команды стоит флажок
Toolbars (Панели Нет Подменю отображения панелей ин-
инструментов) струментов. Список команд подме-
ню, соответствующих панелям инст-
рументов, вместе с командой на-
стройки панелей Customize
(Настройка) можно видеть на
рис. 1.18. В частности, в данном
случае отображается две панели ин-
струментов: стандартная панель
(команда Standard) и панель форма-
тирования (команда Formatting)
Formula Bar (Строка Нет Команда отображения строки
формул) формул
Status Bar (Строка Нет Команда отображения строки
состояния) состояния
Header and Footer Нет Эту команду выбирают для опреде-
(Колонтитулы) ления колонтитулов страниц (текста,
который будет отображаться в верх-
ней и нижней частях страницы при
выводе на печать)
Comments Нет Переключение между режимами
(Комментарии) отображения и сокрытия коммента-
риев в таблице. При переходе в ре-
жим отображения комментариев ав-
томатически отображается панель
инструментов Reviewing
(Рецензирование)
Custom Views (Виды) Нет Создание различных видов
рабочего листа

34 Часть I. Основы Excel


Окочание табл. 1.4
Команда или подменю Комбинация Кнопка Описание
клавиш панели
меню
Full Screen (Полный Нет Переход в режим полного экрана.
экран) В этом режиме большинство элемен-
тов графического интерфейса
не отображается, что увеличивает
размеры рабочей области
Zoom (Масштаб) Нет Команда выбора масштаба отображе-
ния рабочей области

Как и в предыдущем случае, не все кнопки команд по умолчанию отображаются


на панели инструментов. Например, кнопка перехода в режим полного экрана
(т.е. кнопка для команды Full Screen) при выведении ее на панель по умолчанию
отображается с текстовой меткой. Поэтому, чтобы ее пиктограмма имела такой вид,
как показано на рис. 1.18 в списке меню, необходимо изменить соответствующие на-
стройки. Об этом подробнее речь идет в разделе, посвященном настройке и созда-
нию кнопок, панелей инструментов и меню.

Меню Insert
Меню Insert (Вставка) предназначено в основном для вставки в рабочий документ
всевозможных объектов. Команды этого меню представлены на рис. 1.19. Эти же коман-
ды перечислены в таблице 1.5 с кратким описанием результата их выполнения.

9» 6* B«w Inset y=flnnat Jjxte Qata Xflnobw Ьф Д Type ai question^ for he!c

•• • • • •
Open a workbook
HHBi
Notes.xb
MyData.xls
Forms.x!s
Example, xls
Q£ Morewortoooks...
New

>m existing workbook


Diagram... loose workbook...
fibjert... From Scanner or Camera..
Hyperlink... СЫ+К ?A Templates...
esonmyWebates...

Puc. 1.19. Содержимое меню Insert

Глава 1. Знакомство с Excel 35


Таблица 1.5. Команды меню Insert

Команда или подменю Комбинация Кнопка Описание


клавиш панели
меню
Cells (Ячейки) Нет Вставка последовательности
ячеек
Rows (Строки) Нет Вставка последовательности
строк
Columns (Столбцы) Нет Вставка последовательности
столбцов
Worksheet (Рабочий лист) Нет Вставка рабочего листа
Chart (Диаграмма) Нет Вставка графика или диаграммы

Symbol (Символ) Нет Вставка символа


Page Break (Разрыв Нет Вставка директивы разрыва
страницы) страницы
Function (Функция) Нет Вставка функции
Name (Название) Нет Подменю вставки названия
Comment (Комментарий) Нет Вставка комментария
Picture (Рисунок) Нет Вставка рисунка. В этом подме-
ню можно выбрать тип рисунка
и его первоисточник
Diagram (Диаграмма) Нет Вставка структурной
диаграммы
Object (Объект) Нет Вставка объекта
Hyperlink (Гиперссылка) <Ctrl+K> Вставка гиперссылки

Команды этого меню, как уже отмечалось выше, имеют непосредственное отно-
шение к работе со всевозможными объектами в документах и достаточно часто
используются на практике.

Меню Format
В меню Format (Формат) можно найти полезные при форматировании элементов
рабочего документа команды (рис. 1.20). Информация о командах этого меню соб-
рана в табл. 1.6.
В этом меню совсем немного команд, однако они важны, поскольку с их помощью
задается формат таблицы. В первую очередь это относится к команде форматирова-
ния ячеек Cells (Ячейки).

36 Часть I. Основы Excel


Рис. 1.20. Команды меню Format

Таблица 1.6. Команды меню Format

Команда или подменю Комбинация Кнопка панели Описание


клавиш меню
Cells (Ячейки) <Ctrl+l> Команда форматирования
ячеек электронной
таблицы
Row (Строка) Нет Подменю выбора и настрой-
ки параметров строки
Column (Столбец) Нет Подменю выбора и настрой-
ки параметров столбца
Sheet (Лист) Нет Подменю выбора и настрой-
ки параметров листа
AutoFormat (Автоформат) Нет Команда автоматического
форматирования
Conditional Formatting Нет Применение условного
(Условное форматирования, опреде-
форматирование) ляемого пользователем
Style (Стиль) Нет Применение стиля к
диапазону ячеек

Глава 1. Знакомство с Excel 37


Меню Tools
Меню Tools (Сервис) содержит весьма полезные при настройке системы и после-
дующей работе с ней команды. Полный их список можно видеть на рис. 1.21.
В табл. 1.7 приведен краткий обзор команд меню Tools. .

!
SJ Be £* Bew .Insert Format j loob t'Qata grtow ЦеЬ _

D 'з? у й «а а а У : л :Ш 5ре"л9- Еггог<:Ьгс: а


Arial - 10 » ' U J\^. !9" ".
Г
'" Speech

Share Workbook... e №»» Workbook


-,i Track Changes Open a workbook
I Cofnosre and Mtras Notes.xls
MyData.xls
Protection Forms.xls
5 Or*ne CoHaboration Example. x!s
More workbook-
Goal Seek...
Scenarios...
|> Irace Precedents
Tools on the Wefe... Trace Cependents
•p Macro Trace Error
Add-lns...
1? AutoCorrect Options.., Evaluate Formula
Iff Customize... Show Hatch window
Options... Formula Auditing Bode СЫ+
SJVM4 Formula Auditing Toobai

Puc. 1.21. Содержимое меню Tools

Таблица 1.7. Команды меню Tools

Команда или подменю Комбинация Кнопка па- Описание


клавиш нели меню
Spelling (Орфография) <F7> Проверка орфографии
в документе
Error Checking (Проверка Нет Проверка рабочего листа на
ошибок) предмет наличия ошибок
Speech (Речь) Нет Подменю, содержащее коман-
ду отображения панели озву-
чивания текстов
Text To Speech (Текст в речь)
Share Workbook Нет Переход в режим коллектив-
(Совместное ного использования рабочего
использование) документа(книги) (

Track Changes Нет Выделение изменений, вноси-


(Отслеживание мых в книги коллективного
изменений) пользования
Compare and Merge Нет Сравнение и слияние копий
Workbook (Сравнить одного рабочего документа
и объединить) (коллективного пользования)

38 Часть I. Основы Excel


Окончание табл.1.7

Команда или подменю Комбинация Кнопка па- Описание


клавиш нели меню
Protection (Защита) Нет Подменю с командами, позво-
ляющими задавать режимы
защиты документа
Online Collaboration Нет Подменю для работы в режиме
(Работа в online) online
Goal Seek (Поиск Нет Очень полезная команда. С ее
решения) помощью можно автоматиче-
ски подбирать значение в
ячейке так, чтобы формула в
другой ячейке принимала нуж-
ное, заданное заранее значение
Scenarios (Сценарии) Нет Создание и сохранение сцена-
риев для выполнения условно-
го анализа
Formula Auditing Нет Подменю для работы с
(Отслеживание формул) формулами
Tools on the Web Нет Сведения о доступных элек-
(Средства в Web) тронных службах поддержки
приложения
Macro (Макрос) Нет Подменю для работы с
макросами
Add-Ins (Надстройки) Нет Определение загружаемых
при запуске приложения
дополнительных утилит
(надстроек)
AutoCorrect Options Нет Настройка параметров авто-
(Параметры автоматиче- матического исправления
ского корректирования) вводимого текста
Customize (Настройка) Нет Настройка панелей инстру-
ментов, команд панелей меню
и горячих клавиш
Options (Параметры) Нет Настройка основных парамет-
ров приложения

Некоторые из команд меню Tools можно назвать достаточно общими для прило-
жений из пакета Microsoft Office, поэтому здесь особых комментариев не требуется.
Те же команды, что часто используются в работе и специфичны именно для Excel, по
мере необходимости будут упоминаться и относительно их использования будут да-
ваться разъяснения. В частности, это относится к работе с макросами (глава 3), рав-
но как и к использованию формул в рабочих листах (главы 2 и 4).
Следует иметь в виду, что в случае подключения надстроек (а эти вопросы также
найдут отражение в книге) содержимое меню может меняться — там появляются но-
вые команды. Поэтому в зависимости от настроек системы пользователь, раскрыв
это меню (или какое-то другое), может увидеть список команд, несколько отличаю-
щийся от того, что описывается в книге.

Глава 1. Знакомство с Excel 39


Меню Data
Меню Data (Данные) содержит команды, весьма полезные при обработке и сор-
тировке данных. Вид раскрытого меню Data представлен на рис. 1.22, а описание его
команд и подменю можно найти в табл. 1.8.

ЕЗ Microsoft Excel - У ookl


fgj fie E* £ew insert Format loots j Qata jJSMow

D с* H eii »u S a:^ * %i ijti; sort...


: ; Е еГ
Anal - 10 . • В I U l *
r
""^^"""TBBI'.''.*. -"!:
Subtotals... fonVfaook

i Validation.., kbook
' labte... df
i.xls
Text to Columns... xls
Consolidate... e.xls
5roup and Outline

EivotTabteendPivotChartReport...
5 Import External Oata # Sroup...
* LSigroup...

New from НИ
Ц| (%'] G
ir—', JtLI Settings...
|M < T"M\Sheetl /ShMttiX Sheets / >

Ready,

Puc. 1.22. Команды меню Data

Таблица 1.8. Команды меню Data

Команда или подменю Комбинация Кнопка Описание


клавиш панели
меню
Sort (Сортировать) Нет Сортировка данных в алфавит-
ном порядке, по номерам или
датам
Filter (Фильтр) Нет Подменю содержит команды
настройки фильтров
Form (Форма) Нет Отображение форм данных
Subtotals (Подуровни) Нет Вычисление уровней и подуров-
ней маркированных списков
Validation Нет Определение допустимого типа
(Подтверждение) данных для ячейки или диапазона
Table (Таблица) Нет Создание таблицы данных
Text to Columns (Текст Нет Преобразование выделенного
в столбцы) текста в таблицу
Consolidate (Объединить) Нет Объединение данных нескольких
источников и отображение их в
одной таблице

40 Часть I. Основы Excel


Окончание табл. 1.8
Команда или подменю Комбинация Кнопка Описание
клавиш панели
меню
Group and Outline Нет Подменю содержит команды груп-
(Группировать и схемати- пировки данных и создания схем
зировать)
PivotTable and PivotChart Нет Запуск программы для создания
Report (Отчет PivotTable отчетов
и PivotChart)
Import External Data Нет Подменю импорта внешних
(Импорт внешних данных) данных
Refresh Data (Обновить Нет Команда обновления данных
данные) отчетов

Не все перечисленные выше команды будут доступны по умолчанию. Как уже


отмечалось, недоступные на данный момент команды выделены серым цветом. Кро-
ме того, пользователь может добавлять как в это меню, так и в прочие, команды по
своему усмотрению.

Меню Window
В меню Window (Окно) команд совсем немного (рис. 1.23) и предназначены они в
основном для управления окнами открытых на данный момент документов. Назна-
чение команд меню Window описано в табл. 1.9.

В Microsoft Excel - Bookl ВДыЕ


!gj 9» Е* Sew Insert Format lads Beta [ Bin*" |jjMP wiquKUwfoheip » . e X

: D В* В c$ SI & El v^ Л Чй I*. • <? -ewWindow 2i i: 1Й1 4} g


!
'f Arid • 10 , В Z H S » Arrange...

:
А В '[•- С ! D ! .. : Jnhde.. v Nw Workbook ч' X
Split
3 | Freeze Pane, Notes.xls
M/Data.xls
Forms.xls
1 2Book2 Example.xls
^ Йоге workbooks...
7 |v[ JBookl

D Blank Workbook
10 ,i N ew from existing workbook
н • > H\Sheetl/Sheet2 /Sheets/ HI i »|f~i— — .1-
Ready : ИМ

Puc. 125. Команды меню Window

Глава 1. Знакомство с Excel 41


Таблица 1.9. Команды меню Window

Команда или подменю Комбина- Кнопка Описание


имя клавиш панели меню
New Window (Новое окно) Нет С помощью этой команды от-
крывается новое рабочее окно
для данного документа. В ре-
зультате можно будет в разных
окнах просматривать один и тот
же документ
Arrange (Упорядочить) Нет Команда упорядочивания окон
рабочих документов на экране.
При ее выборе открывается диа-
логовое окно, позволяющее за-
дать режим отображения окон
Hide (Скрыть) Нет Команда позволяет скрыть
рабочее окно, при этом доку-
мент остается открытым
Unhide (Отобразить) Нет Отображение скрытых окон
Split (Разделить) Нет Команда разбивки окна на
области. Если окно разбито
на области, вместо данной
команды отображается команда
Remove Split (Снять разделе-
ние), позволяющая отменить
разбивку
Freeze Panes Нет Команда фиксации областей
(Зафиксировать области) разбивки окна
Список открытых файлов Нет Список открытых документов.
Щелчок на одном из них при-
ведет к тому, что соответст-
вующее окно будет выведено
на передний план

Следующее меню хоть и является последним, но этого никак нельзя сказать о


степени его важности.

Меню Help
Команды меню Help (Справка) можно видеть на рис. 1.24. Они также перечисле-
ны в табл. 1.10, где дано их краткое описание.

42 Часть I. Основы Excel


! E ИюгомП Excel - Bookl
'урез G! I''1'.'.:-.:-'-, Г,. Нр |рЩ
Microsoft Excel Help Fl
Show the Office Assistant
What's Ihis? 5hift-H=l
Office on the Web ..
Activate Product.. .
Lotus 1-2-3 Help...
Detect and Repair,..
About'

M\ShM*l Г5ИеЛ2 /ЭвйЗ / |<

Puc. 1.24. Команды меню Help

Таблица 1.10. Команды меню Help

Команда или подменю Комбинация Кнопка па- Описание


клавиш нели меню

Microsoft Excel Help (Справка <F1> Доступ к справочной


Microsoft Excel) системе Excel
Show the Office Assistant Нет Команда отображения или
(Показать Помощника) сокрытия Помощника
What's This (Что это) <Shift+Fl> Команда получения бы-
строй справки по элемен-
там графического интер-
фейса
Office on the Web (Office в Web) Нет Выход на официальную
Web-страницу компании
Microsoft Office
Activate Product Нет Активизация продукта
(Активизировать продукт)
Lotus 1-2-3 Help (Справка Нет Справка для пользовате-
Lotus 1-2-3) лей Lotus
Detect and Repair (Найти и Нет Поиск и устранение
устранить) неполадок в приложении
About Microsoft Excel Нет Данные о регистрацион-
(О Microsoft Excel) ном номере, версии про-
граммы и другая анало-
гичная информация

Краткий обзор панели меню на этом заканчивается. Более подробно о командах па-
нели меню можно будет узнать по ходу изложения материала, в тех разделах, где опи-
сываются методы работы с соответствующими объектами. Кроме того, полезную ин-
формацию можно найти в разделе о настройке панели меню и панелей инструментов.

Глава 1. Знакомство с Excel 43


Панели инструментов
В Excel панелей инструментов достаточно много (даже если не считать тех, кото-
рые пользователь может создавать самостоятельно). Однако, как отмечалось ранее,
по умолчанию отображаются только две панели: стандартная панель инструментов и
панель форматирования. Сюда же можно отнести, по большому счету, и область за-
дач, которая (хотя панелью инструментов не является) во-первых, тоже отображает-
ся по умолчанию, а, во-вторых, команда ее отображения находится там же, где и ко-
манды отображения панелей инструментов (View=>Task Pane или View^Toolbars^
Task Pane).
Замечание. Перефразируя известную пословицу, ситуацию можно прокоммен-
тировать так: судя по тому, в какой компании данный элемент оказался, можно
сделать вывод о том, что это за элемент.

Стандартная панель инструментов


В табл. 1.11 представлены кнопки стандартной панели инструментов (Standard)
вместе с кратким их описанием.

I Внимание! Еще раз хочется напомнить, что это кнопки, размещенные на стан-
дартной панели инструментов по умолчанию.

Таблица 1.11. Кнопки стандартной панели инструментов

Кнопка или поле Описание


грг] Создание нового документа

Открытие документа
Ш
Сохранение документа
Ш
Отправка содержимого рабочего листа в качестве электронного
сообщения
Поиск документов согласно заданного критерия

Вывод документа на печать

Предварительный просмотр документа перед выводом на печать

Проверка орфографии
Ш
Удаление выделенного фрагмента, диапазона или содержимого ячей-
ки в буфер обмена

44 Часть I. Основы Excel


Окончание табл. 1.11

Кнопка или поле Описание


Копирование выделенного фрагмента, диапазона или содержимого
ячейки в буфер обмена
Вставка содержимого буфера обмена в место размещения курсора

Копирование формата объекта и применение его к другим объектам,


которые определяются щелчком мыши
Отмена последнего действия

Повторение отмененного действия

Вставка гиперссылки или редактирование уже существующей.


Для этого ее предварительно следует выделить
Выполнение автоматического суммирования. По умолчанию ищется
сумма значений в ячейках выделенного диапазона. Раскрывающееся
меню справа от кнопки позволяет заменить функцию суммирования
на другую (например, вычисление среднего значения)
Сортировка данных списков в алфавитном порядке, по возрастанию
численных значений или по дате (начиная с самой ранней)
Сортировка данных списков в обратном алфавитном порядке, по
убыванию даты или численного значения
Запуск утилиты для создания новой диаграммы или редактирования
уже существующей
Отображение или сокрытие панели инструментов для рисования
Drawing (Рисование)
Выбор масштаба отображения рабочего листа

Вызов справки Microsoft Excel

Замечание. Если панели инструментов в рабочем окне расположены в одну


строчку, не все кнопки будут отображены. В этом случае для доступа к прочим
кнопкам следует щелкнуть на изображении со стрелкой в правой части панели.
Разместить панели одна под другой, кроме непосредственного перетаскивания,
можно, выбрав команду Show Buttons on Two Rows (Показывать кнопки в два
ряда), которая отображается при щелчке мышью на все том же изображении со
стрелкой.

Глава 1. Знакомство с Excel 45


Панель инструментов Formatting
В табл. 1.12 представлены кнопки панели инструментов Formatting (Форматирование).

Таблица 1.12. Кнопки панели инструментов Formatting

Кнопка или поле Описание


Выбор типа шрифта

Выбор размера символов шрифта

Выделение полужирным стилем

Выделение курсивом

Выделение подчеркиванием

Выравнивание по левому краю

Выравнивание по центру

Выравнивание по правому краю

Слияние ячеек. Выделенные ячейки объединяются, а значение


выравнивается по центру. Значение определяется самой верх-
ней левой ячейкой с данными, а ссылка на ячейку — верхней
левой ячейкой диапазона объединения
Применение денежного формата

Применение формата процентов к выделенным ячейкам

Применение стиля, при котором в качестве разделителя в


числах используется запятая (имеется в виду выделение тысяч,
миллионов и т.п.)
Увеличение количества отображаемых цифр в десятичной
части числа
Уменьшение количества отображаемых цифр в десятичной
части числа
Уменьшение отступа при отображении данных в ячейке при-
мерно на один текстовый символ
Увеличение отступа при отображении данных в ячейке при-
мерно на один текстовый символ
Добавление и удаление рамок

Определение цвета заливки

Определение цвета при форматировании текста

Как уже отмечалось, некоторое отношение к панелям инструментов имеет


область задач.

46 Часть I. Основы Excel


Область задач
Назначение области задач во многом состоит в том, чтобы заменить стандартные
диалоговые окна, которые широко используются в приложениях Microsoft Office и
не всегда оптимально реализуют возможности системы.
Область задач новой рабочей книги представлена на рис. 1.25. Там можно видеть
несколько разделов, первый из которых Open a workbook (Открыть рабочую книгу).

Puc. 1.25. Область задач новой рабочей книги


Book.xls
MyData.xls
tny.xls
Bookl.xls
г More workbooks...

D Blank Workbook
New From exiting workbook
;§5 Choose workbook.,.

Щ General Templates...
'3ju Templates on my Web Sites...
& ] Templates on Microsoft.com

£jj Add Web Folder...


G>l Microsoft Excel Help
iyj Show at startup

Под названием раздела перечислены те файлы, которые открывались последни-


ми. Чтобы такой файл открыть снова, достаточно щелкнуть на нем мышкой. Сразу
после списка файлов находится команда More workbooks (Больше рабочих книг).
Если выбрать эту команду, появится диалоговое окно открытия файла.
Для создания нового пустого документа используют команду Blank Workbook
(Пустая рабочая книга) из раздела New (Новый). Кроме того, в Excel новые докумен-
ты можно создавать на основе уже существующих рабочих книг или шаблонов. (О том,
как это делается, будет рассказано далее.) А вот полезными при этом могут быть
команды Choose workbook (Выбрать рабочую книгу) из раздела New from
existing workbook (Создание нового документа на основе рабочей книги) и три коман-
ды из раздела New from template (Создание нового документа на основе шаблона):
General Templates (Общие шаблоны), Templates on my Web Sites (Шаблоны на пер-
сональной Web-странице), Templates on Microsoft.com (Шаблоны на странице
Microsoft.com) — для создания нового рабочего документа на основе предопределенно-
го шаблона (команды позволяют искать такой шаблон в нужном месте).
Новая Web-папка добавляется с помощью команды Add Web Folder (Добавить
Web-папку), справка вызывается командой Microsoft Excel Help (Справка Microsoft
Excel), а наличие флажка опции Show at startup (Показывать при запуске) гаранти-
рует отображение области задач при запуске приложения.

Глава 1. Знакомство с Excel 47


Область задач новой книги New Workbook (Новая рабочая книга) — далеко не
единственная из доступных в Excel. Для просмотра всех областей задач следует
щелкнуть на кнопке со стрелкой, как это показано на рис. 1.26.
В области задач можно отображать содержимое буфера обмена Microsoft Office.
Для этого достаточно в раскрывшемся меню выбрать команду Clipboard (Буфер об-
мена). В результате будет открыта область, аналогичная той, что показана на
рис. 1.27. В данном случае в буфер обмена предварительно было скопировано пять
элементов: формула с ссылкой на ячейку А5 (=А5), сумма двух чисел (формула
=1 +3), число (4), текстовое значение (name) и еще одно число (1).
В общей сложности буфер обмена может содержать до 24 элементов, для вставки
любого из которых в нужное место таблицы достаточно щелкнуть на этом элементе
мышкой, предварительно выделив ячейку для копирования.

Рис. 1.26. Выбор 4ew Workbook 'чг х <i *• S of 24-Clpbojrd •*- X Puc. 1.27. Область
области задач Open Л New Workbook
i !w,toA» i/.'Clear AH задач. Просмотр
OpbcMfd к . Click an item to paste: буфера обмена
Search SPl-AS Microsoft Office
,fc Insert dip Art
G$l lore workbooks...
New © -1+3
D £ lank Work-book.
Newfr om existing workbook
Шс hoose workbook. . .
Newfr om template
ir< eneral Templates...

m emplates опту Web Sites...

fjl emplates on Microsoft.com

Й Add Web Folder...


CJ MCrosofc Excel Help
E Show at startup

I Options -1

Замечание. О методах работы с буфером обмена, равно как о копировании, уда-


лении и вставке данных, на конкретных примерах рассказывается во второй час-
ти книги.

Кроме того, с помощью области задач можно выполнять поиск данных, для чего
выбирается команда Search (Поиск). В результате в области задач выводится окно,
изображенное на рис. 1.28.
Для выполнения непосредственно поиска следует указать в соответствующем
поле искомый текст и задать прочие параметры.
Выбором команды Insert Clip Art (Вставка объекта ClipArt) можно перейти к об-
ласти задач, посредством которой выполняется поиск и вставка объектов типа
Clip Art. Соответствующая область задач представлена на рис. 1.29.

48 Часть I. Основы Excel


Рис. 1.28. Область ф " - Insert Op Art •»• x Рис. 1.29. Область
задач. Поиск данных Search For задач. Вставка
Search text:
объекта Clip Art
: :- : j
[search | i :
Search Tips.,.
Other Search Options
WwSearch<jpUonc_
Search in:

i Selected locations
j All collections
Results should be:
-
Results should be:
5dectedffletvpes_ I All media file types [Vj

Fast searching is not instated


Instal...

Sec also Seeabo


%| Advanced Search ОШ Clip Organizer. ..
$& Find in this document... ^ Clips Online

(?) Tips for Finding Clips

Область задач, как уже отмечалось, является новшеством в Microsoft Office XP и


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

Методы работы с документами


Работа с документами Excel (по сравнению с другими популярными приложе-
ниями из пакета Microsoft Office) в части ввода и редактирования данных имеет свои
особенности. Этот раздел посвящен описанию базовых моментов, которые нужно
иметь в виду при работе с Excel.

Ввод данных
Область рабочего листа, как отмечалось, состоит из ячеек, в которые непосредст-
венно и вводятся данные. Прежде чем ввести данные в ячейку, ее следует выделить,
или сделать активной. Для этого достаточно щелкнуть на ячейке левой кнопкой
мыши. Активная ячейка выделяется толстой рамкой. На рис. 1.30 активной является
ячейка А2.

А2

Рис. 1.30. Активная ячейка

Глава 1. Знакомство с Excel 49


При этом можно видеть, что курсор мыши в области рабочего листа отображается
в виде полого креста.
Замечание. На рис. 1.30 над рабочей областью видна часть строки формул. Слева от
нее, в специальном поле, указано название активной ячейки. Строка формул в правой
части в данном случае пуста. Вообще же там отображается содержимое ячейки.
После того как ячейка выделена, в нее можно вводить данные. Ввод осуществля-
ется с помощью клавиатуры. При этом вводимые'данные отображаются не только
непосредственно в ячейке, но и в строке формул. Данные можно вводить и в строке
формул, в этом случае вводимые данные автоматически отображаются в ячейке.
После того как данные введены, следует нажать клавишу <Enter>.
Внимание! Данные, вводимые в строку формул, не всегда совпадают с теми, что
отображаются в ячейке. Это имеет место, например, при работе с формулами.
В строку формул вводится формула, а в ячейке впоследствии будет отображено
значение, вычисленное согласно этой формуле. Подробнее о формулах рассказы-
вается в следующей главе.
Кроме того, редактирование и ввод данных непосредственно в ячейке возможны
только при установленной опции Edit directly in cell (Редактировать прямо в ячейке),
размещенной на вкладке Edit (Правка) диалогового окна Options, которое открывает-
ся при выполнении команды Tools^Options. Окно представлено на рис. 1.31.

. Color | International I Save Error CnecMng Security


'Calcufatan' 'СЦК_3| Transport ! ctw
Settings
17 Extend fst formats and formulas
& Alow eel ! J-ag and drop P Enable automatic percent entry
:
17 (Цеп before ovetwlmo. eels 17 Show Past* Options buttons
P №ve selection after Enter P Stew Insert OpMonsbuttom
• 0»ection: [pawn

Elaces: p"

; P Cut, copy, and sort objects with ce8s


17 A* to update automatic fc*s
,/P Provide feedback with Animation
.'7 Enable AutoCornplete for eel values

Puc. 1.31. Вкладка Edit диалогового окна Options

Совет. Следует иметь в виду, что привычные для большинства текстовых редак-
торов методы работы с клавиатурой в случае использования Excel имеют некото-
рые особенности. Так, если нажать на клавишу <Enter>, по умолчанию выполня-
ется переход к ячейке, расположенной под активной ячейкой. Если нажать ком-
бинацию клавиш <Shift+Enter>, можно перейти к ячейке, расположенной над
активной на текущий момент ячейкой. Такие действия можно переопределить.
Для этого достаточно выбрать команду Tools^Options, после чего откроется од-
ноименное диалоговое окно Options, в котором следует выбрать вкладку Edit
(Правка) (см. рис. 1.31). Внизу под командой Move selection after Enter (Перейти

50 Часть I. Основы Excel


после нажатия Enter), напротив поля Direction (Направление) можно видеть рас-
крывающийся список. В этом списке четыре элемента: Down (Вниз), Right
(Вправо), Up (Вверх), Left (Влево). Выбрав нужный элемент, задают направление
перехода между ячейками, который будет совершаться при нажатии клавиши
<Enter>. Переход в обратном направлении осуществляется при нажатии комби-
нации клавиш <Shift+Enter>. Для перехода вправо на одну ячейку можно вос-
пользоваться клавишей <ТаЬ>. Переход влево осуществляется нажатием комби-
нации клавиш <Shift+Tab>. Кроме того, от одной ячейки к другой можно перей-
ти с помощью клавиш со стрелками.
Если данные вводятся непосредственно в ячейку, можно либо сразу вводить сим-
волы с клавиатуры, либо дважды щелкнуть мышью на ячейке. После этого в ячейке
замигает курсор. Как уже отмечалось, при наборе все, что вводится в ячейку, будет
автоматически отображаться в строке формул. На рис. 1.32 в активную ячейку вве-
дено число 3. При этом видно, что в строке формул отображается уже три кнопки,
а не одна, как раньше. Назначение этих кнопок описывается в табл. 1,13.

Рис. 1.32. В активную ячейку введено число

Таблица 1.13. Кнопки строки формул

Кнопка Название Описание


Кнопка отмены Cancel Нажатие на этой кнопке эквивалентно нажа-
(Отменить) тию клавиши <Esc>. В результате происходит
отмена изменений, внесенных на данный мо-
мент в активную ячейку
Кнопка подтверждения Эквивалент нажатия клавиши <Enter>, только
Enter (Ввод) в этом случае не осуществляется переход к сле-
дующей ячейке. В результате подтверждаются
внесенные в активную ячейку изменения
Кнопка вставки функции Нажатие на этой кнопке приводит к появлению
Insert Function (Вставка диалогового окна Insert Function (Вставка
функции) функции), в котором можно из списка встроен-
ных функций выбрать нужную

Методы работы с данными, особенно в части их ввода и редактирования, сущест-


венно зависят от того, к какому типу вводимые данные относятся.

Типы данных
Все данные, вводимые в ячейки таблицы, условно можно разделить на констан-
ты и формулы. Константы, в свою очередь, подразделяются на численные, текстовые
и такие, что задают даты. Все, что содержит только числа или специальные символы
(+, —, Е, е, $, %, I, а также скобки, точки и запятые), интерпретируется как число.
Прочие данные интерпретируются как текст.

Глава 1. Знакомство с Excel 51


Замечание. Ввод формул начинается со знака равенства (=). Это важно, посколь-
ку в противном случае формула будет интерпретироваться как текст. Методы ра-
боты с формулами излагаются в следующей главе. Что касается данных типа да-
та, то упоминаться они будут вскользь, так что заинтересованный читатель мо-
жет заняться этим вопросом самостоятельно. Надо думать, что принципиальных
трудностей это не вызовет.

При вводе численных значений в ячейки следует иметь в виду некоторые особен-
ности обработки и интерпретации специальных символов. А именно:
1. Отрицательные значения вводятся со знаком минус (-). При вводе положи-
тельных значений знак плюс (+) можно не указывать. Если все же знак плюс
указан, он приложением Excel в ячейке не отображается.
2. Если число заключить в скобки, оно будет интерпретироваться как отрица-
тельное. Например, запись (25) означает то же, что и —25.
3. Символы Е и е могут использоваться для указания степени экспонирования.
Значение, указанное после этого символа, определяет степень числа 10.
Другими словами, запись 2ЕЗ, например, означает 2000 (то есть 2 умноженное
на 10 в степени 3).
4. При вводе чисел можно использовать точки и запятые. Правила использова-
ния этих разделителей определяются настройками системы. По умолчанию
дробная десятичная часть числа'от целой отделяется точкой. Запятая исполь-
зуется для выделения тысяч (такая странная нотация популярна на Западе).
При этом в строке формул запятая не отображается. Причем что касается за-
пятых, то это игра с огнем. Стоит ошибиться в количестве цифр, отделенных
запятой, и число как число интерпретироваться уже не будет.
5. Косая черта (/) может использоваться для записи дробей. Однако в некоторых
случаях в связи с этим могут возникнуть недоразумения. Дело в том, что такие
записи Excel автоматически пытается преобразовать в дату, а способы преоб-
разования существенно зависят от настроек системы. Например, если ввести в
ячейку значение 1/4, результатом может быть дата 7 апреля (1-Арг). На всякий
случай, чтобы избежать нежелательного преобразования формата данных, це-
лесообразно перед дробью через пробел указывать ноль, например: 0 1/4.
Последнее выражение будет воспринято Excel как одна четвертая.
6. В Excel используются специальные форматы для процентов (знак процента %
после числа) и валюты (для разных валют — разные символы). Соответст-
вующие данные воспринимаются как численные, т.е. их можно складывать,
отнимать, умножать и делить.

Работа с текстовыми величинами особых комментариев не требует. Однако часто


случается так, что длина вводимой в ячейку текстовой строки превышает ширину
ячейки. В этом случае возможны два варианта: если соседняя, размещенная справа,
ячейка пуста, то она будет перекрыта текстом, содержащимся в левой от нее ячейке.
Если же соседняя ячейка занята, то в левой ячейке текст будет отображен не полно-
стью. Однако в обоих случаях содержимым ячейки является полная текстовая строка.

52 Часть I. Основы Excel


Внимание! Существует принципиальная разница между отображаемым в ячейке
значением и непосредственно значением. Последнее можно видеть в строке фор-
мул, в то время как отображаемое значение — это то значение, которое можно ви-
деть в ячейке. Очень часто оба значения совпадают, но не всегда. Например, при
использовании формул базовым значением является формула, в то время как
отображается в ячейке значение, вычисленное согласно этой формуле. Но даже
если речь не идет о формулах, значения в ячейке и строке формул могут отли-
чаться. Отображаемое значение зависит от настроек системы и форматирования
ячейки, в то время как базовое — нет.

Совет. Для того чтобы текст в ячейке не перекрывал соседнюю, можно изменить
ширину ячейки, содержащей текст, так, чтобы текст помещался полностью. Для
этого достаточно навести курсор мыши на границу столбца в полосе названий
столбцов и перетащить эту границу на нужное расстояние. Другой способ — дваж-
ды щелкнуть на границе. В результате граница переместится на расстояние, доста-
точное для отображения текста. Если в столбце несколько ячеек содержат длинные
текстовые строки, то ширина столбца (после двойного щелчка на границе) будет
установлена такой, чтобы текст полностью отображался во всех ячейках столбца.

При вводе длинных текстовых выражений иногда целесообразно разбивать их на


строки. Проблема состоит в том, что добиться этого нажатием клавиши <Enter> не
удастся. В этом случае следует выделить ячейку, содержащую длинную строку, и за-
тем выбрать команду Format^Cells (Формат<=>Ячейки) и в открывшемся диалого-
вом окне Format Cells (Формат ячеек) на вкладке Alignment (Выравнивание) поста-
вить флажок опции Wrap text (Переносить по словам).

Заполнение диапазона ячеек


Иногда возникает необходимость заполнить значениями диапазон ячеек. Разуме-
ется, можно данные заносить в ячейки и обычными методами. Однако если рабочий
лист достаточно большой, бывает удобно предварительно выделить диапазон, в
ячейки которого вводятся данные. Перемещаться по ячейкам диапазона можно с по-
мощью клавиатуры. Назначение клавиш при этом таково.
1. Переход на одну ячейку вниз — клавиша <Enter>.
2. Переход на одну ячейку вверх — комбинация клавиш <Shift+Enter>.
3. Переход на одну ячейку вправо — клавиша <ТаЬ>.
4. Переход на одну клавишу влево — комбинация клавиш <Shift+Tab>.
Как несложно заметить, комбинации клавиш определяют то же направление пе-
рехода по диапазону ячеек, как и в случае целого рабочего листа. Однако при работе
с диапазоном есть свои особенности/Так, если активной является правая (левая)
крайняя ячейка диапазона, то после нажатия клавиши <ТаЬ> (комбинации клавиш
<Shift+Tab>) активной станет первая (последняя) ячейка следующей (предыдущей)
строки. Это же относится и к переходам вверх (вниз) по диапазону ячеек. В частно-
сти, если активна нижняя (верхняя) ячейка диапазона, то после нажатия клавиши
<Enter> (комбинации клавиш <Shift+Enter>) активной станет верхняя (нижняя)
ячейка следующего (предыдущего) столбца.

Глава 1. Знакомство с Excel 53


Замечание. Не стоит паниковать, если активной является ячейка в правом ниж-
нем или левом верхнем углу диапазона. При попытке выйти за пределы диапазо-
на активной станет ячейка в его противоположном углу.

Внимание! Если нужно ввести одинаковые значения во все ячейки диапазона,


достаточно ввести значение в одну из ячеек и вместо того, чтобы нажимать кла-
вишу <Enter>, нажать комбинацию клавиш <Ctrl+Enter>.

Указатели курсора мыши


Несмотря на достаточно широкие возможности по использованию клавиатуры,
предоставляемые пользователю в процессе работы с документами Excel, без мыши
обойтись крайне проблематично. При выполнении различных операций над объек-
тами и элементами рабочего листа курсор мыши может принимать различный вид.
Получить представление о том, как именно может выглядеть курсор и "что все это
значит", поможет табл. 1.14.

Таблица 1.14. Форма курсора мыши

Вид курсора Комментарии


ф Этот вид курсор имеет в активной рабочей области листа. Если такой
курсор навести на ячейку и нажать на левой клавише мыши, ячейка
станет активной
Если навести курсор на правый нижний угол активной ячейки (там
можно видеть утолщение — маркер заполнения), курсор будет отобра-
жен в виде тонкого креста. Удерживая левую клавишу мыши, можно
копировать содержимое активной ячейки в соседние
•i. Подобный вид курсор имеет в том случае, если он наведен на границу
активной ячейки. В этом случае, нажав левую клавишу мыши, можно
переместить содержимое ячейки в другую ячейку
^ При выделении столбца курсор имеет вид вертикальной стрелки.
Для выделения столбца достаточно навести курсор на полосу с назва-
нием этого столбца
^ Если навести курсор мыши на полосу с номерами строк рабочей кни-
ги, курсор станет отображаться в виде горизонтальной стрелки.
Щелчок левой клавишей мыши позволяет выделить соответствую-
щую строку
Такой вид курсор имеет в том случае, если в ячейку или строку фор-
мул вводятся данные, а курсор находится непосредственно над ячей-
кой или другим полем, куда можно вводить данные с клавиатуры
Курсор имеет подобный вид в основном при выборе элементов графи-
ческого интерфейса пользователя: кнопок, меню, элементов управле-
ния и т.п.
ф Вид курсора при изменении ширины ячеек. Нужно навести курсор на
границу раздела столбцов в полосе названия столбцов

54 Часть I. Основы Excel


Окончание табл. 1.14

Вид курсора Комментарии


» Вид курсора при изменении высоты ячеек. Нужно навести курсор на
границу раздела строк в полосе нумерации строк

ф Изменение положения разделителей областей в рабочем документе


по горизонтали

ф Изменение положения разделителей областей в рабочем документе


по вертикали

Q Такой вид курсор может иметь при перемещении объектов в рабочем


листе или, например, при перемещении рабочих листов

Изменение размеров окна по вертикали

Изменение размеров рабочего окна по горизонтали

^ Перемещение объекта. Как правило, для этого на объект (например,


область задач — там, где нет команд и гиперссылок) следует навести
курсор мыши и нажать левую ее клавишу. Удерживая клавишу нажа-
той, объект можно перемещать
(и Если курсор имеет такой вид, значит он наведен на гиперссылку и
по ней можно выполнить переход

Замечание. Из данных таблицы видно, что курсор во многом напоминает собаку,


которая все понимает, но только сказать ничего не может. Поэтому следует
больше внимания уделять языку жестов.

Выше была упомянута возможность перемещать содержимое ячеек и копировать


их содержимое с помощью мыши. Однако следует иметь в виду, что возможность эта
предоставляется не всегда, как и не всегда в углу ячейки отображается маркер запол-
нения. Для этого должен быть активизирован соответствующий режим (команда
Tools^Options^EditoAllow cell drag and drop — Разрешить перемещение ячеек). Если
режим отключен, то не прибегая к командам меню и панелям инструментов не удастся
ни перемещать, ни копировать содержимое ячеек описанным выше способом.

Форматирование данных
Очень часто приходится не просто обрабатывать информацию, но и представлять
результат такой обработки, равно как и сами исходные данные, в наглядном виде.
На этот случай в Excel предусмотрен целый ряд средств, позволяющих приводить
как отдельные фрагменты рабочих листов, так и целые рабочие книги к нужному
формату, или, иначе, форматировать данные. Ниже рассматриваются основные мо-
менты, характеризующие особенности этого процесса в приложении Excel.

Глава 1. Знакомство с Excel 55


Форматирование данных в ячейке
Прежде чем форматировать данные в ячейке, эту ячейку следует сделать активной.
После этого можно либо воспользоваться командой Format^Cells (Формат^Ячейки),
либо нажать комбинацию клавиш <Ctrl+l>. В результате открывается диалоговое ок-
но Format Cells (Формат ячеек), которое показано на рис. 1.33.

Patterns Protection
Category:

Nurrbei
Currency
Accounting General format cefls have no
Date specific number format.
Time
Percentage
Fraction
Scentific
Text
Special
Custom

Puc. 1.33. Диалоговое окно Format Cells


открыто на вкладке Number

В данном случае диалоговое окно открыто на вкладке Number (Число), а в саму


ячейку предварительно было введено число 12. Это число можно видеть в поле
Sample (Образец).
Замечание. Как несложно догадаться, в этом поле (имеется в виду Sample)
отображается содержимое форматируемой ячейки. Причем оно там не просто отоб-
ражается, а отображается в таком виде, который данные в ячейке будут иметь
после применения формата, выбранного в расположенном слева списке Category
(Числовые форматы).

В списке Category (Числовые форматы) представлены основные типы форматов,


которые могут быть применены к ячейке. По умолчанию используется формат
General (Общий). В этом формате все, что вводится в ячейку, отображается практи-
чески в неизменном виде. В первую очередь это относится к большим числам. Если
такое число не помещается (по ширине) в ячейку, оно отображается округленным
или в виде числа в научной нотации. Кроме того, в формате General (Общий) не
отображается незначащий десятичный ноль, в то время как нулевая целая часть чис-
ла отображается всегда.
Замечание. Большие числа округляются при отображении в ячейке. В вычисле-
ниях же используется число, что вводилось в ячейку. Другими словами, даже
если оно отображено в ячейке в округленном виде, в строке формул будет именно
то число, которое ввел пользователь.

56 Часть I. Основы Excel


Следующим после General (Общий) указан формат Number (Числовой).
Если щелкнуть на соответствующем элементе списка, диалоговое окно Format Cells
примет вид, представленный на рис. 1.34.
Можно видеть, что в этом случае в поле Sample число отображено с нулевой де-
сятичной частью и двумя цифрами после десятичной точки. Этот факт отражен в
поле Decimal places (Число десятичных знаков), в котором задается число отобра-
жаемых десятичных знаков (в данном случае 2).
Если поставить флажок опции Use 1000 Separator (,) (Разделитель групп разря-
дов), то при отображении больших чисел тысячи будут выделяться запятой.

Внимание! Выше в качестве разделителя, используемого для выделения тысяч,


указана запятая, но можно использовать и иной символ (в частности, достаточно
популярен пробел). Соответствующая настройка выполняется с помощью команды
Tools^Options, после чего нужно выбрать вкладку International (Международные).
В результате появится окно, изображенное на рис. 1.35. Там в области
Number handling (Обработка чисел) есть два поля: Decimal separator (Десятичный
разделитель) и Thousands separator (Разделитель для тысяч). В первом задается
символ для отделения десятичной части числа от целой (по умолчанию это точка),
во втором — символ для выделения тысяч (по умолчанию это запятая). Поля дос-
тупны только в том случае, если неактивна (т.е. отсутствует флажок) опция
Use system separators (Использовать системные разделители).
Необходимо также принять во внимание, что описываемые здесь и далее форматы в
некоторой степени зависят от региональных настроек операционной системы в це-
лом. В качестве примера можно привести используемый по умолчанию символ для
валюты. Это же относится и к форматам отображения отрицательных чисел.

Гум 1000 Separator (,)


Negative numbers;

Number fe used for general display of numbers. Currency and Accounting


; offer specialized formatting for monetary value.

Puc. 1.34. Вид диалогового окна Format Cells


при выборе формата Number

Глава 1. Знакомство с Excel 57


В списке Negative numbers (Отрицательные числа) задается способ отображения
отрицательных чисел. Там четыре элемента. В частности, отрицательное число мо-
жет отображаться со знаком "минус" (по умолчанию), выделяться красным цветом,
отображаться заключенным в скобки (без знака "минус") и отображаться в скобках с
выделением красным цветом.
Два следующих формата Currency (Денежный) и Accounting (Финансовый)
(рис. 1.36 и 1.37 соответственно) подразумевают выбор символа валюты и являются,
фактически, форматами для ведения бухгалтерской документации.

view СаЫввоп | UK'']*: Chart


•Color Internationa

Number handhg —

gedmal separator!]!
f~ t£a* system separators

PrMhg
; p ASow M/tetter paper rejsfcdng

RigN ' He)


Defautctrection; С £jght-to>teft Cursor Rwwjment: f* lop>cal
<? tefMo-rtght <"здяи<
. Г Wea current sheet rioJlMjHeft Г" ^iov# control characters

Puc. 1.35. Диалоговое окно Options открыто на вкладке


International

Accounting
Date
Time
Percentage
Wegetive numbers:
Fraction
Scientific
Text
Special
ustom

formats are used for general monetary values. Use Accounting


afcgn dectnai points in a column.

Puc. 1.36. Выбор денежного формата

58 Часть I. Основы Excel


Замечание. В Excel есть специальная надстройка Euro Currency Tools (Европейские
валюты), позволяющая производить преобразование европейских валют в евро и на-
оборот. Чтобы установить надстройку, следует выбрать команду Tools^Add-lns, и в
открывшемся одноименном окне поставить флажок у соответствующего названия,
после чего щелкнуть на кнопке ОК.
Введенное в ячейку число можно преобразовать в дату. В этом случае выбирают
элемент Date (Дата) из списка Category (Числовые форматы). Результат проиллю-
стрирован на рис. 1.38. В частности, в списке Туре (Тип) можно выбрать формат
отображения даты (при этом дата, к которой преобразуются данные, отображена в
поле Sample). В зависимости от региональных настроек (список Locale (location))
в списке Туре (Тип) представлены разные элементы. Разумно выбирать эти на-
стройки такими, чтобы они совпадали с соответствующими настройками операци-
онной системы.

Nunfcw I Alignment ] Font j Border | Patterns j Protection |


; Samite-''-

Decimal places;

jj
Sne Mp the currency symbols and decimal panes n a

Puc. 1.37. Выбор финансового формата

•Wednesday, March 14, 2001


3/H
3/14/01
03/14/01
14-Mar
14-Mar-Ol .ZJ
Locate (location);
i ' ' -i
'{English (United States)

! formats display date and time serial numbers as date values. Except for
items that have »n asterisk O, appted formats do not switch date orders
wth the operating system.

Puc. 1.38. Формат преобразования к данным


типа дата

Глава 1. Знакомство с Excel 59


Аналогичным образом данные в ячейке преобразуются к формату Time (Время).
Вид диалогового окна Format Cells (Формат ячеек) для этого случая показан на рис. 1.39.
Если данные в таблице нужно преобразовать к процентному формату (т.е. выра-
зить в процентах), выбирают элемент Percentage (Процентный) из списка Category
(Числовые форматы). При этом единица (т.е. 1) приравнивается к 100 процентам
(т.е. 100%). Поэтому, например, 12 будет интерпретироваться как 1200%. Этот факт
находит свое отражение на рис. 1.40, где представлен вид диалогового окна
Format Cells (Формат ячеек) в случае выбора процентного формата.

13:30
1:30 РМ
13:30:55
1:30:55 РМ
30:55.2
37:30:55
locate (location):

/ date and ttrae serial numbers as »йе values, Except for


> en asterisk (*)/ af^fed formats do not switch date of time
orders with the operating system.

Puc. 1.39. Преобразование данных к формату


времени

Number j AUgment j Font | Border


j Samite -•
TJ | 1200.00%
, gedmal places:

Percentage formats rnufeply the cd value by 100 and (Jsplays the result wtth
e percent symbd.

Pwc. 14(7. Преобразование данных к процент-


ному формату

60 Часть I. Основы Excel


Выбор при этом, как можно видеть, небольшой. Пользователю предоставляется
возможность определить количество знаков в десятичной части числа. По умолча-
нию отображается две цифры. Способ отображения дробей определяется выбором
соответствующего элемента из списка Туре (Тип), который будет доступен, если
установлен формат Fraction (Дробный). Результат представлен на рис. 1.41.
Дело в том, что дроби, вводимые в ячейки рабочих листов Excel, преобразуются к
десятичному формату (если надо, то округляются). Однако совсем не обязательно,
чтобы они таким же образом отображались в ячейке. Элементы из списка Туре (Тип)
позволяют получить представление о возможных форматах отображения дробей. На-
пример, если выбрать первый элемент этого списка (Up to one digit (1/4) (По одной
цифре)), то дробь будет отображена в виде, когда в ее числителе и знаменателе содер-
жится всего по одной цифре. Если выбрать второй элемент списка (Up to two digits
(21/25) (По две цифры)), то в числителе и знаменателе дроби будет содержаться по две
цифры. Следующая команда (Up to three digits (312/943) (По три цифры)) позволяет
отображать дроби в формате, когда в числителе и знаменателе дроби содержится до
трех цифр. Остальные команды из списка позволяют отображать дроби в тех долях,
что нужны пользователю (например, в четвертях, восьмых и т.п.).

Up to two digits (21/25)


Up to three digits (312/943)
As halves (1/2)
As quarters (2/4)
As eighths (4/8)
As sixteenths (8/16)

Puc. 1.41. Выбор способа отображения дробей

Подробности. Следующие соображения могут быть полезны для лучшего понима-


ния принципов работы приложения Excel с дробями. Так, при вводе дроби в ячейку,
как отмечалось выше, последняя преобразуется к десятичному виду. Например,
если ввести в ячейку дробь 0113/199 (ноль нужен для того, чтобы введенные дан-
ные интерпретировались как дробь) и нажать клавишу <Enter>, то в строке фор-
мул будет отображено значение 0.5678391959799. Вид дроби, отображаемой в
ячейке, будет зависеть от настроек форматирования. В частности, если выбран
формат Up to one digit (1/4) (По одной цифре), то в ячейке можно видеть 4/7. Если
выбрать формат Up to two digits (21/25) (По две цифры), дробь будет представлена
как 46/81. Наконец, если использовать формат отображения дроби с тремя цифра-

Глава 1. Знакомство с Excel 61


ми в числителе и знаменателе (Up to three digits (312/943) (По три цифры)), полу-
чим результат 113/199. Однако следует помнить, что при вычислениях использует-
ся значение 0.5678391959799, отображенное в строке формул.
В Excel существует возможность использования так называемой научной нота-
ции. Числа в этом случае отображаются в показательной форме как мантисса и по-
рядок, разделяемые литерой Е. После этой литеры указано число (порядок), которое
определяет степень десяти. Число, указанное перед литерой Е (мантисса), должно
быть умножено на десять в соответствующей степени (которая определяется поряд-
ком). В Excel предусмотрена возможность определять количество десятичных зна-
ков в мантиссе. Это значение задается в поле Decimal places (Число десятичных
знаков), которое можно видеть на рис. 1.42. Последний дает представление о виде
диалогового окна Format Cells (Формат ячеек) при выборе элемента Scientific
(Экспоненциальный) из списка Category (Числовые форматы).
Текстовый формат (элемент Text) в данном случае не настраивается (имеется в
виду вкладка Number), а только применяется к данным (рис. 1.43). Данные в ячейке
сохраняются как текст, даже если туда введено число. Сообщение об этом, кстати,
можно видеть в центре диалогового окна.
Существует возможность использовать, помимо перечисленных, специальный
формат. В этом случае выбирают элемент Special (Дополнительный). В результате
диалоговое окно Format Cells примет вид, показанный на рис. 1.44.
В правой части окна расположены два списка. В верхнем списке Туре (Тип) пе-
речислены специальные форматы. В данном случае это формат преобразования дан-
ных в почтовый индекс (обычный и расширенный), телефонный номер и номер кар-
ты социального страхования. Доступные в списке Туре форматы существенно зави-
сят от региональных настроек, которые можно выполнить, выбрав нужный элемент
из списка Locale (location) (Место/положение).

Number | SSgrment j Font ] Border | Patterns j. Protection |


-rSeipte-"-
I 1.20Е-КИ

Puc. 1.42, Представление чисел в математи-


ческой нотации

62 Часть I. Основы Excel


Number |,Alignment Font | Border I Patterns :| Protection |
^Category; •'.;. .-Sample---
General 12
Number
Currency
Accounting Text format cefe «ft treated as
Date text even when a number is in the V
Time eel. - The celt и displayed exactly as
Percentage entered.
Fraction
Scientific

Special
Custorr

Puc. 1.43. Применение текстового формата

.Number J Alignment
CeteW:

IVPe:

Social Security Number

J
_l| locate (location):
(English (United States) ~3

Special formats are useful for tracking fist and database values.

Puc. 7.44. Выбор специального формата

Замечание. Как правило, специальный формат используется в тех случаях, когда


пользователь не совсем точно помнит пунктуацию при наборе данных соответст-
вующего типа. Данные этих форматов обычно в вычислениях не используются.
Наконец, в Excel предусмотрена возможность задавать собственные форматы.
Для этого следует выбрать последний элемент Custom (Все форматы) из списка
Category (Числовые форматы). Результат можно видеть на рис. 1.45.
В списке Туре в правой части диалогового окна содержится достаточно большое
число элементов, каждый из которых определяет один из рассмотренных ранее фор-
матов. Для того чтобы освоиться с набором непонятных на первый взгляд символов,
логично определиться с тем, что каждый такой символ значит в отдельности. Полез-
ной будет информация, собранная в табл. 1.15.

Глава 1. Знакомство с Excel 63


Number («farmer* Font Border Patterns Protection

Type the number format code, using one of the existing codes as a starting
point.

Cancel

Puc. 1.45. Применение собственного формата


пользователя

Таблица 1.15. Символы форматирования

Символ Описание
О Структурный ноль. При определении формата числа он используется для оп-
ределения минимального количества цифр, отображаемых в целой и десятич-
ной части (целая и десятичная части числа отделяются точкой (.))• Например,
если применить к числу 12 формат 0.00, то в ячейке оно будет отображаться
как 12.00. Формат 0.00 следует интерпретировать так: в целой части числа
отображать (всегда) не менее одной цифры, в десятичной — не менее двух. На-
пример, если в ячейку ввести число 0.1, то оно точно так же будет отображать-
ся по умолчанию (формат General) в ячейке. Если теперь применить к ячейке
формат 0.00 (следует отметить, что этот формат есть в списке Туре категории
Custom — он совпадает с форматом Number (с настройкой отображения толь-
ко двух десятичных цифр), в ячейке число будет отображено как 0.10. Другой
пример: если к числу 12 в ячейке применить формат 000.000, то в ячейке это
число будет отображено как 012.000
Структурный элемент, действие которого аналогично структурному нулю, рас-
смотренному выше, с той лишь разницей, что незначащие нули не отображаются.
Например, в формате ???.??? число 12 будет отображено как 12. (т.е. помимо
числа будет отображена десятичная точка). Однако следует знать, что хотя не-
значащие нули не отображаются, под них все же "выделяется место", т.е. число
отображается с соответствующим отступом от правой границы ячейки
# Структурный элемент, действие которого определяется так же, как действие
структурного нуля, однако незначащие нули игнорируются. В отличие от пре-
дыдущего случая (символ ?) место под такие проигнорированные нули не вы-
деляется. Так, в формате ###.### число 12, как и ранее, отобразится в виде 12.,
но только теперь это число будет смещено вплотную к правой границе ячейки.
Если в таком формате ввести в ячейку число, меньшее единицы, оно будет ото-
бражено без нуля, определяющего целую часть, т.е. такое число начинается с
десятичной точки (например, в виде .123)

64 Часть I. Основы Excel


Продолжение табл.1.15

Символ Описание
% Символ преобразования к процентному формату. В этом случае число
умножается на 100 и слева у него появляется знак процентного формата
(т.е. символ %)
Символ дробной части, используется как альтернатива десятичной точке.
То, что находится слева от этого символа, интерпретируется как числитель
дроби, а то, что справа — как знаменатель. Например, формат, при котором
число отображается в виде дроби, у которой числитель и знаменатель заданы
трехзначными числами, может выглядеть как ###/###. Число 1.2345 в этом
формате будет представлено как 458/371. Если применить к этому же числу
формат # ###/###, то число будет представлено в виде 1 87/371. В последнем
случае в дроби выделяется целая часть. Желающие могут подумать над вопро-
сом, что же произойдет, если к указанному числу применить формат 00 ###/###?
Для тех, кто думать не желает, ответ такой: будет отображено число 01 87/371,
поскольку целая часть, согласно примененного формата, должна содержать не
менее двух цифр и в данном случае дополняется слева незначащим нулем
Е Символ отделения мантиссы числа от порядка. Число, указанное слева от симво-
ла Е, умножается на десять в степени, которая определяется числом справа от
данного символа. После символа Е указывается либо знак плюс (+), либо знак
минус (—). В первом случае если показатель степени положителен, он отобража-
ется со знаком плюс, если отрицателен — со знаком минус. Во втором случае со
знаком (минус) отображаются только отрицательные показатели степени, а по-
ложительные указываются без знака. Число при этом отображается в научной
нотации. Например, число 123 в формате 0.##Е-00 будет представлено как
1.23Е02, а в формате 0.???Е+000 оно отображается как 1.23 Е+002. В первом
случае мантисса имеет формат 0.###, т.е. отображается одна цифра в целой части
и до трех — в дробной. Порядок числа представлен минимум двумя цифрами, и
если он положителен, то отображается без знака. Во втором случае (формат
0.???Е+000) дробная часть мантиссы также отображается цифрами от одной до
трех, но если дробная часть содержит незначащий ноль, для него оставляется
место. Это можно видеть при отображении значения в ячейке — между мантис-
сой и символом Е присутствует пробел. Кроме того, порядок числа представлен
тремя цифрами с явным указанием знака
Символ, предшествующий вводу буквы. Чтобы отобразить литеру, перед ней
следует поставить обратную косую черту (которая при этом не отображается).
Например, если воспользоваться форматом \R 0, то перед введенным в ячейку
числом будет отображаться символ R. При этом числа остаются числами!
Их можно суммировать, умножать и т.п. Другими словами, литера R является
частью формата, на самом числе это "не сказывается"
_ Символ подчеркивания. Этот символ используется для того, чтобы вставить
пробел, равный по ширине следующему после пробела символу
@ Структурный заполнитель текста. Используется для обозначения текста,
содержащегося в ячейке. Действие аналогично структурному нулю, исполь-
зуемому в численных форматах, только в данном случае речь идет о тексте.
Например, если в ячейку ввести слово Baden, а после этого применить формат
@-@, получим Baden-Baden. Формат в этом случае следует понимать так:
текстовое содержимое ячейки, тире, текстовое содержимое ячейки. При этом
значением ячейки является слово Baden

Глава 1. Знакомство с Excel 65


Окончание табл. 1.15

Символ Описание
Директива повторения. Символ, указанный после звездочки, повторяется до
тех пор, пока ячейка не будет заполнена полностью. Например, если к числу 12
применить формат 0*х, то в ячейке будет отображено 12хххххх (количество
символов X зависит от ширины ячейки)

При определении форматов также можно использовать текстовые выражения.


В этом случае такие выражения заключаются в двойные кавычки. Некоторые сим-
волы ($, —,+), а также скобки и пробел вводятся без обратной косой черты.
Следует отметить, что в формате в качестве разделителя тысяч можно использо-
вать запятую. Например, после применения формата #,### число 10000000 будет
отображаться как 10,000,000.
Замечание. Запятая, кроме прочего, может использоваться для округления чисел,
при этом в формате она указывается в конце числа. Такая запятая свидетельствует
о том, что число округляется до тысяч. Например, число 1234567 в формате #,###,
будет отображено как 1,235 (т.е. округлено до тысяч, при этом значением является
1234567). Если в конце поставить еще одну запятую, число будет округлено до
миллионов и т.д. Число 1234567 в формате #,###„ отображается как 1.

Как несложно заметить из приведенных выше примеров, способ форматирования


данных в ячейке существенно зависит от типа данных, вводимых в ячейку. Когда та-
кое форматирование применяется к ячейке, в которой уже имеются данные, ситуа-
ция не такая уж и проблематичная. Однако очень часто приходится сначала приме-
нять формат, а уже после этого вводить данные. В этом случае могут возникнуть не-
которые неудобства.
Совет. К ячейке (или диапазону ячеек) можно сначала применять форматирова-
ние, а уже после вводить данные. Процедура применения формата такая же, как и
для ячейки с данными. Сначала выделяется ячейка (или диапазон), а затем -
команда Format^Cells. Разница только в том, что в поле Sample (Образец) нель-
зя заранее увидеть результат применения формата.
Для того чтобы таких неудобств не было, в Excel предусмотрена возможность за-
давать отдельно форматы для положительных чисел, отрицательных чисел, нуля и
текстового значения, так сказать, "единым махом". Делается это элементарно просто:
соответствующие форматы указываются последовательно, будучи разделенные точ-
кой с запятой (без пробелов). Последовательность форматов такая: положительные
и отрицательные числа, ноль, текст. Формат совсем не обязательно должен содер-
жать четыре части — их может быть и меньше. В этом случае соблюдаются следую-
щие правила.
1. Если формат состоит из единого фрагмента, то он применяется ко всем чис-
лам, независимо от знака.
2. В случае, если формат содержит два фрагмента, первый применяется к неот-
рицательным числам (т.е. к положительным и нулю), а вторая — к отрица-
тельным.

66 Часть I. Основы Excel


3. Формат из трех фрагментов определяет вид положительных, отрицательных
чисел и нуля.
4. Формат текста задается исключительно четвертым фрагментом формата.

На этом возможности Excel в области форматирования совсем не исчерпываются.


К наиболее примечательным следует, безусловно, отнести возможность выделения
данных в ячейке цветом. Причем речь идет не просто о "цветовом фейерверке", а о
выделении данных цветом в зависимости от их значения. Цвет указывается в квад-
ратных скобках перед тем фрагментом формата, к которому применяется.
В табл. 1.16 перечислены ключевые слова, используемые для того, чтобы задать цвет.

Таблица 1.16. Ключевые слова определения цвета

Ключевое слово Описание


Black Черный цвет
Blue Синий цвет
Cyan Голубой цвет
Green Зеленый цвет
Magenta Светло-сиреневый цвет
Red Красный цвет
White Белый цвет
Yellow Желтый цвет

Помимо перечисленных в таблице цветов, можно прибегнуть к помощи команды


COLORx, где вместо х указывается число в диапазоне от 1 до 16 (в реальности до
56). В этом случае цвет выбирается на основе цветовой палитры рабочего листа.
Кроме того, в слове COLOR можно использовать строчные буквы.
Замечание. Условное форматирование (т.е. такое, которое зависит от значения
ячейки) можно задать с помощью команды Formats Conditional Formatting
(Формат^*Условное форматирование) и последующим выполнением нужных
настроек. Об этом речь пойдет далее.
Рассмотрим вопрос о том, как выполнять условное форматирование непосредст-
венно при определении формата в поле редактирования Туре категории Custom из
списка Category. Идея состоит в том, что в первых двух фрагментах формата ис-
пользуется условный оператор. Принцип действия следующий: проверяется условие
первого условного оператора, и если оно выполняется, применяется первый фраг-
мент формата. Если условие первого условного оператора не выполнено, проверяет-
ся второй условный оператор. При выполнении этого условия используется второй
фрагмент формата. Если и это условие не выполняется, то в дело вступает третий
фрагмент формата.
Из этого совсем не следует, что фрагментов формата должно быть именно три.
Число фрагментов может изменяться от одного до четырех. При этом четвертый
фрагмент, как и ранее, определяет формат текста. Если фрагментов два и не выпол-
нено ни одно из двух условий в условных операторах, применяется общий формат
General (Общий) (он автоматически добавляется Excel). Это же относится и к слу-

Глава 1. Знакомство с Excel 67


чаю, когда явно не указан формат для текста (четвертый фрагмент). Можно исполь-
зовать и формат с условным оператором, состоящий из одного фрагмента, тогда
формат применяется, если выполнено условие. В противном случае используется
общий формат.
В условном операторе могут использоваться знаки сравнения. Они перечислены
в табл. 1.17.

Таблица 1.17. Знаки сравнения в условных операторах

Знак Описание
Знак меньше. Выражение А<В истинно, если А меньше В
Знак больше. Выражение А>В истинно, если А больше В
Знак равно. Выражение А=В истинно, если А равно В
Знак меньше или равно. Выражение А<=В истинно, если А не больше В
Знак больше или равно. Выражение А>=В истинно, если А не меньше В
Знак неравно. Выражение АоВ истинно, если А не равно В

Условный оператор, подобно инструкции выбора цвета, заключается в квадратные


скобки и указывается перед фрагментом формата. Условный оператор можно размещать
перед или после инструкции выбора цвета (если она, разумеется, используется в форма-
те). В качестве иллюстрации использования условного форматирования рассмотрим
следующий пример. Нужно выполнить перечисленные ниже действия.
1. В рабочем листе Excel выделить диапазон ячеек размером два на два. Для оп-
ределенности пускай это будет диапазон А1 :В2.
2. Выбрать команду Format^Cells (Формат^Ячейки) и в открывшемся диало-
говом окне Format Cells (Формат ячеек) на вкладке Number (Число) выбрать
в списке Category (Числовые форматы) значение Custom (Все форматы).
3. Далее, в поле ввода Туре (Тип) следует ввести код [>10][blue]0.00;[red][<0]-
0.00;[green];"This is" @, который определяет формат, применяемый к диапа-
зону ячеек, после чего нажать клавишу <Enter> или кнопку ОК.
4. В ячейку А1 ввести число 1, в ячейку А2 ввести число 12, в ячейку В1 ввести
число -2, и, наконец, в ячейку В2 ввести текстовое значение Excel.

Результат описанных выше действий представлен на рис. 1.46.

Рис. 1.46. Результат применения


условного форматирования

ИГ"

Подробности. По поводу использованного выше формата полезными могут быть


следующие комментарии. Так, этот формат состоит из четырех структурных
фрагментов, разделенных точками с запятой. Первый фрагмент ([>10][blue]0.00)
определяет способ отображения чисел, которые больше десяти (об этом говорит

68 Часть I. Основы Excel


условный оператор [>10]). В частности, такие числа отображаются минимум с
двумя десятичными цифрами и выделяются синим цветом (инструкция [blue]).
Второй фрагмент определяет формат отрицательных чисел ([<0]), которые ото-
бражаются красным цветом ([red]), со знаком минус и двумя (как минимум)
цифрами после десятичной точки. Все прочие числа (т.е. те, что больше либо рав-
ны 0 и меньше либо равны 10), выделяются зеленым цветом. Об этом свидетель-
ствует третий фрагмент кода формата, состоящий из единственной инструкции
применения цвета ([green]). Наконец, четвертый фрагмент, определяющий фор-
мат текста, состоит из фразы "This is" и, через пробел, символа текстового значе-
ния ячейки @. В результате применения такого формата получается фраза
This is значение ячейки.

Совет. Если между символами разделения фрагментов формата (точка с запя-


той) не указывать код, то получится так называемый пустой формат. Примене-
ние такого формата сводится к тому, что соответствующие данные в ячейке не
отображаются. Например, при использовании формата 0.00;; в ячейке (диапазоне
ячеек) будут отображаться только положительные числа и текст, а применение
формата 0.00;;; приведет к тому, что не будет отображаться и текст. Наконец,
формат ;;; будет полезен в случае, если нужно скрыть все данные в ячейках. При
этом даже если введенное в ячейку значение не отображается, его всегда можно
увидеть в строке формул.

• Помимо описанных вкратце методов условного форматирования данных, в Excel


существует возможность применять к данным в ячейках различные способы вырав-
нивания, или, другими словами, позиционирования данных в ячейке. Для выполне-
ния соответствующих настроек следует выбрать вкладку Alignment (Выравнивание)
диалогового окна Format Cells (рис. 1.47).

Number I Afignmentj

Textalgnment

j General
iertical:

Г;
Text control

[o ]|3

RigM-tofcft
lext direction:

Рис. 1.47. Вкладка Alignment диалогового окна


Format Cells

Глава 1. Знакомство с Excel 69


Вкладка содержит несколько полей и команд. В разделе Text alignment (Вырав-
нивание текста) представлены элементы для выравнивания текста: раскрывающиеся
списки Horizontal (По горизонтали) и Vertical (По вертикали), поле Indent (Отступ)
и команда Justify distributed (Равномерное распределение) (по умолчанию неактив-
на). Назначение элементов списка Horizontal представлено в табл. 1.18. Элементы
этого списка задают тип выравнивания данных ячейки по горизонтали.

Таблица 1.18. Элементы списка Horizontal

Элемент списка Описание


General (Общий) Этот тип выравнивания по горизонтали применяется по
умолчанию. В этом случае численные значения выравнива-
ются по правому краю, а текстовые — по левому
Left (Indent) (По левому Выравнивание данных по левому краю с отступом. Отступ
краю/Отступ) указывается в поле Indent (значение от 0 до 15 определяет
отступ от края ячейки в символах)
Center (По центру) Выравнивание данных в ячейке по центру
Right (Indent) (По правому Выравнивание по правому краю с отступом. Отступ указыва-
краю/Отступ) ется в поле Indent
Fill (Заполнить) Заполнение ячейки данными. В этом случае данные, введен-
ные в ячейку, повторяются до тех пор, пока ячейка не будет
заполнена полностью. Заполнение происходит, пока возмож-
но добавление значения. При этом само значение ячейки
не меняется
Justify (По ширине) В этом режиме текст в ячейке разбивается на строки так, что-
бы он полностью помещался по ширине ячейки. Выравнива-
ние по горизонтали осуществляется до равномерного запол-
нения ячейки
Center Across Selection Режим имеет смысл применять к диапазону ячеек. Выравни-
(По центру выделения) вание осуществляется по центру выделенного диапазона.
Если диапазон содержит несколько ячеек с данными, то он
условно разбивается на поддиапазоны. Правая граница тако-
го поддиапазона заканчивается следующей непустой ячей-
кой. Если режим применить к отдельной ячейке (не диапазо-
ну), то такое выравнивание совпадает с режимом выравнива-
ния по центру (опция Center (По центру))
Distributed (Indent) (Равное Выравнивание, при котором расстояние между словами оди-
удаление/Отступ) наково. В поле Indent (Отступ) при этом можно задать отступ
от границ ячейки (одинаков справа и слева). Если поставить
флажок опции Justify distributed (Равномерное распределе-
ние) — она активна при значении 0 в поле Indent (Отступ), —
видимый эффект от этого будет таким же, как и при исполь-
зовании команды Distributed с нулевым отступом

Замечание. При выборе отступа (поле Indent) следует учесть, что если величина
отступа превышает ширину ячейки (в символах), она (равно как и ширина всех
прочих ячеек данного столбца) соответствующим образом увеличивается. Если
после этого настройки выравнивания вернуть в исходное состояние; (использу-
емое по умолчанию), ширина ячеек не изменится.

70 Часть I. Основы Excel


Примерно так же происходит выравнивание текста по вертикали. Команды вы-
равнивания текста, собранные в списке Vertical, описаны в табл. 1.19. Применять ре-
жимы выравнивания по вертикали имеет смысл только в том случае, если текстовое
значение в ячейке разбито на несколько строк.

Таблица 1.19. Элементы списка Vertical

Элемент Описание
Тор (По верху) Выравнивание по верхней границе ячейки
Center (По центру) Выравнивание по центру ячейки
Bottom (По низу) Выравнивание по нижней границе ячейки
Justify (По высоте) Выравнивание текста по высоте ячейки
Distributed (Равное Выравнивание осуществляется так, чтобы расстояние между слова-
удаление) ми в строках было одинаковым
Назначение трех команд в разделе Text control (Управление текстом) таково.
> Wrap text (Переносить по словам) — разбивка текста на строки так, чтобы он
полностью помещался в ячейке. При этом высота ячейки изменяется в соответст-
вии с объемом текста.
> Shrink to fit (Уменьшить до заполнения) — в этом случае размер шрифта изменя-
ется таким образом, чтобы текст полностью помещался в ячейке.
> Merge cells (Объединение ячеек) — объединение выделенных ячеек в одну.
При этом адресом новой ячейки является адрес верхней левой ячейки диапазона,
а значением этой ячейки (если в выделенном диапазоне несколько заполненных
ячеек) будет значение верхней левой ячейки с данными (т.е. из заполненных яче-
ек выбираются самые верхние и из них, далее — самая левая).
Подробности. В режиме Shrink to fit (Уменьшить до заполнения) данные мас-
штабируются так, чтобы они полностью отображались в ячейке. При этом если
активизировать ячейку и нажать клавишу <F2>, перейдя тем самым в режим ре-
дактирования, данные будут отображаться шрифтом того размера, что был уста-
новлен для ячейки. Другими словами, выбор команды Shrink to f i t изменяет
шрифт отображения, но не меняет шрифт для значения. Если размеры ячейки в
процессе работы меняются, в указанном режиме меняется размер шрифта ото-
бражения, но размер шрифта непосредственно значения не меняется.
Раскрывающийся список Text direction (Направление текста) в разделе Right-to-left
(Справа налево) имеет смысл использовать только в тех случаях, если установлены
правосторонние шрифты (т.е. когда слова пишутся справа налево), поэтому его обсуж-
дение представляется не слишком актуальным.
К существенным особенностям Excel следует отнести, безусловно, возможность
задавать пространственную ориентацию текста в ячейке. В этом случае полезными
будут элементы раздела Orientation (Ориентация). В данном разделе присутствуют
текстовая кнопка Text (надпись размещена по вертикали), текстовое поле в виде по-
ловинного циферблата и поле Degrees (Градусы).
Если выбрать кнопку с текстом, размещенным по вертикали, и щелкнуть затем на
кнопке ОК, то в результате текст в ячейке будет отображаться сверху вниз, т.е. над-

Глава 1. Знакомство с Excel 71


лисп будут представлены в столбик. Кроме того, можно задать угол (в диапазоне от
-90 до 90 градусов) к горизонтали, под которым будет отображаться текст в ячейке.
Это удобно делать либо непосредственным указанием угла в поле Degrees, либо в
поле с изображением циферблата. В последнем случае достаточно щелкнуть мыш-
кой в соответствующей точке дуги окружности.

I Замечание. Выше речь шла о пространственной ориентации текста, однако все


сказанное относится и к численным данным.
Помимо способа выравнивания данных в ячейке, существует возможность зада-
вать параметры шрифта для отображения данных. Для этого переходят на вкладку
Font (Шрифт). Содержимое вкладки показано на рис. 1.48.

This is a TrueType font. The same font wi be used on both your printer
and your screen.

Puc. 1.48. Вкладка Font диалогового окна Format Cells

На этой вкладке можно видеть стандартные для приложений Microsoft Office на-
боры полей и команд, посредством которых выполняется настройка параметров
шрифта. Соответствующие элементы кратко описаны в табл. 1.20.

Таблица 1.20. Содержимое вкладки Font

Команда, кнопка или поле Описание


Font (Шрифт) Поле выбора типа шрифта с раскрывающимся списком
доступных шрифтов
Font style (Начертание) Поле выбора стиля шрифта (обычный, курсив, полужир-
ный или полужирный курсив) со списком стилей
Size (Размер) Поле выбора размера шрифта с соответствующим списком
Underline (Подчеркивание) Раскрывающийся список установки режима подчеркива-
ния символов
Color (Цвет) Раскрывающийся список выбора цвета

72 Часть I. Основы Excel


Окончание табл. 1.20

Команда, кнопка или поле Описание


Normal font (Обычный) Опция определения стандартного (используемого по
умолчанию) шрифта. При ее выборе все настройки авто-
матически устанавливаются в соответствии с настройка-
ми по умолчанию
Strikethrough (Зачеркнутый) Опция выбора режима зачеркивания текста
Superscript (Верхний индекс) Режим верхних индексов
Subscript (Нижний индекс) Режим нижних индексов
Preview (Предварительный Область предварительного просмотра
просмотр)

Часто бывает необходимо структурировать данные при помощи специальных ра-


мок и разделителей. Особенно это актуально при работе с таблицами. На вкладке
Border (Граница) (рис. 1.49) собраны элементы управления, позволяющие эффек-
тивно использовать возможности Excel в этой области.
В разделе Presets (Предварительные настройки) представлено три кнопки, позво-
ляющие выполнить предварительную настройку границ ячейки или диапазона ячеек.
Кнопкой Outline (Внешние) для ячейки или диапазона устанавливается внешняя рам-
ка. Кнопка Inside (Внутренние) полезна в случае, если следует установить внутренние
рамки диапазона ячеек. Кнопка активна, только если выделен диапазон ячеек. Кнопка
None (Нет) позволяет убрать все рамки (как внутренние, так и внешние).
В разделе Border помимо этого представлено восемь кнопок, которые устанавлива-
ют односторонние рамки всех возможных типов, причем две из них, как несложно за-
метить, направлены по диагонали. Кроме того, в центре есть окно просмотра, с помо-
щью которого можно получить общее представление о том, где и как появятся рамки.

Number j Alignment j Font Patterns j Protection j

Presets :Шв-

Si
t^one
.P..
Qjjfctere

....Qtor:

r:
ИВ! ; i ; ^-Jj \j
"The iseiftted border ^vfe can be applied by cSd*g Й« presets, preview
diagram of the buttons above.

Puc. 1.49. Вкладка Border диалогового окна


Format Cells

Глава 1. Знакомство с Excel 73


Наконец, в списке Color (Цвет) выбирается цвет рамки, а в списке Style (Тип ли-
нии) — тип линии. Оба списка размещены в разделе Line (Линия).
Вкладка Patterns (Вид) целиком и полностью посвящена выбору цвета заливки
ячеек и типу фона. Вид диалогового окна Format Cells при переходе к этой вкладке
показан на рис. 1.50.
В поле Color можно выбрать цвет заливки ячейки. Если установлен цвет, отлич-
ный от No Color (Нет цвета) — это значение используется по умолчанию и указывает
на отсутствие заливки, — в списке Pattern (Узор) можно выбрать фоновый узор.
Результат отображается в области предварительного просмотра Sample (Образец).
Наконец, на вкладке Protection (Защита) представлены всего две команды
(рис. 1.51).
••••.:.--дан
Number.] Afignmen
Cell shading
Color:

;
Ш : Si. В в a « :
•Иa«iтт•

•:. •,::; л • i'; •;


• Ш П П Ш •«!
Pattern;

Puc. 1.50. Вкладка Patterns диалогового окна


Format Cells

Number | АЙдпгпе

P (petted

eels or hidios formulas has no elf ect gntess the


tvor&sheet Is protected. To f^tAect Же worla^ieet, draose
Protection front the Toote тиш, end then choose Protect
t. A (Missword is optional

Puc. 1.51. Содержимое складки Protection


диалогового окна Format Cells

74 Часть I. Основы Excel


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

Пример выполнения форматирования


В качестве наглядной иллюстрации применения различных типов форматирова-
ния рассмотрим простой, но наглядный пример — составим таблицу с некоторыми
характерными параметрами для планет нашей Солнечной системы. Исходные дан-
ные, которые будут вноситься в таблицу Excel, представлены в табл. 1.21.

Таблица 1.21. Характеристики планет Солнечной системы

Расстояние до Масса (xlO® кг) Диаметр (км) Ускорение


Солнца (x1(f км) свободного паде-
ния (усл. ед.)
Меркурий 0,0579 3,302 4880 0,38
Венера 0,1080 48,690 12104 0,91
Земля 0,1490 59,740 12756 1,00
Марс 0,2270 6,418 6794 0,38
Юпитер 0,7780 18990,000 142985 2,36
Сатурн 1,4320 5685,000 120536 0,92
Уран 2,8710 868,200 51118 0,90
Нептун 4,4980 1024,000 49528 1,10
Плутон 5,9150 0,130 2300 0,07

Подробности. Ускорение свободного падения указано на поверхности планет


при условии, что ускорение свободного падения на Земле принято равным еди-
нице. В качестве диаметра указан экваториальный диаметр планет. Данные взяты
из книги R. Freedman, W. Kaufmann, Universe, W.H. Freeman and Company,
New York, 2002.
Эти данные перенесем в таблицу Excel. Результат, полученный после примене-
ния форматирования, представлен на рис. 1.52. Для удобства основные этапы про-
цесса перечислены ниже.
Замечание. Это один из возможных способов выполнения форматирования, но,
разумеется, далеко не единственный.
1. Для начала разумно выделить диапазон ячеек В2:Н15 и применить к этому
диапазону специальный фон. Команда в этом случае такова: Format^Cells,
после чего на вкладке Patterns следует выбрать белый цвет заливки и фоно-
вый узор в разделе Pattern (рис. 1.53).

Глава 1. Знакомство с Excel 75


яШШ

Рис. 1.52. Таблица после применения форматирования

Edit й«ч Insert Format loot Bata ^Jndcw

, <S Са У ' * Ч* в - -;'* - • •

• В В ••• M l
Ш С '2 Ш 5 К • :
• : . • 3" ...' П Я :.

Sample

ввввввв
ввввввш
юшввввн
ЕПВЙВВВ
пaппттп gj Add Web Folder...
BGLIBBBS (?) Microsoft Excel Help
' впшвввв [y. Show at startup
м \Sheet 1 / 5heet2 '/ She'<*3 /
Ready

Рыс. 15J. Выбор фона для 'диапазона ячеек

Часть I. Основы Excel


2. После этого можно задать тип рамки вокруг таблицы. Для этого, не снимая
выделения с диапазона В2:Н15, следует выбрать команду Format^Cells и пе-
рейти на вкладку Border (Граница). После этого в поле выбора типа линии
Style (Тип линии) нужно выбрать линию для отображения границ (в данном
случае это третья снизу линия во втором столбце), после чего последователь-
но щелкнуть на кнопках Outline (Внешняя) и ОК (рис. 1.54).
3. На следующем этапе применяем форматирование непосредственно к диапазо-
ну, куда будут заноситься данные таблицы и названия соответствующих по-
лей. Для этого выделяется диапазон ячеек C5:G14 (рис. 1.55). Сначала снимем
примененный на предыдущем этапе режим выделения фоном. Для этого вы-
берем команду Format^Cells и перейдем на вкладку Patterns, где в поле Color
выберем элемент No Color (Нет цвета) (см. рис. 1.55). При этом автоматически
снимается и фон.
4. После этого к выделенной области применяется команда отображения внеш-
них и внутренних границ ячеек. Поступаем в данном случае следующим обра-
зом. Переходим ко вкладке Border диалогового окна Format Cells и устанав-
ливаем тип линии. Как можно видеть из рис. 1.56, это двойная тонкая линия
(нижний элемент во втором столбце поля Style). После этого щелкаем на
кнопке Outline (отобразится внешняя рамка для данного диапазона) и Inside
(отображение границ ячеек внутри диапазона). После щелчка на кнопке ОК
изменения вступят в силу.
•,Jgjx)
ob p_ata Window Нф _V X

10 - В /

New Workbook

; Open я workbook
Solar_System.xls
Notes.xls

Alignment for* Border Patterns Protection

Automatic JJj
I V
"Hie sel«±ed bwder styte carv be epf&ed fay cSdong the prea^s, p-eview
dsgran or the buttons above.

Caned

Ч Show aFslartup
7 > ИNsheet 1XSheet2 /Зтм^ /
Ready MJM

Puc. 1.54. Определение рамки вокруг таблицы

Глава 1. Знакомство с Excel 77


Рис. 7.55. Отмена выделения фоном для области данных таблицы

Замечание. Можно указать разные типы линий для внешних и внутренних


границ ячеек. Желающие могут поэкспериментировать с этими эффектами.
Кроме того, можно задать цвет линии в раскрывающемся списке Color (Цвет).

5. После этого выделяем диапазон ячеек D5:G5. В этих ячейках будут размеще-
ны названия полей (здесь введем характеристики планет, надписи выделим
полужирным шрифтом и разместим их по вертикали). Чтобы задать соответ-
ствующее форматирование, переходим на вкладку Alignment (Выравнивание)
диалогового окна Format Cells (рис. 1.57) и устанавливаем в полях Horizontal
и Vertical тип выравнивания по центру (элементы с совпадающими названия-
ми Center). Кроме того, ставим флажок опции Wrap text — чтобы текст разби-
вался на строки, поскольку вводимые названия достаточно длинны. Помимо
этого, следует задать угол пространственной ориентации текста равным 90
градусам (см. рис. 1.57).
6. На рис. 1.58 проиллюстрирован процесс применения формата с полужирным
шрифтом для диапазона ячеек C5:G5, куда предварительно введены названия
полей (везде, кроме ячейки С5). В этом случае (т.е. для применения полужир-
ного шрифта) нужно выбрать команду Format^Cells, а на вкладке Font в спи-
ске Font style (Начертание) выбрать стиль шрифта Bold (Полужирный).

78 Часть I. Основы Excel


~ <j; t;N»wWaHjoi*

Oom «workbook
Solar_5ystem.xls
Notes.xls
HyData.xb

Puc. 1.56. Определение внешних и внутренних границ ячеек

9е 6* Sew Inwrt fijrmat

р й* У И. и* Си 5* X '
:
06 -'' '•' ft '

Puc. 1.57. Применение формата отображения текста по вертикали

Глава 1. Знакомство с Excel 79


Яе &tt View S«ert Farmat loote , Qata Window

- ui \ Ш (3 ?
G H ~- •* ф Иен Workbook
_-.
11 Open a workbook
5olar_Systens.xls
Notes.xls
MyData.xte

. I l l
'S' Number I Aigrment Font | Border | Patterns | P
g Eont: • . . Fontstyto; Зге:

>T Algerian
Andre H IS
Antique Olive
^3 (Bold Ital
: >,:•;; Ч ' 0*»: Sites...
jNohe
:
t.com
rj^ P
Effects
j Г Strlsethrough
i Г Suoe-scrlpt I AaBbCcYyZz ]

TNs is a TrueType font. The same font wS be used on both your prints*
and your screen.

|н"< » и\SheetlУ5heet2 /5ЬейЗ/ тп:


[«eady

PMC. /.55. Применение формата полужирного шрифта к диапазону ячеек

7. Ячейка С5 будет иметь особый вид, что найдет свое отражение и в формате
этой ячейки. Так, во-первых, проведем в этой ячейке диагональную черту.
Для этого на вкладке Border выберем в качестве линии тонкую одинарную
(нижний элемент первого столбца поля Style), после чего эта линия будет ис-
пользована для отображения диагонали ячейки (кнопка с косой чертой на
рис. 1.59, где размещен курсор).
8. В качестве типа выравнивания текста в ячейке С5 устанавливается выравни-
вание по высоте (команда Justify в списке Vertical на вкладке Alignment).
Флажок опции Wrap text можно не устанавливать, поскольку при таком типе
выравнивания текст на строки разбивается независимо от того, выбран или
нет режим разбивки на строки. На рис. 1.60 флажок все же установлен.
9. После этого в ячейку С5 вводится значение Характеристика Планета. Перед
первым словом следует оставить какое-то количество пробелов, равно как и
между первым словом и вторым (в данном примере было оставлено семь про-
белов перед словом Характеристика и четырнадцать пробелов между ним и
словом Планета — хотя количество пробелов в данном случае не столь важ-
но). Когда значение введено в ячейку, следует изменить ширину последней
(а вместе с ней и ширину всех ячеек столбца С) так, чтобы слова оказались в
разных строках в двух углах ячейки С5, как это показано на рис. 1.61.

80 Часть I. Основы Excel


е
Е
I
в
-
;
а

:
fi
!

5
i

л
-
ЕЗ Microsoft Excel - Bookl
£je gdft Ив» S«ert Fs-mat loob Eata SJridow "*. X

^c4- Й »|-:«S'B. v'


.т .• '". £
±f* JL I E : ь : j__£J

Puc. 1.61. Изменение ширины ячеек столбца С

10. Чтобы придать таблице некоторую свежесть, выполним заливку ячеек назва-
ний полей и ячеек, содержащих непосредственно данные, — но только разны-
ми цветами. Сделаем это в два этапа. Сначала выполним заливку всех ячеек
таблицы цветом, который будет использоваться для заливки ячеек с назва-
ниями полей, а затем закрасим ячейки, которые будут содержать данные.
Для закраски ячеек диапазона C5:G14 применим бирюзовый цвет (рис. 1.62),
который можно выбрать на вкладке Patterns.
11. Практически ту же процедуру повторяем по отношению к диапазону D6:G14,
но только цвет в этом случае светло-желтый (рис. 1.63). При этом новое фор-
матирование переопределяет то, что было применено на предыдущем этапе.
12. Теперь целесообразно ввести в таблицу названия планет (диапазон С6:С14) и
данные, характеризующие эти планеты (диапазон D6:G14). После того как это
сделано, выделяем диапазон C8:G8 (это строка с данными для Земли) и при-
меняем к этому диапазону полужирный шрифт (рис. 1.64).

82 Часть I. Основы Excel


0е £cft Sew Insert Format I««*s

PMC. 162. Выбор цвета закраски ячеек с названиями полей (закрашивается вся таблица)

\ Ш У! ', ; Ю - В J Г

J ~ («mbiw | AJgnna* I Peri 1 Bonier Patterns j fntKOan ]

Puc. 1.63. Изменение цвета для ячеек, в которые будут заноситься данные

Глава 1. Знакомство с Excel 83


ill

Рис. 1.64. Применение полужирного шрифта к диапазону ячеек с данными для Земли

13. После этого выделяем диапазон ячеек G6:G14 (это столбец с данными об
ускорении свободного падения на поверхности планеты), открываем с помо-
щью команды Format^Cells диалоговое окно Format Cells и переходим на
вкладку Number. На этой вкладке выбираем в списке Category элемент
Custom и в поле ввода формата Туре задаем код формата [Red][>1]0.00;0.00,
который и применяем к данному диапазону. В этом формате число, если оно
больше 1 (т.е. больше, чем на поверхности Земли), отображается красным
цветом минимум с двумя цифрами после десятичной точки. В противном слу-
чае число формально отображается так же, но только цветом не выделяется.
Процедура применения формата проиллюстрирована на рис. 1.65.
14. Наконец, добавляем заголовок, заодно продемонстрировав процесс слияния
ячеек — выделяем диапазон ячеек C3:G3 и отменяем по отношению к этому
диапазону выделение фоном (рис. 1.66).
15. Теперь выполняем слияние ячеек диапазона (рис. 1.67), для чего на вкладке
Alignment диалогового окна Format Cells устанавливаем флажок опции слия-
ния ячеек Merge cells (Объединение ячеек), определив выравнивание текста
по центру (команда Center из списка Horizontal). В результате все ячейки диа-
пазона объединяются в одну, а ее адрес определяется адресом левой верхней
ячейки диапазона слияния — в данном случае это СЗ.

Часть I. Основы Excel


лепет*
Number
Currency
Accounting
Date
Time
Percentage
Fraction
Scientific
Text

И
Type the nurrfcer format code, using one of the existing codes as e starting
12 point.
13
14
ISj
16J
а
18]
19, |<|
и < иХоиш v,n..rti/shi«z /She*3/
Ready Sum-e.02 MJM

Рис. 1.65. Применение формата пользователя к диапазону ячеек

Number Stgnment Font icrdw Pattern! Protection |

Рмс. ^.бб. Отмена настроек выделения фоном

Глава 1. Знакомство с Excel 85


10
..И -12}• " i * : ;i В /
'

.
s s. **

4880
12104 091tj
12756
Text control
6794 •
Г Shrtttoflt ±)Bee«»s 142985

| 1ШнерЁ1 120536 о.э:


Right"to-Wt 5111Э 0.90J
Xext dreoton: 49528 1 101
2300
•Context

v
M < > и \ Chartl
'9
' 51к*2 / Sheets / •
"J »ir

Рис. 1.67. Слияние ячеек диапазона

16. В ячейку с адресом СЗ вводим значение Характеристики планет Солнечной


системы, применяем полужирный шрифт (элемент Bold в списке Font style на
вкладке Font), размер устанавливаем равным 13 (поскольку такого элемента с
списке Size нет, его следует самостоятельно набрать в поле ввода), в списке
Underline (Подчеркивание) устанавливаем двойное подчеркивание — значе-
ние Double Accounting (Двойное, по ячейке), а в списке Color устанавливаем
темно-фиолетовый цвет (рис. 1.68). После этого документ Excel должен иметь
вид, аналогичный тому, что показан на рис. 1.52.

Некоторых особых комментариев требует процесс ввода данных о массах планет


и их удалении от Солнца, поскольку это достаточно большие числа. Есть два основ-
ных метода. Первый состоит в том, чтобы вводить нужное количество нулей, что на-
зывается, вручную. Это просто, но долго и неудобно. К тому же, достаточно легко
ошибиться. Поэтому можно, например, воспользоваться вводом формул. Как рабо-
тать с формулами, рассказывается во второй главе. Здесь же предлагаются лишь не-
которые практические рекомендации. В качестве примера рассмотрим процесс ввода
числа 12000 в ячейку А1. Для этого ячейка А1 активизируется (т.е. выделяется), по-
сле чего в строке формул (а можно непосредственно и в ячейке, для чего на ней два-
жды щелкают мышью или нажимают клавишу <F2>) вводится значение =1.2*1 ОМ
(такая запись означает: одна целая и две десятых умножить на десять в степени
четыре). Ситуация проиллюстрирована на рис. 1.69.

86 Часть I. Основы Excel


--
.=м
•:i v : Vjew insert Fgrmat Tools
а
^ - -в
n e H , •-,'•'•. ',%-?j - wt;^i - .io,ll
C3 .-». . ' ,.^i Характеристики планет солнечной системы
A И С 0 I E i F i G |
1 ;

TNs is a TfyeTypefont. TtM


«id your screen.

PMC. f .65. Установка формата отображения заголовка

Результат после нажатия клавиши <Enter> таков, как показано на рис. 1.70.
Чтобы данные выглядели так, как показано в рассмотренном выше примере, сле-
дует к ячейке А1 применить формат Scientific (Экспоненциальный), для чего выби-
рают команду Format^Cells и затем соответствующий элемент из списка Category
на вкладке Number. Результат представлен на рис. 1.71.

SUM » X ч/ )6 =1 2*1 OM Рис. 1.69. Ввод формулы в строку формул


A ЦШ1 j с~ЦГ .p
Т 1=1. 2*1 DM
2

А2 •«• . % Рис. 1.70. Результат выполнения формулы


j,->.A' -•••••! в , с i о
; 12000 ""

н
i

А1 » $ =1.2*10М Рис. 1.71. Научный формат отображения чисел


;. А I в I с ! [
1 1 1 .20E404I
2 : ; i
|

Глава 1. Знакомство с Excel 87


Наконец, перечисленные выше действия относительно применения тех или иных
форматов могут быть выполнены и более простым путем — использованием кнопок
панелей инструментов. В первую очередь это относится к панели форматирования
Formatting (Форматирование), которая отображается по умолчанию. В некоторых
же случаях, как, например, при отображении границ ячеек, нужно сначала отобра-
зить соответствующую панель инструментов или добавить ту или иную кнопку.

Форматирование рабочих листов


Часто приходится применять формат не просто по отношению к ячейке или диа-
пазону ячеек, а сразу к рабочему листу. В этих случаях в Excel можно прибегнуть к
помощи некоторых весьма полезных процедур, позволяющих выполнять такие на-
стройки быстро и эффективно. Стандартные команды форматирования собраны,
главным образом, в меню Format. Команда Cells из этого меню рассматривалась вы-
ше. Далее приведен краткий обзор прочих команд.
Три подменю Row (Строка), Column (Столбец) и Sheet (Лист) содержат коман-
ды, позволяющие задавать ширину и высоту ячеек, скрывать строки и столбцы, пе-
реименовывать рабочие листы и выполнять ряд других весьма полезных действий.
Ниже в табл. 1.22-1.24 перечислены соответствующие команды и приведено описа-
ние действий, выполняемых при их вызове.

Таблица 1.22. Команды подменю Row

Команда Описание
Height (Высота) При выборе этой команды открывается диалоговое окно, в ко-
торое можно ввести параметры высоты ячейки. По умолчанию
это значение равно 12.75. Однако особой необходимости в этой
команде нет, так как высота ячеек подбирается в соответствии
с размерами шрифта. Данная команда полезна, когда высоту
ячейки (а равно и высоту всех ячеек строки) необходимо уста-
новить безотносительно к размеру шрифта
AutoFit (Автоподбор) Команда автоматического выбора высоты ячейки в соответст-
вии с данными в строке (в зависимости от размеров шрифта)
Hide (Скрыть) Команда позволяет скрыть строку. При этом строка не удаляет-
ся, а просто не отображается в документе
Unhide (Отобразить) Отображение скрытой строки

Подробности. Работа с командой AutoFit (Автоподбор) имеет свои особенности.


Так, если в ячейку ввести какое-то значение, а потом существенно увеличить
шрифт (скажем, установить 20 вместо используемого по умолчанию значения
10), то высота ячеек соответствующим образом увеличится. Если после этого
значение из ячейки просто удалить (выделить ячейку и нажать клавишу <Del>),
а затем выбрать команду AutoFit, то ничего не произойдет. Дело в том, что при
выборе высоты ячейки во внимание принимается формат, поэтому даже если
ячейка пустая, но согласно формату размер символов в этой ячейке 20, то в соот-
ветствии с этими настройками и будет устанавливаться высота. В такой ситуации
может быть полезным удаление не только содержимого ячейки, но и формата.

88 Часть I. Основы Excel


Сделать это легко с помощью команды EditOС1еап=>АИ (Правка1^Очистить1^Все)
(для удаления содержимого ячейки вместе с форматом) или Edit^Clear^Formats
(Правка^Очистить^Форматы) (для удаления только формата — например,
когда ячейка и так пустая).
Кроме того, при попытке отобразить скрытую строку пользователь сталкивается
с проблемой — эта строка не отображается и поэтому ее (или ячейку из этой
строки) нельзя выделить обычными методами (чтобы потом выбрать команду
Unhide). Из этой ситуации можно выйти, поместив указатель мыши в место раз-
дела строк (там, где должна быть скрытая строка) в полосе названий (курсор в
этом случае примет вид двунаправленной стрелки с двойной основой) и перета-
щив границу вверх или вниз. После этого становится видна часть скрытой строки
и ее можно будет выделить, а затем выбрать команду Unhide. Другой способ
состоит в том, чтобы в поле названий ввести название одной из ячеек скрытой
строки (по окончании ввода следует нажать <Enter>) и выбрать команду Unhide.

I Совет. Чтобы скрыть строку, можно навести курсор мыши на нижнюю границу
этой строки в полосе названия строк и перетащить ее к верхней границе этой
строки. Если продолжить перетаскивание, можно скрыть сразу несколько строк.

Команды подменю Cell (Ячейка) полезны при работе со столбцами и во многом


схожи с рассмотренными выше командами для работы со строками из подменю Row.

Таблица 1.23. Команды подменю Cell

Команда Описание
Width (Ширина) Командой задается ширина выделенных ячеек (если точ-
нее, то столбцов, содержащих эти ячейки). По умолчанию
ширина ячеек рабочего листа устанавливается равной
8.43 ширины символов
AutoFit Selection (Автоподбор Команда позволяет установить ширину ячеек столбца в
для выделения) соответствии с данными в этих ячейках так, чтобы данные
полностью помещались по ширине
Hide (Скрыть) Команда полезна в том случае, если нужно скрыть столбец
Unhide (Отобразить) Команда отображения скрытого столбца
Standard Width (Стандартная Команда позволяет изменять заданную по умолчанию ши- •
ширина) рину ячеек. После применения этой команды ширина тех
ячеек, для которых она не была выставлена "персонально",
будет изменена на ту, что пользователь вводит в диалого-
вом окне в процессе выполнения данной команды

Замечание. В отношении сокрытия и отображения столбцов остаются справед-


ливыми те же замечания, что и для строк (разумеется, с соответствующими по-
правками).

Совет. Чтобы выделить несколько ячеек, расположенных в разных местах листа,


можно нажать клавишу <Ctrl> и, удерживая ее, левой клавишей мыши последо-
вательно выделить эти ячейки.

Глава 1. Знакомство с Excel 89


Команды подменю Sheet (Лист) позволяют выполнять некоторые простые, но час-
то весьма полезные процедуры с рабочими листами. Они перечислены в табл. 1.24.

Таблица 1.24. Команды подменю Sheet

Команда Описание
Rename (Переименовать) Команда переименования рабочего листа. После выбора
этой команды название рабочего листа внизу на корешке
будет выделено и его можно редактировать. Следует ввести
новое название и нажать клавишу <Enter>
Hide (Скрыть) Команда позволяет скрыть активный рабочий лист
Unhide (Отобразить) Команда отображения скрытых рабочих листов. После ее
выбора открывается диалоговое окно со списком скрытых
рабочих листов. Следует выбрать нужный и щелкнуть на
Кнопке ОК
Background (Фон) Команда выбора фонового рисунка для рабочего листа.
Открывается диалоговое окно, посредством которого выби-
рается графический файл, служащий фоном для рабочего
листа. После того, как фон выбран, команда заменяется на
Delete Background (Убрать фон). С помощью последней
фон можно убрать
Tab Color (Цвет корешка) Команда установки цвета для корешка рабочего листа.
Если лист неактивен, вкладка будет иметь соответствующий
цвет. Если лист активен, внизу у корешка будет отображена
толстая цветная линия

I Совет. Чтобы переименовать рабочий лист, достаточно дважды щелкнуть мышью на


корешке этого листа, после чего соответствующее название можно редактировать.
Ниже, на рис. 1.72, приведен в качестве примера рабочий документ, состоящий из
трех рабочих листов, названия которых заданы соответственно как First (первый),
Second (второй) и Third (третий). Для корешка первого листа (First) установлен
красный цвет, однако поскольку лист активен, то свидетельствует об этом только
красная черта в нижней части корешка. Для третьего листа (Third) выбран синий
цвет корешка. Кроме того, для первого рабочего листа выбран фон (файл с логоти-
пом Windows).
Как несложно заметить, поскольку размер рисунка существенно меньше размера
листа, этот рисунок периодически повторяется.
В нижней части меню Format представлены три команды. Первой из них являет-
ся команда AutoFormat (Автоформат), с помощью которой к данным в таблице мож-
но применять заранее разработанные, шаблонные форматы. После выбора команды
(предварительно следует выделить диапазон ячеек) открывается одноименное диа-
логовое окно, вид которого показан на рис. 1.73.

I Замечание. Для того чтобы в нижней части диалогового окна AutoFormat ото-
бражался раздел Formats to apply (Применить форматы), следует щелкнуть на
кнопке Options (Параметры) в правой части диалогового окна.

90 Часть I. Основы Excel


Sheel_Foiraat.xU

ill"

PMC. 1.72. Использование графического файла в


качестве фона

Jan Feb Mai Total •jart Fet> Total


East 5 19 East 7 7 19
Wesl 17 West 6 4 17
South a 9 24 South 8 7 24
Total 21 18 21 60 Total 21 18 60

(ОЩ1Г 5

East 7 5 19
W«t 6 4 7 17
South 8 7 9 24
Total 21 18 21 60

Classic 2

_ nul_ Jan Feb Total


East 7 J 1I J 19 , East 7 J 7I J 19
West 17
South 8 7 24 :f South 8 7
Total 21 J 18 t J 60 Total 21 » 18 I $ «i

AorajntingJ

P fex-tfer

Puc. 1.73. Окно выбора формата


Выбрав нужный элемент из списка, можно применить соответствующий формат


к выделенному диапазону ячеек. Кроме того, в разделе Formats to apply (Применить
форматы) можно, поставив или убрав флажок, добавить или отменить тип формати-
рования (численный формат — Number, отображение границ — Border, разные
шрифты — Font, выделение фоном — Patterns, эффекты выравнивания — Alignment,
эффекты изменения ширины и длины ячеек — Width/Height).
Команда Conditional Formatting (Условное форматирование) позволяет просто, бы-
стро и достаточно эффективно задавать типы форматов. В некотором смысле это аль-
тернатива вводу кода формата пользователя вручную, о чем уже было сказано ранее.
При выборе этой команды открывается диалоговое окно, показанное на рис. 1.74.. Пер-

Глава 1. Знакомство с Excel


вый из раскрывающихся списков содержит два элемента: Cell Value Is (Значение) и
Formula Is (Формула). Первый элемент используется при работе со значением ячейки,
второй позволяет применять в условном форматировании формулы.

г Condition].

Preview of format to use No Format Set


when contSttonls true:

fidd» I Qeiet»... |

Puc. 1.74. Диалоговое окно выполнения условного форматирования

При работе со значением Cell Value Is в следующем раскрывающемся списке можно


выбрать одно из ключевых слов, определяющих конкретный тип проверяемого условия:
between (в диапазоне), not between (вне диапазона), equal to (равно), not equal to
(не равно), greater than (больше), less than (меньше), greater than or equal to (больше
либо равно), less than or equal to (меньше либо равно). В зависимости от выбранного
элемента дальше отображается два поля (для первых двух элементов) или одно (для
прочих элементов). В это поле (или поля) и вводятся значения.
Формат, применяемый в том случае, когда условие выполняется, можно задать,
если щелкнуть на кнопке Format. Откроется диалоговое окно Format Cells, правда, в
очень упрощенном варианте, в котором не все его команды доступны. В этом уре-
занном варианте диалоговое окно содержит всего три вкладки (Font, Border и
Patterns), которые позволяют задавать основные параметры шрифта, тип границ,
фон и цвет заливки ячеек.
Помимо этого, в нижней части диалогового окна Conditional Formatting можно
заметить кнопку Add (А также). По щелчку на этой кнопке в окне отображается еще
один раздел для ввода следующего условия. Таких условий может быть максимум
три. Ситуация проиллюстрирована на рис. 1.75.

1 Conditional Formatting Й'В 1

Condition i
l-'Vjcel Value Is _^j Jbetween j^J 1 iJ and |ю .. . 2J 'i
AaBhC rv y z ; Eonnat... j
;
when согкШс ™'£T
| -,"-Jcel Value Is jj jlessthan J-J 15
. -3
Preview or format to use j AaBbC cYyZz | Fjjrmat... |
when согкЙЮп fs true: 1

Condi; ion 2
;
ЙЁЕЙШВЗ i_»J (not equal to _»] 0 ij
; Preview of format to use * -.ou/
• wr^ condition is true: АаЬЫ..cYyZz format... [

Jj ' I Betete... <Ж Cancel

Puc. 1.75. Применение условного форматирования к диапазону


ячеек

92 Часть I. Основы Excel


Принцип применения формата таков: сначала проверяется первое условие
(Condition 1), и если оно выполняется, то применяется первый формат. Если первое
условие не выполнено, проверяется второе условие (Condition 2), и т.д., вплоть до
проверки третьего условия (Condition 3). В частности, на упомянутом рис. 1.75 задан
следующий формат: если число в ячейке лежит в диапазоне от 1 до 10, то оно ото-
бражается шрифтом красного цвета. Если число меньше 15 (это второе условие), то
ячейка закрашивается светло-желтым цветом и обводится рамкой синего цвета. На-
конец, если число в ячейке не равно 0, то значение это выделяется полужирным
шрифтом синего цвета.
Как несложно заметить, возможна ситуация, когда выполняются сразу три условия
(рис. 1.76). Описанный формат применен к диапазону А1 :В2. В ячейки этого диапазона
введены числа 5,10,12 и 18. Первые два числа выделяются красным цветом, число 12
отображено на желтом фоне и ячейка заключена в рамку, а число 18 выделено полу-
жирным шрифтом синего цвета. При этом все четыре числа не равны 0 (т.е. третье ус-
ловие выполняется всегда). Объяснение простое: первые два числа (5 и 10) попадают в
диапазон из первого условия (граничные точки диапазона тоже учитываются), поэто-
му для них выполняется первое условие и в соответствии с этим выбирается формат.
Для числа 12 первое условие не выполняется, но зато выполняется второе. Наконец,
для числа 18 не выполняются первые два условия, но выполняется третье.
Если нужно удалить одно из условий в формате, в диалоговом окне
Conditional Formatting следует найти кнопку Delete (Удалить). В результате откроется
окно, показанное на рис. 1.77. В окне представлено три опции с названиями условий, для
удаления которых следует поставить в соответствующем месте флажок (в данном случае
это второе условие) и щелкнуть на кнопке ОК. После удаления одного или двух условий
оставшиеся условия переименовываются в соответствии с порядком их следования.
Совет. Если щелкнуть на пиктограмме в правом углу поля ввода значения, диа-
логовое окно Conditional Formatting будет отображено в виде узкой области для
ввода данных. Повторный щелчок на пиктограмме приведет к восстановлению
стандартного вида окна.
Как отмечалось выше, в условном формате можно использовать формулы (мето-
ды работы с формулами детально обсуждаются в следующей главе). Здесь ограни-
чимся рассмотрением наиболее простой ситуации.

Рис. 1.76. Пример применения


условного формата

t= I ! Ц
< > «\Sh«» /Sh Ы.. | ИГ

Delete Conditional Formal j Рис. 1.77. Окно удаления условия


Select the con*on(s) to dote»:
Г~ Condtioni

Глава 1. Знакомство с Excel 93


Для использования формулы в формате следует вместо значения Cell Value Is
выбрать Formula Is. В этом случае диалоговое окно Conditional Formatting выглядит
практически так же, как и в предыдущей ситуации, но поле ввода одно. В нем вво-
дится условие (с использованием формул) и задается формат, применяемый при
выполнении условия.
Ниже ситуация проиллюстрирована на простом примере. В частности, выделяем
ячейку В1, выбираем команду условного форматирования и вводим в поле условия
выражение =А1 >2. Это выражение значит буквально следующее: значение в ячейке
А1 больше 2 (знак равенства нужен для того, чтобы приложение Excel интерпрети-
ровало выражение именно как формулу). В качестве формата применяется отобра-
жение синим полужирным шрифтом на сером фоне ячейки с рамкой (рис. 1.78), т.е.
значение в ячейке В1 будет отображаться в указанном виде, если значение в ячейке
А1 больше 2. Далее, к ячейке В2 применяем тот же формат, заменив в условии ссыл-
ку на ячейку А1 ссылкой на ячейку А2. После этого введем в четыре верхние ячейки
рабочего листа числа 1, 3, 5 и 7. Результат показан на рис. 1.79.

als
Preview of format to use
true:

Puc. 1.78. Использование в условном формате формулы

Совет. Совсем необязательно заново вводить в ячейку В2 формат с клавиатуры.


Достаточно выделить ячейку В1, скопировать содержимое в буфер обмена
(команда Edit<=>Copy) — при этом будет скопирован и формат (даже если ячейка
пустая), затем нужно выделить ячейку В2 и выбрать команду Edit^Paste.
При этом в самом формате ссылка на ячейку А1 будет автоматически заменена
ссылкой на ячейку А2, поскольку ссылка в данном случае относительная — при
копировании она меняется. Что такое относительные ссылки и каковы особенно-
сти работы с ними, рассказывается в следующей главе.

OJ I oimulds^Foimal xlt Рис. 1.79. Применение формата,


содержащего в условии формулу

Видно, что специальный формат (тот, что определялся выше) применяется толь-
ко к ячейке В2, поскольку число в ячейке А2 больше 2, в то время как к ячейке В1
формат не применяется, поскольку значение в ячейке А1 меньше 2.
Последней в меню Format является команда Style. В результате ее выполнения
открывается диалоговое окно, показанное на рис. 1.80. В этом диалоговом окне мож-
но изменять параметры уже существующих стилей, а также создавать собственные.
В качестве примера рассмотрим процесс создания стиля пользователя. Делать это
можно несколькими способами, поэтому остановимся только на основных.

94 Часть I. Основы Excel


Для создания собственного стиля следует открыть окно Style и в поле Style name
(Название стиля) ввести название нового стиля. В данном случае это будет FirstStyle.
После введения названия следует щелкнуть на кнопке Modify (Изменить). В результате
открывается диалоговое окно Format Cells. На вкладках этого диалогового окна задаются
параметры создаваемого формата, после чего следует щелкнуть на кнопке ОК (в диало-
говом окне Format Cells). Окно Format Cells закроется, а в разделе Style includes (Стиль
включает) будут отображены основные параметры стиля. На рис. 1.81 проиллюстриро-
ван случай создания стиля, при котором для чисел используется научный формат
(Scientific), текст по горизонтали и вертикали выравнивается по центру с разбивкой тек-
ста на строки, синего цвета шрифт Times New Roman полужирный размера 12, ячейка
выделяется красной тонкой рамкой, а сама ячейка закрашивается серым цветом.
Для того чтобы такой стиль применить к ячейке или диапазону ячеек, этот диапа-
зон (или ячейку) следует выделить, а потом выбрать команду Formats Style. Далее, в
раскрывшемся диалоговом окне в списке Style name (Название стиля) нужно вы-
брать название стиля (FirstStyle) и щелкнуть на кнопке ОК. На рис. 1.82 предвари-
тельно был выделен диапазон ячеек А1 :А4, после чего к диапазону применен разра-
ботанный стиль.

Stykname: .. ]FirstStyle

5tyle includes ; [« fe , ;> .

Р Number . . . General ;• .-, •• o.oo .-..


Р Л)|дгв»г* General, 8<*tontAl9ned 17 Afgmw* Horizontal Center, Vertical Center
Aligned (Wrap)
!
' . *riaUO; p£or* ;•" Times Mew Roman 12, SoW Sue
NoBwcfcre, F Border,:;-., i*-ft, (tight, Top, Bottom Borders

F Ealttms No Sharing I ' 17 Eattems Shaded



F Protection locked F Protection Locked

Puc. 1.80. Диалоговое окно Style Рис. 1.81. Создание стиля пользователя

Кроме того, в процессе применения стиля можно деактивизировать некоторые


его параметры. Например, к ячейкам В1 :В4 применен.тот же формат, но только с от-
мененными опциями Number и Font (см. рис. 1.82). Поэтому ячейки выделены рам-
кой и фоном, данные в ячейках выровнены по центру, однако шрифт используется
Arial размера 10 пунктов, как в используемом по умолчанию стиле Normal
(Обычный). Тем не менее, пользоваться командами раздела Style Includes (Стиль
включает) следует крайне осторожно. Дело в том, что если для выделенного диапа-
зона ячеек стиль применяется с одновременной отменой команд из указанного раз-
дела, то такие настройки будут применены к диапазону без внесения изменений в
другие ячейки рабочего листа, отформатированные данным стилем. Ситуация про-
иллюстрирована на рис. 1.82, где к диапазону С1 :С4 применен стиль FirstStyle, в ко-
тором, помимо упомянутых выше, отменена еще и опция Border (Граница).
Как можно заметить, ячейки диапазона рамкой не выделяются. При этом способ
форматирования ячеек в диапазоне А1 :В4 не изменился.

Глава 1. Знакомство с Excel 95


Принципиально иной является ситуация когда, например, к ячейкам диапазона
D1 :D4 применяется тот же стиль, что и в предыдущем случае, но с дополнительно
отмененной опцией выделения фоном Patterns (Вид) и активной опцией Number
(Число). В этом случае данный диапазон фоном не выделяется, однако изменился
формат представления числа в ячейках В1 и С1 (рис. 1.83).

a MiiSliFles_1.xls
_.А __В _ С___

2..J' text , text text


М very long very long 1 very long
3 : text text text
4
5
|: ~
M t > >l\Sheetl/Sh«*2/5h| <| _ j •IfT
Puc. 1.82. Применение созданного сти- Рис. 1.83. Пример применения форма-
ля к диапазону ячеек та пользователя

Поэтому гораздо надежнее вносить изменения непосредственно в описание фор-


мата (т.е. с помощью кнопки Modify и выполнения последующих настроек в диало-
говом окне Format Cells). В этом случае изменения применяются сразу ко всем
ячейкам, к которым будет применен стиль.
Помимо непосредственного определения параметров нового стиля в диалоговом
окне Format Cells, можно пойти более простым путем. Если в рабочем листе есть
ячейка, содержащая подходящие настройки форматирования, можно выделить эту
ячейку, а потом выбрать команду Format^Style, сохранить в открывшемся окне но-
вый стиль, и, если в этом есть необходимость, внести изменения.
Совет. На панели инструментов можно разместить поля Style (Стиль) с раскры-
вающимся списком стилей и определить стиль по ячейке рабочего листа. Как до-
бавляются кнопки на панели инструментов, рассказывается в следующем разделе.
Чтобы удалить стиль, его выбирают из соответствующего списка и щелкают на
кнопке Delete в окне Style.

I Замечание. Стиль Normal (Обычный) таким методом удалить невозможно, но


это делать и не нужно.
Существует еще одна проблема, связанная с тем, что созданные пользователем стили
доступны только в рамках того документа, при работе с которым они определены. Одна-
ко у этой проблемы есть достаточно эффективное решение. Состоит оно в том, что стили
из одного документа копируются в другой. Для этого оба документа должны быть от-
крыты. В том документе, куда копируется стиль, выбирают команды FormatoStyle и в
открывшемся диалоговом окне щелкают на кнопке Merge (Объединить). После этого от-
крывается диалоговое окно Merge Styles (Объединить стили) со списком открытых на
текущий момент документов. Нужно выбрать тот документ, из которого копируются
стили, и щелкнуть на кнопке ОК. В результате будут скопированы все стили данного до-
кумента. Если в документах есть стили с совпадающими названиями, будет выведено со-
общение с вопросом, следует ли переопределять такие стили. Если согласиться, то все без

Часть I. Основы Excel


исключения стили с совпадающими названиями будут переопределены без последую-
щих предупреждений. Если отказаться от переопределения стилей, то стили с совпа-
дающими названиями копироваться не будут.

Настройка графического интерфейса


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

Управление панелями инструментов


Для того чтобы отобразить ту или иную 'панель, следует в подменю Toolbars
(Панели инструментов) меню View (Вид) установить флажок у названия этой панели.
Разместить панель инструментов в нужном месте рабочего листа можно, например, с
помощью мыши. Это обычная практика работы с приложениями Microsoft Office.
Общее представление о назначении панелей инструментов легко получить из
табл. 1.25, где перечислены доступные по умолчанию панели инструментов и приведе-
на краткая справка о командах, которые можно выполнять с помощью этих панелей.
Данный список можно также увидеть, если выбрать команду View1*Toolbars.

Таблица 1.25. Панели инструментов

Панель инструментов Описание


Standard (Стандартная) Стандартная панель инструментов. Отображается по умолча-
нию. С помощью кнопок этой панели можно открывать и со-
хранять файлы, выводить их на печать, выполнять поиск дан-
ных, копирование и вставку объектов, вставку гиперссылок,
диаграмм и выполнять ряд других действий, связанных с
общими вопросами работы с документом
Formatting Панель форматирования, отображаемая по умолчанию. С помо-
(Форматирование) щью этой панели можно выполнять основные процедуры по
форматированию данных: применение шрифтов различных ти-
пов, размеров и стилей, выравнивание текста, объединение ячеек
и применение числового, процентного и некоторых других фор-
матов. Помимо этого, можно выполнять закраску ячеек, менять
цвет шрифта и отображать рамки ячеек
Borders (Границы) Панель отображения границ ячеек. На этой панели представ-
лены кнопки, с помощью которых можно в достаточно удобном
режиме задать цвет отображения рамки вокруг ячейки и ото-
бразить сами рамки. Функционально практически такие же
возможности (за исключением, пожалуй, только изменения
цвета границы и типа линии) предоставлены пользователю в
рамках панели форматирования (однако в данном случае они
реализованы несколько иначе)

Глава 1. Знакомство с Excel 97


Окончание табл. 1.25

Панель инструментов Описание


Chart (Диаграмма) Панель диаграмм. Кнопки на панели полезны в тех случаях,
если в таблицу нужно вставить диаграмму и выполнить общую
ее настройку
Control Toolbox Панель для работы с элементами управления. С помощью этой
(Элементы управления) панели в рабочие документы можно добавлять метки, пере-
ключатели, кнопки, списки и прочие элементы. Для использо-
вания последних, правда, приходится писать специальные
коды. Подробнее об этом будет сказано в третьей главе
Drawing (Рисование) Панель с инструментами для работы с графикой. Посредством
этой панели выполняется вставка всевозможных графических
объектов (овалы, квадраты, текстовые поля, разнообразные
стрелки и т.п.). Допускается использование ряда специальных
эффектов (например, выделение цветом)
External Data (Внешние Панель работы с внешними данными
данные)
Forms (Формы) Панель работы с формами. Используется при работе
с макросами
Formula Auditing Панель содержит кнопки, которые полезны в случае отслежи-
(Отслеживание формул) вания взаимозависимостей в формулах. Обычно это делается
при поиске ошибок и анализе получаемых результатов
Picture (Рисунок) Панель для вставки изображений и настройки способа их ото-
бражения в рабочем документе
PivotTable Панель для создания и работы с отчетами
Protection (Защита) Панель настройки режима защиты и коллективного использо-
вания документа
Reviewing Панель полезна при работе с комментариями к ячейкам. Кроме
(Рецензирование) того, с помощью кнопок панели можно выполнять некоторые
операции, связанные с отправкой электронных сообщений
Task Pane (Область Окно области задач, отображаемое по умолчанию
задач)
Text To Speech (Текст Панель инструментов с утилитами для озвучивания содержи-
в речь) мого ячеек рабочих листов Excel
Visual Basic Панель содержит кнопки перехода к редакторам сценариев,
редактору VB, кнопки записи макросов и т.п.
Watch Window (Окно Окно просмотра, в котором можно отслеживать значения в вы-
просмотра) бранных ячейках
Web Панель для работы в сети
WordArt Панель для вставки и работы с объектами графического текста
WordArt

98 Часть I. Основы Excel


На каждой панели инструментов отображается стандартный, заранее предопре-
деленный набор кнопок, который может быть изменен. Для этого достаточно, на-
пример, выбрать команду View^ToolbarsoCustomize и в открывшемся диалоговом
окне Customize (Настройка) перейти ко вкладке Commands (Команды) (рис. 1.84).

То add л command to a toolbar:


command out of this daM) box to a
Categories; Commantfa:

Puc. 1.84. Диалоговое окно Customize

В списке Categories (Категории) следует выбрать нужный раздел (названия, за


некоторыми исключениями, практически повторяют названия меню). Справа в спи-
ске Commands отображаются кнопки (точнее, названия команд, для некоторых ука-
заны и пиктограммы). Для того чтобы разместить кнопку для соответствующей ко-
манды, следует поместить указатель мыши на строку команды, нажать левую кнопку
и, не отпуская ее, перетащить появившуюся "кнопку" на ту или иную панель
(подойдет любая из отображенных панелей, однако лучше выбрать ту, что наиболее
соответствует данной команде по контексту). Процесс размещения кнопки на панель
инструментов проиллюстрирован на рис. 1.85.
В данном случае на панель Formatting выносится кнопка для команды Pattern
(Узор). Поскольку для данной команды предлагается пиктограмма, то она и будет
отображена на панели инструментов. В случае, если по умолчанию для команды
пиктограмма не предлагается, ее можно создать самостоятельно. В частности, после
размещения кнопки на панели становится доступной кнопка Modify Selection
(Изменить) в диалоговом окне Customize (Настройка). Вид открывающегося при
этом списка показан на рис. 1.86. Назначение команд раскрывающегося списка опи-
сано в табл. 1.26.

( Замечание. Список приведен для команды завершения сеанса работы с прило-


жением Exit (Выход), которая расположена в разделе File (Файл).

Глава 1. Знакомство с Excel 99


Bte'.""'. gdft $ew Insert format loofe £ata V^indow fcteJp
5
f" ! --5? f~5 ^ f»d j^ ПЬ WO- V 1~H. f^3 -'"^f »-~i r-j ••*
1.Л i^*" Ш [rj ^J fey LCi v - d?i Ф1 ЩЗ * '*/ j ,*? •

Arial -r 10 » .; .p -..J ,,U.

Open a workbook
MyStytesJ.xJs
'Toofears fipmtnands | Qp Format_Cond,xls
To add a command to a todx y and drag the Formulas_Format.xls
command out of this datog bo Sheet_Format.xls
Categories:.; '•-.'• (. Q^ More workbooks.,.
AD Borders a New
Bottom Double Border D Blank Workbook
Ftfl Color I > New from existing workbook
Tools Pattern j!ky Choose workbook..,
Data
Window and Help Dark Shading New from template
Drawing ) Genera!Templates...
AutoShapes
I Templates en my Web Sites..,
Selected command;
j Templates on Microsoft.corn
Descrtetton

Й Add Web Folder...


BJ. (3 Microsoft Excel Help
|l (У] Show at startup
> W \Sheet 1/sheeE./ sheets/
Ready NUM

'3 i '')(f j : ••
Рис. 1.85. Процесс размещения кнопки на панель инструментов

Reset Puc. 1.86. Список команд, доступных


Delete после щелчка на кнопке
Name: E&xt Modify Selection
Copy Button Image
Paste Button Image
Reset Button Image
£dit Button Image...
Change gutton Image

Default Styte

!
Tea Cyily (ii Menus)
ч Image and Text

Begin a Group

Assign Hyperlink
. Assign Macro...

100 Часть I. Основы Excel


Таблица 1.26. Команды из списка Modify Selection
Команда списка Описание
Reset (Восстановить) С помощью этой команды можно восстановить исходные на-
стройки для кнопки
Delete (Удалить) Удаление кнопки с панели инструментов
Name (Название) В этом поле указывается название, которое будет отобра-
жаться на кнопке (если выбран режим отображения текста
в названии кнопки)
Copy Button Image С помощью этой команды можно скопировать изображение
(Копировать изображение (пиктограмму) выбранной кнопки
кнопки)
Paste Button Image Вставка пиктограммы в качестве изображения кнопки
(Вставить изображение
кнопки)
Reset Button Image Восстановление изображения кнопки к исходному виду
(Восстановить изображе-
ние кнопки)
Edit Button Image Редактирование изображения кнопки. Открывается редактор
(Редактировать изображе- изображений, который описывается ниже
ние кнопки)
Change Button Image Подменю содержит набор пиктограмм, которые можно выби-
(Заменить изображение рать в качестве изображений кнопки
кнопки)
Default Style (Стиль по Отображение кнопки или панели инструментов с использо-
умолчанию) ванием стиля, применяемого по умолчанию. Для кнопок в
этом случае отображается только пиктограмма
Text Only (Always) В качестве пиктограммы кнопки используется текст
(Только текст, всегда)
Text Only (in Menus) Если соответствующая команда размещается в меню, то для
(Только текст, в меню) нее будет указано только название
Image and Text Отображение в меню как пиктограммы кнопки, так и тексто-
(Изображение и текст) вого названия
Begin a Group (Начать Вставка символа начала группы (вертикальная линия).
группу) Чтобы удалить символ начала группы, следует еще раз щелк-
нуть на команде (убрать флажок)
Assign Hyperlink Присвоение гиперссылки. Подменю содержит три элемента:
(Присвоить гиперссылку) Open (Открыть), Insert Picture (Вставить рисунок) и
Remove Link (Удалить ссылку), последняя команда при первом
присвоении гиперссылки неактивна. С помощью первой коман-
ды можно выбрать тот документ, на который выполняется гипер-
ссылка. Команда Insert Picture (Вставить рисунок) полезна в том
случае, если в результате щелчка на кнопке следует вставить
графическое изображение. Наконец, команда Remove Link
(Удалить ссылку), которая активна только после того, как гипер-
ссылка присвоена (при этом название подменю меняется на
Edit Hyperlink), нужна для удаления этой гиперссылки
Assign Macro (Присвоить Присвоение макроса. Как создавать и использовать макросы,
макрос) рассказывается в третьей главе

Глава 1. Знакомство с Excel 101


Как отмечалось выше, при выборе команды Edit Button Image (Редактировать
изображение кнопки) открывается редактор пиктограмм. Окно этого редактора по-
казано на рис. 1.87.

Picture Cotofs

±1

Рис. 1.87. Окно редактора пиктограмм

Непосредственно рисунок создается или редактируется в поле Picture (Рисунок).


Для этого предварительно в поле Colors (Цвета) следует выбрать цвет отображения.
Если затем щелкнуть мышью в поле Picture, соответствующая точка окрасится вы-
бранным цветом. Чтобы удалить закраску, можно либо еще раз щелкнуть на ней
мышью, либо выбрать элемент Erase (Стереть). В этом режиме можно удалять вне-
сенные изменения. Для очистки всей рабочей области щелкают на кнопке Clear
(Очистить). В разделе Preview (Предварительный просмотр) сразу же можно ви-
деть, как будет выглядеть кнопка с создаваемой пиктограммой.
Кнопки в разделе Move (Переместить) полезны в том случае, если все изображе-
ние нужно переместить вправо, влево, вверх или вниз. Однако эти кнопки доступны
только в том случае, если размеры и расположение изображения позволяют выпол-
нить такое перемещение. Для подтверждения внесенных изменений щелкают на
кнопке ОК, для отмены — на кнопке Cancel.
Совет. Если нужно поместить команду не на панель инструментов (в виде кноп-
ки), а в список меню, поступают практически так же, как и при размещении
кнопки на панели инструментов. Для этого следует открыть диалоговое окно
Customize (кстати, можно просто щелкнуть правой кнопкой мыши на панели ин-
струментов или меню и выбрать из раскрывшегося списка одноименную команду
Customize), затем открыть меню, куда будет помещаться команда, и, выделив
соответствующую команду в диалоговом окне Customize (Настройка), перемес-
тить ее туда, где она должна размещаться в списке меню.

Замечание. Кнопки можно размещать не только на панели инструментов и в ка-


честве элементов в списках меню, но и, например, непосредственно на панели ме-
ню. Делается это абсолютно так же, как и размещение кнопки на панели инстру-
ментов. Кроме того, на панелях инструментов и меню можно размещать допол-
нительные меню — категория Built-in Menus (Встроенные меню). Процедура
аналогична описанной выше.

102 Часть I. Основы Excel


Создание панелей пользователя
Весьма примечательная возможность, предоставляемая пользователю в рамках
приложения Excel (хотя это относится и к прочим приложениям Microsoft Office), —
создание собственных панелей инструментов и новых меню. В частности, для созда-
ния новой панели инструментов следует открыть диалоговое окно Customize и на
вкладке Toolbars щелкнуть на кнопке New (рис. 1.88). В результате открывается
окно New Toolbar (Новая панель) (рис. 1.89), где можно задать название для созда-
ваемой панели инструментов.
После этого панель будет отображаться в списке доступных панелей и на ней
можно будет размещать кнопки. Причем в этом случае все выполненные настройки
будут иметь место по отношению к приложению Excel в целом. Другими словами,
созданная панель будет доступна из любого документа Excel. Иногда бывает удобно,
чтобы панель была доступна только в каком-то рабочем документе. Это особенно ак-
туально, когда панелей создано много, и каждая достаточно специфична и использу-
ется в немногих документах. В таких случаях можно прикрепить панель инструмен-
тов к рабочему документу (и не одному). Для этого следует на вкладке Toolbars
щелкнуть на кнопке Attach (Прикрепить), в результате чего откроется диалоговое
окно Attach Toolbar (Прикрепить панель инструментов) (рис. 1.90). В этом диалого-
вом окне в поле Custom toolbars (Панели пользователя) следует выбрать нужную
панель и щелкнуть на кнопке Сору (Копировать). После этого, даже если удалить
созданную ранее панель (на вкладке Toolbars следует выбрать панель и щелкнуть на
кнопке Delete), панель будет доступна (равно как и после закрытия документа).

Toofears I Commands | Options |

Todba/st

Formatting
3-D Settings
Borders
Chart
Chart Menu Bar
Circular Reference
Control Toolbox
Diagram
Drawing
Drawing Canvas
Exit Design Mode
External Data
Forms
Formula Auditing
Full Screen
Organization Chart

Puc. 1.88. Создание новой панели инструментов

Toobar name:
МуТооЬаН

Рис. 1.89. Название для новой панели

Глава 1. Знакомство с Excel 103


Attach Toofbais

Toolbars in workbook:
EuroPlaceholder 2000 "3

Caned

Puc. 1.90. Прикрепление панели к документу

Чтобы открепить панель от документа, следует снова открыть окно Attach Toolbar, но
только на этот раз выбрать открепляемую панель в правом списке Toolbars in workbook
(Панели в книге), при этом кнопка Сору превратится в кнопку Delete, на которой и нуж-
но и щелкнуть.
Примерно так же создается и новое меню. На этот случай на вкладке Commands
в списке Categories есть элемент New Menu (Новое меню). Если выделить этот эле-
мент, то справа, в списке Commands, появится одноименный элемент (со стрелкой),
который с помощью мыши и следует переместить в нужное место панели меню
(рис. 1.91).

.«fj jjjfe |d» ^ew Insert Fo/mat loob fiata KJndow tt* J
v
о s# у d> <a: s a ? ' x % e • <? «•• «• • «i,^ - it li
" A1 "' 1* IS
D J ...G

2_j Forma^Cond.xIs
MyStyles_l.xls
Toolba-s Commands
Formulas_Format. ids
To add a commend to a Cooker: select a category and drag the Sheet_Format,xls
command out of this cfiabsg box to a toolbar.
More workbooks..,
Cateflciries: Commands:
S ' Window and Help j*J , New Menu >j_ll
gj I D Blank Workbook
iril Auto5hapes
Charting j New front tKisting wcM-kbook
tfj
Web [i£j Choose workbook, . .
12' Forms
Control Toolbox frprn template

Uj
Macros
Jd Li] General Templates...
BuilHnMer ^^™.
1&I ИЙ Templates on my Web Sites , . .
16: l|[] Templates on Microsoft.com
irl
19
2Q1
21:
22": C3 Add Web Folder...
Щ (5 Microsoft Excel Help
ж;:
'Л '-4 w;\Sh
У Show at startup

PMC. 151 Размещение новою меню на панели

104 Часть I. Основы Excel


После того как новое меню размещено на панели, разумно определить его назва-
ние. Для этого данное меню следует выделить и щелкнуть на кнопке Modify Selection
(Изменить), которая размещена на вкладке Commands диалогового окна Customize.
В результате открывается список, элементы которого уже описывались выше. Боль-
шинство команд этого списка будут недоступны. Однако в поле Name (Название)
можно ввести название для выбранного меню (рис. 1.92). После нажатия клавиши
<Enter> название будет применено к меню (в данном случае это My Menu).

и \Sheet l/Sheet2 /Sheets /

PMC. /.52. Редактирование названия нового меню

В новом созданном меню нет команд, поэтому если на нем щелкнуть мышью,
будет отображен небольшого размера серый квадрат. Однако команды в меню мож-
но добавить. Делается это точно так же, как и в случае добавления команд к уже су-
ществующим меню.
Для удаления меню следует:
1. Открыть диалоговое окно Customize.
2. Выделить удаляемое меню.
3. Перейти ко вкладке Commands (окно Customize).
4. Щелкнуть на кнопке Modify Selection.
5. В открывшемся списке выбрать команду Delete (рис. 1.93).

Глава 1. Знакомство с Excel 105


Format_Cond.xls
MyStylesJ ,xls
Formulas_Format.:ds
Sheet_Format.xls
<Sr More workbooks...

Window and Help


Drawing D Blank Workbook
AutoShapes
Charting New from existing workbook
Web i£j Choose workbook...
Forms
Control Toolbox New from template
If] General Templates...
Templates on my Web Sites..
Templates on Microsoft.com

Q( Add Web Folder...


Microsoft Excel Hep
__< ---^sheetl Show at startup

Ready

аазЧТаш в a © ПШЕ^-
PMC. f ..95. Удаление меню

Выше были рассмотрены вопросы, связанные с внесением изменений в настрой-


ки системы в части панелей инструментов и меню. Однако в некоторых случаях
приходится возвращаться к исходным, предопределенным параметрам.

Восстановление панелей и меню


Для восстановления панелей инструментов используется кнопка Reset (Восстановить)
на вкладке Toolbars диалогового окна Customize. Чтобы вернуть панель к ее исходному со-
стоянию (используемому по умолчанию), эту панель следует выбрать в списке Toolbars и
щелкнуть на кнопке Reset (Восстановить). Появится окно предупреждения с вопросом,
действительно ли следует восстанавливать вид данной панели. После подтверждения па-
нель будет возвращена к первоначальному виду.
Если при восстановлении выбрать в списке Toolbars элемент Worksheet Menu Bar
(Панель меню рабочей книги), то будут восстановлены все меню и подменю.
Совет. Как уже отмечалось ранее, для того, чтобы восстановить вид кнопки или
отдельного меню к первоначальному состоянию, можно выделить соответствую-
щий элемент (при открытом диалоговом окне Customize (Настройка)) и выбрать
команду Reset (Восстановить) в списке Modify Selection (Изменить). Этот спи-
сок открывается либо после щелчка на одноименной кнопке, либо после щелчка
правой клавишей мыши на восстанавливаемом элементе.

106 Часть I. Основы Excel


Типы документов и использование шаблонов
Достаточно эффективные методы работы основаны на использовании шаблонов.
Файлы шаблонов содержат основные данные о способах форматирования докумен-
тов. Их разумно использовать в тех случаях, когда приходится создавать много од-
нотипных документов. В этом случае шаблоны позволяют сохранить время, необхо-
димое на выполнение форматирования, к тому же (что не менее важно) поддержива-
ется приемлемая степень универсальности формата. Файлы шаблонов имеют
расширение .xlt. В качестве справки в табл. 1.27 перечислены основные расшире-
ния, используемые для документов приложения Excel.

Таблица 1.27. Расширения документов приложения Excel

Расширение Описание
Файл рабочей книги Excel
• xlw Файл рабочей области. В этом файле сохраняются не только рабочие
документы, но и их взаимное размещение, т.е. вся рабочая область
Файл шаблона
Резервная копия файла
_ Файлы надстроек _

В файлах шаблонов могут содержаться не только настройки формата, но и данные.


Наиболее простой способ создания шаблонов состоит в том, чтобы в качестве основы
использовать рабочий документ Excel. Это должен быть документ, содержащий все ос-
новные элементы, которые потом будут использоваться в прочих документах
(например, название полей, выделение областей фоном и цветом и т.п.). Чтобы сохра-
нить такой документ в качестве шаблона, следует выбрать команду File^Save as,
в списке Save as type (Сохранить в виде) выбрать Template (Шаблон), указать назва-
ние для шаблона и щелкнуть на кнопке Save.

Внимание! При выборе в качестве типа сохраняемого файла шаблона автоматиче-


ски совершается переход к папке, где хранятся шаблоны приложения. Сохранять
файл в другой папке не рекомендуется, поскольку такой шаблон не будет отобра-
жаться во вкладке General (Общие) диалогового окна Templates (Шаблоны), кото-
рое открывается при создании нового документа на основе шаблона.
Создать файл на основе шаблона можно, если, например, выбрать команду
General Templates (Общие шаблоны) в области задач в разделе New from template
(Новый по шаблону). В результате откроется диалоговое окно Templates, содержа-
щее несколько вкладок. Там перечислены доступные шаблоны, выбрав один из ко-
торых, можно создать документ.

Совет. Создавать файлы можно не только на основе шаблонов, но и на основе


уже существующих документов. С этой целью в области задач выбирают команду
Choose workbook (Выбрать книгу) из раздела New from existing workbook
(Новый на основе существующей книги). Выбирается рабочая книга, на основе
которой создается новая.

Глава 1. Знакомство с Excel 107


Замечание. При запуске приложения Excel все файлы, находящиеся в папке
XLStart (обычно полный путь к папке напоминает нечто вроде C:\Program Files\
Microsoft Office\Office10\XLStart, если при установке приложения использова-
лись настройки, предлагаемые по умолчанию), загружаются автоматически.
Кроме того, файл с названием Book.xls используется в качестве базового при соз-
дании нового рабочего документа (книги), а файл с названием Sheet.xls опреде-
ляет тип нового рабочего листа, который добавляется выбором команды
Insert^Worksheet (Вставка^Рабочий лист) при работе с книгой.

Следует отметить, что в этой главе были освещены далеко не все вопросы, свя-
занные с работой приложения Excel. Главных причин тому две. Во-первых, прило-
жение это является достаточно емким как по возможностям, так и по принципу на-
стройки. Поэтому описать абсолютно все невозможно, да и не нужно. Выше была
предпринята попытка выделить лишь основные моменты, знание которых позволит
эффективно работать с Excel. Во-вторых, приложение является все же многоцеле-
вым, несмотря на то, что создавалось оно в расчете на использование главным обра-
зом в финансово-бухгалтерской деятельности, поэтому далеко не все возможности
Excel будут востребованы при выполнении инженерных расчетов и статистической
обработке экспериментальных данных. Этот факт принимался во внимание при
описании основных режимов и настроек. Наконец, если в дальнейшем по ходу изло-
жения потребуется применять методы, не описанные ранее, по ним будет дана крат-
кая, но исчерпывающая справка.

108 Часть I. Основы Excel


ГЛАВА 2

Анализ данных в Excel


В этой главе...
• Формулы в Excel
• Функции в Excel
• Примеры использования функций
• Использование названий
• Создание диаграмм и графиков

J3 этой главе речь пойдет об основных математических приемах и методах,


используемых при работе с Excel. Сначала будет рассказано о том, как в Excel можно
связывать данные в разных ячейках таблицы между собой, как обрабатывать их,
какие могут выполняться математические и логические операции. При этом совсем
не обязательно, чтобы все используемые данные находились не то что в одном рабо-
чем листе, но и в одной рабочей книге. Здесь же будет описано, как в Excel создаются
графики и диаграммы. Однако для начала выясним, как в Excel для обработки дан-
ных используются формулы.

Формулы в Excel
В первую очередь определимся с тем, как формулы вводятся в ячейку рабочей
книги и что для этого нужно делать. Частично эти вопросы затрагивались в преды-
дущей главе.

Ввод формул
Для того чтобы ввести в ячейку формулу, прежде всего данную ячейку следует
выделить. Самый простой способ — щелкнуть на ней мышкой. После того как ячейка
выделена, ее название отобразится слева от строки формул в поле названия. Сама
ячейка при этом будет выделена толстой рамкой с жирной точкой в правом нижнем
углу (это маркер заполнения). На рис 2.1 выделена ячейка В2.
Если данные вводятся в строку формул (для чего на ней нужно щелкнуть мыш-
кой), все будет происходить практически так же, с той незначительной разницей, что
курсор мигает в строке формул (рис. 2.2) и, разумеется, там же вводятся данные.
В ячейке они при этом дублируются. По завершении ввода следует нажать клавишу
<Enter>.
Рис. 2.1. Выделена ячейка В2 Рис. 2.2. Курсор ввода находит-
ся в строке формул
Примерно так же, как и числа, в таблицу заносятся формулы. Главное правило,
которое следует запомнить при работе с формулами в Excel, состоит в следующем:
все формулы начинаются со знака равенства. Если знак равенства пропустить, вы-
ражение, введенное в ячейку или строку формул, будет интерпретироваться как тек-
стовое значение. В качестве примера в ячейку В2 введем формулу =3+4.
Замечание. В Excel допускается использование операторов сложения (+), вычи-
тания (—), умножения (*) и деления (/). В Excel также есть оператор возведения в
степень (Л). Приоритетность этих операций стандартная для алгебраических вы-
ражений. Кроме того, при наборе формул допускается использование скобок
(их часто применяют для большей наглядности).
Результат ввода до нажатия клавиши <Enter> показан на рис. 2.3.
В данном случае формула вводится в строку формул, а не в ячейку, хотя это не
принципиально. Кроме того, слева от строки формул вместо названия активной
ячейки можно заметить слово SUM. Это предлагаемая по умолчанию одна из встро-
енных функций. После нажатия клавиши <Enter> рабочее окно будет иметь вид, ко-
торый показан на рис. 2.4.
Замечание. Чтобы увидеть полный список встроенных функций, можно щелк-
нуть на кнопке раскрывающегося меню справа от указанного поля (этот вопрос:
будет рассматриваться далее).

Рис. 2.3. Процесс ввода формулы Рис. 2.4. Результат ввода форму-
лы и ее выполнение

Замечание. Такой вид рабочее окно будет иметь, если нажать клавишу <Enter>,
а затем вновь выделить ячейку В2 мышью. Дело в том, что при нажатии клавиши
<Enter> фокус переходит к другой ячейке. В данном случае активной станет та
ячейка, которая расположена под ячейкой В2. Поэтому ячейку В2 нужно снова
выделить мышью либо перейти к ней с помощью клавиши со стрелкой.

В строке формул все останется без изменений, а вот в ячейке В2 будет отображе-
но число 7 — результат сложения чисел 3 и 4. Приведенный пример является иллю-
страцией еще одного правила: в строке формул отображается формула, а в соот-
ветствующей ячейке — результат ее вычисления.

110 Часть I. Основы Excel


Если выполнение указанного правила контролируется приложением, то ввод
знака равенства перед формулой всецело ложится на плечи пользователя. Причем
пренебрежение этим правилом может привести к серьезным неприятностям. В каче-
стве примера рассмотрим ситуацию, когда при вводе суммы чисел пропущен знак
равенства. Результат представлен на рис. 2.5.

Рис. 2.5. Пример неправильного ввода формулы

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

Выполнение простых ссылок


Вся прелесть работы с Excel состоит в том, что при выполнении вычислений
можно ссылаться на данные, размещенные во всевозможных ячейках. Причем эти
ячейки могут находиться не только в разных листах рабочей книги, но даже в разных
документах. Начнем с самых элементарных примеров, а именно с того, как выпол-
няются ссылки на ячейки в пределах одного рабочего листа книги.
В самом простом варианте ссылка на ячейку выполняется указанием ее адреса.
Адрес ячейки, как известно, состоит из названия (литеры или литер) столбца и но-
мера строки.

( Внимание! Существует еще и такой формат адресации, как R1C1, но о нем речь
пойдет несколько позже.
Если в формуле нужно сослаться на данные (число), хранящиеся в какой-нибудь
ячейке, вместо этого числа в формуле указывается соответствующий адрес. В каче-
стве примера рассмотрим задачу о падении тела в поле тяжести Земли с некоторой
высоты без начальной скорости. В этом случае за время t тело пролетает расстояние
S, равное S = gfl2. Величина g — это ускорение свободного падения, равное примерно
9,8 м/с2. Проанализируем зависимость пройденного расстояния от времени.
Для начала в ячейки таблицы внесем названия (для удобства дальнейшей рабо-
ты). Так, в ячейку А1 введем символ g, в ячейку А2 введем символ t и в ячейку A3 —
символ S соответственно. Вид таблицы показан на рис. 2.6.
После этого во второй строке вводим числа. В ячейку А2 введем значение уско-
рения свободного падения — 9.8. В ячейку В2 введем 1, что подразумевает вычисле-
ние пройденного телом пути за одну секунду.
| Замечание. Десятичная дробь от целой части числа отделяется точкой.
Л
В ячейку С2 введем формулу =А2*В2 2/2. По мере ввода этой формулы последо-
вательно будут выделяться ячейки, на которые в этой формуле есть ссылки.
Этот процесс проиллюстрирован на рис. 2.7 и 2.8.
После того как формула набрана, можно нажать клавишу <Enter> (или щелкнуть
на кнопке с зеленой галочкой слева от строки формул). Результат показан на рис. 2.9.

Глава 2. Анализ данных в Excel


Рис. 2.6. Заполнение ячеек тек- Рис. 2.7. При наборе формулы ав-
стовыми значениями томатически выделяются ячей-
ки, на которые в формуле есть
ссылка. Выделена ячейка А2
SUM X -J A =A2*B2 «2/2|
; A i В ! С
i t _ s
2 f 9.81 A
l)*B2 2/2
3_j i... f
4i

Рис. 2.8. Выделены ячейки (А2 и Рис. 2.9. Результат вычислений


В2), на которые есть ссылки в согласно введенной формуле
формуле

В ячейке С2 можно видеть правильное значение для пройденного телом за одну


секунду расстояния (4.9 метра).
Полезность использования ссылок очевидна в тех случаях, когда требуется мно-
гократно проводить вычисления по одним и тем же формулам, но для разных вход-
ных данных. Например, если требуется вычислить расстояние, пройденное телом за
две секунды, не потребуется вводить все данные заново. Достаточно поменять зна-
чение в ячейке В2 на 2 и нажать <Enter>. После этого в ячейке С2 автоматически
будет отображен результат. На рис. 2.10 можно видеть, что получается в этом случае.

S3 Рис. 2.10. Расстояние, пройденное телом за


две секунды
19.6

Этот простой пример далеко не в полной мере демонстрирует возможности Excel


в плане манипулирования данными, хранящимися в ячейках таблицы. Возможности
Excel намного шире. Однако прежде следует определиться с тем, какими ссылки
могут быть в принципе и чем одни ссылки отличаются от других.

Абсолютные и относительные ссылки


В дальнейшем для определенности в тех случаях, когда название ячейки исполь-
зуется в формуле, будем говорить, что это ссылка. Ссылку следует отличать от адре-
са ячейки (или ее названия, которое формально совпадает с адресом). Другими сло-
вами, ссылка — это название ячейки, которое оказалось в нужное время в нужном
месте (имеется в виду формула).
Ссылки в Excel делятся на абсолютные и относительные. Те ссылки, например, что
использовались в примере из предыдущего подраздела— относительные (как это ни
странно может показаться!). Разница между тем, относительная ссьшка или абсолютная,
проявляется, по большому счету, только при копировании содержимого ячеек.

112 Часть I. Основы Excel


Замечание. Относительные ссылки — как партизаны на железной дороге. Пока
движения нет, они ведут себя очень прилично. Сюрпризы начинаются при по-
пытке что-то куда-то переместить.
В случае абсолютных ссылок они копируются без изменений. Например, абсо-
лютная ссылка на ячейку в третьей строке второго столбца так и останется ссылкой
на третью строку второго столбца, куда бы соответствующая формула ни копирова-
лась. Следовательно, абсолютная ссылка — это ссылка на какое-то определенное,
фиксированное место в таблице.
Замечание. В этом проявляется твердый, нордический характер абсолютных
ссылок. Поэтому людям доброй воли и всему прогрессивному человечеству по
духу ближе относительные ссылки.

Концепция относительных ссылок такова, что ссылка задается по отношению к


той ячейке, где размещена формула. Например, если сказать, что нужная ячейка по
отношению к текущей размещена на два столбца вправо и на три строки вниз, то это-
го будет достаточно, чтобы определить ячейку (если известна текущая!). При копи-
ровании ссылка, по большому счету, таксой и остается, т.е. она указывает на ячейку,
размещенную на два столбца вправо и на три строки вниз, но уже по отношению к
той ячейке, куда скопирована формула. Это бывает исключительно удобно при ко-
пировании формул. Однако основная путаница возникает по причине не совсем
удачного способа выполнения относительных ссылок. Продемонстрируем это на
конкретном примере.
Л
Так, если в ячейку ВЗ ввести формулу =А1 2, то А1 — это относительная ссылка
на ячейку, расположенную к активной на две строки вверх и на один столбец влево
(рис. 2.11). В ячейку А1 предварительно введено число 2.
После того как нажата клавиша <Enter>, в ячейке ВЗ появится значение, равное
квадрату числа, находящегося в ячейке А1. Этот результат представлен на рис. 2.12.
До этого момента разницы в том, какая ссылка используется (абсолютная или от-
носительная), не было. Если бы на ячейку А1 была выполнена абсолютная ссылка
(о том, как это делается, рассказано ниже), результат был бы таким же.
Теперь скопируем содержимое ячейки ВЗ в ячейку С5. Для этого сначала выделим
ячейку ВЗ, после чего выберем команду Edit<=>Copy (Правка1^ Копировать). При этом
можно видеть, как ячейка, содержимое которой копируется в буфер обмена, выделяет-
ся специальным образом (рамка с бликами). После этого выбирается ячейка С5 и за-
тем команда Edit<=>Paste (Правка-=> Вставить). Результат показан на рис. 2.13.

' X л^ jt =A1"2| В4 Г*
А _ _8 . M~l~iS*EZ

1^1=
1 ,) 2

•6~\ i ! !

Рис. 2.11. Относительная ссыл- Рис. 2.12. Результат выполне-


ка на ячейку ния формулы со ссылкой

Глава 2. Анализ данных в Excel


В результате в ячейке С5 будет отображено число 16, а в строке формул для этой
ячейки можно видеть =ВЗЛ2. Здесь как раз и проявляется особенность относитель-
ных ссылок. Так, ячейка А1 по отношению к ячейке ВЗ находится на две строки
вверх и на один столбец влево. При копировании формулы, в которой содержалась
ссылка на ячейку А1, из ячейки ВЗ в ячейку С5, ссылка преобразуется таким обра-
зом, чтобы она указывала на ячейку, размещенную на две строки вверх и на один
столбец влево, но уже по отношению к ячейке С5. Несложно догадаться, что это
ячейка ВЗ. Если бы формула была скопирована, скажем, в ячейку D4, то ссылка бы
указывала на ячейку С2.

Рис. 2.13. Копирование формулы

Просто объясняется и число 16 в ячейке С5. Дело в том, что в ячейке ВЗ, согласно
формуле =А1Л2, вычисляется квадрат числа, содержащегося в ячейке А1. В ячейке С5
вычисляется квадрат того числа, что находится в ячейке ВЗ, а это, в свою очередь, квадрат
числа из ячейки А1. Два в четвертой степени есть шестнадцать. Таким образом, получи-
лась последовательность ссылок. Достаточно изменить число в ячейке А1, как автомати-
чески будут пересчитаны ячейки ВЗ и С5. Желающие могут это проверить.

Замечание. Справа внизу от ячейки С5 можно видеть значок с таким же изобра-


жением, как на кнопке Paste (Вставить) стандартной панели инструментов. Если
щелкнуть на этом значке, раскроется список, который показан на рис. 2.14.
Команды этого списка позволяют задавать различные режимы копирования со-
держимого буфера обмена в ячейку (в данном случае это ячейка С5). По умолча-
нию там активна первая в списке команда Keep Source Formatting (Сохранять
формат источника). В этом случае все происходит так, как описывалось выше.
Если нужно, например, скопировать в ячейку С5 именно число 4, а не формулу,
которая записана в ячейку В5, можно выбрать команду Values Only (Только зна-
чения). Тогда в ячейку С5 будет записано только число, и никаких формул.
Результат такого действия можно видеть на рис. 2.15. Впоследствии, если изме-
нится число в ячейке А1, на ячейке С5 это никак не отразится.
При выполнении абсолютной ссылки используется символ доллара ($). Напри-
мер, чтобы выполнить ссылку на ячейку А1, в формуле используют синтаксис $А$1.
В этом случае при копировании формулы из одной ячейки в другую ссылка будет
неизменной, указывая на одну и ту же ячейку независимо от того, куда копируется
формула. Проверить данный факт можно следующим образом. В ячейку ВЗ вместо
=А1Л2 введем формулу =$А$1Л2. Результат представлен на рис. 2.16. Как уже отме-
чалось, до тех пор, пока не выполняется копирование, особой разницы между отно-
сительной и абсолютной ссылками нет.
Теперь повторим процедуру копирования содержимого ячейки ВЗ в ячейку С5.
То, что получилось, можно наблюдать на рис. 2.17.

114 Часть I. Основы Excel


Match Destination Formatting

Values Only

Values and tjumber Formatting

j Values and Source Formatting

Keep Source Column Vjidths

Formatting Only
UnkCefc

Puc. 2.14. Копирование формулы

C5
e

Values and Number Formatting

_L j Valyes and Source Formatting

J Keep Source Column jtfjdths

"Jy Formatting Onty

Puc. 2.15. Копирование только числа

83 . =$AJ1«2 Рис. 2.16. Вставка


абсолютной ссылки

Рис. 2.17. Копирование


формулы с абсолютной
ссылкой

Глава 2. Анализ данных в Excel 15


В результате в ячейку С5 помещается точно такая же формула, как и в ячейке ВЗ
(и, разумеется, такое же значение).
Кроме абсолютных и относительных ссылок в формулах можно использовать и
так называемые смешанные ссылки. Ссылка, как известно, состоит из двух частей —
ссылки на столбец и ссылки на строку. Можно сделать так, что при копировании
будет меняться только ссылка на строку или столбец. В этом случае и говорят о
смешанной ссылке.
Замечание. Проще говоря, в смешанной ссылке одна ее часть является ссылкой
абсолютной, другая — относительной. Продолжая аналогию, смешанная ссыл-
ка — это наш человек в тылу врага.
Чтобы выполнить смешанную ссылку, следует поставить знак доллара в той ее
части, которая должна быть абсолютной. Например, синтаксис $ВЗ свидетельствует
о том, что ссылка на столбец (В) является абсолютной, а ссылка на строку (3) —
относительная. В случае синтаксиса В$3, наоборот, ссылка на столбец относитель-
ная, а ссылка на строку — абсолютная.
Совет. Вместо того чтобы набирать символ доллара непосредственно с клавиату-
ры, можно воспользоваться клавишей <F4>. Так, если в ячейку ввести обычную,
т.е. относительную ссылку, а затем нажать <F4>, ссылка превратится в абсолют-
ную. Если еще раз нажать <F4>, ссылка станет смешанной (относительная для
столбца и абсолютная для строки), а при следующем нажатии клавиши <F4>
ссылка будет абсолютной по столбцу и относительной по строке. Очередное на-
жатие на <F4> приведет к тому, что ссылка снова, как в исходном варианте, ста-
нет относительной.
Если в ячейке несколько ссылок, то при нажатии клавиши <F4> описанные выше
события будут иметь место по отношению к той из них, что находится ближе все-
го к курсору.
В качестве примера на относительные и абсолютные ссылки снова рассмотрим
процесс свободного падения тела. В данном случае задачу несколько усложним.
Будем определять расстояние, пройденное телом в определенные промежутки вре-
мени, и заносить эти данные в таблицу.
Для этого, как и раньше, в ячейки А1, В1 и С1 введем текстовые значения g
(ускорение свободного падения), t (время) и S (пройденное расстояние) соответст-
венно. В ячейку А2 введем значение ускорения свободного падения (9.8), а в ячейки
В2, ВЗ, В4 и В5 время р секундах от 1 до 4, для которого определяется пройденное
расстояние. Результат можно видеть на рис. 2.18.
Далее выделяем ячейку С2 и вводим туда формулу =$А$2*В2Л2/2. В результате
рабочее поле будет выглядеть так, как показано на рис. 2.19.
В отличие от аналогичного примера, рассмотренного в начале главы, в данном
случае ссылка на ячейку, где записано значение для ускорения свободного падения
(имеется в виду ячейка А2), является абсолютной (синтаксис $А$2), а не относи-
тельной. Это делается для того, чтобы впоследствии формулу можно было копиро-
вать в другие ячейки.

116 Часть I. Основы Excel


Рис. 2.18. Заполнение таблицы Рис. 2.19. Ввод формулы с абсо-
числами лютной ссылкой на ячейку А2
После нажатия клавиши <Enter> результат будет вполне ожидаемым (рис. 2.20),
Чтобы посчитать пройденный телом путь в остальных случаях, логично восполь-
зоваться введенной выше формулой. В частности, ее можно скопировать в буфер
обмена (для чего ячейку следует выделить и воспользоваться командой Edit<=>Copy).
После этого выделяем нужную ячейку, куда будет копироваться формула (в данном
случае это ячейка СЗ), после чего копируем формулу в ячейку с помощью команды
Edit<=>Paste. Результат представлен на рис. 2.21.
Стоит обратить внимание не на результат, отображенный непосредственно в
ячейке, а на содержимое строки формул. Как несложно заметить, по сравнению с
копируемой из ячейки С2 формулой, формула в ячейке СЗ несколько изменилась.
В частности, вместо ссылки на ячейку В2 появилась ссылка на ячейку ВЗ. При этом
абсолютная ссылка на ячейку А2 осталась неизменной.

Рис. 2.20. Результат вычисления Рис.221. Копирование формулы с


формулы с абсолютной ссылкой абсолютной ссылкой в ячейку СЗ

Если то же самое последовательно проделать с ячейками С4 и С5, результат


будет аналогичным. В этом несложно убедиться, если взглянуть на рис. 2.22.
Совет. При заполнении ячеек С4 и С5 необходимости каждый раз копировать
формулу из ячейки С2 в буфер обмена нет. Достаточно последовательно выде-
лять ячейки и производить копирование из буфера обмена. Мало того, нет необ-
ходимости копировать формулу в каждую ячейку в отдельности. Можно выде-
лить сразу весь диапазон ячеек и произвести копирование.

Рис. 2.22. Результат копирования формул

Глава 2. Анализ данных в Excel


В рассмотренном примере можно было вместо абсолютной ссылки использовать
и смешанную. Действительно, поскольку все ячейки, в которые копируется форму-
ла, находятся в одном столбце, то в относительных ссылках столбец меняться не бу-
дет, меняется только строка. Поэтому вместо абсолютной ссылки $А$2 достаточно
использовать смешанную А$2. Это проиллюстрировано на рис. 2.23.
Далее для разнообразия копирование произведем сразу в диапазон ячеек. Для
этого в буфер обмена копируется формула, после чего выделяется диапазон ячеек
СЗ:С5 (рис. 2.24). После копирования получаем тот же результат (те же числа в
ячейках!), что и при использовании абсолютной ссылки (рис. 2.25).
Если выделить одну из ячеек, в которые производилось копирование, можно убе-
диться, что при копировании все ссылки были преобразованы корректно (рис. 2.26).
A
С2 г* =AJ2*B2 2/2
D

9.8i j.g

Рис. 2.23. Использование смешан- Рис. 2.24. Выделение диапазона


ной ссылки ячеек для последующего копиро-
вания формулы
С5 JS =А$2*В5'-2/2
A 8
J . L__c_
1
,< "9.8" 4.9:
I "19.6.
~4~Ti 44.V
5]
В

Рис. 2.25. Результат копирова- Рис. 2.26. Преобразование сме-


ния формулы в диапазон ячеек шанных и относительных ссы-
лок при копировании формулы

Совет. Эффективно выполнять ссылки на ячейки в формулах можно с помощью


мыши. Для этого при вводе формулы достаточно щелкнуть мышкой на нужной
ячейке (т.е. на которую выполняется ссылка).

Ссылки в формате строка-столбец


Как уже отмечалось, в Excel существует альтернативный способ выполнения
ссылок на ячейки. Это формат строка-столбец, или R1С1. При работе в этом форма-
те в ссылке сначала указывается номер строки (после литеры R), а затем номер
столбца (после литеры С). Например, ссылка R2C4 является ссылкой на ячейку D2.
Для перехода к формату R1C1 следует выбрать команду Tools^Options
(Сервис^Параметры). В раскрывшемся диалоговом окне нужно перейти на вкладку
General (Общие), показанную на рис. 2.27.

118 Часть I. Основы Excel


•'••Odor. I Internet» Sat гё> .
View Calculation 1 Owl

T" RIQ reference style


Г Ignore other appfcatto
17 Function tooltips

s in new workbook-

Standard for*
IXeu* ffle location: ,.'••

: At startup, орел al fites in;

Userpame:

Puc. 2.27. Окно Options открыто на вкладке General

На этой вкладке выставляется флажок у опции R1C1 reference style (Ссылки


в формате R1C1). В результате все ссылки в рабочем документе будут переведены в
формат R1С1.
В этом формате для выполнения относительных ссылок используются квадратные
скобки, в которые заключается номер строки или столбца. Число в этих скобках задает
расстояние (количество строк и столбцов) между текущей ячейкой (той, где формула) и
ячейкой, на которую выполнена ссылка. Отрицательное число означает сдвиг влево или
вверх, положительное— вправо или вниз. Например, ссылка,R[-2]C[3] определяет ячей-
ку, которая находится по отношению к текущей на две строки вверх и на три столбца
вправо. Если квадратные скобки не использовать, ссылка интерпретируется как абсо-
лютная. В частности, ссылка R2C3 является абсолютной и указывает на ячейку С2.
Замечание. Если вводить ссылки с помощью мыши, они будут относительными.
При этом для перехода от относительных ссылок к абсолютным и смешанным
допускается использование клавиши <F4> — аналогично тому, как это делается
при выполнении ссылок в обычном формате. Если активная ячейка и ячейка, на
которую выполнена относительная ссылка, находятся в одной строке или столбце
(в этом случае в квадратных скобках должен был бы стоять нуль), квадратная
скобка с нулем не отображается.

I Внимание! При копировании формулы с относительной ссылкой в формате


R1С1 последняя не меняется!

Ссылки на ячейки разных листов и книг


Помимо ссылок на ячейки из текущего рабочего листа, в Excel допускается ссы-
латься на ячейки не только других листов рабочей книги, но даже на те, что разме-
щены в других книгах. Делать это можно либо непосредственно набирая адрес ячей-
ки с клавиатуры, либо оперируя мышью.
При выполнении ссылки на ячейку из другого рабочего листа книги непосредст-
венно перед адресом этой ячейки указывается название листа. Название листа и

Глава 2. Анализ данных в Excel


адрес ячейки разделяется восклицательным знаком. Например, если в ячейке А1
первого рабочего листа книги (название по умолчанию Sheet"!) следует отобразить
значение ячейки В2 из второго рабочего листа (название по умолчанию Sheet2),
формула с соответствующей ссылкой будет выглядеть как =Sheet2!B2.
Если выполняется ссылка на ячейку из другой книги (в этом случае говорят, что
ссылка внешняя), то перед названием листа указывается в квадратных скобках на-
звание книги. Такую ссылку лучше выполнять, когда книга с ячейкой, на которую
выполняется ссылка, открыта. В этом случае указывается только название файла.
Если после этого книга, на которую выполнена ссылка, будет закрыта, в ссылке поя-
вится полный путь к папке, где хранится книга. Такая полная ссылка на книгу за-
ключается в одинарные кавычки. Например, ссылка на ячейку В2, находящуюся в
листе Sheet2 книги Bookl, может выглядеть как =[Book1]Sheet2!B2. При выполне-
нии ссылки на закрытую книгу набирать полный адрес этой книги пользователю
придется самостоятельно. Однако удобнее всего выполнять ссылки с помощью мы-
ши. Ссылка на ячейку из другого рабочего листа книги выполняется так.
1. Сначала нужно выделить ту ячейку, в которую вводится формула.
2. Формула вводится до того места, где нужно сделать ссылку на ячейку.
3. С помощью мыши следует выбрать корешок вкладки рабочего листа, где на-
ходится нужная ячейка (т.е. ячейка, на которую выполняется ссылка).
4. Эта ячейка выделяется (щелчком мыши), после чего нажимается клавиша
<Enter>.

Примерно так же выполняется ссылка на ячейку из другой книги. Правда, сама


процедура при этом несколько длиннее, а именно:
1. Как и в предыдущем случае, сначала выделяется та ячейка, куда вводится
формула. Вводится она до того места, где нужно сделать ссылку.
2. После этого следует перейти к книге, на которую будет ссылка в формуле.
Книга предварительно должна быть открыта. Чтобы перейти к книге, нужно
щелкнуть мышкой на меню Window (Окно), затем выбрать название в списке
открытых на данный момент книг. Можно обойтись без мыши и воспользо-
ваться комбинацией клавиш <Alt+W> (откроется меню Window), после чего
перейти с помощью клавиш со стрелками к нужной книге и нажать <Enter>.
3. В книге нужно выбрать лист, ячейку, после чего следует нажать клавишу <Enter>.

Очень часто при работе с таблицами бывает недостаточно выполнить те или иные
ссылки. Над соответствующими данными приходится производить еще и сложные
преобразования. Это особенно справедливо, когда речь заходит об инженерных рас-
четах. На этот случай в Excel предусмотрен целый набор специальных, предопреде-
ленных функций.
В следующем разделе речь пойдет о некоторых общих аспектах, имеющих перво-
степенное значение при работе с функциями в Excel. Здесь же будут описаны наибо-
лее общие и часто используемые функции, а также базовые операции, которые мож-
но выполнять с их помощью.

120 Часть I. Основы Excel


Функции в Excel
Принцип определения функции в Excel достаточно точно отвечает математиче-
скому понятию функция. У каждой функции есть название и аргумент(ы). То, что
получается в результате вызова функции, называется значением, или результатом
функции. Функцией в Excel устанавливается однозначное соответствие между аргу-
ментом (или аргументами) и значением. Аргументы функции заключаются в круг-
лые скобки, которые, в свою очередь, следуют сразу после названия функции. Тип и
количество параметров, а также тип возвращаемого функцией результата (т.е. зна-
чение) зависит от конкретного определения функции.
Остановимся на том, как функции используются в рабочих книгах, но для начала
выясним, как выполняется вставка функции в ячейку.

Вставка функций
Понятно, что прежде чем вставлять функцию, следует выбрать ячейку, куда эта
функция будет вставляться. После этого можно выбрать команду Insert 1 ^Function
(Вставка<=>Функция). В результате раскроется диалоговое окно Insert Function,
представленное на рис. 2.28.
В поле Select a function (Выбрать функцию) предлагается список тех функций,
которые использовались последними. Если нужная функция в списке присутствует,
достаточно щелкнуть на ней мышью, а затем щелкнуть на кнопке ОК в нижней части
диалогового окна.
Если функции, которая необходима пользователю, в предложенном списке нет, в
раскрывающемся списке Or select category (Или выбрать категорию) следует вы-
брать элемент АИ (Все). В этом случае в поле Select a function будет отображен спи-
сок всех доступных функций. Он достаточно велик, поэтому если известно, к какой
категории функций принадлежит искомая (например, логическая или финансовая),
лучше вместо значения АИ выбрать в списке Or select category нужную группу
функций (для приведенного примера это, соответственно, Logical и Financial).
Список будет не таким большим, поэтому и искать функцию легче.

Search for a function:


Type a brief d» ription ol" what you want to do and men
dick Go

Or select a jategory; JKust Recently Used


• .• -
Select a function;

IF
AVERAGE
HYPERLINK
COUNT
MAX
SIN
SUM(mJinberl .number 2....)
Adds al the numbers in a range <rf eels

-Heb on this funrtron

Puc. 2.28. Диалоговое окно вставки функции

Глава 2. Анализ данных в Excel 121


Если пользователь не уверен в том, какая именно функция ему нужна, в самом
верхнем поле Search for a function (Поиск функции) диалогового окна Insert
Function можно ввести вопрос или ключевую фразу. В результате Excel попытается
собственными силами отобрать функции, удовлетворяющие параметрам запроса.
Замечание. Хотя описанный выше метод может показаться весьма удобным, это
не тот путь, которым следует идти при создании сколько-нибудь приличного до-
кумента.
После того как функция выбрана, для ее копирования в ячейку следует, как уже
отмечалось выше, щелкнуть на кнопке ОК. Последующие действия зависят от того,
какая именно функция выбрана.
Совет. Выполнить вставку функции можно также с помощью кнопки Insert function
(Вставка функции), расположенной слева от поля строки формул. В результате от-
кроется диалоговое окно Insert Function, описанное выше.
Ниже кратко рассматриваются основные типы встроенных функций Excel. Таких
функций достаточно много и они с успехом могут использоваться при разработке
приложений. Очень часто встроенных функций более чем достаточно для решения
возникающих задач. Однако помимо этого предусмотрена возможность подключе-
ния специальных надстроек. В том случае, если все же предлагаемых вместе с паке-
том функций пользователю недостаточно, он может создавать собственные. Далее
представлены функции, которые предполагается частично использовать в примерах
данной книги и которые представляются полезными в прикладном анализе.
Для удобства они разбиты на группы, хотя такое разбиение в некоторых случаях яв-
ляется достаточно условным.

Математические функции
Для выполнения непосредственно математических операций могут быть полезны
функции, перечисленные в табл. 2.1. В некоторых случаях функции указываются
вместе с аргументами.

Таблица 2.1. Математические функции

Функция Описание
ABS() Модуль числа. В качестве результата функцией возвращается модуль
числа, указанного ее аргументом
ACOSQ В качестве результата функцией возвращается арккосинус от ее
аргумента
ACOSH() Гиперболический арккосинус
ASINQ Арксинус от числа, указанного аргументом функции
ASINH() Арксинус гиперболический
ATAN() Функцией в качестве результата возвращается арктангенс от аргумента
ATANH() Гиперболический арктангенс

122 Часть I. Основы Excel


Продолжение табл. 2.1

Функция Описание
CEILINGQ Округление числа (аргумента функции) до ближайшего целого. Если
указать второй аргумент, то число будет округляться до ближайшего
числа, кратного второму аргументу. В этом случае результат выпол-
нения функции может быть и нецелым числом
COS() Косинус
COSH() Косинус гиперболический
DEGREESQ Функция преобразования радиан в градусы
EVEN() Округление числа до ближайшего четного. Если число положитель-
ное, то оно округляется с увеличением, если отрицательное —
с уменьшением
EXPQ Функция экспонирования (возведение числа е - 2.72 в степень,
указанную аргументом функции)
FACT() Факториал числа (аргумента функции)
FLOOR(A.B) Округление числа А (с уменьшением) до числа, кратного числу В
(второй аргумент)
GAMMALN() Натуральный логарифм от гамма-функции
INT() Округление аргумента до ближайшего целого числа
LN() Натуральный логарифм
LOG(A,B) Логарифм числа А (первый аргумент функции) по основанию В
(второй аргумент функции)
LOG 10() Логарифм по основанию 10
МАХ() Максимальное из чисел, указанных аргументами функции. Числа-
аргументы разделяются запятой. Логические и текстовые аргументы
(если такие есть) игнорируются
MDETERM() Функцией возвращается в качестве значения детерминант
(определитель) для диапазона, указанного аргументом функции.
При этом диапазон определяет квадратную (это важно!) матрицу,
для которой детерминант и вычисляется
MIN() Минимальное из чисел, указанных аргументами функции. Числа-
аргументы разделяются запятой. Логические и текстовые аргументы
игнорируются
MINVERSEO Вычисление матрицы, обратной к той, которая указана аргументом
функции. Матрица-аргумент задается с помощью указания диапазона
ячеек, значения которых и являются элементами матрицы
MMULT() В качестве результата функцией возвращается произведение двух
матриц. Матрицы задаются диапазонами ячеек и указываются, разде-
ленные запятой, в качестве аргументов функции. Для того, чтобы вы-
числение произведения было возможно, количество столбцов первой
матрицы должно быть равно количеству строк второй матрицы
MOD(A,B) Целочисленный остаток от деления А (первый аргумент) на В
(второй аргумент)

Глава 2. Анализ данных в Excel 123


Продолжение табл. 2.1

Функция Описание
ODD() Округление числа (аргумента функции) до ближайшего нечетного
числа. Положительные числа округляются путем увеличения, отрица-
тельные — путем уменьшения
РЮ Функцией в качестве результата возвращается число я = 3.1415 с точ-
ностью до 15 значащих цифр. У функции нет аргумента (но скобки
указываются!)
POWER(A.B) Функция возведения в степень. Число А (первый аргумент функции)
возводится в степень В (второй аргумент функции)
PRODUCTO Вычисление произведения чисел, указанных в качестве аргументов
функции. Аргументы разделяются запятыми
RADIANSO Преобразование градусов в радианы
RAND() Случайное число, с равной вероятностью лежащее в интервале от О
(включительно) до 1. Аргумент у функции не указывается
ROUND(A.B) Округление числа А (первый аргумент). Точность округления задает-
ся вторым аргументом, т.е. числом В (это число значащих цифр при
округлении)
SIGNQ Функцией возвращается знак числа, указанного ее аргументом
(для положительного аргумента результат равен 1, для отрицательно-
го аргумента результат равен — 1 и для нуля результат равен 0)
SIN() Синус от аргумента
SINHQ Синус гиперболический
SQRTQ Корень квадратный из числа
SUM() Функцией вычисляется сумма аргументов. Аргументы разделяются
запятой. В качестве аргумента может использоваться диапазон ячеек.
В этом случае суммируются ячейки, входящие в этот диапазон
SUMIF() Условная сумма. Функция может иметь два или три аргумента. В слу-
чае трех аргументов алгоритм вычисления суммы следующий. Ячейки
из указанного первым параметром функции диапазона проверяются
на предмет выполнения условия (второй аргумент функции). Если
условие выполнено, то из указанного третьим параметром диапазона
выбирается ячейка, соответствующая проверяемой, и прибавляется к
сумме. Между первым и третьим параметрами функции должно су-
ществовать взаимно однозначное соответствие (для этого диапазоны
должны иметь одинаковое количество строк и столбцов). Если третий
параметр не указан, в его качестве используется первый диапазон (т.е.
суммируются ячейки, которые проверяются)
SUMPRODUCTO Аргументами функции указываются, через запятую, диапазоны ячеек.
Для каждого из таких диапазонов вычисляется произведение входя-
щих в них ячеек, после чего полученные произведения суммируются
SUMSQQ Сумма квадратов аргументов функции. В качестве аргументов могут ис-
пользоваться не только числа, но и, скажем, массивы (диапазоны ячеек)
TAN() Тангенс от аргумента
TANH() Тангенс гиперболический от аргумента

124 Часть I. Основы Excel


Окончание табл. 2.1

Функция Описание
TRANSPOSEQ Транспонирование матрицы (замена местами строк и столбцов
диапазона)
TRUNC() Округление числа, указанного аргументом функции, до целого значе-
ния путем отбрасывания дробной части. Если указать еще один
(второй) аргумент, то он будет определять точность округления
(число знаков после десятичной точки)

Иногда в качестве аргументов можно указывать данные такого типа, которые,


казалось бы, никак не могут служить аргументом функции. Например, в функции
вычисления суммы можно использовать текстовые значения. В некоторых подобных
случаях результат выполнения операции очевиден, но не всегда. Кроме того, данные
некорректного типа могут быть введены случайно. Проблема состоит в том, что не
всегда в таких случаях системой выводится сообщение об ошибке. Часто в процессе
вычислений автоматически осуществляется преобразование типов, и если не при-
нять это в расчет, результат может обескуражить. Подробнее эти вопросы обсужда-
ются в подразделе, где рассматриваются примеры применения функций.

Логические функции
Помимо непосредственно математических функций, немаловажное место занима-
ют и логические функции. Эти функции обычно могут возвращать одно из двух значе-
ний: TRUE (истина) или FALSE (ложь). Справка по этим функциям, а также по функ-
ции IF(), имеющей непосредственное отношение к логическим, приведена в табл. 2.2.

Таблица 2.2. Логические функции

Функция Описание
ANDQ Функция возвращает значение TRUE, если все ее аргументы (величи-
ны логического типа) равны TRUE. В противном случае (т.е. если хотя
бы один из аргументов равен FALSE) возвращается значение FALSE
FALSE() Функцией возвращается значение FALSE
IF() У функции три аргумента. Первым аргументом является условие,
которое проверяется при вычислениях. Если условие выполнено
(значение TRUE), значение в ячейке определяется согласно второго
аргумента функции. Если условие не выполнено (значение FALSE),
значение ячейки определяется третьим аргументом функции
NOTQ Логическое отрицание. В качестве значения возвращается выражение,
противоположное аргументу (логический тип). Другими словами,
значение TRUE меняется на FALSE и наоборот
ORQ Логическое ИЛИ. Если хотя бы один из аргументов принимает значе-
ние TRUE, функцией возвращается значение TRUE. Значение FALSE
возвращается, только если всеми аргументами также принимается
значение FALSE
TRUEQ Функцией возвращается значение TRUE. Аргумента у функции нет

Логические функции обычно используются при организации циклов.

Глава 2. Анализ данных в Excel 125


Функции для работы с текстовыми параметрами
Помимо непосредственно числовых данных, при работе часто приходится обра-
батывать текстовые выражения. В табл. 2.3 собраны основные, полезные в приклад-
ном анализе функции для работы с текстом.

Таблица 2.3. Функции для работы с текстом

Функция Описание
CHARO Функцией по коду, указанному в качестве аргумента, возвращается
символ, который определяется согласно таблице кодов
CODEO Функцией в качестве результата возвращается код первого символа
текстового выражения, указанного аргументом функции
CONCATENATEO Функцией выполняется объединение текстовых значений, указанных
в качестве ее аргументов, в одну строку. Аргументы разделяются за-
пятыми и заключаются в двойные кавычки (чтобы они интерпретиро-
вались как текст)
ЕХАСТО Функцией выполняется проверка на предмет полного совпадения
двух текстовых строк, указанных в качестве ее аргументов. В случае
совпадения функцией возвращается значение TRUE. В противном
случае возвращаемым в качестве результата значением является
FALSE. При сравнении принимается в расчет различие между строч-
ными и прописными буквами
FINDQ Функцией осуществляется поиск строки, указанной в качестве перво-
го аргумента, в строке, указанной вторым аргументом. В качестве ре-
зультата функцией возвращается позиция первой строки во второй.
Если строка встречается несколько раз, возвращается первая по оче-
редности позиция. Можно указать третий аргумент функции (число).
Он определяет позицию, начиная с которой выполняется поиск
FIXEDQ Функция может иметь два или три аргумента. Первым аргументом ука-
зывается число, которое в результате выполнения функции округляет-
ся. Количество знаков после десятичной точки, которые оставляются
при округлении, определяется вторым аргументом функции (это целое
число). Третьим аргументом (необязательным) является логическое
выражение. Если оно равно TRUE, то при отображении числа запятая
для выделения тысяч не используется. Если выражение равно FALSE
или не указано вообще, то запятая в случае необходимости отображает-
ся. Результат округления преобразуется к текстовому формату
LEFT() Функция имеет два аргумента. Первым является текстовое выраже-
ние. Второй аргумент (число) определяет количество символов с на-
чала строки, которые возвращаются функцией в качестве результата
LENQ Функцией возвращается в качестве значения количество символов в
строке, указанной аргументом функции
LOWERO Тест, указанный в качестве аргумента, переводится функцией в ниж-
ний регистр (все буквы строчные)
PROPERO Текст в аргументе функции преобразуется так, что все буквы, кроме пер-
вых букв слов, будут строчными. Начальные буквы слов — прописные

126 Часть I. Основы Excel


Окончание табл. 2.3

Функция Описание
REPLACEQ Функцией выполняется замена фрагмента текста. Функция имеет
четыре аргумента. Первым аргументом указывается текст, в котором
выполняется замена. Второй аргумент — начальный символ, с которо-
го выполняется замена. Третий аргумент функции определяет коли-
чество замещаемых символов в исходном тексте. Наконец, последним,
четвертым аргументом, является вставляемое на место удаленного
фрагмента текстовое выражение
REPT{) Текст, указанный первым аргументом функции, повторяется количе-
ство раз, определяемое вторым аргументом функции
SEARCHQ Функция аналогична функции FINDQ с той лишь разницей, что в дан-
ном случае состояние регистра игнорируется (строчные и прописные
буквы не различаются)
SUBSTITUTEQ Функция имеет три или четыре аргумента. Первым аргументом ука-
зывается текст, в котором выполняется замена. Второй аргумент оп-
ределяет тот фрагмент текста, который следует заменить. Третий
аргумент задает фрагмент вставляемого текста (на место удаляемого
фрагмента). Если не указать четвертый аргумент, то замена будет
осуществлена везде, где появляется указанный вторым аргументом
текст. Если замену следует выполнить только в одном месте, четвер-
тым параметром указывают порядок появления заменяемого фраг-
мента в текстовой строке
Т() Функция в качестве результата возвращает аргумент, если это тексто-
вое выражение. В противном случае возвращается пустая строка
ТЕХТ() Преобразование чисел в текстовый формат. Первым аргументом
функции указывается число, второй аргумент задает способ его фор-
матирования. При этом используется синтаксис определения формата
пользователя (см. главу 1). Код формата заключается в двойные ка-
вычки. Примеры использования команды можно найти в одном из
следующих разделов
TRIMQ В результате выполнения функции в текстовом выражении (аргумент
функции) удаляются все лишние пробелы (за исключением одинар-
ных пробелов между словами)
UPPER() Перевод всех символов текстового выражения, указанного аргумен-
том функции, в верхний регистр (все буквы прописные)
VALUEO Преобразование текста (аргумент функции) в число. Аргументом
функции должно быть текстовое представление числа

Как правило, на практике используются комбинации логических и текстовых


функций. Особенно это эффективно в тех случаях, когда текстовое значение в той
или иной ячейке таблицы зависит от результатов вычислений. Безусловно, это отно-
сится в первую очередь к способам представления данных и результатов их анализа
в таблице.

Глава 2. Анализ данных в Excel 127


Статистические функции
Помимо перечисленных выше функций, важное место занимают также функции
для обработки статистических данных. Эти функции занимают особое место, по-
скольку с их помощью можно проводить достаточно эффективный анализ результа-
тов всевозможных измерений, что в данном случае существенно. Основные стати-
стические функции представлены в табл. 2.4.

Таблица 2.4. Статистические функции

Функция Описание
AVEDEVO Функцией возвращается среднее значение модулей отклонений данных,
указанных в качестве аргумента (или аргументов) функции, от среднего
значения. Если {х:} — набор данных (числа), то значение фз'нкции опре-
1 "
деляется согласно формуле —^|*/ ~х„\, гДе N ~ количество элементов
N /=i
множества {х,}, а ха — среднее значение, которое определяется согласно
1 "
равенства JC0 = —^;с.. В качестве аргумента могут использоваться как

отдельные числа (и, разумеется, ссылки), так и диапазоны


AVERAGEQ Функцией возвращается среднее значение. Аргументом могут быть
числа, разделенные запятой, диапазоны, ссылки на ячейки, содержащие
числа и т.п. Если [х:] — множество из Nчисел, для которых вычисляется
1 "
среднее, то возвращаемое в качестве результата значение равно —Vx, .
N м
Помимо этой функции, для вычисления среднеарифметического значе-
ния можно использовать также и функцию AVERAGEAQ. Последняя
имеет ту особенность, что если в качестве аргумента указан текст, то
вместо него используется значение 0. Логические выражения, если они
равны FALSE, также интерпретируются как 0. Значение TRUE воспри-
нимается как 1
BETADISTQ Функцией возвращается значение интегральной вероятности бета-
распределения. Если в качестве первого аргумента функции указано
число 0 < х <1, то результат генерируется согласно выражению
х 1
|>"'(1-Г)Э"Жгде В(а,р)=|>~'(1-0Р~'<Л есть бета-функция.

Параметр распределения а > 0 указывается вторым аргументом функ-


ции, а параметр (3 > 0 — третьим аргументом. Если ищется вероятность
для числа, распределенного на отличном от единичного интервале, то
нижняя граница этого интервала указывается четвертым аргументом
функции, а верхняя граница — пятым
BETAINVQ Функцией по заданной интегральной вероятности бета-распределе-
ния (первый аргумент функции) определяется число. Это обратная
функция к предыдущей. Другими словами, если
BETADIST(x,a,b,A,B)=y, то BETAINV(y,a,b,A,B)=x. Назначение прочих
аргументов абсолютно такое же, как и в функции BETADISTQ

128 Часть I. Основы Excel


Продолжение табл. 2.4

Функция Описание
BINOMDISTO Функция биномиального распределения. У функции четыре аргумен-
та. Четвертый аргумент является логической величиной. В зависимо-
сти от его значения функцией возвращаются разные результаты.
Если четвертый аргумент равен FALSE, то в качестве результата
функцией возвращается величина, равная С*р*(1-р)"~* , где
1 л!
С = есть биномиальные коэффициенты.
k\(n-k)\
Смысл формулы в том, что она представляет вероятность k (первый
аргумент функции) удачных исходов в и (второй аргумент функции)
испытаниях при вероятности удачного исхода р (третий аргумент
функции). Если четвертый аргумент равен TRUE, то возвращается

интегральная вероятность 1- р)"~


т
удачных исходов в коли-

честве, не превышающем k
CHIDISTO Функция хи-квадрат распределения. Имеет два аргумента. Первый
(х) — это значение, для которого вычисляется распределение, второй
(п) — степени свободы. Это распределение рассчитывается для вели-

чины %1 = ^^ , где величины {£,} распределены нормально с нуле-

вым средним значением и единичной дисперсией.


Плотность вероятности распределения для величины у£п в этом слу-
j
чае задается выражением р(х) =—;/ х ехр(—л/2) , где
2" Т(/г/2)

Г(я) = J t°~l e.xp(-t)dt есть гамма-функция.

В данном случае вычисляется значение 1 - \p(z)dz, которое задает


о

вероятность для величины yjn превысить х

CHIINVQ Обратная функция к CHIDIST(). По заданным значению вероятности


(первый аргумент) и количеству степеней свободы (второй аргумент)
вычисляется параметр хи-квадрат распределения. Другими словами,
при условии y=CHIDIST(x,n) имеет место x=CHIINV(y,n)
COUNTBLANKO Функцией возвращается количество пустых ячеек в диапазоне,
указанном в качестве аргумента функции
COUNTIFQ У функции два аргумента. Первым аргументом указывается диапазон
ячеек. Функцией осуществляется поиск тех ячеек из данного диапа-
зона, которые удовлетворяют определенному условию. Это условие
указывается вторым аргументом функции. В качестве результата воз-
вращается количество ячеек диапазона, значения которых удовлетво-
ряют условию

Глава 2. Анализ данных в Excel 129


Продолжение табл. 2.4

Функция Описание
DEVSQO Сумма квадратов отклонений чисел от их среднего значения. В каче-
стве аргумента можно указать сами числа или, например, диапазон
ячеек (равно как и ссылки на отдельные ячейки). Если [х{\ —
исследуемый набор чисел, то функцией возвращается значение
N I N
2
V(* - JC0) , где х. - — V x есть среднее значение чисел из упомяну-
М NM

того множества (N — общее количество этих чисел)


EXPONDISTO Функция экспоненциального распределения. Имеет три аргумента.
Последний аргумент — логический. Если он равен FALSE, возвраща-
ется значение Xexp(-Xjc) (это плотность распределения), где х указы-
вается первым аргументом функции, а параметр распределения К —
вторым. Если же указать третий аргумент равным TRUE, в результате
возвращается интегральная вероятность, равная по определению

| Xexp(-Xt)dt = 1 - ехр(-Лх)

GAMMADISTO Функция плотности гамма-распределения. Последняя задается выра-

жением - — х"'1 ехр(-*/Р) . Параметры распределения а и р указы-


рТ(а)
ваются вторым и третьим аргументами функции. Первым аргументом
является значение х. Если четвертый, логический аргумент, равен
FALSE, в качестве результата возвращается значение согласно приве-
денной выше формулы. Если четвертый аргумент равен TRUE,
возвращаемое значение определяется соотношением

pT(a)J

GAMMAINVO Обратная функция к функции интегрального гамма-распределения.


Если y=GAMMADIST(x',a,b,TRUE), то x=GAMMAINV(y,a,b,TRUE)
GEOMEANO Среднее геометрическое (для множества чисел {xt} определяется

согласно выражению i ). Аргументами функции могут

указываться непосредственно числа, ссылки или диапазон ячеек


HARMEANQ Функция вычисления среднего гармонического, определяется

выражением — > —

LARGEQ Функция имеет два аргумента и возвращает в качестве результата п-е


по величине число из указанного первым аргументом функции диапа-
зона (п — второй аргумент)

130 Часть I. Основы Excel


Продолжение табл. 2.4

Функция Описание

LINESTQ Функция выполнения линейной аппроксимации (регрессии) на осно-


ве метода наименьших квадратов. В качестве аргументов указываются
набор переменных и значений, по которым выполняется аппроксима-
ция. Два логических аргумента позволяют задавать режимы выполне-
ния регрессии. Подробнее эта функция описывается при обсуждении
статистического анализа
LOGESTQ Функция выполнения экспоненциальной регрессии. Используется
метод наименьших квадратов. Аргументы — набор переменных и зна-
чений, по которым выполняется регрессия. Два логических аргумента
позволяют задавать режимы выполнения регрессии
MODE() Функцией возвращается число, которое чаще всего встречается в спи-
ске аргументов функции (если это числа) или диапазоне ячеек (для
диапазона, указанного как аргумент)
NORMDISTO Функция нормального распределения, которая определяется согласно

формуле —f= — ехр( -- — ) . Величина х указывается первым


2D''
аргументом функции, а параметры распределения а (среднее значе-
ние) и D (стандартное отклонение) — соответственно вторым и треть-
им аргументами. Если четвертый аргумент функции равен FALSE,
то возвращается значение, вычисленное согласно приведенной выше
формуле. В противном случае, т.е. когда четвертый аргумент равен

TRUE, возвращается значение / — J ехр( — __ ,2 )dt


JlnD: 2D
NORMINVQ Обратная функция для интегрального нормального распределения,
которая по заданной вероятности (первый аргумент), среднему значе-
нию (второй аргумент) и дисперсии (третий аргумент) определяет
величину переменной в нормальном распределении. Если
y=NORMDIST(x,a,D,TRUE), то x=NORMINV(y,a,D)
NORMSDISTQ Функция нормального интегрального распределения. Вычисляется

согласно формуле .— J e\p(-t2/2)dt , где* — аргумент функции

NORMSINVO Обратная функция для нормального интегрального распределения.


В том случае, если y=NORMSDIST(x), имеет место соотношение
x=NORMSINV(y)
POISSONQ Распределение Пуассона. Функция имеет три аргумента. Если третий,
логический аргумент, равен FALSE, по заданным значениям k (первый
аргумент) и параметру распределения Я. (второй аргумент) результат
А.' ехр(-Х)
вычисляется по формуле . Если третий аргумент равен
Jt!
,Х"ехр(-Я.)
TRUE, вычисляется значение

Глава 2. Анализ данных в Excel 131


Окончание табл. 2.4

Функция Описание
SMALLQ Функция возвращает и-е по счету наименьшее число из диапазона
ячеек. Диапазон указывается первым аргументом функции,
число п — вторым
STANDARDIZEO Функция нормализации параметра х (первый аргумент) по среднему
значению а (второй аргумент) и стандартному отклонению D (третий
аргумент). Возвращаемое в качестве результата значение вычисляется
согласно формуле (х - a)/D
STDEVQ Функция вычисления стандартного отклонения. Множество значений
{*} в аргументе функции задается в виде диапазона или путем перечис-
ления чисел (ссылок на ячейки). Результат вычисляется по формуле

Их-
П

,где
N(N-l)
N есть количество элементов множества. При этом текстовые и логиче-
ские значения игнорируются. Если такие значения следует принимать в
расчет, используют функцию STDEVAQ
STEYX() Функция возврата погрешности регрессии. Методы ее использования,
равно как и способ определения погрешности, описаны в главе, по-
священной статистическим методам
VAR() Функция вычисления разброса данных. Множество значений {х) из /V
элементов задается в виде диапазона или путем перечисления чисел
(ссылок на ячейки) в аргументе функции. Результат вычисляется по

формуле — —
N(N-1)
(как несложно заметить, эта функция имеет прямое отношение к
функции STDEV(), описанной выше). При этом текстовые и логиче-
ские значения игнорируются. Если такие значения следует принимать
в расчет, используют функцию VARAQ

На этом, безусловно, функции для обработки статистических данных не исчер-


пываются. В Excel их намного больше. Однако в данном случае интерес представля-
ют только те, что могут использоваться в инженерных расчетах.
Помимо перечисленных типов функций в Excel есть большое число специальных
процедур, которые позволяют выполнять всевозможные манипуляции непосредст-
венно с ячейками таблицы, получать и изменять параметры форматирования и вы-
полнять другие аналогичные действия. Кроме этого, как отмечалось выше, сущест-
вует возможность подключать надстройки, после чего класс доступных функций
существенно расширяется.

132 Часть I. Основы Excel


Подключение надстроек
Для того чтобы подключить в Excel программу надстройки, следует выполнить
команду Tools<=> Add-lns (Сервис^ Над стройки), в результате чего открывается диа-
логовое окно Add-lns, показанное на рис. 2.29.

Рис. 2.29. Диалоговое окно Add-lns

Analysis ToolPs
Conditional Sum Wizard
Euro Currency Tools
Internet Assistant VBA
Lookup Wizard
Solver Add-in

:'Analysis TooPak - — ••
' Provides functtons and interfaces for financiaJ and
scientftc data analysis

В этом окне представлен список доступных для подключения надстроек. В част-


ности, полезно будет сразу подключить пакет Analysis ToolPak (см. рис. 2.29). В ре-
зультате список функций пополняется категорией Engineering (Инженерные), хотя
соответствующие функции логичнее было бы отнести к разряду специальных или
дополнительных математических. Они представлены в табл. 2.5.

Таблица 2.5. Дополнительные математические функции Excel

Функция Описание
BESSELI() Функция Бесселя мнимого аргумента Ij(x) (модифицированная функ-
ция Бесселя). Функция является решением уравнения ху"(х} + ху'(х) —
- (х2 + v1)y(x) = 0 (параметр v определяет индекс функции). У функции
два аргумента. Первый — это значение переменной, для которой
вычисляется функция (т.е. х), второй — индекс v функции Бесселя
BESSELJQ Функция Бесселя первого рода Jj(x), решение уравнения х2у"(х) +
+ ху'(х) + (хг - v2)y(x) = 0 (называется уравнением Бесселя). Функция
/ i-,i 2i+v

может быть представлена в виде ряда Jv(x) = 2_.- -


~
В качестве первого аргумента функции указывается переменная х,
вторым аргументом указывается индекс функции v
BESSELKQ Функция Бесселя мнимого аргумента второго рода Kj(x) (ее чаще на-
зывают функцией Макдональда). Эта функция, наряду с функцией
IJix), является еще одним независимым решением уравнения ху"(х) +
+ ху'(х) - (л:2 + v2)y(x) = 0, однако функция Макдональда, в отличие
от упомянутой выше, имеет особенность в нуле. Первым аргументом
указывается переменная, вторым — индекс функции

Глава 2. Анализ данных в Excel 133


Продолжение табл. 2.5

Функция Описание
BESSELYO Функция Бесселя второго рода Yj(x). В случае нецелого индекса
связана с функцией Бесселя первого рода соотношением
cos(7iv)y v (x)-y V O)
Y (х) = . Наряду с функцией Jjlx), является
sin(Tiv)
2 2
решением уравнения ху"(х) + ху'(х) + (х — v )y(x) = 0. Имеет два аргу-
мента. Первый — значение переменной, второй — индекс функции
BIN2DEC() Функция преобразования числа из двоичной системы счисления
в десятичную
BIN2HEX() Функция преобразования числа из двоичной системы счисления в
шестнадцатеричную
BIN20CT() Функция преобразования числа из двоичной системы счисления в
восьмеричную
COMPLEXO Функция создания комплексного числа. Действительная часть ком-
плексного числа указывается первым аргументом функции, а мнимая
часть числа указывается вторым аргументом. Может быть указан
также и третий аргумент. Он определяет букву, которая соответствует
мнимой единице. Это может быть / или/ Если третий аргумент не
указан, по умолчанию используется i
CONVERTO Функция преобразования размерных величин из одной метрической
системы в другую. Первым аргументом указывается значение величи-
ны, вторым указывается исходная размерность, третьим параметром
нужно указать размерность, к которой величина преобразуется
DEC2BINO Функция преобразования числа из десятичной системы счисления в
двоичную
DEC2HEXO Функция преобразования числа из десятеричной системы счисления
в шестнадцатеричную
DEC20CTO Функция преобразования числа из десятичной системы счисления в
восьмеричную
DELTAQ Функция, аналогичная символу Кронекера. Она имеет два аргумента.
Если оба числа совпадают, в качестве результата возвращается 1, в
противном случае результат равен О
ERFQ
Интеграл от функции ошибок в указанных пределах: —т= Гехр(-Г)Л .
VII.,
Границы интеграла а и b указываются в качестве аргументов функции
ERFCQ
Функция 1—т=|ехр(-Г)А , где х указывается аргументом функции
•v/Л J0

FACTDOUBLEO Двойной факториал числа. Для нечетного числа это произведение


всех нечетных чисел от 1 до числа, указанного аргументом функции.
Если аргумент функции — число четное, то вычисляется произведе-
ние четных чисел

134 Часть I. Основы Excel


Окончание табл. 2.5

Функция Описание
GESTEPQ Функция, равная единице, если ее первый аргумент не меньше, чем
второй. В противном случае значение функции равно нулю
HEX2BINQ Функция преобразования числа из шестнадцатеричной системы
счисления в двоичную
HEX2DECO Функция преобразования числа из шестнадцатеричной системы
счисления в десятичную
НЕХ2ОСТ() Функция преобразования числа из шестнадцатеричной системы
счисления в восьмеричную
IMABSO Функцией возвращается модуль (абсолютное значение) комплексно-
го числа
IMAGINARYQ Функцией возвращается мнимая часть комплексного числа
IMARGUMENTO Функцией возвращается аргумент комплексного числа
IMCONJUGATEO Функцией вычисляется число, комплексно сопряженное тому, что
указано аргументом функции
IMCOSQ Косинус от комплексного числа
IMDIVQ Функцией вычисляется отношение двух комплексных чисел
1МЕХР() Экспонента от комплексного числа
IMLN() Натуральный логарифм от комплексного числа
IMLOG100 Десятичный логарифм от комплексного числа
IMLOG20 Двоичный логарифм от комплексного числа
IMPOWERQ Функция возведения комплексного числа (первый аргумент функ-
ции) в целочисленную степень (второй аргумент)
IMPRODUCTO Произведение комплексных чисел, которые указываются аргумента-
ми функции. Можно использовать ссылки или указать в качестве
аргумента диапазон ячеек
IMREALO Действительная часть комплексного числа
IMSINQ Синус от комплексного числа
IMSQRTO Корень квадратный из комплексного числа
IMSUBO Функция вычисления разности двух комплексных чисел
IMSUMO Функция вычисления суммы комплексных чисел. Аргументами мож-
но указывать сами числа, ссылки на ячейки, диапазоны ячеек
OCT2BINO Функция преобразования числа из восьмеричной системы счисления
в двоичную
OCT2DECO Функция преобразования числа из восьмеричной системы счисления
в десятичную
ОСТ2НЕХ() Функция преобразования числа из восьмеричной системы счисления
в шестнадцатеричную

Глава 2. Анализ данных в Excel 135


Следует также отметить, что в функциях преобразования чисел из одной системы
счисления в другую, если конечная система отлична от десятичной, существует воз-
можность задать количество отображаемых в ячейке символов.
Помимо перечисленных выше функций, с успехом могут использоваться и дру-
гие. Однако кроме них, как было отмечено ранее, можно создавать с помощью про-
граммных кодов VBA (сокращение от Visual Basic for Applications) и собственные
функции. Связанные с этим вопросы описываются в третьей главе, посвященной
разработке макросов и функций пользователя.

Примеры использования функций


Рассмотрим особенности работы с функциями на примере некоторых описанных
выше базовых функций. Приведенные примеры призваны проиллюстрировать основ-
ные подходы, доступные в Excel при создании рабочих документов. Безусловно, ни в
коей мере их не следует рассматривать как единственно возможный способ реализа-
ции встроенных функций. Кроме того, в примерах используются далеко не все из них.

Цепь постоянного тока


В качестве первого примера рассмотрим способы применения функции суммиро-
вания SUM(). Аргументами функции указываются величины, которые следует сум-
мировать. Аргументы разделяются запятой. В качестве аргументов могут указывать-
ся числа, логические величины, числа в текстовом формате, ссылки или диапазоны.

Замечание. Еще раз хочется напомнить, что диапазон в Excel задается так: снача-
ла указывается верхняя левая ячейка, а затем, через двоеточие, правая нижняя
ячейка. Например, четыре ячейки А1, А2, В1 и В2 образуют диапазон, ссылка на
который выглядит как А1 :В2.

Количество аргументов функции допускается от одного до тридцати. При этом


аргументы могут относиться к разным типам.
Рассмотрим задачу о вычислении сопротивления последовательно соединенных
резисторов и силы тока при заданном напряжении. Результирующий рабочий доку-
мент (внешний вид рабочего листа) показан на рис. 2.30.

Ш| Resklotc.xls

Рис. 2.30. Вычисление сопротивления и силы тока

136 Часть I. Основы Excel


Рассматривается цепь, состоящая из трех последовательно соединенных сопро-
тивлений R1 (10 Ом), R2 (20 Ом) и R3 (25 Ом). На зажимах прикладывается посто-
янное напряжение U (220 В). Вычисляется общее сопротивление цепи, которое, как
известно, в случае последовательного сопротивления проводников равно их сумме,
т.е. R = Rl + R2 + R3, а также ток в цепи, который равен отношению напряжения к
общему сопротивлению: / = U/R. Непосредственно вычисляемыми с помощью фор-
мул на основе введенных в таблицу данных являются значения в ячейках G9 (сила
тока) и G10 (сопротивление). Саму задачу можно условно разделить на два этапа:
непосредственно ввод исходных данных с соответствующим их форматированием и
выполнение вычислений.
Что касается входных данных, используемых в вычислениях, то это значения со-
противлений, которые вводятся в ячейки ВЗ (значение 10, сопротивление R1), D3
(значение 20, сопротивление R2) и F3 (значение 25, сопротивление R3). Помимо
этого, в ячейку D9 вводится значение напряжения U (значение 220). В ячейке G10
вычисляется общее сопротивление, равное, как отмечалось, сумме отдельных сопро-
тивлений. В данном случае для его вычисления задействована функция SUM(). Если
точнее, то в ячейку G10 введена формула =SUM(B3,D3,F3).

Совет. Данную формулу можно ввести в ячейку (или строку формул) непосредст-
венно с клавиатуры. Однако удобнее воспользоваться командой Insert^Function
(Вставка <=>Функция) или просто щелкнуть на кнопке со значком функции слева от
поля ввода строки формул, в результате чего открывается диалоговое окно
Insert Function (Вставка функции). Нужно выбрать в этом диалоговом окне функ-
цию SUM() — если она отсутствует в списке Most Recently Used (Последние ис-
пользуемые), ее, безусловно, легко будет отыскать в разделе Math&Trig
(Математические и тригонометрические). В открывшемся после этого диалоговом
окне Function Arguments (Аргументы функции) следует, поочередно выбирая поля
ввода аргументов и щелкая мышкой на соответствующих ячейках рабочего листа,
построить требуемую формулу.
Что касается ячейки G9, то туда вводится либо формула =D9/SUM(B3,D3,F3), либо
=D9/G10. Эффект будет одинаков, однако последнюю формулу вводить проще и разум-
нее, поскольку, если, скажем, нужно будет впоследствии добавить еще одно сопротивле-
ние параллельно к одному из резисторов, процедура вычисления общего сопротивления
изменится, а необходимости изменять формулу вычисления тока не будет.
Все остальное имеет отношение к форматированию данных, которое в этом слу-
чае достаточно простое. Можно отметить следующие его основные моменты.

> Изображения резисторов можно получить, применив выделение соответствую-


щих ячеек рамкой. Это можно сделать либо с помощью кнопок панели формати-
рования, либо посредством команды Format^Cells (Формат^Ячейки).
> Линии соединений между резисторами и место подключения источника питания
можно создать с помощью панели Drawing (Рисование). Для отображения панели
можно воспользоваться командой View^Toolbars 1 ^Drawing (Вид1^Панели инст-
рументов^Рисование). Сама панель показана на рис. 2.31, а ее кнопки кратко
описаны в табл. 2.6.

Глава 2. Анализ данных в Excel 137


Рис. 2.31. Панель инструментов Drawing

Таблица 2.6. Кнопки панели Drawing

Кнопка Назначение
Щелчок на этой кнопке приводит к раскрытию списка, в котором собраны
команды для работы с графическими объектами общего характера, позво-
ляющие вращать эти объекты, производить их выравнивание, задавать
приоритетность отображения и т.п.
Выбор графических объектов. Захватываются все графические объекты,
которые попадают (полностью!) в выделенную область
Раскрывается список с командами отображения всевозможных заранее
предопределенных графических форм: различных кривых и ломаных ли-
ний, звездочек, выносок, фигурных стрелок и прочих подобных элементов
Построение линии
Построение линии со стрелкой
Построение прямоугольников
Построение овалов
Вставка текстового поля
[:| Вставка художественного текста WordArt
Вставка структурной схемы
Вставка объекта ClipArt
Вставка графического изображения из файла
Выбор цвета заливки внутренних областей графических объектов
|.£.| Выбор цвета отображения линий
JA-J Выбор цвета отображения текста
Выбор толщины линии
Выбор типа линии
IgJ Выбор типа линии со стрелкой
Выбор эффекта отображения тени объекта
| '• Выбор эффекта отображения объекта в качестве трехмерного

Данные в ячейках ВЗ, D3 и F3, содержащих значения сопротивлений, выровнены


по центру, в ячейках с указанием размерностей величин (Е9, Н9, НЮ) выравни-
вание выполнено по левому краю, а в ячейках, содержащих название физических
величин (С9, F9, F10) — по правому. Кроме того, диапазон ячеек F9:H10 выделен

138 Часть I. Основы Excel


серым цветом, а данные в ячейках G9 и G10 отображаются красным цветом.
Все эти настройки можно выполнить либо посредством команд меню, либо с по-
мощью кнопок панели форматирования.

Приведенный пример достаточно тривиален. Безусловно, что такие простые вы-


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

Цепь переменного тока


Будем полагать, что известно напряжение в начальный момент времени, а также
максимальное напряжение в цепи. Кроме того, необходимо знать частоту перемен-
ного напряжения (она же частота тока). На рис. 2.32 представлен соответствующий
рабочий документ с данными по этой задаче.
Верхняя часть таблицы (см. первый пример) особых комментариев не требует.
Сопротивление вычисляется точно так же (теперь это ячейка G9). В ячейку G10
вводится значение для частоты тока.

I V Е* W

^ j
.R1.0H | R2, Он ; R3.0H :
* . *

it -

Umax- 220 В R- '""*' 55


50 Гц

5 19 20
Вре.Ж.с,,: 0.005 h 0.019: 0.02:
Напряженна U. В 91.65151":! 161.8894
1
2роТ
Сила тока I, А 1.666391 !| 2.943444! 3.636364"

:
о ш
CD 55 о
at ' X X
X
0)
0) *" ж
г
X
о _ £ x
я S x
X
Ё §ч
&• ф
Of
D 5 « os
X
« • Sш 1
=1 - х Ж
О ' ••
Q. ffi 01 '-
U еь - ' '
19 i U
5
.Напряженно U, В 0 1-10.5127 155.SG3492
C« л а тока 1, A 2E-16' 2.554778 2.82842712
H\Shcet l/Экмй/Sheets /

Puc. 2.32. Цепь с переменным током

Глава 2. Анализ данных в Excel 139


В первой таблице, размещенной сразу под схемой, представлена зависимость на-
пряжения и силы тока от времени. Значение отображается на протяжении полного
периода колебаний через равные промежутки времени (всего их 20). Для удобства
ячейки 12-й строки пронумерованы от 0 до 20 (диапазон ячеек C12:W12) и выделе-
ны полужирным шрифтом.
Совет. Чтобы не вводить все числа с клавиатуры, можно поступить следующим
образом. Сначала вводятся начальные числа (0 и 1 достаточно — т.е. заполняются
ячейки С12 и D12). Затем эти две ячейки выделяются и курсор мыши наводится на
маркер (при этом курсор приобретает вид тонкого креста). Далее курсор просто пе-
ретаскивается к ячейке W12 (при этом сразу можно видеть число, которое будет в
этой ячейке, — т.е. 20). В результате получается последовательность целых чисел
(арифметическая прогрессия) —именно та, что нам требуется.
Следующая, 13-я строка (диапазон C13:W13) содержит данные о моментах вре-
мени, в которые вычисляется напряжение и сила тока. Значения в ячейках этого
диапазона вычисляются на основе значений в ячейках, расположенных выше. Име-
ют место следующие соображения.
Так, известно, что период колебаний Г связан с частотой v соотношением Т= 1/v.
Далее, количество интервалов, на которые разбивается период, на единицу меньше
числа ячеек в диапазоне C12:W12, и равно, в силу использованного принципа нуме-
рации ячеек, значению в ячейке W12. Таким образом, напряжение и ток вычисляет-
ся через промежутки времени, равные отношению периода (обратная частота) и зна-
чения в ячейке W12. Тогда момент времени, соответствующий ячейке с номером i
(этот номер определяется значениями ячеек диапазона C12:W12) будет определять-
ся как произведение этого номера на промежуток времени отображения. Например,
формула в ячейке С13 выглядит как =C12/$G$10/$W$12. Абсолютные и относи-
тельные ссылки выбраны далеко не случайно. Дело в том, что при переходе к сле-
дующей ячейке (в данном случае D13) в соответствующей формуле нужно поменять
только ссылку на ячейку С12 (теперь это должна быть ячейка D12). Остальные
ссылки остаются неизменными, поэтому в следующие после С13 ячейки формулы
можно не вводить. Достаточно выделить ячейку С13, навести курсор мыши на мар-
кер заполнения и перетащить его к ячейке W13. Однако можно поступить еще про-
ще — сначала заполнить ячейки С14 и С15, после чего указанную процедуру проде-
лать для диапазона С13:W15.
Поскольку по условию колебания гармонические, то зависимость напряжения от
времени может быть представлена в виде линейной комбинации синуса и косинуса.
Аргументы у этих тригонометрических функций одинаковы и равны произведению
угловой частоты на время: U(t) - f/,cos(ca?) + t/2sin(cor). Для того чтобы вычислить уг-
ловую частоту, следует частоту обычную умножить на 2л. Константы £/, и U2 нахо-
дятся из тех условий, что максимальное напряжение равно f/max, а в начальный мо-
мент напряжение равно £/0. Несложно показать, что £/, = U0, a £/, = -y/^L. ~ ^1 (с точ-
ностью до знака, правда, но для определенности считаем эту величину положитель-
ной). Отсюда в ячейке С14 естественным образом появляется формула
=$D$10*COS(2*PI()*$G$10*C13)+SQRT($D$9A2-$D$10A2)*SIN(2*PI()*$G$10*C13).
А поскольку ток есть напряжение, деленное на сопротивление, в ячейку С15 вводим
формулу =C14/$G$9.

140 Часть I. Основы Excel


После заполнения диапазона ячеек C13:W15 получаем таблицу, которую можно
видеть на рис. 2.32.

Внимание! На рис. 2.32 данные о временной зависимости напряжения и тока дос-


таточно громоздки и не помещаются в области отображения, поэтому часть
столбцов скрыта (однако они в рабочем листе присутствуют). Для того чтобы об-
ратить внимание читателя на этот факт, в соответствующем месте, где должны
были быть скрытые столбцы, оставлен узкий пробел.

В таблице, размещенной ниже, под той, что описывалась только что (см. рис. 2.32),
представлено меньшее количество данных, однако они позволяют сделать некоторые
выводы о характере происходящих процессов в целом (это, другими словами, стати-
стическ^е данные). В частности, там представлены средние значения, среднее откло-
нение модуля и среднеквадратичное отклонение напряжения и силы тока о' их сред-
него значения за период. Для вычисления средних значений использованг функция
AVERAGEQ. В ячейку С20 введена формула =AVERAGE(C14:V14), а в ячейку С21 -
соответственно =AVERAGE(C15:V15). В качестве аргументов этих функций указаны
диапазоны ячеек, по которым средние значения и вычисляются.
Замечание. Выше последним столбцом при определении диапазонов указан V а
не W по той причине, что первый (начальный) момент и последний (данные в
столбце W) описывают одно и то же состояние (точнее, сдвинутое на полный пе-
риод). Чтобы не считать фактически одну и ту же точку дважды, данные в по-
следнем столбце в расчет не принимались.

Для напряжения получаем более чем ожидаемый результат — среднее значение


за полный период равно нулю, как и должно быть. Отличное от нуля число, указан-
ное в качестве среднего значения для тока, обескураживать не должно. Оно настоль-
ко невелико (пятнадцать нулей после запятой!), что его в рамках точности вычисле-
ний можно считать равным нулю.
Для вычисления среднего отклонения модуля использована функция AVEDEVQ.
В ячейку D20 введена формула =AVEDEV(C14:V14), в ячейку D21 следует ввести фор-
мулу =AVEDEV(C15:V15). Далее, среднеквадратичные отклонения вычисляются так:
сначала вычисляется сумма квадратов значений (поскольку среднее значение каждой из
величин равно нулю, это одновременно и сумма квадратов отклонений от среднего зна-
чения — это важно!), после чего она делится на число слагаемых (равно значению в ячей-
ке W12), и из полученного значения извлекается квадратный корень. Таким образом, в
ячейке Е20 можно обнаружить формулу =SQRT(DEVSQ(C14:V14)/$W$12), а в ячейку
Е21 введена формула =SQRT(DEVSQ(C15:V15)/$W$12). Все вычисляемые в таблице
значения выделяются красным цветом.
Совет. Чтобы ощутить всю прелесть использования электронных таблиц Excel,
следует поэкспериментировать, изменив некоторые значения (например, для
значений сопротивлений, частоты тока или параметров напряжения). Можно бу-
дет видеть, как внесенные изменения практически мгновенно отразятся на про-
чих данных.

Глава 2. Анализ данных в Excel 141


Цепь с катушкой и конденсатором
Ниже продемонстрированы некоторые методы работы с комплексными числами.
Рассмотрена электрическая цепь с резистором, конденсатором и индуктивной ка-
тушкой, соединенными последовательно. В этом случае, как известно, удобно рас-
сматривать сопротивления как комплексные величины. В частности, емкостное
комплексное сопротивление Хс может быть вычислено по формуле Хс = , где со
у со С
есть частота (связана с частотой тока со = 2nv), С — емкость конденсатора, j — мнимая
единица (в радиоэлектронике комплексную единицу традиционно обозначают через
j, а не через /). Индуктивное сопротивление XL зависит от индуктивности L: XL = j'coL.
Полное сопротивление Z (комплексное) вычисляется по формуле Z = R + XC + XL.
При этом действующие значения напряжения U и силы тока / в цепи связаны между
собой соотношением U = \ Z \ I , где |Z| - - модуль комплексного сопротивления.
Вид соответствующего рабочего документа показан на рис. 2.33. В частности, в
документе можно видеть рассматриваемую схему и две таблицы.
По поводу самой схемы какие-то комментарии вряд ли необходимы.

Совет. Катушку можно нарисовать следующим образом. Сначала отображается


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

Рис. 2.33. Вычисление полного сопротивления цепи

142 Часть I. Основы Excel


В первой таблице перечислены основные характеристики цепи (сопротивление
резистора, емкость конденсатора и индуктивность катушки, частота тока в цепи).
В колонке, следующей после колонки Значение, представлены данные, которые бу-
дут использоваться непосредственно в вычислениях. Поскольку емкость конденса-
тора указана в микрофарадах, она переведена в фарады, для чего использована
функция CONVERT(). Допустимые единицы размерности, которые используются в
качестве параметров этой функции, перечислены в табл. 2.7.

Таблица 2.7. Единицы измерения, используемые в качестве аргументов


функции CONVERT()

Категория Величина Аргумент


Масса Грамм "g"
Слаг (slug) (примерно 14593.84 грамм) "sg"
Фунт (примерно равен 453,6 грамм) "Ibm"
Единица атомной массы "и"
Унция (1 фунт равен 16 унциям и 1 унция равна "ozm"
16 драхмам)
Расстояние Метр "т"
Сухопутная миля "mi"
Морская миля (примерно 1853,6 м) "Nmi"
Дюйм (примерно 2,5 см) "in"
Фут (мера длины, равная 30,48 см, составляет "ft"
одну треть ярда)
Ярд (мера длины, равная 3 футам или 914,4 мм) "yd"
Ангстрем "ang"
Пика (pica) (1/72 дюйма) "Pica"
Время Год "yr"
День "day"
Час "hr"
Минута "mn"
Секунда "sec"
Давление Паскаль "Pa"
Атмосфера "aim"
Мм ртутного столба "mmHg"
Сила Ньютон "N"
Дина "dyn"
Фунт-сила "Ibf"
Энергия Джоуль "J"
Эрг "e"

Глава 2. Анализ данных в Excel 143


Окончание табл. 2.7

Категория Величина Аргумент


Термодинамическая калория
Международная калория "саГ
Электрон-вольт "eV"
Лошадиная сила-час "HPh"
Ватт-час "Wh"
Фут-фунт "fib"
BTU (сокращение от British Thermal Unit — "BTU"
британская тепловая единица)
Мощность Лошадиная сила "HP"
Ватт "W"
Магнитная индукция Тесла "T"
Гаусс "ga"
Температура Градус Цельсия "C"
Градус Фаренгейта "F"
Градус Кельвина "K"
Объем Чайная ложка "tsp"
Столовая ложка "tbs"
Жидкая унция (единица измерения объема "oz"
жидкости, равная 1/16 пинты или 29,57 кубических
сантиметра)
Чашка "cup"
Американская пинта "pt"
Английская пинта "uk_pt"
Кварта (равняется 1/4 галлона, что равно 2 пинтам "qt"
или 1,14 литра в Англии и 0,95 литра в Америке)
Галлон "gal"
Литр

144 Часть I. Основы Excel


Помимо этого, можно использовать десятичные приставки, которые приведены в
табл. 2.8.

Таблица 2.8. Десятичные приставки к названиям величин

Приставка Множитель Обозначение


экза (еха) 1Е+18 "Е"
ир II
пета (peta) 1Е+15
тера (tera) 1Е+12 "Т"
гига (giga) 1Е+09 "G"
мега (mega) 1Е+06 "М"
кило (kilo) 1Е+03 "k"
гекто (hecto) 1Е+02 "h"
дека (dekao) 1Е+01 "е"
деци (deci) 1Е-01 "d"
санти (centi) 1Е-02 "С"
милли (milli) 1Е-03 "m"
микро (micro) 1Е-06 "u"
нано (папо) 1Е-09 "n"
пико (pico) 1Е-12 "p"
фемто (femto) 1Е-15 "f"
атто (atto) 1Е-18 "a"

Как несложно заметить, для емкости специальных единиц не предусмотрено.


Однако выход из ситуации существует. Дело в том, что поскольку действие десятич-
ных приставок на величину не зависит от природы последней, то в качестве размер-
ной величины можно указать произвольную. Так, в ячейку Е12 введена формула
=CONVERT($D$12,"um","m"). Поскольку в Excel размерности чисел не запоминают-
ся, для дальнейших вычислений это несущественно.
Прочие параметры заданы в правильной системе единиц и они используются без
предварительного преобразования (формула =$D$11 в ячейке Е11 и $D$13 в ячейке
Е13). Однако для частоты исключительно ради удобства указано не ее значение, а
угловая частота (формула =$D$14*2*PI() в ячейке Е14).
В следующей таблице последовательно вычисляются активное, емкостное и ин-
дуктивное сопротивление (вычисляются они как комплексные числа). В частности,
активное сопротивление (ячейка Е16) вычисляется по формуле =СОМР1_ЕХ($Е$11,0),
т.е. это комплексное число (поэтому в ячейке значение по умолчанию выравнивается
по левой границе), у которого, однако, только действительная часть. Емкостное со-
противление (ячейка Е17) определяется согласно формуле =IMDIV(1,IMPRODUCT
($E$14,$E$12,"jM)), т.е. как частное двух комплексных чисел. Наконец, индуктивное
сопротивление (ячейка Е18) определено через произведение комплексных чисел
(формула =IMPRODUCT($E$14,$E$13,"j")).

Глава 2. Анализ данных в Excel 145


В ячейке Е19 вычисляется суммарное сопротивление (комплексная сумма
=IMSUM(E16:Е18)), а в ячейке Е20 — модуль этого числа (формула =IMABS(E19)).
Замечание. Если данные в ячейках в последующем копироваться не будут, то
особой разницы нет, какие ссылки в формулах использовать — относительные
или условные.
Совет. Часто случается, что вводимые формулы достаточно длинны и громоздки.
Это приводит к очевидным неудобствам в работе. Частично проблема может быть
решена, если формулы в строке формул вводить в несколько строк. Для этого
следует нажать комбинацию клавиш <Alt+Enter> (нажимать <Enter> не следует,
поскольку в этом случае будет предпринята попытка вычислить формулу).
Как можно использовать прочие математические (и не только) функции, будет
показано в последующих примерах.

Использование названий
В Excel есть одна достаточно интересная концепция, которая позволяет сущест-
венно упростить процедуру работы с формулами. Главная ее идея состоит в исполь-
зовании для ячеек, диапазонов, формул и констант специальных названий. В этом
разделе речь пойдет о них.

Использование названий для ячеек и диапазонов


Помимо выполнения ссылки на ячейку непосредственным указанием ее адреса,
можно для отдельных ячеек или диапазонов определять названия, которые затем
использовать в формулах. Другими словами, в Excel ячейка или диапазон могут
иметь, помимо адреса, еще и свое, уникальное название, или имя.
Чтобы ячейке присвоить имя, можно поступить следующим образом.
> Выделить нужную ячейку.
> В поле названия ячейки ввести имя, которое ячейке присваивается.
> Нажать клавишу <Enter>.
Процесс именования ячейки проиллюстрирован на рис. 2.34. Ячейке А1 присваи-
вается имя First.
ft Рис. 2.34. Процесс именования ячейки

Диапазоны именуются практически так же: выделяется диапазон и в поле назва-


ния вводится имя этого диапазона. Внесенные изменения подтверждаются нажати-
ем клавиши <Enter>.
Следует иметь в виду, что при выделении ячейки с именем в поле названия вме-
сто адреса ячейки будет отображено ее имя. Это же относится к диапазону. Название
диапазона отображается в поле названия только в том случае, если выделен весь
диапазон. Пример показан на рис. 2.35.

146 Часть I. Основы Excel


Однако если выделен иной диапазон, и при этом именованный диапазон содер-
жится внутри выделенного, отображается адрес верхней левой ячейки (рис. 2.36).
Замечание. В данном случае ячейка А1 имеет название First. В выделенном диа-
пазоне это левая верхняя ячейка. Однако отображается в этом случае не имя
ячейки, а именно ее адрес!
Помимо присваивания персональных названий ячейкам и, главное, диапазонам,
можно с успехом использовать текстовые наименования строк и столбцов таблицы.
В качестве примера рассмотрим таблицу с данными для некоторых элементарных
частиц и изотопов (рис. 2.37).

Рис. 2.35. Диапазону А1:С4 присвоено имя Рис. 2.36. Именованный диапазон содер-
Range жится внутри выделенного

Рис. 2.37. Характеристики элементарных частиц

В таблице, помимо непосредственно числовых данных, есть ячейки с текстовыми


данными, определяющими поля таблицы. Выделим диапазон А2:Е2 (это строка с
данными для электрона, включая и ее текстовое обозначение) и после этого выпол-
ним команду Insert^Name^Define (Вставка1*Название1*Определить). В результа-
те открывается диалоговое окно Define Name (Определить название), которое мож-
но видеть на все том же рис. 2.37. В этом диалоговом окне в поле Names in workbook
(Названия в рабочей книге) автоматически предлагается название для выделенного

Глава 2. Анализ данных в Excel 147


диапазона (в данном случае это Электрон). Большое белое поле внизу обычно со-
держит список других доступных названий в рабочей книге (просто в данном случае
таких нет). Внизу диалогового окна, в поле Refers to (Ссылается на), указывается
диапазон (или ячейка), для которого (или для которой) задается название.
Замечание. Ссылка на диапазон (или ячейку) по умолчанию является абсолют-
ной. Однако можно использовать и относительные ссылки. Тем не менее, это до-
вольно тонкая процедура, хотя временами и весьма полезная. Как правило, де-
лать это лучше в "полуавтоматическом" режиме, о чем речь пойдет далее.
Если после этого щелкнуть на кнопке ОК, на диапазон А2:Е2 можно будет ссы-
латься посредством имени Электрон.
При выделении диапазона или ячейки с последующим выполнением команды
Insert^ Name1^ Define в открывающемся диалоговом окне Define Name (Определить
название) автоматически отображается, помимо ранее определенных в рабочей книге
названий, текстовое значение размещенной рядом (сверху или слева) ячейки. При этом
можно оказаться в неоднозначной ситуации, например, когда и сверху и слева от текущей
ячейки есть ячейки с текстовыми значениями. По умолчанию если сверху и слева от
текущей ячейки, для которой определяется название, размещены ячейки с текстовыми
значениями, предлагается значение ячейки, находящейся слева от текущей. Если же вы-
делен диапазон в виде строки или столбца, то предлагается текстовое значение ячейки,
размещенной в начале этого диапазона. Текстовые названия для диапазона, содержащего
несколько строк (столбцов), предлагаются как для левой верхней его ячейки.
Замечание. Если рядом подходящей ячейки с текстовым значением нет, то в поле
определения названия диалогового окна Define Name ничего не отображается.
Название диапазона или ячейки надо будет вводить с клавиатуры. Само собой
разумеется, что совсем не обязательно использовать те названия, что предлагают-
ся по умолчанию (хотя это и удобно). Их можно переопределять. Кроме того, ес-
ли в выделенном диапазоне значение начальной ячейки является текстовым,
именно оно предлагается в качестве названия. Это, кстати, имеет место в приве-
денном выше примере.
При работе с названиями следует придерживаться следующих правил.
1. Названия должны начинаться с буквы, обратной косой черты (\) или символа
подчеркивания (_), В названии также можно использовать числа.
2. Пробелы в названиях не используются. Все пробелы Excel автоматически
преобразуются в символы подчеркивания.
3. Не могут использоваться названия, которые по сути своей совпадают со ссыл-
ками на ячейки (А1, например). Кроме того, если название состоит из одной
только буквы, это не может быть буква R или С.
В качестве примера использования имени диапазона рассмотрим процедуру вы-
полнения ссылки на строку. Выделим строку А10:Е10. После этого выполняем ко-
манду Insert^Name^Paste (Вставка^Название1^Вставить). В результате открыва-
ется диалоговое окно Paste Name (Вставить название), где следует выбрать назва-
ние исходного диапазона, на который в формуле выполняется ссылка (в данном
случае это Электрон), и щелкнуть на кнопке ОК (рис. 2.38).

148 Часть I. Основы Excel


В результате в строке формул появится выражение =Электрон. Затем следует
нажать комбинацию клавиш <Ctrl+Shift+Enter>, после чего значение ячеек в выде-
ленной строке будет совпадать со значением ячеек в исходном диапазоне (рис. 2.39).
Внимание! Если значение присваивается не отдельной ячейке, а диапазону ячеек,
следует нажимать клавишу <Ctrl+Shift+Enter>. Кроме того, как можно видеть из
рис. 2.39, в том случае, когда формула относится к диапазону, она выделяется фи-
гурными скобками. Эти скобки Excel вставляет автоматически.

Замечание. Обратите внимание, что выполнение ссылки на диапазон — это дале-


ко не одно и то же, что копирование данного диапазона. В рассмотренном случае,
например, форматирование не сохраняется. Кроме того, если впоследствии дан-
ные в строке Электрон будут изменены, автоматически изменения отразятся и в
строке А10:Е10.

ацНейтрон
4 I Протон
Водород
бор
ЩНеон
В. {Кремний
I

И < » M'i\Sheet l/SheetZ/Sheets /

Рис. 2.38. Выполнение ссылки на диапазон с использованием названия

'•tO 9е В* S*w In»rt Fflrmat loots Q.ata ^ndow Help - в X

u at У : X 4aa-'."« -j z - I»! " ' в / M S ,'»»,»


:
A10 •••
£{=Электрон)
; A 8 | С D i E . .;- | F i —
1 Название Символ Нуклоны Протоны Масса, а.е.н. Ti
2 i Электрон е 0 0 0.0005485
3 Нейтрон П i 1 0 1.008665
4 ; Протон Р
1 1; 1.0072765
;
5 Водород Н - 1 1! 1.007825
Ь Sop В 11 5 11.00ЭЗ
7 ;Неон Ne 20 10 19.99244
8 '-Кремний Si 28 14 27.9769
9 !
101Эяектрон е ' 0 0 O.OQ05435I
11
К Г > м \Sheet 1 /Этеей /.Shee(3 / 111 • iiiiur
Reetfe Sum=0.nra)54eS NUM

Рис. 239. Результат выполнения ссылки на диапазон

Глава 2. Анализ данных в Excel 149


Использование имен наиболее целесообразно в том случае, если в рабочем доку-
менте присутствует много формул, и есть ячейки или диапазоны, на которые ссылки
в этих формулах выполняются достаточно часто.
Помимо перечисленных выше способов определения имен, существует еще воз-
можность ввести имя без предварительного выделения именуемой ячейки или диа-
пазона (т.е. выделена может быть другая, отличная от именуемой, ячейка!). Открой-
те диалоговое окно Define Name — для этого достаточно нажать комбинацию кла-
виш <Ctrl+F3> — в поле Names in workbook введите название ячейки (диапазона),
а затем в поле Refers to (Ссылается на) укажите (обязательно после знака равенст-
ва!) адрес именуемой ячейки или диапазона. Ссылка на лист книги добавляется Excel
автоматически. Однако следует помнить, что если ссылка введена относительная, то
относительной она и останется. В некоторых случаях, как уже отмечалось, это удоб-
но. В качестве иллюстрации можно проделать такой опыт.
1. В чистой рабочей книге выделяем ячейку. Для определенности пускай это будет В2.
2. Далее открываем диалоговое окно Define Name выбором команды Inserts
Name1^ Define или нажатием клавиш <Ctrl+F3>.
3. В поле Names in workbook вводим название — например, left.
4. В поле Refers to удаляем предложенное по умолчанию значение =Sheet1 !$B$2 и
вводим значение =А2.
5. После щелчка на кнопке ОК имя left будет ссылаться на ячейку, которая раз-
мещена по отношению к текущей (т.е. той, куда вводится формула) на одну
позицию влево. Например, если в ячейку ВЗ ввести формулу =left, то это будет
ссылка на ячейку A3, а если формула =left введена в ячейку С5, то это ссылка
на ячейку В5. Таким образом, одно и то же имя ссылается на разные ячейки -
в зависимости от того, где это имя используется.
Внимание! Не следует забывать про знак равенства при вводе ссылки в поле
Refers to (Ссылается на). Если знак равенства пропущен, то ссылка будет интер-
претироваться как текстовое значение. Это, кстати, один из способов создания
имен для текстовых констант.

Использование названий для формул и констант


Очень часто при обработке данных эксперимента или выполнении инженерно-
физических расчетов приходится иметь дело с фундаментальными (или не очень фун-
даментальными) величинами (например, ускорением свободного падения, константой
Больцмана и т.п.). В этом случае, чтобы каждый раз не вводить численное значение
(а они, эти значения, как правило бывают достаточно громоздки), для такой величины
определяют название, через которое впоследствии на нее можно будет ссылаться. При
этом совсем не обязательно, чтобы константа была численной. Это может быть, на-
пример, текст или формула. Относительно текста это особенно актуально, поскольку
вводить многократно в таблицу длинные текстовые выражения крайне утомительно.
Чтобы задать название для константы, можно поступить следующим образом.
1. Откройте диалоговое окно Define Name (Определить название).
2. В поле Names in workbook (Названия в рабочей книге) введите название для
константы.

150 Часть I. Основы Excel


3. В поле Refers to введите значение константы. Если это число, то его можно
ввести либо после знака равенства, либо без такого знака (он все равно будет
добавлен Excel). Текстовое значение можно также вводить без знака равенст-
ва. Если все же знак равенства поставлен, то текстовое значение должно за-
ключаться в двойные кавычки.
4. Чтобы завершить операцию, выполните щелчок на кнопке ОК.
После этого данную константу можно использовать в формулах. Удобство такого
подхода состоит еще и в том, что если впоследствии значение константы изменить,
в формулы изменения вносить не нужно — они будут учтены автоматически.
Совет. Для того чтобы изменить значение константы, следует открыть окно диа-
лога Define Name, выбрать название константы из списка и в поле Refer to отре-
дактировать ее значение.

Внимание! Имена поименованных констант и формул (о них речь идет далее)


в поле названий Name, расположенном слева от строки формул, не отображают-
ся. Названия таких констант и формулы отображаются только в диалоговом окне
Define Name.

Примерно так же можно присваивать имена и формулам. Если точнее, то проце-


дура напоминает процесс определения имен для ячеек и диапазонов. Можно даже
сказать, что присвоение имени ячейке или диапазону — это частный случай при-
своения имени формуле (которая, фактически, в этом случае является тождеством).
В поле Refers to (ссылается на) вводится нужная формула (обязательно со знаком
равенства). Разумеется, формулы могут содержать (и как правило содержат) ссылки
на ячейки. Эти ссылки могут быть как относительными, так и абсолютными. Реали-
зация ссылок аналогична реализации отдельных ячеек и диапазонов. Например
предположим, что при активной ячейке В2 в листе Sheetl определяется с названием
My_Formula выражение (формула) =А1Л2+$В$1. После этого в ячейку А1 вводится
значение 1, в ячейку В1 вводится значение 2, в ячейку С2 вводится значение 3 и,
наконец, в ячейку D3 вводим формулу =My_Formula. Результат показан на рис. 2.40.

D3 •* ft =My_Fofmula Рис. 2.40. Использование именованной формулы

Значение в ячейке D3 равно 11. Дело в том, что в формуле, при ее определении,
было две ссылки: относительная на ячейку А1 (при активной В2, поэтому на самом
деле это ссылка на ячейку, расположенную вверх и влево на одну позицию к теку-
щей) и абсолютная ссылка на ячейку $В$1. Поскольку формула впоследствии раз-
мещается в ячейке D3, то, согласно относительной ссылке в формуле, используется
значение в ячейке С2. Результат вычисления формулы — это 3 (значение ячейки С2)
в квадрате плюс 2 (значение ячейки В1), т.е. 11. Таким образом, в данном случае
значение ячейки А1 вообще не используется.

Глава 2. Анализ данных в Excel 151


Ситуацию с абсолютными и относительными ссылками иллюстрирует также и
рис. 2.41: выделена ячейка В4, после чего предпринята попытка редактирования
формулы My_Formula (было открыто диалоговое окно Define Name и выбрано
название этой формулы, в результате в поле Refers to отображается определение
формулы, которое можно редактировать).

Dj Names ids

Puc. 2.41. Редактирование формулы

Во-первых, сразу следует отметить, что относительная ссылка теперь указывает на


ячейку A3, как и должно быть. Во-вторых, как несложно заметить, в формуле появи-
лось указание на рабочий лист (Sheet"!). Эта ссылка добавляется Excel автоматически.
Иногда возникает необходимость ссылаться на данные в ячейках в разных рабо-
чих листах. Если это отдельные ячейки, то при вводе формулы достаточно в явном
виде указать лист. Помимо этого, можно указывать диапазоны, которые "распростра-
няются" на несколько рабочих листов. Следующий простой пример иллюстрирует
эту особенность Excel.
В новой рабочей книге в листе Sheetl заполняем первые четыре ячейки
(диапазон А1 :В2) единицами, в листе Sheet2 этот же диапазон заполняется двойка-
ми, в листе Sheets — тройками. Далее, определяется два названия: Namel и Name2.
Диапазон Namel определяется как =Sheet1 :Sheet3!$A$1 и это три левых верхних
ячейки каждого из листов рабочей книги. Диапазон Name2 задаем выражением
=Sheet1 :Sheet3!$A$1 :$B$2. Последний является "трехмерным" массивом, который
состоит из диапазонов А1 :В2 каждого из трех рабочих листов. Ссылки на ячейки ис-
пользуются абсолютные.
После этого в ячейку А4 рабочего листа Sheetl вводится формула =SUM(Name1).
Согласно этой формуле вычисляется сумма чисел в ячейках Sheetl !A1, Sheet2!A1 и
SheetS!A1 (т.е. сумма 1+2+3). Результат показан на рис. 2.42.
В ячейку А4 рабочего листа Sheet2 вводится формула =SUM(Name2). В этом
случае суммируемых значений в четыре раза больше (по четыре ячейки в каждом из
трех листов). Результат можно видеть на рис. 2.43.

152 Часть I. Основы Excel


Замечание. Может статься, что сначала в рабочем документе используются
ссылки на те или иные ячейки (диапазоны), а после этого некоторым из ячеек
(диапазонов) присваиваются названия. Для того чтобы адреса ячеек были заме-
нены на соответствующие названия, достаточно выбрать команду I
Apply (Вставка"=>Название1^Применить).

Рис. 2.42. Использование названия Namel Рис. 2.43. Использование названия Name2
в формуле в формуле

Помимо использования имен для ячеек и диапазонов, в Excel существует


возможность ссылаться на ячейки посредством меток.

Использование меток при ссылках на ячейки


Под метками будем подразумевать текстовые значения в ячейках таблицы, кото-
рые в логической ее структуре используются для именования однотипных данных.
Хорошим примером в этом смысле может быть таблица, изображенная на рис. 2.39.
В этом случае метками можно считать названия элементов (Электрон, Нейтрон и
т.д.) и их характеристики (Символ, Нуклоны и т.д.). При работе с подобными табли-
цами можно и не предопределять названия для отдельных ячеек, а ссылаться на них
посредством меток. Для этого достаточно при ссылке на ячейку указать (через про-
бел) две метки, на пересечении которых находится ячейка.

Внимание! Прежде чем воспользоваться описываемыми здесь методами выполне-


ния ссылок через метки (иногда такие ссылки называют естественными), следует
убедиться в том, что включен соответствующий режим. Для этого нужно выбрать
команду Tools^Options (Сервис1^Параметры) и на вкладке Calculation (Вычисления)
открывшегося диалогового окна Options (Параметры) установить флажок опции
Accept labels in formulas (Принимать метки в формулах) (рис. 2.44).

Например, чтобы узнать количество нуклонов (т.е. суммарное количество протонов


и нейтронов) в ядре атома бора, можно воспользоваться формулой =Бор Нуклоны.
Значение выведено в ячейке А10 (рис. 2.45).
Причем совсем неважно, в каком порядке указана метка строки и метка столбца для
ячейки (на рис. 2.46 ссылка на все ту же ячейку выполнена в виде =Нуклоны Бор).

Глава 2. Анализ данных в Excel 153


Cotar ] International Save, I Error Checking | 5
View Calculation ) | General | Transition | Cu

Cetcutotjon
:: ;<* automatic <~BanuaI
.f*~ Automatic except tables 17 . .

Workbook options
P Update remote references Save external |nk values

: Г" grecision as displayed


Г" ISOIfJate system

PMC. 2.44. Установка режима поддержки естественных


ссылок

=Бор Нуклоны
_ С
Символ Нуклоны Протоны Масса, а.е.
0.0005485
1 008665
1.0072765
1.007825
11.0093
19.99244
27'.976Э

Рис. 2.45. Использование естественной ссылки

вю •f-J5r ^Нуклоны Бор


J. А 0
Название Символ Нуклоны Протоны Масса, a.e.i
я Электрон е О: 0; 0.0005485
ii Нейтрон "п li 0: 1.008665
| Протон 5 ТТ~ 1 1.0072765
1 Водород Н "ll i!" 1.007825
|6ор В Ill 5j~ 11.0093
речи 20! 10 19.99244
2 Кремний si 28! !4 27.9769

Рмс. 2.46. В естественной ссылке порядок следо-


вания меток не имеет значения

154 Часть I. Основы Excel


В качестве меток можно использовать и символы элементов (это ведь текстовые
значения). Например, вместо метки Бор можно практически с тем же успехом ис-
пользовать метку В (символ для атома бора, который указан в ячейке В6). Кроме то-
го, при выполнении естественной ссылки иногда можно ограничиться указанием
только одной метки. В этом случае ячейка определяется как та, которая находится на
пересечении строки (столбца), определяемой меткой, и столбца (строки) той ячейки,
где размещается ссылка. Другими словами, в качестве отсутствующей метки исполь-
зуется ячейка со ссылкой. В такой ситуации говорят о неявной ссылке. Это проиллю-
стрировано на рис. 2.47, где в ячейку СЮ введена очень простая формула: =В.
В формуле указана метка для шестой сверху строки (в этой строке находятся
данные для атома бора). Столбец выбирается в соответствии с той ячейкой, где раз-
мещена ссылка. Это, как уже отмечалось, ячейка СЮ, поэтому ячейка, на которую
выполнена ссылка, находится на пересечении шестой строки и третьего с начала
столбца (столбец, помеченный буквой С) — это ячейка Сб.
Замечание. При копировании ячеек с естественными ссылками все происходит
практически так же, как и при копировании относительных ссылок. Например,
как отмечалось, в ячейку А10 была введена формула =Бор Нуклоны. Это, по сути,
ссылка на ячейку, отстоящую от текущей (той, где формула) на две позиции
вправо и четыре позиции вверх (ячейка С6). Если теперь содержимое ячейки А10
скопировать в ячейку, скажем, В11, то ссылка будет на ячейку D7. В этом
несложно убедиться (рис. 2.48). Причем ссылка на ячейку D7 также представлена
в естественном формате (=Неон Протоны).
сю =В
|_ A..._... ... B_ j С I D . e J
1 iНазвание Символ Нуклоны Протоны Масса, а.е.я.
0.0005485
1.006665
1.0072765
1.007825
11.0093
1999244
27.9769

Рис. 2.47. Неявная ссылка

В11 •J& =Неон Протоны


,.. _ _
На"дняе Сиивоп Нуклоны Протоны Масса, а.е.и.
• Электрон О 0.0005485
^Нейтрон I 1.008665;
1 Протон 1 1.0072765*
^Водород
Н 1 1.007825г
шё В 11.0093;
19.99244г
№ 20:
j Кремний Si 28; 27.97691

Рис. 2.48. Копирование ссылки в естественном


формате

Глава 2. Анализ данных в Excel 155


Практически так же выполняются ссылки на диапазоны. В частности, на рис. 2.49
проиллюстрирован процесс копирования ячеек диапазона С7:Е7 в диапазон
С11:Е11. Для этого нужно выделить диапазон С11:Е11 и ввести формулу
=Неон НуклонькМасса, а.е.м, после чего следует нажать комбинацию клавиш
<Ctrl+Shift+Enter>.
Замечание. Фигурные скобки в строке формул добавляются Excel автоматически.
Есть и другой способ выполнения ссылки на диапазон. Предположим, что нужно
определить, какова минимальная атомная масса среди тех, что представлены в рас-
сматриваемой таблице. В этом случае (рис. 2.50) достаточно в ячейку Е9 ввести
формулу =MIN(Macca, а.е.м.) (функция вычисления минимального значения в
столбце, соответствующем метке Масса, а.е.м.). Такой метод особенно удобен, когда
следует вычислить сумму значений в ячейках диапазона.

С11
. _
1 Название|Сиивоп Нуклоны Протоны Масса, а.е.и.
.2 Электрон О О 0.0005485:
3 \ Нейтрон 1 О 1.008665/
4 ;Протон 1" 1 1.0072765
IP Водород i; •Г УЛ7825]
В L ч . ill" '..5[ 11.0093
Неон
Кремний
Ne
si
20:
Ж
_
10 19.992441
27.9769'

Ю 01маааюа -.19.992441

Рис. 2.49. Естественная ссылка на диапазон

Е9 £___f, =MIN(Macca,a.e .M.I


±J
А
! В С D ЕЗЕЖ] F
1 'Название Символ Нуклоны Протоны Масса, а.е.и.
2 Электрон е о: PI 0.0005485
3 'Нейтрон п i"! 0 1.008665
4 \ Протон Р 1 Г 1.00727651
5 \Водород Н 1 II 1.007825
" '•••.• В 11! 5 11.0093:

Т Неон Ne 20: 1U 19.99244


8 Кремний Si ! 28 14 27.9769
3 | 0.0005485J
10 11: 11 11:
11 10 20 10: 1999244!
12

Puc. 2.50. Выполнение ссылки на диапазон

Если в процессе работы приходится изменять метки, эти изменения автоматиче-


ски применяются ко всем ссылкам в формулах. Например, если изменить значение
метки Протоны на Протон, то в ячейке В11 ссылка будет преобразована к новому
виду автоматически (рис. 2.51).
При этом, как несложно заметить, можно оказаться в затруднительном положе-
нии, поскольку таблица теперь содержит две одинаковые метки (имеется в виду
Протон). Ситуация находит продолжение на рис. 2.52, где предпринята попытка вве-
сти в ячейку В9 формулу =Протон.

156 Часть I. Основы Excel


В11 =Неон Протон

1 Название Символ Нуклоны Протон Масса. a.e.Mj


2 'Электрон 0 0 0.0005485!
3 -Нейтрон п 1 0 1.008665;
4 '^Протон р 1 1 1.0072765
5 } Водород Н 1 1 1.007825
В 11 5 11.0093
7 Неон Ne 20 10 19.99244:
;
8 Кремний Si 1
28 14 27.9769
0.0005485

| "cz* 3. -.» ."" 19.99244Г7

Рис. 2.51. Преобразование ссылок при изменении


метки

С D Е ; F ;
Символ Нуклоны Протон Масса, а.*.*.
2 ;Электрон
3 ^Нейтрон
4
'Водород
There is more man one eel t*h № tobd
6 Бор
7_1Неон Протон
8 Кремний
Select the сев cortaln>ig the label to use:

Рис. 2.52. Разрешение неоднозначных ситуаций

В этом случае даже пользователю, не то что Excel, не понятно, на какую ячейку


выполняется ссылка. Но помощь все же приходит — на экран выводится диалоговое
окно Identify Label (Определение метки), в котором в поле Select the cell containing
the label to use (Выбор ячейки с меткой) нужно указать, какую же именно метку
принимать в расчет. В данном случае это ячейка А4, и чтобы ее указать, достаточно
щелкнуть мышью на этой ячейке.

Создание диаграмм и графиков


Наглядное представление информации зачастую не менее важно, чем ее эффектив-
ный анализ. Особое место в этом случае занимает, как правило, графическое представ-
ление данных. В Excel в этом смысле недостатка во встроенных утилитах не наблюда-
ется. Причем процесс построения всевозможных диаграмм существенно автоматизи-
рован и поэтому вряд ли какое-либо иное приложение подобного рода составит
достойную конкуренцию Excel. Ниже рассматриваются ключевые моменты, имеющие
отношение к графическому представлению численных данных в таблицах Excel.

Глава 2. Анализ данных в Excel


Создание диаграммы
Сразу же следует отметить, что существует два принципиальных подхода к по-
строению диаграмм в Excel. Можно либо сначала построить диаграмму, а затем ее ре-
дактировать, либо выполнять все настройки непосредственно в процессе создания диа-
граммы. В первом случае на создании диаграммы экономится существенное время —
результат появляется практически сразу. Однако при таком подходе все основные на-
стройки выполняются непосредственно Excel, а надеяться на эвристические способно-
сти этого замечательного приложения можно далеко не всегда (хотя возможности эти
во многом уникальны). Поэтому рекомендовать такой подход можно только в тех
случаях, когда приходится иметь дело с достаточно простыми ситуациями.
Во втором варианте процесс создания диаграммы полностью контролируется
пользователем. Однако данный подход подразумевает наличие некоторых познаний
в области настроек диаграмм, запас времени и терпения. Зато диаграмма приобрета-
ет именно такой вид (или почти такой), который требуется пользователю. Без со-
мнения, это путь настоящих героев!
Замечание. Несмотря на широкие возможности, предоставляемые пользователю
по настройке вида создаваемой диаграммы, некоторые параметры можно изме-
нить только после того, как диаграмма создана.
Самый оперативный метод создания диаграммы состоит в том, чтобы выделить диа-
пазон данных, по которым строится диаграмма, и нажать клавишу <Е11>. В результате
по данным, согласно настроек системы, используемых по умолчанию, на новом листе
(по умолчанию его название Chartl) строится диаграмма. В качестве примера рассмот-
рим таблицу, содержащую сведения о работе выхода электрона из металла для некото-
рых металлов. На рис. 2.53 показана эта таблица (она уже выделена, осталось лишь на-
жать клавишу <Е11>). В результате нажатия этой клавиши в рабочую книгу добавляется
новый лист, в котором представлена диаграмма, показанная на рис. 2.54.

S3 Miciosoll Excel - My_Chart xls


x
8» t* Slew : Insert Format loots Qata ffimdow! ЙФ - *

Рис. 2.53. Создание диаграммы посредством нажа-


тия клавиши <F11>

158 Часть I. Основы Excel


A/c. 2.54. Графическое представление данных из таблицы

В рассматриваемом случае данные представлены достаточно удачно. У диаграм-


мы вполне логичное название (Работа выхода, эВ — это значение в ячейке-метке
для столбца с численными данными), есть корректные подписи у горизонтальной
оси координат (определяются по соседнему столбцу с численными данными), а так-
же легенда (текст совпадает с названием). Однако такая идиллия имеет место от-
нюдь не всегда. Поэтому следует ознакомиться и с более обстоятельным подходом к
построению диаграмм. Условно он состоит из четырех этапов и основан на исполь-
зовании встроенной утилиты создания диаграмм Chart Wizard (мастер создания
диаграмм), которая может быть активизирована щелчком на кнопке стандартной
панели инструментов (кнопка с изображением диаграммы) либо посредством выбо-
ра команды Insert^Chart (Вставка^Диаграмма). В результате на экране раскроется
диалоговое окно, показанное на рис. 2.55.
В поле названия диалогового окна, помимо непосредственно названия, указыва-
ется этап создания диаграммы (в данном случае первый: Step 1 of 4). Окно имеет две
вкладки. В списке Chart type (Тип) на вкладке Standard Types (Стандартные) пред-
ставлены основные типы диаграмм, которые могут быть построены в Excel.
Для удобства соответствующие элементы списка дополняются пиктограммами,
которые позволяют наглядно представить, как будет выглядеть готовая диаграмма.
Каждому типу диаграммы соответствует несколько подтипов, которые отобра-
жаются справа в поле Chart sub-type (Вид). При выделении одного из таких подти-
пов внизу выводится краткая справка. Еще ниже расположена очень полезная кноп-

Глава 2. Анализ данных в Excel 159


ка Press and Hold to View Sample (Просмотр образца). Если нажать эту кнопку (и не
отпускать — это важно!), можно увидеть, как будет выглядеть диаграмма.
В качестве примера ниже приведен рис. 2.56, где выбрана диаграмма с отображе-
нием данных в виде цилиндров, размещаемых вдоль горизонтальной оси. Диаграмма
строится по упомянутой выше таблице с данными о работе выхода электрона для
металлов (выделен тот же самый диапазон, что и на рис. 2.53).

Chart Wizard - Step 1 of 4 - Chat Type

iCJustered Column. Compares values across


Categories.

Cress and HcM to gew Sample

Cancel '

Puc. 2.55- Первое диалоговое окно мастера


создания диаграмм

Chart Wizard - Step 1 of 4 - Chart Type

Standard Types | Custom Types |

flwrttypei Chart sub-type!

Bar wfth a cylndricet shape.

Press and Hold to gew San^jte

Cancel

Puc. 2.56. Выбор типа диаграммы

160 Часть I. Основы Excel


После щелчка на кнопке Press and Hold to View Sample (Просмотр результата),
можно видеть, как будет выглядеть диаграмма (рис. 2.57).

[ Замечание. Кнопку Press and Hold to View Sample отпускать нельзя. Диаграмма
отображается только до тех пор, пока эта кнопка нажата.

Если пользователя все (или почти все) в диаграмме устраивает, достаточно


щелкнуть на кнопке Finish (Готово) и рабочий документ приобретет вид, аналогич-
ный тому, что показан на рис. 2.58.
Однако процесс выполнения настройки вида диаграммы можно продолжить, для
чего следует щелкнуть на кнопке Next (Далее).
На второй вкладке Custom Types (Нестандартные) представлены некоторые до-
полнительные типы диаграмм, которые от стандартных (указанных на вкладке
Standard Types) отличаются, во-первых, тем, что не содержат подтипов, а во-вторых,
они, как правило, существенно нагляднее. В этом очень легко убедиться, для чего
достаточно перейти на данную вкладку (рис. 2.59).
В общем эта вкладка очень напоминает предыдущую. Однако здесь отсутствует
кнопка предварительного просмотра Press and Hold to View Sample. В этом нет необ-
ходимости, поскольку режим предварительного просмотра диаграммы активен авто-
матически — другого просто нет. Кроме того, в поле Select from (Выбрать из) можно
определиться с тем, какие типы использовать: встроенные (положение переключателя
Built-in) или определенные пользователем (положение переключателя User-defined).
После щелчка на кнопке Next осуществляется переход ко второму этапу создания
диаграммы. В этом случае диалоговое окно Chart Wizard принимает вид, подобный
тому, что представлен на рис. 2.60.

Standard Types J Custom Types


Chart type:

Puc. 2.57. Предварительный просмотр диаграммы

Глава 2. Анализ данных в Excel 161


hart Ars j

Металл Работа выхода, эВ


Алюминий 3.74' ....J
2.27
; i; :
Натрий й

Никель 4.84
Цинк 3.74

Рис. 2.58. Диаграмма в рабочем документе

jjj[ Lines on 2 Axes


^X Logarithmic
S7 Outdoor Bars
Pie Explosion
/X Smooth Lines
Stack of Colors

P«c. 2.59. Вкладка Custom Types диалогового


окна Chart Wizard

162 Часть I. Основы Excel


Chail Wizaid - Step 2 ol 4 - Chat Source Data

Data Range j Series j ,

Qata range:

Series h: Г BOM
<* Сфгив

'• • И ;

Рис. 2.60. Второй этап создания диаграммы.


Вкладка Data Range

Окно, как и в предыдущем случае, имеет две вкладки. На вкладке Data Range
(Диапазон данных), помимо образца диаграммы, содержится поле Data range
(Диапазон), где указывается диапазон данных, по которым строится диаграмма
(имеются в виду все данные, не только численные), а также группа переключателей
Series in (Ряды в). Переключатель в этой группе позволяет определить, как распола-
гаются данные — по столбцам (положение переключателя Columns) или по строкам
(положение переключателя Rows). В данном конкретном случае этот переключатель
установлен именно так, как это требуется. Однако если численные данные размещены
в нескольких столбцах (или строках — это как посмотреть), с помощью переключателя
можно указать, как именно (по строкам или по столбцам) следует формировать после-
довательность значений. Самостоятельно Excel не всегда правильно разбирается в по-
добных ситуациях. Справедливости ради следует отметить, что часто это невозможно
сделать по объективным причинам и без вмешательства пользователя не обойтись.
Например, строки таблицы могут содержать данные о зависимости давления газа от
температуры при постоянном объеме, и разные строки содержат сведения для разных
объемов газа. Понятно, что данные можно группировать как для разных объемов, так и
для разных температур, и решать эту задачу предстоит исключительно пользователю
(хотя Excel и предложит свое видение проблемы). Подробнее такие вопросы обсужда-
ются при решении практических задач в следующем разделе.
Вкладка Series (Ряд) полезна при выполнении дополнительных настроек диапа-
зона данных. В частности, в списке Series (Ряд) представлены названия для каждого
из отображаемых типов данных (рис. 2.61).

Глава 2. Анализ данных в Excel 163


Chail Wizard - Step 2 of 4 - Chart Source Data

Data Range

ЕД * 1. Name; }=Sheetl!$B$l

Category (X) a>* labels:

<Back Qrtsh

Pi^c. 2.6/. Второй этап создания диаграммы.


Вкладка Series

В данном случае элемент в списке только один, однако там их может быть и
больше — в зависимости от того набора данных, по которым строится диаграмма.
Если данные для какой-то категории оказались в списке случайно (или не случайно,
но отображать их статистику в диаграмме не следует), их можно удалить с помощью
кнопки Remove (Удалить). Для добавления категории данных в диаграмму исполь-
зуют кнопку Add (Добавить).
В поле Name (Название) указана ячейка, значение которой определяет название
для последовательности данных, а в поле Values (Значения) отображается диапазон
ячеек, из которого определяются значения для этой последовательности. Наконец,
в поле Category (X) axis labels (Метки для оси X) указан диапазон ячеек, значения в
которых служат метками для последовательности данных. Если это поле оставить
пустым, то последовательность отображаемых в диаграмме данных будет представ-
лена натуральными числами.
После выполнения соответствующих настроек следует либо щелкнуть на кнопке
Finish (Готово) (если все текущие настройки устраивают пользователя), либо продол-
жить процесс настройки диаграммы, для чего следует щелкнуть на кнопке Next (Далее).
Окно Chart Wizard (Создание диаграммы) примет вид, показанный на рис. 2.62. В этом
случае окно имеет целых шесть вкладок. Все они кратко описываются ниже.
На вкладке Titles (Заголовки) в поле Chart title (Заголовок диаграммы) можно
задать название диаграммы, а в поле Category (X) axis (Данные вдоль оси X) указать
надписи вдоль оси отображения групп данных. В полях Series (Y) axis (Ряды дан-
ных вдоль оси Y) и Value (Z) axis (Значения вдоль оси 2.) задаются названия вдоль
соответствующей оси. При внесении значений в указанные поля они автоматически
(но с некоторой задержкой) отображаются в окне предварительного просмотра диа-
граммы, расположенном в правой части диалогового окна.

164 Часть I. Основы Excel


IChail Wizaid - Step 3 of * - Chart Options

Ахя Gridfnes legend Data labels 0ata ТаЫе


Chart Bte:

Cancel <§ack . Bra*

Puc. 2.62. Третий этап создания диаграммы. Вкладка Titles

На вкладке Axes (Оси) можно задать параметры координатных осей (рис. 2.63).
На вкладке представлены команды с теми же названиями, что и поля на предыдущей
вкладке. Наличие флажка свидетельствует о том, что отображается соответствую-
щая координатная ось (т.е. если флажка нет, то вдоль соответствующей оси данные
не масштабируются). Кроме того, внизу под командой Category (X) axis (Данные
вдоль оси X) можно видеть переключатель на три положения. Дело в том, что в Excel
есть два принципиальных способа масштабирования данных вдоль оси, и, соответст-
венно, два режима. Этим режимам соответствуют положения переключателей
Category (Категория) (масштабирование по группам) и Time-scale (Временной)
(масштабирование по времени). Второй режим, режим масштабирования по време-
ни, используется в основном в тех случаях, когда группы данных относятся к разным
моментам времени. При этом данные размещаются в строгой хронологической по-
следовательности (даже если данные представлены в иной очередности) с соблюде-
нием масштаба относительного смещения моментов времени. По умолчанию пере-
ключатель установлен в положение Automatic (Автоматически), что позволяет Excel
автоматически выбирать нужный режим (режим масштабирования по времени ис-
пользуется по умолчанию только в тех случаях, когда соответствующие данные, по
которым ранжируются группы, имеют формат типа дата-время).

''• Autaoo»

<~ Time-scale
Г'. • •:...-
I* Value CZlaxfc

Рис. 2.63. Третий этап создания диаграммы. Вкладка Axes

Глава 2. Анализ данных в Excel 165


На вкладке Gridlines (Линии сетки) можно настроить режим отображения коор-
динатной сетки (рис. 2.64). Флажок опции Major gridlines (Основная сетка) соответ-
ствует отображению основной, крупной разметки координатных линий, а флажок
опции Minor gridlines (Мелкая сетка) позволяет отображать более мелкую разметку.
Если установить флажок опции 2-D walls and gridlines (Двумерные границы и сет-
ка), будет отменен режим трехмерного эффекта для системы координат.
На вкладке Legend (Легенда) (рис. 2.65) определяется место размещения леген-
ды диаграммы. Легенда отображается в том случае, если установлен флажок опции
Show legend (Показывать легенду). Расположенный ниже переключатель позволяет
размещать легенду на диаграмме внизу (положение Bottom), в правом верхнем углу
(положение Corner), сверху (положение Тор), справа (положение Right) и слева
(положение Left).

чллт.тядилгадядЕииг

Tides | Axes , 05ЖЙ:]|

Category (x) axis —


Г" gjaior grjdBnes
P Mgw grkSnes

SetasffiaOs
Г
". г »
Value (Z) axis
P Major gridSnes
,,•!""" Wnor.grid8nes

Г~ £-0 wafc end gridfines

«6»* Brtsh [

Puc. 2.64. Третий этап создания диаграммы. Вкладка


Gridlines

Г.Н.ч! Wi?aid - Step 3 of 4 - Chart Options

Titles | Axe

P Show legend
Placement - -
<~ Bottom
f Cgmer
<~Tof>

Рис. 2.65. Третий этап создания диаграммы. Вкладка


Legend

166 Часть I. Основы Excel


Вкладка Data Labels (Подписи данных) (рис. 2.66) предназначена для определе-
ния настроек меток и подписей в диаграмме. В частности, в рассматриваемом случае
можно в диаграмму добавить метки со значениями числовых данных, отображаемых
в диаграмме (флажок опции Value), названия групп (флажок опции Category name)
и последовательностей (флажок опции Series name) данных. В раскрывающемся
списке Separator (Разделитель) выбирается разделитель для этих меток.
На вкладке Data Table (Таблица данных) (рис. 2.67) можно задать режим отобра-
жения данных (внизу диаграммы), по которым диаграмма была построена. Для этого
следует установить флажок опции Show data table (Показать таблицу данных).
На последнем шаге (рис. 2.68) выбирается место, куда будет вставлена диаграмма.
Так, можно вставить диаграмму в новый рабочий лист (положение переключателя
As new sheet (Как новый лист), название листа задается в соответствующем поле) ли-
бо как объект в один из рабочих листов (положение переключателя As object in), кото-
рые выбираются в поле справа от переключателя.

Chart Wizaid - Step 3 of 4 - Chart Option»

lutes | Axes I Grcfines | Legsref [ft


;f tabd Contains :•::

: T~ Catenary name

Г '••'
r
Sgparatw: ,

EH*

Puc. 2.66. Третий этап создания диаграммы. Вкладка


Data Labels

!И.ЕТ1КТО5ТТ.»Яга.М|1».Д1|П5П1|П1ПТП

Mes | fixes I Grrtirws I Legend | С

сТ"'Show data Ы*
F

Cancel ba

Рис. 2.67. Третий этап создания диаграммы. Вкладка


Data Table

Глава 2. Анализ данных в Excel 167


Chail Wizard - Step 4 oM - Chad Location
Race chart:

<~ As new gust: [chart!

^ Assert h:

«{jack

Puc.2.68. Четвертый этап создания диаграммы.


Размещение диаграммы в документе

После щелчка на кнопке Finish (Готово) процесс создания диаграммы можно счи-
тать законченным (а можно и не считать!).
Внимание! В зависимости от того, какого типа диаграмма строится и по каким
данным, процесс создания диаграммы может иметь свои особенности в смысле
отсутствия некоторых из описанных выше вкладок, кнопок и т.п. или наличия
прочих элементов, не упомянутых выше. Однако, как правило, это имеет второ-
степенный эффект и процесс создания диаграмм в целом достаточно стереотипен.

Внесение изменений в диаграммы


Несмотря на то, что в процессе создания диаграммы пользователь имеет возмож-
ность задать все ее основные параметры, часто приходится проводить, что называет-
ся, их "доработку". Иными словами, изменения в настройки диаграмм часто требует-
ся вносить уже после их создания. Перечислить полностью все, что можно сделать с
объектом в Excel, в том числе и с диаграммой, практически нереально. Ниже описы-
ваются основные операции, которые бывает полезно применять к диаграммам. Если
способ выполнения тех или иных действий не очевиден, кратко описывается и метод
внесения изменений.
В первую очередь следует отметить, что может возникнуть необходимость соз-
дать диаграмму смешанного типа, т.е. такую диаграмму, для которой заранее предо-
пределенного типа в Excel нет. В этом случае главная рекомендация состоит в том,
чтобы создать диаграмму по типу, который наиболее соответствует предполагаемо-
му, а затем соответствующим образом диаграмму отредактировать. В качестве при-
мера рассмотрим таблицу о процентном содержании различных элементов в сплавке
Вуда (рис. 2.69). В этой же таблице представлена информация об относительной
молекулярной массе соответствующих элементов.

Рис. 2.69. Таблица с данными о


Став Вуда
содержании элементов в сплаве
\ Относительная I
Щ Элемент \ мопекупярная \ Содержание
I масса ! i
4 \Висму/п 208.9804: 50%
т
5 ]Саинец 207.2 25%
6 j Олово 116.69 12.50%:
Щкадмий 112.41'" 12.50%1
8-1

168 Часть I. Основы Excel


Данную таблицу выделяем и создаем диаграмму. Для определенности выбираем
тип диаграммы с отображением групп данных по вертикали (рис. 2.70). Такие типы
диаграмм используются в Excel по умолчанию. После того как диаграмма создана,
она может иметь вид, аналогичный тому, что показан на рис. 2.71.
Замечание. После этого диаграмму можно переместить (с помощью мыши), из-
менить ее размер и т.д. — при этом используются стандартные методы работы с
объектами в приложениях Microsoft Office.

Рис. 2.70. Выбор типа диаграммы

;A;_J в С ; _ О j_ Е [ F I G ; .И.. 1 (
'1 Сплав Вудз
~2~
;
} " Т"
:
Относительная F
Элемент молекулярная Содержание
3 масса
4 Висмут 208.9804 50% ] !
5 Свинец 207.2
6 Олово 11869 250 j :
7 Кадмий 112.41
ШЦНШЩЩ'
200 - О Относительная
8 молекулярная
9 масса
—,

j
10 1 • Содержание •
100 •
50 •
1 .
14
15' Висмут Свинец Олово Кадмий
4~- —
• • i
I ; i !
Рис. 2.71. Исходный вид диаграммы

Глава 2. Анализ данных в Excel 169


Однако, поскольку процентные величины преобразуются при отображении диа-
граммы к дробным единицам (например, 70% — это 0.7), сведения о процентном со-
держании различных элементов в сплаве разглядеть в диаграмме, в силу выбранного
там масштаба, совершенно нереально (хотя эти данные там есть!). Решить эту про-
блему можно следующим образом.
Во-первых, нужно выделить данные, относящиеся к процентному содержанию эле-
ментов в сплаве, и щелкнуть правой кнопкой мыши. В результате откроется контекстное
меню, в котором следует выбрать команду Chart Type (Тип диаграммы) (рис. 2.72).

J I L1
Ч : . J ^ . . I ., ^ i ' J ., ~ , , '^ .....:.] ' .".

_ Сплав Вуда | ;

Относительная ! I [ I
И Элемент \ молекулярная Содержание
3 ; мэсса
4 бис*ут 208.9804
ец 207.2 ' 25% !
6 0/we о "118.69 12.50%
7 «эй* ий 112'.41 12.50%
8
9
I
"10 '
"11 ' inn г— 1 .—, ' |ЙЙ Fornnal Data Series...
12
- • :
!
14; 10Q | : pi j-,1 Source Data...
Add Trcndline...
16"
Ctetr J :
18 : 4- - -
Тэ Висмут Свинец Олово Кадмий
20
21 : : ! I

Рис. 2.72. Внесение изменений в диаграмму

Совет. В данном случае выделить в диаграмме данные о процентном содержании


элементов — задача не из легких. Соответствующих столбцов практически
не видно. Однако если навести курсор мыши в то место, где они должны быть
(фактически, на горизонтальную координатную ось), а затем очень осторожно
перемещать его, то по выводимой Excel контекстной подсказке можно опреде-
лить, когда курсор находится именно там, где нужно. В этом случае следует вы-
полнить щелчок. В качестве "подопытного" можно выбрать любое из мест, где
должны быть столбцы данных диаграммы о процентном содержании сплава.
При этом автоматически выделяются все данные этой серии.

После выбора команды контекстного меню откроется диалоговое окно выбора


типа диаграммы Chart Type (рис. 2.73). В нем следует выбрать подходящий тип
отображения данных.

Внимание! Обязательно установите флажок опции Apply to selection (Применить


к выделению). В противном случае изменения будут применены ко всем данным,
а не только к выделенным.

170 Часть I. Основы Excel


Замечание. Следует иметь в виду, что далеко не все типы диаграмм совместимы.
Другими словами, диаграмму смешанного типа можно построить на основе только
некоторых базовых типов. При выборе того или иного типа диаграммы в качестве
дополнительного, Excel автоматически выделяет первый из совместимых подтипов.
Однако если подтип выделен, это совсем не значит, что он может использоваться в
данной диаграмме. Самый простой способ проверить совместимость типов — на-
жать на кнопке предварительного просмотра Press and Hold to View Sample
(Просмотр результата) (рис. 2.74). Если типы несовместимы, в окне просмотра бу-
дет отображено сообщение соответствующего содержания.

Standard Types I Custom Types ]

£hartcype; Chart sub-type:

Pie. Displays the contribution of each value


, R {Aggjf Ь gJMtjinl к to a total.
; Г йэгзиИformatting^

Press and Hold to 8ew Sample"

tas default chart

Puc. 2.73. Выбор способа отображения данных

Puc. 2.74. Предварительный просмотр диаграм-


мы смешанного типа

Глава 2. Анализ данных в Excel 171


После щелчка на кнопке ОК диаграмма примет вид, показанный на рис. 2.75.
Следует отметить, что для того, чтобы по круговой диаграмме узнать, сколько же
процентов того или иного металла.содержится в сплаве, достаточно навести курсор мы-
ши на соответствующий фрагмент (в результате появится справка с нужными данными).
Возможности по внесению изменений в диаграммы на этом, безусловно, не за-
канчиваются. Основной метод состоит в том, чтобы выделить соответствующий
элемент диаграммы (или всю диаграмму) и затем щелкнуть правой кнопкой мыши.
В раскрывшемся контекстном меню следует выбрать одну из команд настройки.
Конкретное содержание этого меню зависит от выбранного элемента. Однако доста-
точно часто команды дублируют те, что описывались в процессе создания диаграмм.
Кроме того, при выделении диаграммы или ее элемента на панели меню прило-
жения появляется новый элемент Chart (Диаграмма). Команды этого меню также
позволяют выполнять основные настройки уже созданных диаграмм.
Часто бывает необходимо строить серию однотипных диаграмм. Хорошо, если диа-
грамма соответствующего типа является встроенной в Excel. Если это не так, то можно
определить пользовательский тип. Для этого создается и настраивается требуемая диа-
грамма, а затем она выделяется. Далее выбирается команда Chart о Chart Type
(Диаграмма1^ Тип диаграммы), после чего в открывшемся диалоговом окне Chart Type
(Тип диаграммы) следует перейти во вкладку Custom Types (Нестандартные) и уста-
новить переключатель Select from в положение User-defined (Определенные пользо-
вателем), а затем щелкнуть на кнопке Add (Добавить). На рис. 2.76 показано, как соз-
дается новый тип диаграммы на основе той, что была создана выше.
После этого на экран будет выведено диалоговое окно, представленное на
рис. 2.77, в котором в поле Name (Название) следует ввести название для нового ти-
па диаграммы (в данном случае это My_Chart), а в поле Description (Описание) мож-
но ввести комментарий, который в дальнейшем будет отображаться в поле описания
типа диаграммы. После этого диаграммы данного типа можно будет запускать в
"массовое производство".

; Относительная
Элемент \ молекулярная Содержание
3 масса

Рис. 2.75. Окончательный вид диаграммы

172 Часть I. Основы Excel


lilTllii lilliBiiE
This cSatog aBows you to make the active chart Mo a ш
type. :
Enter a text name for the new custom chart type.
Darnel JMy_chart

Enter a text description for the new custom chart type.


Pescriptbre This chart type is created by me|

Cancel

Puc. 2.76. Создание диаграммы нового типа Рис. 2.77. Определение названия для типа
диаграммы
На рис. 2.78 представлена ситуация, когда на основе только что описанного поль-
зовательского типа создается новая диаграмма. В качестве базовых выбраны те же
данные, что в таблице о составе сплава Вуда, однако в этом случае выделен только
диапазон с численными величинами (т.е. диапазон В4:С7). Это отразилось, как не-
сложно заметить из рис. 2.78, на отсутствии названий для групп данных, однако об-
щий вид диаграммы остался прежним.
Для удаления типа из списка диаграмм пользователя следует перейти во вкладку
Custom Types окна Chart Type, выделить тот тип диаграмм, который следует удалить из
коллекции типов, и щелкнуть на кнопке Delete. Все это лучше делать, предварительно
выделив диаграмму (не важно какого типа), только в этом случае кнопка Delete будет ак-
тивной. После этого в появившемся окне запроса следует подтвердить удаление.

Рис. 2.78. Создание диаграммы пользователь-


ского типа

Глава 2. Анализ данных в Excel 173


Пример построения графика функции
В этом подразделе описан способ построения графика функции Бесселя. Пример
достаточно прост и призван проиллюстрировать методы построения графиков
функций. Такого рода задачи очень часто возникают при инженерных расчетах и на-
учных исследованиях. Как будет показано далее, в таких случаях также может с ус-
пехом использоваться Excel. Помимо этого, демонстрируются и методы редактиро-
вания диаграмм. Хотя речь об этом уже шла выше, в данном случае можно найти до-
полнительные практические рекомендации.
В качестве отображаемой функции рассмотрим, в частности, функцию Бесселя
нулевого индекса. Ниже можно найти описание основных этапов создания графика
для этой функции.

I Замечание. Чтобы функцию Бесселя можно было использовать, предварительно


необходимо подключить в Excel соответствующую надстройку.
В первую очередь следует создать массив данных, по которым будет строиться
график. С этой целью в ячейку А1 вводим слово Аргумент, а в ячейку В1 — соответ-
ственно Функция. Таким образом, в первый столбец будут вводиться значения аргу-
мента функции, а во второй — значения функции в этих точках. Начальное значение
аргумента примем равным нулю (ячейка А2), а чтобы вычислить значение функции,
в ячейку В2 вводим формулу =BESSELJ(A2,0) (рис. 2.79).
Строить график будем по точкам с интервалом 0.1 (можно выбрать и другой шаг,
это не принципиально, главное, чтобы он не был слишком большим, чтобы линия
графика была достаточно плавной). Поэтому в ячейку A3 вводим значение 0.1.
В ячейку ВЗ можно либо ввести формулу =BESSELJ(A3,0), либо скопировать ее из
ячейки В2 (поскольку ссылка на ячейку в формуле относительная, она автоматиче-
ски будет изменена соответствующим образом) (рис. 2.80).
Чтобы не вводить каждую точку отдельно, дальше разумно поступить следую-
щим образом: нужно выделить диапазон А2:ВЗ и навести курсор на маркер заполне-
ния (утолщение рамки в правом нижнем углу диапазона) (рис. 2.81).
Далее, удерживая левую кнопку мыши нажатой, следует перетащить рамку диа-
пазона вниз. При этом отображается текущее значение аргумента. В нашем случае
остановимся на величине 10.1 (рис. 2.82).
ВЗ f, = BESSELJ(A3.0)
В2 £ =6ESSELJ(A2,0) 3 ' .j D
i ''А ; . 8 _J - С Л1ЬЙ._1 ILL Аргумент; Функция ;
1 ; Аргумент (t /нщия о' тт
и 3. •
с
i
1J _ 0.11 0.9975021

Рис. 2.79. Ввод начальных данных Рис. 2.80. Вторая строка с данными
'
Ш 1
!
• [3 \
ш ub.1 1
105J
н ;hc 11 . >•, ей
j
. •• neiJctibrUi •• i п series or Ш; drag (nsfcte to cte» .

Рис. 2.81. Выделение диапазона данных Рис. 2.82. Создание массива данных

174 Часть I. Основы Excel


В итоге в первом столбце будут представлены значения аргумента функции
(с шагом 0.1), а во втором столбце — значения функции в соответствующих точках.
Для того чтобы построить график функции, выделяем диапазон значений этой
функции (рис. 2.83) и щелкаем на кнопке с изображением диаграммы на стандартной
панели инструментов (чтобы запустить мастер создания диаграмм Chart Wizard).
В открывшемся диалоговом окне мастера создания диаграмм выбираем тип диа-
граммы Line (Линия), что соответствует отображению графика, с необходимым под-
типом (рис. 2.84).
На втором шаге на вкладке Series (Ряды) в поле Name (Название) вводим назва-
ние Функция Бесселя, которое будет отображаться в легенде графика, а в поле
Category (X) axis labels (Метки для данных вдоль оси X) указывается диапазон
=Sheet1 !$A$2:$A$103. Данные в ячейках этого диапазона будут использоваться для
отображения вдоль оси абсцисс (т.е. как значения аргумента вдоль горизонтальной
оси) — рис. 2.85.
Совет. Чтобы не набирать с клавиатуры код для упомянутого выше диапазона
ячеек, можно его просто выделить мышью в таблице. Кроме этого, следует пом-
нить, что при нажатии клавиш со стрелками (при вводе значения в поле диалого-
вого окна) перемещения курсора в соответствующем направлении в поле ввода не
произойдет — будет осуществляться переход к ячейкам таблицы в данном на-
правлении, что можно заметить по изменениям в поле ввода.

0е Е* yew Insert Р&тЛ loot Qata ЩМюч ЦФ

У <а< * % -- -

Open ajvorkbgdk
V_alloy.xls
Gases, xls
My_chart.xls
Elements, xls
More workbooks

ft D Blank Workbook
New from cKisting workbook
_'j| i Choose workbook.

General Templates...
£) Templates on my Web Sites.
^ Templates on Microsoft.com

Add Web Folder..,


Microsoft Excel Help
Show at startup

Рис. 2.83. Запуск мастера Chart Wizard

Глава 2. Анализ данных в Excel 175


Chart Wizard - Step 1 of 4 • Chert Type

Standard Types j Custom Types |

Chart type; Chart sd^ypei

Puc. 2.84. Выбор типа графика

Chart Wizard - Step 2 of 4 - Chart Source Data

Osta Range Series ]

:
^ , N . . ....^........_...
.....„.„„- . . / ^T^^"":L].^.... ^ ' ""' '

Series
] Функция Бесселя _]]у

PMC. 2.<S5. Настройка графика

На третьем этапе можно задать, помимо прочего, название для графика, в поле
Chart title (Заголовок диаграммы). По умолчанию название предлагается совпадающим с
текстом в легенде графика. В данном случае оно изменено на График функции Бесселя.
В поле Category (X) axis (Данные вдоль оси X) введен текст, который будет отображать-
ся вдоль оси аргумента (введено х), а в поле Value (Y) axis (Значение вдоль оси Y) вво-
дится текст, отображаемый вдоль оси значений функции (введено у(х)) — рис. 2.86.
На вкладке Gridlines (Линии сетки) отменяем отображение координатных линий
(убираются флажки всех опций) — рис. 2.87. На вкладке Legend (Легенда) определяем
место отображения легенды — внизу под графиком (рис. 2.88).

176 Часть I. Основы Excel


1 Chart Wizard - Step 3 of 4 - Chart Options

TBes Axes Gridtnes legend] Data Labels | Data Table 1

[График функции Бессепя ]р»ф». футшн С«<еп

Category (X) axis: '•. "' 1 1^]


o« \
х
I
•••№»&**>'"' \ '••""' o.» \ ;
N*>I 1 1 ;•;
\ ! JJ

..,, • - . ! , • , , . ' . - , , , . 0 \ '/" Л , Ч


1 i -;-|
'з*«лГ«Ь. tV .i-i.: ! *«
Г" ' "..^.J

tai :,; c^ -<w-.ri=n в,*


PMC. 2.S6. Определение названия графика и подписей осей

MBS I Axes GfkSnes I Legend 1 DaaLaWs I DatalatJe I


Category (X) axis

PMC. 2.S7. Отмена отображения на графике линий


координатной сетки

Chan Wizaid - Step 3 of 4 - Chart Optinm

Tttes ] Axes ] SrMnes Legend | DataLabeh

P Show legend
Placement

Г Top

Cancel <Sack I JJext>

PMC. 2.88. Выбор места размещения легенды графика

Глава 2. Анализ данных в Excel 177


После выполнения всех приведенных выше настроек создается, наконец, график
функции Бесселя, и выглядеть он будет примерно так, как показано на рис. 2.89.
Этот график просто необходимо увеличить в размере (навести курсор мыши на
угол выделенного графика и растянуть). Но даже после этого желательно график
несколько отредактировать (рис. 2.90).
Во-первых, разумно изменить ориентацию текстовой надписи у оси значений
функции. Для этого соответствующий элемент диаграммы выделяется. После щелчка
правой кнопкой мыши открывается контекстное меню из двух команд (рис. 2.91), в ко-
тором следует выбрать команду Format Axis Title (Форматировать заголовок оси).

е<й Mew Insert fatnA Tcob Chart Wjndow нф

y.j a 977626
0.4 0.960398
a.S 0.93847
0.6 0.912005
0.7 0.881201 График функции Бесселя
0.8 о!в46287 4

Рис. 2.89. Диаграмма с графиком функции в рабочем документе

178 Часть I. Основы Excel


gfc £dt SQew Insert Fgrnwt toots Chart y^idow

Pi fi$ В "J & Гц "v"

График функции Бесселя

— Функция Бессел?

Рис. 2.90. График после увеличения его размера

9» В* serl FB™. Xoofe О1** Wbdow Цв1р Brvpoja^itonfa:.:.; , .'» X

!
:

Value Axis Title •• я


!.' 1 ' ®"!gaffi c?^ - '• • Д, » . •'

f i
Аргумент .функция
a 1
0.1 0.997502
0.2 0.990025'
График функции Бесселя
0.3 0.977626
0.4' 0.960398
0.5 093847
0.6 "0.912005
bT/j 0.881201
0.8I 0.846287
0.9 O.S07524
1 : 0.765198
1.1 0.719622
1.2' 0.671133
1.3 0.620086
1.4 0.566855
-0.5
'i'.s! 0^511828
1.6t o ! 455402
1.Г 0.397985
1.8. 0.339986
1.9 0.281819
2 0.223391
0'.1'66607

Рис. 2.91. Изменение параметров названия оси значений функции

Глава 2. Анализ данных в Excel 179


В результате открывается диалоговое окно Format Axis Title (Форматировать за-
головок оси), в котором на вкладке Alignment (Выравнивание) в разделе Orientation
(Ориентация) следует задать выравнивание текста по горизонтали (рис. 2.92).
Результат представлен на рис. 2.93. На этом же рисунке показан процесс редак-
тирования координатной оси (оси аргумента). Для этого ось выделяется и после
щелчка правой кнопкой мыши в раскрывшемся контекстном меню (рис. 2.93) выби-
рается команда Format Axis (Форматировать ось).
Formal Axis Title

Puc. 2.92. Ориентирование текста по горизонтали

В • > С I

0.997502 График функции Бесселя


0.990025
0.977626
0.96039S
0.93847
0^912005
0.8В1201
0,846287
0.807524
0.765198
0.719622
0.6Л13Э
О.Б20086
0.566855
0.511828
0455402
ОЭ979В5
0339986 — Функция Бесселя
0^281819
0.223891
0.166607

Puc. 2.93. Редактирование оси аргумента

180 Часть I. Основы Excel


На аналогичной вкладке Alignment (Выравнивание) следует задать ориентирование
надписей у оси аргумента по горизонтали (отменив тем самым команду Automatic
(Автоматически)) (рис. 2.94).
Практически так же можно выполнять настройки для координатной оси значе-
ний функции. Ось выделяется, после чего следует щелкнуть правой кнопкой мыши
и выбрать в раскрывшемся контекстном меню нужную команду (рис. 2.95).

. I

Patterns | State' | Fort


Orientation - •

Off**:

Рис. 2.94. Ориентирование меток у оси аргу-


мента по горизонтали

В» В* В" Insert Fsfmat Ipob Chart №ctow

Value Axi
i :.A__.J i j
i Аргумент Функция
0 1
0.1 0.997502
0.2' 0.990025
График функции Бесселя
0.3 0.977626
04 0.960398
O.S: 0.93847
0.6 0.912005
0.7 0.8812011
0.8 0.846287
0.9 0.807524
1 0765198
1.1 0.719622
12 0.671133
1.3 0.620086
1.4 0.566855
Т5: 0.511828
"Гб 0.455402
17 'о!3979В5
1.8 03399B6
" 1.9 0.281819
2 0.223891
2.1 0.166607
2,2 0.110362,

Ready.

Рис. 2.95. Редактирование вертикальной координатной оси

Глава 2. Анализ данных в Excel 181


Например, на вкладке Scale (Масштаб) диалогового окна Format Axis
(Форматировать ось) можно задать минимальное и максимальное значения, в пре-
делах которых отображается график (в данном случае верхняя граница установлена
равной 1.1). Там же выбран шаг отображения основных координатных меток
(осей) — величина 0.25 в поле Major unit (Основной шаг). С таким шагом будут ото-
бражаться насечки (с указанием значения) на координатной оси, начиная с верхнего,
максимального (указанного в поле Maximum) значения (рис. 2.96).
Замечание. При внесении изменений в соответствующие поля, значения в
остальных тоже могут измениться.
Наконец, можно изменить формат заливки основной области графика. Процедура
предельно проста — область выделяется, выполняется щелчок правой кнопкой мыши,
и из раскрывающегося списка выбирается команда Format Plot Area (Форматировать
область графика) (рис. 2.97).
В открывшемся окне Format Plot Area (Форматировать область графика) можно
выбрать параметры границы (рис. 2.98). Главные из них: тип линии (список Style),
цвет линии (список Color) и ее толщину (список Weight). Кроме того, можно задать
цвет заливки с соответствующими эффектами (кнопка Fill Effects).
В результате открывается новое окно Fill Effects (Эффекты заливки), которое со-
держит несколько вкладок (рис. 2.99). Там можно выбрать эффект выделения под-
светкой (градиент цветов, вкладка Gradient), тип основы (вкладка Pattern), или ис-
пользовать в качестве основы изображение из графического файла (вкладка Picture).
В данном случае на рис. 2.99 показано, как можно задать для графика "мраморный"
фон (вкладка Texture).

Г Logarithmic кие
Г" Values Sri cevwse order
Г" Category 00 axfc crosses at igaximtJn vat»

Puc. 2.96. Выбор границ отображения значений


на координатной оси

182 Часть I. Основы Excel


0. 997502
График функции Бесселя
07990025
0.977626
0.960398
0.93847
0912005 ChertТди,..
CLB81201
Source Data..
0.846287
b"B07524 Chart Options
0.765198 Location.
0719622
0.671133
0.620086
0.566855
0.511828
0.455402
0.397985
— Функция Бесселя

Рис. 2.97. Редактирование основного фона графика

Pattern! I
•вогеЬг
f fiutomatic
<~ jjone
^ Custom

•Sample

Р«с. 2.55. Выбор параметров заливки основного


фона графика

Глава 2. Анализ данных в Excel 183


Рис. 2.99. Выбор для поля графика "мраморного " фона

Наконец, изменим настройки самой линии, с помощью которой отображается


график. Как несложно догадаться, эта линия должна быть предварительно выделена
(рис. 2.100). После этого на ней достаточно выполнить двойной щелчок мышью.

S%] ffc git $ew Insert fytrat loot: flart Smdow Help

0.223891
0.166607
0.110362
«Asheetl^ShMffi /Sheet?

Рис. 2.100. Выделение линии графика функции

184 Часть I. Основы Excel


В окне Format Data Series (Форматировать ряды данных) пользователю предос-
тавлены достаточно широкие возможности по редактированию. В данном случае на
вкладке Patterns (Вид) в разделе Line (Линия) настраиваются параметры линии —
она делается несколько толще (список Weight) (рис. 2.101).
Конечный результат представлен на рис. 2.102.

Рис. 2.101. Выбор параметров линии

Щ Bfe Ed* Sew Insert F» mat look Qetd SJndow НФ


ц 4i. a a v-, x ч» в - -7 «-> - <- -, uз z - at it ^ в -и юо% -
- ю - в / ц р т т !л ч "£ . '-к л <
С1 » А

Аргумент: Функция
р! i
"ОН 0.997502 График функции Бесселя
' ^ 0.2i 0.990025
0.3: 0.977S2B
6,4: 0.960398
. " 0.93847
0.6 0.912005
0.7: 0,831201
0.8" 0.846287
03l 0.807524
l! 0.765193
Tj!'0.719622
\.2 0.671133
1.3; 0.620086
1.4* 0.566855
1.5 0.51182B
1.6 0.455402
1.7 0.397985
— Функция Бесселя
1.8! 0.339985

2! 0.223891!
2.1! 0.166607
2.2! 0.110362
.Sbeetl / 3ieet2 /Э]«*3 /
Ready

*si«.|} е
Рис. 2.102. График функции Бесселя

Глава 2. Анализ данных в Excel 185


В этой главе были представлены только основные моменты, связанные с создани-
ем диаграмм в Excel. Многие вопросы и спорные моменты остались без внимания.
В частности, в Excel можно столкнуться с проблемами динамического изменения за-
головка диаграмм в зависимости от вносимых в данные изменений, и в этом случае
разумно использовать специальный программный код. Тесно связана с проблемой
создания диаграмм и задача построения линий тренда. Об этом речь еще будет идти
в главе 5. В следующей, третьей главе, обсуждаются вопросы, связанные с созданием
макросов и программированием в Excel на языке VBA.

186 Часть I. Основы Excel


ГЛАВА 3

Программирование
в Excel
В этой главе...
• Создание макросов
• Основы интерфейса редактора VBA
• Создание и редактирование кода
• Функции пользователя
• Создание и работа с формами

глава посвящена вопросам, связанным с созданием и применением про-


граммных модулей при работе с Excel. Для написания подобных небольших программ,
которые используются как пользовательские приложения, функционирующие в среде
Microsoft Excel, традиционно применяется язык Visual Basic for Applications, или со-
кращенно VBA. В Excel программные коды VBA могут использоваться в основном ли-
бо как средство создания макросов, либо как инструмент написания функций пользо-
вателя. Причем если для подготовки функций пользователя обязательно потребуется
писать программный код, то для создания макросов можно обойтись и без этого.
Условно данную главу можно разделить на три части. Сначала описываются методы
создания макросов без непосредственного привлечения редактора VBA, затем описы-
ваются методы работы в редакторе VBA и, наконец, будет показано, как создаются
функции пользователя.

Создание макросов
В процессе работы с Excel часто случается так, что приходится многократно вы-
полнять достаточно однотипные действия. В этом случае разумно создавать
макросы. От обычной программы макрос отличается в первую очередь тем, что ти-
пичная программа выполняется "под контролем" операционной системы (Windows),
в то время как выполнение макроса осуществляется самим приложением (в данном
случае это Excel). Макрос может быть создан практически так же, как и любая дру-
гая программа. Для этих целей прямо из окна приложения Excel можно запустить
редактор языка VBA. Однако есть и более простой способ создания макросов.
Состоит он в том, чтобы перевести Excel в режим записи макроса, выполнить все те
действия, которые должны выполняться данным макросом, после чего выйти из ре-
жима записи макроса. Справедливости ради следует отметить, что этот метод при-
меним только в тех случаях, когда макрос не слишком сложен. Тем не менее, как бу-
дет показано далее, даже при работе со сложными макросами данный метод может
быть использован для генерации "базового" программного кода.

Простой макрос
В качестве примера создания макроса рассмотрим макрос, в результате выполне-
ния которого ячейки в диапазоне А1 :А10 заполняются последовательностью нату-
ральных чисел от 1 до 10, после чего активной становится ячейка В1. Ниже описы-
вается процесс создания подобного макроса.
1
Прежде всего, выберите команду Tools^Macro^Record New Macro (Сервис ^
1
Макрос ^Запись нового макроса). В результате раскроется диалоговое окно, пока-
занное на рис. 3.1.
iRecoid Macro ИИ:
Цасгопате:
My_Macro
Shortcut !<ey; State macro &;
arl+SHft+|A [This Workbook
;
z!
Bescriptron:
»• This macro generates numbers from 1 to 10

« rJ Cjicd [

Puc. 3.1- Окно записи макроса

В этом диалоговом окне следует в поле Macro Name (Название макроса) ввести имя
создаваемого макроса (в данном случае это Му_Масго), в поле Description (Описание)
можно ввести комментарий (текст This macro generates numbers from 1 to 10 или что-то
другое). Помимо этого, в поле Shortcut key (Клавиша быстрого выбора) может быть ука-
зана комбинация клавиш для запуска данного макроса. Чтобы сделать это, поместите
курсор в данное поле и нажмите выбранную клавишу. Впоследствии данная клавиша,
нажатая в комбинации с клавишей <Ctrl>, будет запускать создаваемый макрос. В дан-
ном конкретном случае использована прописная литера А, поэтому макрос будет запус-
каться нажатием комбинации клавиш <Ctrl+Shift+A>. В списке Store macro in
(Записать макрос в) можно указать, где будет храниться макрос. В нашем примере созда-
ваемый макрос записывается в текущую рабочую книгу. После щелчка на кнопке ОК
начинается запись макроса.
Замечание. Место хранения макроса во многом определяет его доступность.
I Подробнее речь об этом будет идти несколько позже.

Внимание! При записи макроса отображается панель остановки записи макроса


Stop Recording (Остановка записи).

188 Часть I. Основы Excel


Запись макроса состоит из таких этапов.
1. В ячейку А1 вводится число 1, а в ячейку А2 — число 2. После этого следует
выделить диапазон А1 :А2 (рис. 3.2).

А1 - # 1 Рис. 3.2. Внесение чисел в ячейки А1 и А2


А В : С
1 I
2 2
3

2. С помощью перетаскивания маркера заполнения необходимо расширить вы-


деленный диапазон до А1 :А10 (рис. 3.3).
3. Далее выделяем ячейку В1. Получившийся в результате вид окна Excel пока-
зан на рис. 3.4.

Рис. 3.3. Заполнение диапазона Рис. 3.4. Вид рабочего листа


А1:А10 с помощью маркера за- перед завершением записи макроса
полнения

4. Наконец, следует щелкнуть на кнопке окончания записи макроса на панели


Stop Recording (Остановка записи) (рис. 3.5).

Рис. 3.5. Остановка записи макроса

Совет. Если по каким-то причинам панель Stop Recording (Остановка записи) не


была отображена на экране (например, была случайно закрыта), вывести ее мож-
но выбором команды View^Toolbars^Stop Recording (Вид1^Панели инструмен-
тов1^ Остановка записи).
В дальнейшем для запуска только что созданного макроса можно выбрать коман-
ду Tools'^ Macros Macros ( Сервис1^ Макрос<=> Макросы) или нажать комбинацию
клавиш <Alt+F8>. В любом случае в результате откроется диалоговое окно Macro
(Макрос), подобное тому, которое показано на рис. 3.6.
В этом окне следует выбрать нужный макрос (в данном случае он один), и щелк-
нуть на кнопке Run (Запустить). Второй способ запустить макрос, как несложно дога-
даться, состоит в том, чтобы воспользоваться комбинацией клавиш <Ctrl+Shift+A>.
Проверить работу созданного нами макроса можно, в частности, так: перейдите в рабо-
чей книге на новый рабочий лист и выполните любое из указанных выше действий.

Глава 3. Программирование в Excel 189


: JAB Open Workbooks

fnao-o generates nutters from

Рис. З.6. Окно Macro может использоваться


для запуска макросов

Макрос с относительными ссылками


В приведенном примере, как несложно заметить, при вызове макроса заполняется
именно диапазон ячеек А1:А10, и никакой другой. Другими словами, заполняемый
диапазон ячеек не зависит от того, какая ячейка активна на момент запуска макроса.
Таким образом, можно утверждать, что ссылка на указанный диапазон является аб-
солютной. Этот факт сам по себе существенно ограничивает возможности примене-
ния данного макроса, однако часто бывает полезно при создании макроса использо-
вать не абсолютные, а относительные ссылки.
Такая возможность предусмотрена. Для того чтобы ссылки на ячейки или диапа-
зоны интерпретировались как относительные, на панели Stop Recording при записи
макроса следует предварительно щелкнуть на кнопке, находящейся справа от кноп-
ки остановки записи макроса (рис. 3.7).

Рис. 3.7. Переход к режиму использо-


вания относительных ссылок

В частности, если эта кнопка отображается нажатой, то все ссылки в процессе за-
писи интерпретируются как относительные. Если щелкнуть на ней еще раз, кнопка
вновь будет отображаться отжатой и ссылки будут интерпретироваться как абсо-
лютные. В процессе записи макроса можно неоднократно щелкать на этой кнопке,
помещая таким образом в макрос как абсолютные, так и относительные ссылки.
Ниже эта особенность манипулирования ссылками будет использована для того,
чтобы создать макрос, с помощью которого в диапазон ячеек, начиная с выбранной
при запуске макроса, будут заноситься натуральные числа от 1 до 10, затем активи-
зируется ячейка А1.
Сам процесс создания подобного макроса практически ничем не отличается от
предыдущего случая (следует только учесть особенности использования относи-
тельных и абсолютных ссылок). Ниже перечислены основные этапы создания дан-
ного макроса и подчеркнуты те моменты, на которые следует обратить внимание.

190 Часть I. Основы Excel


Совет. Удобно создавать данный макрос в том же документе, где был создан мак-
рос из предыдущего примера. Для его записи можно, например, перейти к новому
рабочему листу.
1. Выберите команду Tools^Macro^Record New Macro. В открывшемся диало-
говом окне Record Macro укажите имя макроса (можно что-то вроде
Му_Масго_2). Комментарий большого значения не имеет (хотя, конечно,
смотря для кого), а вот в качестве горячей комбинации клавиш целесообразно
указать <Ctrl+A> — для этого достаточно в поле Shortcut key (Клавиша быст-
рого выбора) ввести курсор и нажать клавишу <А> на клавиатуре. При этом в
соответствующем поле отображается строчная литера. Таким образом, для за-
пуска макроса, заполняющего числами ячейки диапазона А1:А10, можно на-
жать комбинацию <Ctrl+Shift+A>, а для заполнения ячеек диапазона, верх-
няя левая ячейка которого совпадает с текущей (активной на момент запуска
макроса), — комбинацию <Ctrl+A>.
2. Сразу же следует на панели Stop Recording (Остановка записи) щелкнуть на пра-
вой кнопке, включив тем самым режим использования относительных ссылок.
3. После этого в ячейку А1 вводится число 1, в ячейку А2 — число 2, диапазон
А1 :А2 выделяется и расширяется до А1:А10.
4. Теперь следует еще раз щелкнуть на правой кнопке панели Stop Recording —
это переведет Excel в режим использования абсолютных ссылок.
5. Все, что осталось, — это щелкнуть мышью в ячейке А1, сделав ее тем самым
активной.
6. В завершение записи макроса щелкните на кнопке останова записи на панели
Stop Recording. Макрос готов к использованию.
Проверить работу макроса можно, выделив какую-то ячейку в рабочем листе,
отличную (для чистоты эксперимента) от А1, и нажав <Ctrl+А>.

Совет. Все это лучше, конечно, делать в чистом рабочем листе. Если трех рабочих
листов книги, предлагаемых по умолчанию для работы, недостаточно, можно до-
бавить еще один рабочий лист. Это делается посредством выбора команды
Insert1^ Worksheet (ВставкаОРабочий лист).

Теперь достаточно будет нажать комбина-


цию клавиш <Ctrl+A>, в результате чего диапа-
зон из десяти ячеек, начиная с активной на мо-
мент запуска макроса, будет заполнен последо-
вательными натуральными числами от 1 до 10,
активной станет ячейка А1. Результат выпол-
нения созданного выше макроса Му_Масго_2
представлен на рис. 3.8. Перед запуском макро-
са активной была ячейка С4.
Точно таким же образом при записи макро-
сов можно задавать всевозможные параметры
для данных в ячейках таблицы: размер симво- Рис. 3.8. Результат выполнения макроса
лов, тип выравнивания, цвет шрифта и т.п. My_Macro_2

Глава 3. Программирование в Excel 191


Очень часто рассмотренного выше метода создания макросов бывает вполне дос-
таточно для решения возникающих при работе с Excel задач. Однако это не единст-
венный способ создания макросов (и не самый оптимальный с точки зрения реали-
зации). Несоизмеримо большие возможности пользователь имеет в своем распоря-
жении при создании макроса или функции пользователя с помощью редактора
языка VBA. Однако прежде чем рассмотреть этот вопрос, разумно определиться с
тем, где же все-таки лучше хранить создаваемые макросы.

Сохранение макросов
Как уже отмечалось, место хранения (т.е. каталог, в котором сохранена книга с мак-
росом) во многом определяет доступность макроса при работе с другими документами.
По умолчанию при записи макроса предлагается сохранить его в текущем рабочем до-
кументе (т.е. в списке Store macro in диалогового окна Record Macro выбран элемент
This Workbook). Для того чтобы макрос был доступен и при работе с другими книгами,
та книга, в которой этот Макрос сохранен, также должна быть открыта. Тогда при за-
пуске макроса посредством выбора команды Tools^Macro^Macros в списке Macros in
диалогового окна Macro следует выбрать значение All Open Workbooks (Все открытые
книги). В этом случае в диалоговом окне Macro перечисляются макросы из всех от-
крытых на данный момент рабочих книг.
Данный метод сохранения макросов хотя и вполне приемлем, тем не менее не
всегда удобен. Особенно это очевидно при работе с функциями пользователя. В час-
тности, при их вызове приходится в явном виде указывать рабочую книгу, где эти
функции были в свое время описаны. Поэтому разумнее все же сохранять макросы в
персональной книге. Эта книга имеет название PERSONAL.xls и хранится в каталоге
XLSTART (подкаталог того каталога, где хранятся файлы Excel — как правило, речь
идет о каталоге Excel\XLSTART). Как известно, при запуске приложения Excel все
документы, размещенные в этом каталоге, открываются автоматически. Поэтому
преимущество сохранения макроса в персональной книге состоит в том, что макрос
будет записан в книге, которая постоянно открыта.

( Внимание! Следует иметь в виду, что в списке открытых документов меню


Window (Окно) книга PERSONAL.xls не отображается!
Для того чтобы макрос был сохранен в персональной книге, нужно перед записью
макроса выбрать в диалоговом окне Record Macro в списке Store macro in значение
Personal Macro Workbook (Персональная книга).
Еще один способ сделать макрос доступным состоит в том, чтобы сохранить доку-
мент, в котором этот макрос определяется или определен, в качестве надстройки.
Для этого следует открыть тот документ, где размещены нужные макросы (в данном
случае это будет книга с макросами из рассмотренных выше примеров), и затем сохра-
нить этот документ в качестве надстройки командой File<=>Save as (ФайлОСохранить
как). В списке типов файлов (список Save as type) следует выбрать значение
Microsoft Excel Add-In (*.xla), что соответствует формату файла надстройки, а в поле
File name (Название файла) следует указать имя создаваемого файла. При выборе
данного типа сохраняемого файла автоматически предлагается специальная папка для
его сохранения (это папка Addlns). Файлы надстроек разумно сохранять именно в
данной папке (хотя абсолютной необходимости в этом, конечно, нет).

192 Часть I. Основы Excel


После того как файл надстройки сохранен, следует выбрать команду Tools<=> Add-
ins (Сервис1^ Надстройки) и в диалоговом окне надстроек Add-ins поставить флажок
у названия файла вновь созданной надстройки. На рис. 3.9 представлен вид этого
окна, здесь файл надстройки с макросами имеет название My_Macros.xla.

Wd-Insavafabte:
k Analysis ToolPak
™ Analysis ToolPak - VBA
Conditional Sum Wizard
Г" Euro Currency Tools
Г Internet Assistant VBA
Г Lookup Wizard

Г Solver Add-in Ayjtomatiofi...

Рис. З.9. Диалоговое окно Add-lns

Для подтверждения следует щелкнуть на кнопке ОК. После этого при каждом за-
пуске приложения Excel данная надстройка будет автоматически загружаться в па-
мять, в результате чего будут доступны как функции пользователя, так и макросы, оп-
ределенные в соответствующем файле. При этом функции пользователя будут доступ-
ны посредством вызова команды Inserts Function (Вставка <=>Функция) (они будут
представлены в категории User Defined диалогового окна Insert Function). Что касает-
ся макросов, то они в списке доступных макросов диалогового окна Macro упоминать-
ся не будут, но установленные для них комбинации клавиш будут работать.
Замечание. Если файл надстройки был сохранен в папку, отличную от Addlns, то
при выборе команды Tools'^Add-ins данная надстройка в списке доступных ото-
бражаться не будет. В этом случае потребуется дополнительно воспользоваться
кнопкой Browse (Просмотр) и указать местонахождение соответствующего фай-
ла в системе.

Основы интерфейса редактора YBA


Несмотря на то, что в приведенных выше примерах макросы создавались достаточ-
но просто и без всякого программирования, это не должно становиться поводом для
иллюзий. Без написания настоящего программного кода приличного макроса или
функции пользователя не создать. Такие программные коды, как уже отмечалось ра-
нее, пишутся на языке VBA, в среде специализированного редактора, встроенного в
Excel и другие приложения Microsoft Office. Этому и смежным с ним вопросам посвя-
щен как данный раздел, так, в некоторой степени, и последующие разделы главы.
Безусловно, в полной мере изложить хотя бы основы программирования на языке

Глава 3. Программирование в Excel 193


VBA в одной главе крайне проблематично. Поэтому здесь приводятся основные, кон-
цептуальные положения, которые следует освоить при работе с редактором VBA.
Крайне полезен для читателя был бы опыт работы с одним из объектно-
ориентированных языков программирования. Тем не менее, отсутствие такого опыта
не должно быть проблемой, затрудняющей понимание излагаемого ниже материала.

Редактор VBA
Условно процесс работы с редактором VBA (в контексте его использования в
Excel) можно разделить на редактирование уже существующих макросов и создание
новых (т.е. написание программ "с нуля"). Принципиальной разницы, безусловно, в
обоих случаях нет, но процесс изучения методов работы с кодами VBA все же ра-
зумнее начать с изучения уже существующих функций и макросов.
Соответствующие коды создаются и редактируются в специальном редакторе,
который может быть вызван прямо из окна приложения Excel. Для этого достаточно
выбрать команду Tools^Macro^Visual Basic Editor (Сервис^Макрос^Редактор
Visual Basic) или нажать комбинацию клавиш <Alt+FH>. В результате откроется
окно редактора VBA, показанное на рис. 3.10.

:: Бе £* Bew Insert Format Qebue Sim loob fijiHre Mndow №*

luncres (ruNCKtS.XLAJ
г U VBAProject (Book!)
S-ИЗ Microsoft Excel Objects

Sheet]
DisplayPageBreaks False
DisplayfUghtToLeftiFalse
EnableAutoFilter 'False
inableCalculatton True
inableOutlining False
EnablePtvotTable False
EnableSelection 0 - xINoRestriclions
tame Sheetl
ScrollArea
5tandardWidth
rtsbe

Puc.3.10. Окно редактора VBA

194 Часть I. Основы Excel


В этом редакторе, как отмечалось, можно создавать программные коды макросов и
функций на языке VBA. Редактор VBA по своим функциональным возможностям
практически не уступает самому приложению Excel, поэтому для эффективной работы
с программными кодами необходимо иметь хотя бы самое общее представление о ме-
тодах взаимодействия пользователя и редактора VBA. Ниже приведена основная ин-
формация об элементах рабочего окна редактора VBA. Эти данные ни в коей мере не
претендуют на полноту изложения, поэтому читатель, которого серьезно интересуют
методы работы с языком VBA, должен обратиться к специальной литературе. Тем не
менее, приведенных сведений должно быть вполне достаточно для решения большин-
ства прикладных задач, связанных с выполнением научных расчетов. Помимо этого,
методы работы с редактором VBA рассматриваются еще и на примере редактирования
программного кода макроса. Информация по тем или иным элементам окна редактора
VBA приводится в контексте выполняемых при редактировании кода действий.

Замечание. Здесь и далее речь будет идти о редакторе VBA, который вызывается
при работе в Excel. Хотя существенной разницы между тем, из какого приложе-
ния осуществляется вызов редактора VBA, нет, все же каждое из приложений
пакета Microsoft Office имеет свои особенности. Здесь мы на них останавливаться
не будем.

Сразу следует отметить, что рабочее окно редактора VBA может включать
несколько подчиненных окон (которые можно и не отображать). Как правило, при
работе с редактором VBA используется три основных окна: окно проекта
Project Explorer, окно свойств Property Window и собственно окно редактора про-
граммного кода Code Window (на рис. 3.10 это окно не отображено). Кроме того,
в полной аналогии с рабочим окном приложения Excel, при работе с редактором
VBA можно добавлять и убирать панели инструментов, равно как и выполнять их
настройку. Однако, пожалуй, основным элементом редактора (и не только VBA)
является панель меню, поскольку именно с помощью этой панели осуществляется
доступ к командам редактора VBA. Именно с панели меню мы и начнем экскурс по
графическому интерфейсу редактора VBA.
Подробности. При описании редактора VBA будут встречаться загадочные тер-
мины, такие как модуль, форма или проект. Они хорошо знакомы всем, кто хоть
раз сталкивался с объектно-ориентированным программированием (сокращенно
ООП). Тот, кто с ним не сталкивался (и правильно делал), может представлять
себе модуль как то место, где хранится программный код, форму — как диалого-
вое окно с различными элементами управления, а проект — как совокупность мо-
дулей, образующих законченную программу.

Меню File
В меню File (Файл) собраны команды, имеющие отношение к общим вопросам ра-
боты с файлами, — открытию, закрытию и сохранению файлов или выводу их содер-
жимого на печать. Содержимое меню File (Файл) редактора VBA показано на рис. 3.11.
Замечание. Здесь и далее описываются только те команды, которые доступны в
рамках редактора VBA при вызове его из приложения Excel, т.е. те команды, ко-
торые пользователь сможет увидеть, раскрыв соответствующее меню.

Глава 3. Программирование в Excel 195


loft Visual Basic - Book! - (Sheet! (Code)] J21
И; 9
е
|б* ^
ка nsert
i fg™t Bebug &ш lock - S X
Q- Save Book! Ctrl+S

Import Rle... Qri+M


ill -^1 HDeclai otion*)
Ctrl+E

Ctri+P

Sheetl
>splayPageBreaks. Fdse
DisplayRightToleft False
EnableAutoFilter .False
EnableCakulatton True
inableOutlimng ; False
asjtLJ ±r
Puc.3.11. Содержимое меню File редактора VBA
Для некоторых команд слева указана пиктограмма кнопки на панели инструмен-
тов, щелчок на которой приводит к выполнению этой команды. Однако пиктограм-
мы указаны не для всех команд. В некоторых случаях для команды специальная
пиктограмма не предусмотрена, а в других соответствующая кнопка по умолчанию
просто не отображается на панели инструментов, тем не менее кнопку для данной
команды на панели инструментов разместить можно. Более подробное описание ко-
манд меню File можно найти в табл. 3.1.
Таблица 3.1. Команды меню File редактора VBA

Команда Кнопка Сочетание Описание


клавиш
Save (Сохранить) <Ctrl+S> Сохранение документа VBA
Import File (Импорт <Ctrl+M> В результате выполнения команды откры-
файла) вается диалоговое окно Import File, где
можно выбрать внешний модуль или фор-
му, которые будут добавлены в проект
Export File <Ctrl+E> Команда позволяет сохранить файл модуля
(Экспорт файла) или формы как внешний с целью после-
дующего его импортирования другим про-
ектом. Осуществляется экспорт файла по-
средством диалогового окна Export File
Remove (Удалить) Нет Команда удаления формы или модуля из
проекта. Для удаления соответствующий
объект должен быть выделен
Print (Печать) <Ctrl+P> Вывод форм и содержимого модулей на печать
Close and Return <AIt+Q> Закрытие редактора VBA и возвращение в
(Закрыть и окно приложения Excel
вернуться)

196 Часть I. Основы Excel


Описанные выше команды достаточно стереотипны (может быть, за исключени-
ем команд импорта и экспорта файлов) и должны быть уже хорошо знакомы пользо-
вателю. Это же замечание можно отнести и на счет команд меню Edit, следующего за
меню File.

Меню Edit
В меню Edit (Правка) представлены команды, весьма полезные при работе с про-
граммным кодом и элементами форм, поскольку именно в этом меню сконцентриро-
ваны основные инструменты редактирования кода и управления различными его
элементами. Полный список команд и подменю меню Edit показан на рис. 3.12.
Краткая справка по командам и подменю меню Edit редактора VBA приведена в
табл. 3.2. Там же можно видеть пиктограммы кнопок, которые присутствуют или мо-
гут присутствовать на панелях инструментов для ускоренного доступа к этим ко-
мандам, равно как и сочетания клавиш, нажав на которые, можно выполнить данные
команды.

Ш
.- «3 9» fi*l В"» Insert Faro* Bebug Sun loots fidd-Ins Widow a* :-; «ausiuonfv r*ip :« _ iS x
о Undo Typhg Qrl+Z л
i. .и «й-^:» Э t"t.«2 EIZjL
'» Redo Typing
en«,.l) 3 llDectaiMion») 7]
>', UJl. QrN-X

Чй СОРУ Ctrl+C
В- 63 Щ taste QrN-V I
|
| Clear Del
Select Al Ctrl+A

*4 Find.., ClrkF .
FindtJext F3
Rsplace... Qrl+H .

NAlphabetic!

P™*Jfca
1
*
^ '
.
Outdent

,Ul' ListPropeities/Mrthods CtrW

•mJliJ "•:* List Constants


Quick Wo
QH+SNft+J
Tab
Shft+Tab

Gri+I
DisplayRiaj ^ Parameter Info «H+Shft+I
EnableAut!
Ctrl+Space
- ^Ic
EnableOutj 5 Bookmarks t A loggfe Bootjnafk .

EnableSetection
:
0 - xINoRestrictions r* ^ " " ^
^Jame Slieetl ^J.: fieviousiJooiia,,,!,.
ScrollArea _J
StandardWidth 8.43 ' •>: ! i - • М|МПН|!|ПИ|П|1|М||!|1|!|!МП||~ L
Zi 2f

PMC. 3.12. Команды и подменю меню Edit редактора VBA

Глава 3. Программирование в Excel 197


Таблица 3.2. Команды и подменю меню Edit редактора VBA
Команда или Кнопка Сочетание Описание
подменю клавиш
Undo (Отменить) <Ctrl+Z> Отмена последнего действия,
связанного с редактированием
программного кода или, напри-
мер, изменением положения ли-
бо удалением объектов формы
Redo (Повторить) Нет Выполнение действия, отме-
ненного командой Undo.
Команда доступна, только если
после отмены действия ника-
кие иные манипуляции не вы-
полнялись
Cut (Вырезать) <Ctrl+X> Удаление выделенного фрагмен-
та или объекта в буфер обмена
Сору (Копировать) <Ctrl+C> Копирование в буфер обмена
выделенного фрагмента или
объекта формы
Paste (Вставить) <Ctrl+V> Копирование содержимого
буфера обмена, например, в
модуль (программный код) или
форму (элемент формы)
Clear (Очистить) <Del> Удаление фрагмента кода или
элемента формы. При работе с
кодом команда имеет название
Clear, а при работе с элемента-
ми форм отображается назва-
ние Delete (Удалить)
Select All <Ctrl+A> Выделение всего программного
(Выделить все) кода в модуле или всех элемен-
тов формы
Find (Найти) <Ctrl+F> Команда поиска текстового
фрагмента в модуле. В этом
случае отображается соответст-
вующее диалоговое окно, где,
кроме прочего, указывается
искомый текст (фрагмент кода)
Find Next (Найти <F3> Поиск и выделение следующе-
далее) го специфицированного фраг-
мента текста или кода после
данного
Replace <Ctrl+H> Поиск текста или кода и замена
(Заменить) его на другой. Оба текста
(искомый и текст замены)
указываются в диалоговом
окне, которое открывается при
выполнении команды

198 Часть I. Основы Excel


Окончание табл. 3.2

Команда или Кнопка Сочетание Описание


подменю клавиш
Indent (Отступ) <ТаЬ> Смещение строк выделенной
части кода вправо
Outdent (Выступ) <Shift+Tab> Смещение строк выделенной
части кода влево
List Properties/ <Ctrl+J> Команда позволяет отобразить
Methods (Список в окне редактирования про-
свойств и методов) граммного кода раскрываю-
щийся список с названиями
доступных для данного объекта
методов и свойств
List Constants <Ctrl+Shift+J> В окне редактора программного
(Список констант) кода открывается список с до-
пустимыми для данного свой-
ства константами
Quick Info <Ctrl+I> Отображение окна оперативной
(Быстрая справка) подсказки по поводу синтаксиса
функций, процедур и методов,
вводимых в окне редактирова-
ния программного кода
Parameter Info <Ctrl+Shift+I> Отображение подсказки по ар-
(Параметры) гументам вводимой в редакторе
кода процедуры или функции
Complete Word <Ctrl+Space> Автоматическое завершение
(Завершить слово) ввода ключевых слов. Выпол-
няется только в том случае,
если введено достаточное ко-
личество символов, позволяю-
щих VBA идентифицировать
это ключевое слово
Bookmarks Нет Подменю работы с закладками.
(Закладки) Содержит четыре команды,
позволяющих добавлять и
убирать закладки (команда
Toggle Bookmark), переходить к
следующей закладке (команда
Next Bookmark), к предыдущей
(команда Previous Bookmark) и
удалять сразу все закладки
(команда Clear All Bookmarks).
У каждой из этих команд есть
своя кнопка с пиктограммой
(см. рис. 3.12)

Глава 3. Программирование в Excel 199


Наиболее важными из команд меню Edit (Правка) являются, пожалуй, те, что от-
носятся к отображению подсказок по синтаксису и аргументам процедур и функций.
Это особенно актуально для пользователей-новичков, которые недостаточно хорошо
знакомы с основами программирования в VBA. В любом случае, это существенно
экономит время работы.

Меню View
В меню View (Вид) представлены команды и подменю, позволяющие выполнять
настройку внешнего вида окна редактора VBA, что, в свою очередь, является зало-
гом эффективной работы. Содержимое этого меню представлено на рис. 3.13.
В табл. 3.4 описаны команды и подменю меню View (Вид).

Miciotoft Visual Basic - Bookl - ISheetl (Code)!

i'JS _ S X

Last Position Ctrl+Shlft+F2

Object Browser F2

Immediete Window CtH+G


Locals Window

Watch Whdow

alcuiation [True
alining False
nablePivotTabte :False
nableSefection 0 - xWoRestrktions
Sheetl
rollArea

Puc. 3.13. Команды и подменю меню View редактора VBA

Таблица 3.4. Команды и подменю меню View редактора VBA

Команда или Кнопка Сочетание Описание


подменю клавиш
Code (Код) <F7> Отображение окна редактирова-
ния программного кода, ассоци-
ированного с выбранным моду-
лем или формой
Object (Объект) <Shift+F7> Отображение объекта, выбран-
ного в окне проекта
Project Explorer

200 Часть I. Основы Excel


Продолжение табл. 3.4

Команда или Кнопка Сочетание Описание


подменю клавиш
Definition <Shift+F2> Отображение места определения
(Определение) той переменной или процедуры,
на которую наведен курсор
Last Position <Ctrl+Shift+F7> Быстрый переход к предыдуще-
(Последняя му месту размещения курсора
позиция)
Object Browser ^g\ <F2> Отображение окна Object Browser
(Окно объекта) для доступных на данный момент
объектов
Immediate fpj <Ctrl+G> Отображение окна
Window (Окно Immediate Window, полезного при
тестирования) отладке программных кодов. В ча-
стности, в это окно можно ввести
программный код и выполнить его,
нажав клавишу <Enter>
Locals Window Отображение окна
(Окно Locals Window, используемого
переменных) при отладке программного кода
для отслеживания значения пе-
ременных
Watch Window Отображение окна отладки
(Окно Watch Window, используемого
просмотра) для отслеживания значения вы-
ражений
Call Stack (Стек <Ctrl+L> Отображение диалогового окна
вызова) Call Stack, содержащего сведе-
ния о вызванных, но не завер-
шенных процедурах
Project Explorer <Ctrl+R> Отображение окна проекта
(Окно проекта) Project Explorer
Properties <F4> Отображение окна свойств
Window (Окно Properties Window
свойств)
Toolbox Отображение панели с элемен-
(Элементы тами управления форм
управления)
Tab Order Отображение диалогового окна
(Порядок Tab Order, с помощью которого
перехода) устанавливается порядок вы-
полнения переходов (при нажа-
тии клавиши <ТаЬ>) между
элементами формы

Глава 3. Программирование в Excel 201


Окончание табл. 3.4

Команда или Кнопка Сочетание Описание


подменю клавиш
Toolbars (Панели Подменю содержит команды,
инструментов) позволяющие отобргшать:
панель отладки Debug, панель
редактирования Edit, стандарт-
ную панель инструментов
Standard, панель формы
UserForm и команду настройки
панелей инструментов
Customize
Microsoft Excel <Alt+FH> Команда перехода к приложе-
нию Excel. При этом редактор
VB А остается открытым

В первую очередь следует обратить внимание на тот факт, что с помощью команд
именно этого меню отображаются все основные панели инструментов. Использова-
ние последних, как показывает практика, позволяет существенно упростить и уско-
рить процесс создания программных кодов для макросов и функций пользователя.

Меню Insert
В меню Insert (Вставка) собраны команды, которые позволяют выполнять встав-
ку всевозможных объектов. В этом меню команд не очень много, все они представ-
лены на рис. 3.14 и описаны в табл. 3.5.

Microsoft Visual Basic - Book! - (Sheetl (Code]]


£$ 0e £dft $ew I Insert gun
ifo?n?t> |Щ^^Н
i -ч Procedure...
If I
в _j3 UserForm
Genei al) _^j ||Declai«tion»l
Ы» Module

:= ^ VBAProject (Bo<i iffl flsss Module


S gj Microsoft Excel

f] Sheet2 (Sheet2)
Sheet3 (Sheets)
ThisWorNbook

|Sheetl Worksheet

Sheetl
DisplayPageBreaks False
DisplayRightToLeft False
EnaUeAutoFilter : False
;nableCalculation True
EnableOutlining False
-
Рис. 3.14. Команды меню Insert редактора VBA

202 Часть I. Основы Excel


Таблица 3.5. Команды меню Insert редактора VBA

Команда или подменю Кнопка Сочетание Описание


клавиш
Procedure Нет Команда вставки новой процедуры
(Процедура) в модуль
UserForm (Форма Нет Команда добавления новой формы
пользователя) [Ц] в проект
Module (Модуль) Нет Добавление нового модуля в проект

Class Module (Модуль Нет Добавление в проект модуля класса


класса)
File (Файл) Нет Вставка в модуль файла, содержащего
код VBA

Представленные выше команды активно используются в процессе разработки


проектов пользователя. Они не очень часто вызываются при незначительном редак-
тировании кодов уже существующих макросов, однако когда дело доходит до созда-
ния новых или серьезной модернизации существующих макросов — без этих команд
не обойтись.

Меню Format
В меню Format (Формат) представлены подменю и команды, позволяющие
выполнять самые разнообразные настройки элементов пользовательских форм.
На рис. 3.15 это меню показано в развернутом виде. Подменю и команды меню
Format (Формат) представлены в табл. 3.6. Они описаны достаточно кратко, но с та-
ким расчетом, чтобы можно было составить общее представление об их назначении.

VBAProject (Boolcl)
6У Microsoft Excel Objects
Horizontal Spacing >
•У Sheetl (Sheetl)
!|QSheet2(Sheet2) Vertical Spacing »
', Я} Sheets (Sheets) Center in Form >
TNsWorkbook
Arrange Buttons »

Sheetl Worksheet

Alphabetic | categorized

>splayPageBreaks False
5isplayRightTpleft 'False
inableAutoFilter I False
^nableCalculation True
;nableOutlming :False
±

Puc. 3.15. Команды и подменю меню Format редактора VBA

Глава 3. Программирование в Excel 203


Замечание. Как видно из рисунка, не все команды этого меню активны. Причина
в том, что открыт новый рабочий документ. В процессе написания программного
кода и работы с соответствующими объектами доступ к командам будет получен.
Это же замечание относится и к командам прочих меню, как описанных выше,
так и тех, о которых речь еще будет идти далее.

Таблица 3.6. Подменю и команды меню Format редактора VBA

Команда или Кнопка Сочетание Описание


подменю клавиш
Align (Выровнять) Нет Подменю выравнивания объектов.
Выравнивание можно выполнять: по
левому краю (команда Lefts), по цен-
трам (команда Centers), по правому
краю (команда Rights), по верхней
(команда Tops) и нижней (команда
Bottoms) границам, по центральной
линии (команда Middles)
и по базовой сетке (команда То Grid)
Make Same Size Нет Подменю содержит команды, позво-
(Установить ляющие устанавливать одинаковые
одинаковый размеры для объектов (по первому объ-
размер) екту группы выделенных элементов).
В частности, можно установить одина-
ковую ширину (команда Width), высоту
(команда Height) и одновременно ши-
рину и высоту (команда Both)
Size to Fit (Размер Нет Команда позволяет изменить размеры
до заполнения) объекта до приемлемых, в соответст-
вии с размерами содержащихся в нем
объектов
Size to Grid Нет Команда изменения размеров объекта
(Размер по сетке) в соответствии с базовой сеткой фор-
мы. Размер последней задается на
вкладке General диалогового окна
Options, которое вызывается посред-
ством выбора команды
Tools-^Options
Horizontal Spacing Нет Подменю изменения расстояния
(Расстояние по по горизонтали между выбранными
горизонтали) объектами. Содержит команды:
Make Equal (равное расстояние меж-
ду объектами), Increase (увеличение
расстояния между объектами на рас-
стояние шага базовой сетки формы),
Decrease (уменьшение расстояния
между объектами на расстояние шага
базовой сетки формы) и Remove
(объекты сдвигаются по горизонтали
друг к другу). Во всех случаях базо-

204 Часть I. Основы Excel


Окончание табл. 3.6

Команда или Кнопка Сочетание Описание


подменю клавиш
вым считается объект, которому
передан фокус (вокруг него рамка с
белыми метками)
Vertical Spacing Нет Подменю содержит команды для
(Размер по верти- изменения расстояния по вертикали
кали) между выделенными объектами.
Команды такие же, как и для преды-
дущего подменю, равно как и резуль-
тат их выполнения — только теперь
все это имеет место вдоль вертикали
Center in Form Нет Подменю содержит команду вырав-
(Центр формы) нивания выделенных объектов отно-
сительно центра формы по горизон-
тали (команда Horizontally) и верти-
кали (команда Vertically)
Arrange Buttons Нет В подменю представлены две коман-
(Упорядочить ды выравнивания кнопок в форме:
кнопки) по нижней (команда Bottom) и пра-
вой (команда Right) границе
Group Нет Команда группировки объектов
(Группировать) »
Ungroup Нет Команда отмены группировки объектов
(Разгруппировать)
Order (Порядок) Нет Подменю содержит команды, позво-
ляющие изменять порядок отображе-
ния перекрывающихся объектов в
форме. Эти команды таковы:
Bring To Front (перемещение объекта
на передний план), Send To Back
(перемещение объекта на задний
план), Bring Forward (перемещение
объекта на один уровень вперед) и
Send Backward (перемещение объек-
та на один уровень назад)

Следует отметить, что меню содержит в основном подменю, которые, в свою оче-
редь, содержат весьма полезные команды. Не все они представлены на панели инст-
рументов, поэтому вполне разумно их туда поместить. Хотя какие именно кнопки
выносить на панель, разумеется, существенно зависит от характера решаемых задач.

Глава 3. Программирование в Excel 205


Меню Debug
В меню Debug (Отладка) собраны команды отладки программных кодов.
При создании серьезных проектов вероятность совершения ошибок, к сожалению,
возрастает. Однако в редакторе VBA пользователю предоставлены достаточно ши-
рокие возможности по отладке программ. Большая часть из них реализована как раз
в меню Debug (Отладка). Раскрытое меню вместе с его командами представлено на
рис. 3.16. Команды отладки программного кода описаны в табл. 3.7.

• Miclosofl Visual Basic - Book! - (Sheet! (Code)]


?Й Bte Б* gew insert Po/mat fcebug~|fcjn \I»
•' ю if CompteVBAPtc

ш
''Я* И
Step Into S^j |(Declaiations|
cm
5-(f VBAProject(Bookl)
S '2S Microsoft Excel Objects - Run To Cursor Ctrl+F8
•Q Sheet! <SheU)
Ю Sheet2 (Sheet2) add Watch...
Sheet3 (Sheets)
§
ThisWorHxiok
EiKWatch...
_ Quick Watch...
Сш-i-W

SNft+F9

loggle Breakpoint F9
:1 Wortsheet
Clear Al Breakpoints Ctrl+ShlFt+F9
Afcl . ,,
Sheetl
DisplayPageBreaks false
DisplayRightToLeft False :
EnabteAutoFter false
EnableCalculation [True
EnableOutlHing False ! J.i

Puc, 3.16. Команды меню Debug редактора VBA

Таблица 3.7. Команды меню Debug редактора VBA

Команда Кнопка Комбинация Описание


клавиш
Compile Команда компилирования
(Компилировать) проекта
Step Into (Входить) <F8> Команда пошагового выполнения
кода с пошаговым исполнением
внутренних процедур
Step Over <Shift+F8> Команда пошагового выполне-
(Перешагивать) ния кода, однако процедуры
интерпретируются как одна
команда
Step Out (Выполнить <Ctrl+Shirf+F8> Выполнение оставшихся команд
до конца) кода процедуры
Run to Cursor <Ctrl+F8> Выполнение команд кода до
(Выполнить до курсора) строки, в которой размещен
курсор

206 Часть I. Основы Excel


Окончание табл. 3-7

Команда Кнопка Комбинация Описание


клавиш
Add Watch (Добавить Команда отображения диалого-
для просмотра) вого окна Add Watch, где можно
указывать переменные и выра-
жения, значение которых прове-
ряется в процессе выполнения
программного кода
Edit Watch <Ctrl+W> Команда отображения диалого-
(Редактировать вого окна Edit Watch, в котором
просматриваемые) можно редактировать перемен-
ные и выражения, отслеживае-
мые в процессе выполнения
программного кода
Quick Watch (Быстрый <Shift+F9> Отображение диалогового окна
просмотр) Quick Watch с текущим значе-
нием выбранного выражения
Toggle Breakpoint Щ <F9> Выбор метки (точки) остановки
(Определить точку выполнения кода
остановки)
Clear All Breakpoints <Ctrl+Shirf+F9> Удаление всех меток остановки
(Удалить все точки выполнения кода
остановок)
Set Next Statement <Ctrl+F9> Команда определения следую-
(Определить следую- щей выполняемой команды.
щую инструкцию) Позволяет менять порядок вы-
полнения команд исходного
программного кода
Show Next Statement Команда выделения следующей
(Показать следующую выполняемой строки кода
инструкцию)

Большинство из упомянутых выше методов подразумевает, как правило, выпол-


нение соответствующих настроек в режиме разработки (Design mode). Переход в этот
режим осуществляется выбором команды Run^Design Mode (Запуск^Режим раз-
работки). Это режим создания форм и программных кодов.

Глава 3. Программирование в Excel 207


Меню Run
В меню Run (Запуск) представлено всего четыре команды (рис. 3.17). Характери-
стика команд этого меню, самым непосредственным образом связанных с выполне-
нием макросов, приведена в табл. 3.8.

к• Micmsoft Visual Basic -Bookl - [Sheetl (Codell

«U 0e t и ;yew: Insert Pff-mai: Debug Гвцп|_1оЫ5 fidd-Ins

Ш з * Ia'i s »1 ff i\ о< * > Run Sub/UserForrr F5 \2) : In I, Coll


xi I 1 (I Break Ctrl+ .
СЫ+В
•vj MDeclarations)
Reset

VBAPro)ect(Bookl)
-t^ Microsoft Excel Objects
•] Sheetl (Shwtl)
ЦЗ Sheet2 (Sheet2)
! Ш Sheets (Sheets)
1
Q ThisWorkbook

[Sheetl Worksheet

[categorized)
Sheetl
Dispta/PageBreaks False
DcsphyRightToLeft ^False
inableAutoFilter False
EnableCalculation True
EnableOutlhing False •i

c. J.f 7. Команды меню Run редактора VBA

Таблица 3.8. Команды меню Run редактора VBA

Команда Кнопка Комбинация Описание


клавиш
Run Sub/UserForm <F5> Команда запуска макроса на выполнение
(Запустить)
Break <Ctrl+Break> Приостановка выполнения макроса
(Приостановить)
Reset (Сброс) Сброс значения всех переменных к
исходным значениям
Design Mode (Режим Переход в режим разработки и выход
разработки) из этого режима (повторное выполне-
ние команды)

Помимо команд отладки программного кода и запуска его на выполнение, не ме-


нее важны команды настроек редактора VBA. Некоторые из них представлены в
следующем после Run (Запуск) меню.

208 Часть I. Основы Excel


Меню Tools
В меню Tools (Сервис) собраны команды, полезные при настройке общих параметров
редактора VBA. При выборе этих команд открывается диалоговое окно (в каждом случае
свое), посредством которого необходимые настройки и выполняются. На рис. 3.18 соот-
ветствующие команды можно увидеть в том виде, как они представлены в меню Tools.
Информацию о командах меню Tools (Сервис) можно найти в табл. 3.9.

Microsoft Visual Basic - Bookl - IS heel 1 [Codell

S3 Bie E* Be» &K«t Fspnat Csbuo &un j lock [&*Hns ffiratow h*.

{Declarations}

VBAProject (Bookl)
3 tJ Microsoft Excel Objects VBAProJect Properties...
•Q Sheetl (Sheetl)
I • } Sheet2 (Sheet2) Digital Signature...
• ] Sheets (Sheet3)
в ThisWorkbook

| Sheet 1 Worksheet

PageBreaks:False
layRig.htToLeft False
ableAutpFilter False
EnableCalajlation True
EnableOutlining False
,±r
Рис. 3.18. Команды меню Tools редактора VBA

Таблица 3.9. Команды меню Tools редактора VBA

Команда Кнопка Комбина- Описание


ция клавиш
References (Ссылки) Нет В результате выполнения команды от-
крывается диалоговое окно References,
где можно устанавливать ссылки на
библиотеки, проекты и т.п., которые
после этого будут отображаться в окне
просмотра объектов Object Browser
Additional Controls Нет Отображается диалоговое окно
(Дополнительные Additional Controls с элементами управле-
элементы управления) ния, которые можно добавлять в меню Tools
Macros (Макросы) Нет Открывается диалоговое окно Macros,
в котором можно создавать, редактиро-
вать, запускать и удалять макросы
Options (Параметры) Нет В результате выполнения команды от-
крывается диалоговое окно Options с че-
тырьмя вкладками (Editor, Editor Format,
General и Docking). С помощью этого ок-
на можно задавать базовые настройки
редактора

Глава 3. Программирование в Excel 209


Окончание табл. 3.9

Команда Кнопка Комбина- Описание


цияклавиш
VBAProject Properties Нет После выполнения команды будет от-
(Свойства крыто диалоговое окно Project Properties
проекта VB А) с двумя вкладками (General и Protection),
с помощью которого можно выполнить
такие настройки проекта, как название,
описание, способ и режим защиты и т.п.
Digital Signatures Нет Отображается диалоговое окно
(Электронные Digital Signatures, в котором задается
подписи) цифровая подпись для проекта

Как несложно заметить, для команд меню Tools не предусмотрены комбинации


клавиш, посредством которых эти команды вызываются. Принимая во внимание
специфику выполняемых этими командами действий, можно порекомендовать в том
случае, если настройки системы часто меняются, выносить на панель инструментов
кнопки для соответствующих команд.
Замечание. Здесь еще раз хочется напомнить, что даже если для команды не ука-
зана специальная пиктограмма, кнопку все равно можно разместить на панели
инструментов. Делается это точно так же, как и в процессе настройки панелей
инструментов приложения Excel.

Меню Add-lns
Меню Add-lns (Надстройки) состоит всего из одной команды (рис. 3.19). Это ко-
манда вызова менеджера надстроек Add-In Manager (Менеджер надстроек). В ре-
зультате ее выполнения открывается одноименное диалоговое окно, с помощью ко-
торого можно загружать и выгружать надстройки VBA.

Micmsott Visual Basic - ВолН - [Sheetl (Code)l


Е* й«ч Insert Pornat Efcbug EM" Ipob 1 &*Hrej Ип*ж __ аф Щ г >:л =
ЛИ-ШМ,»^,..^ jy,

•*' t {(Geneial)

^ItPf^LJ « , Jj

Puc. 3.19. Команда меню Add-lns редактора VBA

210 Часть I. Основы Excel


Меню Window
Меню Window (Окно) достаточно стереотипно для большинства приложений, по-
этому команды данного меню особых комментариев не требуют. Они в развернутом
виде представлены на рис. 3.20. Назначение команд этого меню описано в табл. 3.10.

ЗД*
Tie Horizontal

Tie Vertically

VBAProject(Boolcl) Cascade
В S Mkrosoft Excel Objects
~m 1} Sheet2 (Sheet2)
Sheets (Sheets)
TNsWorkbook

Sheeli v

Mphabesc I Categorized
Sheetl
yPageBreaks False
/RlghtToLeft False
nableAutoFlter False
EnableCalculation True
nableOutlming False

Puc. 3.20. Команды меню Window редактора VBA

Таблица 3.10. Команды меню Window редактора VBA

Команда Кнопка Комбинация Описание


клавиш
Split (Разделить) Нет Команда позволяет разделить окно
редактирования кода на две части.
Это удобно делать при работе с ко-
дами большого объема. В данном
случае есть возможность одновре-
менно просматривать разные части
одного модуля
Tile Horizontally Нет Размещение окон вдоль горизонтали
(По горизонтали)
Tile Vertically Нет Размещение окон вдоль вертикали
(По вертикали)
Cascade (Каскадом) Нет Размещение окон каскадом
Arrange Icons Нет Упорядочивание пиктограмм
(Упорядочить свернутых окон
пиктограммы)
Список окон Нет Список открытых на текущий
момент окон

По своему назначению команды этого меню практически полностью совпадают с


командами такого же меню, например, приложения Word.

Глава 3. Программирование в Excel 21*


Меню Help
На меню Help (Справка) стоит обратить внимание хотя бы по той причине, что с
помощью команд этого меню можно получить доступ к справке по VBA. Содержи-
мое меню показано на рис. 3.21.

MiciotoH Visual Basic - Book! - IShectl (Code)]


Fjrmat Bebug gun loob ftdd-lns ИМич | «.ex
Ц G3 Mtaosoft Visual Basic Help F1

MSDNontheffieb
SPOUt rKJOSCft

VBAProject (Book!)
elf MicrosoFt Excel Objects
•] Sheet! <She«I)
|j] 5heet2 (Sheets)
Sheets (Sheets)
§ ThisWorkboc*.

Sheetl Worksheet
Alphabetic jcategwteedl
iheetl
3isplayPageBreaks False
DtsplayRightToLeft False
inableAutoFilter ^False
EriafaleCalculatron iTrue
EnableOutlining False

Команды меню Help редактора VBA

В меню всего три команды, причем активно используется из них только одна.
Это команда Microsoft Visual Basic Help (Справка Microsoft Visual Basic) (кнопку для
команды можно видеть на рис. 3.21 слева от названия команды). С ее помощью акти-
визируется справочная система по VBA. Если нужно получить доступ к справочной
системе в сети, выбирают команду MSDN on the Web (MSDN в сети Web). Наконец,
если вызвать команду About Microsoft Visual Basic (O Microsoft Visual Basic), можно
получить сведения о версии продукта VBA и другую системную информацию.
Помимо панели меню, как уже отмечалось, в VBA широко используются панели
инструментов. Основные из них описаны ниже.

Стандартная панель инструментов


По умолчанию сразу под панелью меню редактора VBA отображается стандартная
панель инструментов. Даже если это не так (например, уже изменены используемые по
умолчанию настройки), для отображения данной панели достаточно выбрать команду
меню ViewoToolbars•=>Standard (Вид1^Панели инструментов1^Стандартная).
Если навести на стандартную панель инструментов указатель мыши, нажать ее
левую кнопку (вне какой-либо из кнопок) и, удерживая кнопку нажатой, перета-
щить панель в сторону от панели меню (т.е. если сместить панель с ее привычного
места в окне редактора VBA), она будет иметь такой вид, как показано на рис. 3.22.

Рис. 3.22. Стандартная панель инструментов

212 Часть I. Основы Excel


Кнопки стандартной панели инструментов отдельно представлены в табл. 3.11.
Там же приведены команды меню, которые соответствуют кнопкам этой панели ин-
струментов.

Таблица 3.11. Кнопки стандартной панели инструментов

Кнопка Описание Команда


Переход к приложению Excel View=> Microsoft Excel
Вставка формы пользователя. Если щелк- Insert^UserForm
нуть на этой кнопке, будет вставлена новая
форма. Если щелкнуть на стрелке справа от
пиктограммы, то раскроется список с ко-
мандами, фактически дублирующими меню
Insert (нет только команды File). Выбрав
одну из команд, можно вставить соответст-
вующий объект
Сохранение документа File^Save
Удаление выделенного объекта в буфер Edit^Cut
обмена
Копирование выделенного объекта Edit^Copy
в буфер обмена
Вставка содержимого буфера обмена Edit^ Paste
Поиск текста или фрагмента кода Edit<=>Find
Отмена последнего действия Edit^Undo
Повторение отмененного действия Edit^Redo
Запуск макроса на выполнение Run^Ftun Sub/UserForm
Приостановка выполнения макроса Run^Break
Сброс всех параметров в первоначальное со- RuiT=>Reset
стояние после остановки выполнения макроса
Переход в режим разработки и выход из Run^Design Mode
этого режима
Отображение окна проекта View=> Project Explorer
Отображение окна свойств View^Properties Window
Отображение окна просмотра объектов View=>Object Browser
Отображение панели элементов управ- View^Toolbox
ления форм
Вызов справки VBA Help^Microsoft Visual Basic Help
Поле отображения данных о положении
курсора в окне редактирования

Кроме этих кнопок, которые отображаются на стандартной панели инструментов


по умолчанию, можно добавить или удалить и другие. Однако необходимость в этом
возникает не очень часто.

Глава 3. Программирование в Excel 213


Панель редактирования
Помимо стандартной панели инструментов, весьма продуктивно может исполь-
зоваться и панель редактирования. Для ее отображения (сокрытия) выберите ко-
манду View=i> Toolbars1^ Edit (Вид<=> Панели инструментов ^Правка). Вид этой пане-
ли инструментов представлен на рис. 3.23, а кнопки, отображаемые на ней по умол-
чанию, показаны в табл. 3.12 вместе с кратким описанием.

Рис. 3.23. Панель редактирования

Таблица 3.12. Кнопки панели редактирования

Кнопка Описание Команда


Отображение в окне редактора про- Edit^List Properties/Methods
граммного кода списка с методами и
свойствами, доступными для данного
объекта
Отображение списка доступных кон- EditOList Constants
стант для данного свойства
Окно подсказки по синтаксису вво- Edit^Quick Info
димых пользователем процедур и
методов
Окно подсказки по аргументам вво- Edit^ Parameter Info
димой пользователем процедуры
Автоматическое завершение ввода Edit^>Complete Word
слова
Отступ вправо на интервал табуляции Edit^lndent
для выделенного фрагмента кода
Отступ влево на интервал табуляции Edit^Outdent
для выделенного фрагмента кода
Установка или отмена точки останов- Debug^Toggle Breakpoint
ки выполнения программного кода
Помещение выделенного фрагмента Команда Comment Block
кода или текста в качестве комментария (Закомментировать блок) в меню
(в начало каждой строчки добавляется не отображена
апостроф)
Снятие режима комментария (в нача- Команда Uncomment Block (Отменить
ле строки удаляется апостроф — сим- комментирование блока) в панели
вол начала комментария) меню не отображена
Вставка и удаление закладки в окне Edit^Bookmarks^Toggle Bookmark
редактора программного кода
Переход к следующей закладке Edit^Bookmarks^Next Bookmark
Переход к предыдущей закладке Edit^Bookmarks^Previous Bookmark
Удаление всех закладок Edit^Bookmarks^Clear All Bookmarks

214 Часть I. Основы Excel


Хочется обратить внимание на кнопки установки и снятия режима комментария.
Использование этих кнопок существенно облегчает работу. Особенно хорошо это
ощущается в тех случаях, когда приходится подробно комментировать программный
код, ведь оформление комментариев "вручную" -- крайне утомительное занятие.
Помимо этого, при отладке программных кодов один из распространенных приемов
заключается в том, чтобы закомментировать часть кода, в силу чего остальной код
было бы легче проверить на корректность работы. С помощью упомянутых кнопок
все эти манипуляции существенно упрощаются.

Панель отладки
Панель отладки может быть отображена на экране посредством выбора команды
1
меню View=>Toolbars *Debug (Вид^Панели инструментов^Отладка). Панель по-
казана на рис. 3.24, а в табл. 3.13 приведена справка по всем этим кнопкам. Как не-
сложно заметить, многие кнопки этой панели размещаются также и на тех панелях
инструментов, что были рассмотрены выше.

Рис. 3.24. Панель отладки

Таблица 3.13. Кнопки панели отладки

Кнопка Описание Команда


Кнопка для выполнения перехода в режим разра- Debugs Design Mode
ботки и выхода из этого режима
Щелчок на кнопке приводит к запуску макроса на Debug^Run Sub/UserForm
выполнение
Остановка процесса выполнения макроса Debug^Break
Выполнение сброса значения всех переменных Debug^Reset
к значениям на момент запуска макроса
Кнопка используется для того, чтобы указать Debug^Toggle Breakpoint
место остановки выполнения программного кода
Щелчок на кнопке приводит к переходу в режим Debug^Step Into
пошагового выполнения кода (внутренние проце-
дуры также выполняются пошагово)
То же, что и в предыдущем случае, но только Debug^Step Over
каждая внутренняя процедура интерпретируется
как одна команда
Щелчок на кнопке приведет к выполнению остав- Debug^Step Out
шихся команд кода процедуры
Кнопка отображения окна отладки программного View^Locals Window
кода Locals Window (Окно переменных)
Кнопка полезна в случае, если нужно для отладки View=>lmmediate Window
программных кодов отобразить окно
Immediate Window (Окно тестирования)

Глава З. Программирование в Excel 215


Окончание табл. 3.13

Кнопка Описание Команда


Отображение окна Watch Window (Окно про- View<=>Watch Window
смотра), также используемого при отладке про-
граммного кода
После щелчка на кнопке отображается диалого- Debug^Quick Watch
вое окно Quick Watch (Быстрый просмотр) с те-
кущим значением выбранного выражения
На этой кнопке щелкают, если нужно получить View=>Call Stack
информацию о незавершенных процедурах

Однако на этом панели VBA не исчерпываются. Есть еще одна, достаточно инте-
ресная панель, с помощью которой можно успешно оперировать с элементами форм.

Панель инструментов UserForm


Панель UserForm (Форма пользователя) содержит достаточно большое число
кнопок, которые предназначены в основном для работы с элементами форм пользо-
вателя. Внешний вид этой панели инструментов представлен на рис. 3.25.

Рис. 3.25. Панель UserForm

Кнопки этой панели описаны в табл. 3.14.

Таблица 3.14. Кнопки панели UserForm

Кнопка Описание Команда


Кнопка для команды перемещения вы- Format^Order^Bring To Front
деленного объекта на передний план
Перемещение выделенного объекта Format^Order^Send To Back
на задний план
Кнопка для команды группировки Format^Group
выделенных объектов
Кнопка для команды отмены груп- Format^Ungroup
пировки объектов
Щелчок на кнопке приводит к вы-
равниванию по левому краю выде-
ленных объектов. Если щелкнуть
на стрелке справа у кнопки, будет
открыт список с командами подме-
ню Align Format
Центрирование выделенных объек- Format^Center in Form^Horizontally
тов вдоль горизонтали. Щелчок на
стрелке справа от кнопки приводит
к отображению команд подменю
Center in Form меню Format

216 Часть I. Основы Excel


Окончание табл. 3.14
Кнопка Описание Команда
Установка для всех выделенных Format^Make Same Size<=>Width
объектов одинаковой ширины.
Список для этой кнопки содержит
команды подменю Make Same Size
меню Format
I mo% 71 Выбор масштаба отображения Команда в меню не представлена
элементов формы

Это кнопки, которые относятся непосредственно к панелям инструментов.


Панель элементов управления форм внешне очень сильно напоминает панель инст-
рументов, но имеет несколько иное назначение: с ее помощью в форму пользователя
добавляются элементы управления (поля, кнопки, списки, переключатели и т.п.).
Поэтому описывается она в соответствующем разделе.
Выше были кратко представлены основные элементы окна редактора VBA. Методы
работы с каждым из этих элементов отдельно не описывались, однако в процессе из-
ложения последующего материала будет приведена, помимо непосредственно особен-
ностей работы с кодом, информация о способе взаимодействия с редактором VBA.

Создание и редактирование кода


Теперь вернемся непосредственно к программному коду. Ведь редактор VBA в
первую очередь и нужен для того, чтобы этот самый код можно было создавать и ре-
дактировать. Начнем с редактирования, поскольку в этом случае, во-первых, легче
вникнуть в суть того, как код работает, а, во-вторых, полезно посмотреть, как соз-
данный ранее макрос выглядит, что называется, изнутри.
Для редактирования программного кода макроса (или функции) следует открыть
тот модуль, в котором он был записан. В качестве примера рассмотрим макросы,
созданные в начале главы. Эти макросы были сохранены в книге Simple_Macros.xls.
Самый простой способ добраться до соответствующих макросов не подразумевает
предварительное открытие редактора VBA. Разумнее сначала открыть соответст-
вующий файл с макросами (в данном случае это Simple_Macros.xls), затем выбрать
команду Tools'^Macro<=>Macros (СервисОМакрос^Макросы) и в открывшемся
диалоговом окне Macro выбрать нужный макрос. Напомним, что названия создан-
ных ранее макросов — Му_Масго (макрос с абсолютными ссылками) и Му_Масго_2
(макрос с относительными и абсолютными ссылками). После этого в диалоговом
окне Macro следует щелкнуть на кнопке Edit (Правка). В результате будет запущен
редактор VBA и сразу открыт модуль с кодом выбранного макроса. На рис. 3.26
представлено окно с кодом для макроса Му_Масго.

Глава 3. Программирование в Excel 217


Bte &» Ив" insert Format Cebug Bun loots fidd-Ins Window
J ;
.'И.-в.) 3--'4S'® <Sl.' *" - ' »< к •• M
|(Geneial)
Sub My_Hacro[)
£•($ funcre$4FUNCRES.>
> Й VBAProject (Simple Hy_K&cro Racro
цЭ fi Microsoft Excel Otf This macro generates nuntoers from 1 to 10
i ft Sheetl (Sheet
! (Ц Sheet2 (Sheet Keyboard Shortcut: Ctrl+Shilt+A
! Ир Sheet3 (Sheet!
i 45 ThisWorkbooM Remqre ("Al") .Selecc
S- SJ Modules ActiveCell.TormulaRlCl " "1"
Range("A2^J.Select
ActiveCell.FormulaRlCl = "2"
Range("A1:A2").Select
Selection.AutoFill Destination:"Range("A1:A10"), Type:exlF iilDefault
Range("Al:A10").Select
Range("Bl").Select
End Sub

Puc. 3.26. Окно с кодом макроса

В этот код, уже после создания макроса, можно вносить изменения. Обычно это
делают в двух случаях. Во-первых, иногда приходится создавать достаточно слож-
ные макросы. Полезно сначала с помощью клавиатуры запрограммировать базовые
действия, после чего открыть редактор и внести изменения так, чтобы макрос вы-
полнял именно то, что нужно. Во-вторых, следует иметь в виду, что при записи мак-
росов с помощью клавиатуры (так, как было показано в начале главы), а не путем
создания кода, макрос часто включает лишние инструкции. Лишние в том смысле,
что те же самые действия при написании кода можно запрограммировать более оп-
тимально. Если макрос по объему невелик, а компьютер достаточно производителен,
это не составляет большой проблемы. Однако ситуация меняется, если создается
сложный макрос. В этом случае оптимальность его кода имеет если и не первооче-
редное, то весьма важное значение.
Понятно, что для того чтобы редактировать код, необходимо иметь хотя бы общее
представление, как все это работает. Рассмотрим код макроса Му_Масго ( ) . На его
примере будут изложены некоторые базовые понятия составления программных ко-
дов в языке VBA. Этот программный код приведен ниже в листинге 3.1.

218 Часть I. Основы Excel


Листинг 3.1. Код макроса Му_Масго()
Sub My_Macro ( )
i
' My_Macro Macro
' This macro generates numbers from 1 to 10
1
Keyboard Shortcut: Ctrl+Shift+A

Range ( "Al " ) . Select


ActiveCell . FormulaRlCl = "1"
Range ( "A2 " ) . Select
ActiveCell. FormulaRlCl = "2"
Range ( "Al : A2 " ) . Select
Selection. AutoFill Destination: =Range ( "A1:A10" ) ,
Type: =xlFillDefault
Range ("A1:A10" ) .Select
Range ( "Bl " ) . Select

Каждый макрос начинается инструкцией Sub, после которой следует название


макроса (в данном случае Му_Масго О — с указанием скобок). Заканчивается мак-
рос инструкцией End Sub. Кроме того, все, что следует после одинарных кавычек,
является комментарием, т.е. как программный код не рассматривается. В данном
примере комментарий следует сразу после инструкции начала макроса и определя-
ется, очевидно, текстом описания макроса, который вводился при создании макроса
посредством выбора команды Tools^Macro^Record New Macro. Там же, среди
комментариев, указана и комбинация клавиш, выбранная нами для запуска данного
макроса (Keyboard Shortcut: Ctrl+Shif t+A). Пояснение дальнейшего кода
требует некоторого лирического отступления.

( Замечание. Для тех, кто знаком с ООП, отступление это будет более чем лириче-
ским.

Итак, при работе с языком VBA, практически все, с чем приходится иметь дело,
называется объектом. У объектов, в свою очередь, есть свойства и методы. Свойства
определяют отдельные качества объекта, а методы — что с ним можно делать. В про-
граммном коде имена свойств и методов отделяются от имени объекта точкой.
Другими словами, чтобы добраться до метода или свойства объекта, следует указать
имя этого объекта, поставить точку и указать имя метода или свойства. При этом ме-
тод или свойство могут иметь аргументы, которые указываются обычно в круглых
скобках после метода или свойства (но не всегда). В частности, инструкция
Range ( " Al " ) . Select интерпретируется как указание выделить ячейку А1. Здесь
Select является методом, назначение которого состоит в выделении указанного
диапазона ячеек (это объект). Объект (т.е. диапазон ячеек) возвращается инструкци-
ей Range ( ) (range в переводе значит диапазон), где в скобках указывается диапазон
(заключенный в кавычки!). В данном случае диапазоном является всего одна ячейка
А1 . Если нужно выделить, например, диапазон ячеек АЗ:В5, то соответствующая ин-
струкция выглядела бы как Range ( " A3 : В5 " ) .Select.
Объекты могут содержать в себе другие объекты и сами содержаться в объектах.
В результате образуется иерархия объектов. Чтобы выполнить ссылку на объект, со-

Глава 3. Программирование в Excel 219


держащийся в другом объекте, указывают имя объекта-контейнера, ставят точку, по-
сле чего указывают имя объекта, содержащегося в данном контейнере. Кроме того,
есть такое понятие, как прототип объекта (или класс объекта) и экземпляр объекта.
Прототип объекта определяет объект как абстрактную единицу. Например, диапа-
зон — это прототип объекта. А вот диапазон АЗ:В5 — это экземпляр объекта (т.е. ка-
кой-то конкретный объект из данного класса объектов).
Совет. Концепцию объектов, их иерархии, методов, свойств и т.п. лучше проде-
монстрировать на примере, не имеющем непосредственного отношения к про-
граммированию. Так, представим, что объектом является домашнее_животное.
Если речь идет о каком-то абстрактном домашнем питомце, то разумно полагать,
что упомянутое домашнее животное — это название класса объекта. Этот класс, в
свою очередь, можно разделить на подкласс котов и собак (будем полагать, что
кроме котов и собак в приличных семьях никакие другие зверушки не живут).
Кот или собака, как только что было отмечено, являются подклассами класса до-
машнее_животное, в том смысле, что они описывают некоторое абстрактное по-
нятие. Когда мы говорим собака, то имеем в виду нечто лохматое и виляющее
хвостом — это абстрактное понятие. Если мы имеем в виду какого-то конкретного
пса, у которого длинные уши, бубликом хвост и прескверный характер — это не
абстрактный пес, а конкретный Тузик. В последнем случае говорят об экземпляре
объекта класса собака. Это будет собака_01. Таким образом, Тузик — это экземп-
ляр! Экземпляры объекта отличаются друг от друга своими свойствами (точнее,
значениями свойств). Например, у Тузика (экземпляр собака_01), Бобика
(экземпляр собака_02) и Шарика (экземпляр собака_03) свойство имя имеет
разные значения. На этом свойства, разумеется, не заканчиваются — их может
быть достаточно много. Например, длина_хвоста или масть. Чтобы узнать,
скажем, как зовут собачку собака_01, можно воспользоваться инструкцией до-
машнее_животное.собака(собака_01).имя (результатом будет Тузик). А инструк-
ция домашнее_животное.собака(собака_02)масть позволит узнать масть Боби-
ка. Далее, можно предположить, что у подкласса собака есть метод лаять, причем
лаять можно громко, тихо и молчать — это аргументы метода лаять. Таким обра-
зом, чтобы Шарик громко залаял, следует выполнить инструкцию домаш-
нее_животное.собака(собака_03).лаятъ(громко).
Свойствам объектов можно присваивать значения. Делается это с помощью знака
равенства. Сначала указывается свойство, затем знак равенства и, наконец, значение
этого свойства. В частности, инструкцией ActiveCell .FormulaRlCl = "1" ак-
тивной ячейке (ActiveCell) присваивается в качестве значения (свойство Formu-
laRlCl) число 1 (поскольку там есть кавычки, то это текстовое выражение для чис-
ла, которое преобразуется в число, однако кавычки эти необязательны).

Замечание. В VBA между операндами и операторами оставляется пробел. Если


при вводе кода такой пробел отсутствует, он будет вставлен редактором VBA ав-
томатически.
Далее, согласно коду рассматриваемого макроса выделяется ячейка А2
(инструкция R a n g e ( " А 2 " ) .Select), ее значение устанавливается равным 2
(инструкция ActiveCell .FormulaRlCl = "2"), после чего выделяется диапазон

220 Часть I. Основы Excel


ячеек А1:А2 (инструкция Range("А1:А2") .Select). Далее вызывается метод Auto-
Fill, для которого указаны два аргумента: Destination и Туре. Значением первого
указан диапазон А1: А10, а второй аргумент принимает значение xlFillDef ault.

Замечание. Как уже отмечалось, аргументы методов указываются в скобках (или


без скобок — в зависимости от процедуры) сразу после названия метода. Помимо
этого существует еще один способ указания значений аргументов, а именно на-
звания параметров, равно как и их значения, указываются в явном виде, списком
после названия метода. Название аргумента от его значения отделяет знак равен-
ства с двоеточием (: =), а сами аргументы разделяются запятыми. Именно такой
способ определения аргументов и использовался при записи макроса. Он удобен
тем, что аргументы могут указываться в любой последовательности, в отличие от
случая, когда аргументы процедуре или функции передаются в скобках после на-
звания. В этой ситуации следует придерживаться строгого порядка следования
аргументов, установленного для данной процедуры или функции согласно син-
таксису ее вызова.

Что касается аргумента Destination, то в методе AutoFill он определяет


диапазон автоматического заполнения ячеек. Этот диапазон должен включать и те
ячейки, на основе которых выполняется автоматическое заполнение прочих ячеек
диапазона. Второй аргумент Туре определяет способ заполнения ячеек. Этот аргу-
мент может принимать несколько значений. В данном случае его значением указана
константа xlFillDefault, что является инструкцией использовать наиболее под-
ходящий (исходя из данных в тех ячейках, на основе которых заполняется диапазон)
метод. Этот режим используется по умолчанию. Поэтому, строго говоря, можно бы-
ло вообще не указывать значение для данного аргумента — способ заполнения ячеек
был бы тем же. Это, кстати, еще один аргумент в пользу того, что коды макросов
лучше все-таки писать самостоятельно.
Наконец, после того, как диапазон ячеек заполнен, активной делается ячейка В1,
для чего в программном коде размещена инструкция Range ( " В 1 " ) . Select — по-
следняя перед инструкцией окончания процедуры End Sub. Набор этих простых
действий и составляет основу макроса Му_Масго ( ) . И совершенно очевидно, что
этот макрос, с точки зрения реализации его в программном коде, далек от совершен-
ства. Поэтому можно попытаться его несколько упростить. В частности, с успехом
можно использовать код, приведенный в листинге 3.2.

Листинг 3.2. Упрощенный вариант макроса с абсолютными ссылками


Sub My_Macro_New()
Range("Al").FormulaRlCl = 1
Range("A2").FormulaRlCl = 2
Range("A1:A2").AutoFill Range("Al:A10")
Range("Bl").Select
End Sub

В этом макросе, по сравнению с исходным, убран весь лишний код, и многие дей-
ствия выполняются, что называется, напрямую. Так, первыми двумя инструкциями,
без всякого предварительного выделения, ячейкам А1 и А2 присваиваются значения

Глава 3. Программирование в Excel 221


1 и 2, соответственно (инструкции Range ( " A l " ) .FormulaRlCl = 1 и
Range ( "А2 " ) .FormulaRlCl = 2). Далее, на основе диапазона ячеек А1:А2
заполняется диапазон А1:А10 (инструкция Range ( "Al : A 2 " ) .AutoFill Range
( "Al :A10" ) ). В соответствующей инструкции для метода автоматического запол-
нения указан только один аргумент (Range ( "Al : A10 " ) ), определяющий диапазон
заполнения. Поэтому в качестве способа заполнения будет использоваться тот, ко-
торый предлагается по умолчанию.
Подробности. Обратите внимание, что в рассматриваемом примере аргумент для
метода заполнения ячеек указан без скобок. Дело в том, что если процедурой или
методом результирующее значение не возвращается (как в данном случае), то
скобки не используются и аргументы указываются после метода через запятую.
Так же можно поступать с функциями и методами, которые возвращают в качест-
ве результата некоторое значение, однако в этом случае возвращаемый ими
результат игнорируется.
Очевидно, что в новом варианте программный код макроса выглядит существен-
но проще и понятнее, хотя и это не оптимальный вариант.
Теперь обратимся к макросу, в котором использовались относительные ссылки
(второй созданный в начале главы макрос). Выясним, в чем кроется принципиаль-
ное различие, с точки зрения программной реализации, между первым и вторым
макросами. Код для макроса Му_Масго_2 ( ) приведен в листинге 3.3.

| Листинг 3.3. Код макроса Му_Масго_2()


Sub My_Macro_2 ( )

' My_Macro_2 Macro


' Macro recorded 8 / 6 / 2 0 0 3 by Alexei V a s i l ' e v

' Keyboard Shortcut: Ctrl+a

ActiveCell . Select
ActiveCell. FormulaRlCl = "1"
ActiveCell . O f f s e t ( 1 , 0 ) . Range ( "Al " ) . Select
ActiveCell. FormulaRlCl = " 2 "
ActiveCell. O f f set (-1, 0) .Range ( "Al :A2" ) .Select
Selection. AutoFill Destination :=ActiveCell .Range ( "Al :A10" ) , Type:= _
xlFillDefault
ActiveCell .Range ( "Al :A10" ) .Select
Range ( " Al " ) . Select

Как видно из листинга, хотя оба макросы по сути своей похожи, их программные
коды отличаются достаточно сильно.
В макросе Му_Масго_2 ( ) первой инструкцией ActiveCell . Select выделяется ак-
тивная на момент запуска макроса ячейка (объект ActiveCell). Ее значение после этого
устанавливается равным единице (инструкция ActiveCell. FormulaRlCl = "1").
Далее использовано свойство Offset, для которого указано два аргумента. Это свойство,
если оно относится к диапазону ячеек или ячейке (как в данном случае), возвращает в каче-
стве значения диапазон, который получается смещением данного, к которому относится

222 Часть I. Основы Excel


свойство, на количество строк, указанное первым аргументом и количество столбцов, ука-
занных вторым аргументом. Если аргументы положительны, то смещение осуществляется
вниз для строк и вправо для столбцов. Отрицательные значения определяют смещение в
противоположную сторону. Оба аргумента необязательны. Значением по умолчанию явля-
ется нуль (для обоих аргументов).
Таким образом, инструкцией ActiveCell .Of f set (1, 0) возвращается ячей-
ка, расположенная под той, что активна на данный момент. Левая верхняя ячейка
этого диапазона (ActiveCell. O f f s e t (1, 0) . Range ( " A l " ) ) делается активной
( A c t i v e C e l l . O f f s e t d , 0) . Range ( " A l " ) .Select).
Совет. В очередной раз хочется обратить внимание на то, что, как и в первом слу-
чае, данный программный код далеко не оптимальный. Однако следует иметь в
виду, что этот код генерируется Excel, поэтому целесообразно затратить некото-
рое время и усилия на его изучение.
Далее этой новой активной ячейке в качестве значения присваивается число 2
(инструкция ActiveCell .FormulaRlCl = "2"). После этого осуществляется пере-
ход к верхней, по отношению к активной, ячейке (ActiveCell .Offset (-1, 0)) —
т.е. к первоначально активной ячейке. Эта ячейка выделяется, равно как и та, что распо-
ложена под ней(ActiveCell.Offset(-1, 0 ) . R a n g e ( " A l : А 2 " ) . S e l e c t ) . Для вы-
деленного диапазона ячеек (Selection) вызывается метод автоматического заполнения
AutoFill, с теми же аргументами, что и в первом случае.
Замечание. В данном случае в листинге можно видеть символ подчеркивания
(_). Это всего-навсего инструкция перехода на следующую строку. Перед ней
нужно оставлять пробел.
Далее выбирается диапазон из десяти ячеек (столбец), а верхней ячейкой диапазона
является активная на данный момент ячейка (инструкция ActiveCell .Range
( " A l : A 1 0 " ) . Select). Наконец, инструкция Range ( " A l " ) .Select выделения
ячейки А1 особых комментариев не требует. Однако в данном случае хочется обратить
внимание, что поскольку диапазон (состоящий из одной ячейки) указан безотноси-
тельно к активной на данный момент ячейке, то выделяется именно ячейка А1, и ника-
кая другая.
Не нужно быть гуру в программировании, чтобы понять, что данный программ-
ный код можно упростить. Действительно, какой смысл в выполнении всевозмож-
ных переходов от одной ячейки к другой, выделении диапазонов и т.п., если можно
просто присвоить значения двум ячейкам, заполнить на их основе остальные и вы-
делить нужную. В листинге 3.4 приведен упрощенный код этого макроса.

| Листинг 3.4. Упрощенный код макроса с относительными ссылками


Sub My_Macro_2_New()
ActiveCell.FormulaRlCl = "1"
ActiveCell.Offsetd, 0) .FormulaRlCl = "2"
ActiveCell.Range("A1:A2").AutoFill ActiveCell.Range("A1:A10")
Range("Al").Select
End Sub

Глава З. Программирование в Excel 223


Первой инструкцией ActiveCell. FormulaRlCl = "1" твердо и решительно ак-
тивной на момент выполнения макроса ячейке присваивается значение 1. Следующей
инструкцией ActiveCell. Off set (1, 0) .FormulaRlCl = " 2" практически то же
самое выполняется и по отношению к ячейке, расположенной на одну строчку ниже ак-
тивной (ссылка ActiveCell. Off set (1, 0)), но только значение теперь равно 2.
Далее, используя в качестве левой верхней ячейки диапазона активную ячейку, заполня-
ется столбец из десяти ячеек (инструкция ActiveCell.Range ( " A l : А 2 " ) .AutoFill
ActiveCell. Range ( " A l : A10")). Поскольку в этом случае диапазон заполнения оп-
ределяется по отношению к активной ячейке, для метода AutoFill, в отличие от преды-
дущих случаев, указан аргумент ActiveCell. Range ( " A l : А 1 0 " ) , который и опреде-
ляет ссылку на нужный диапазон. Последняя инструкция Range ( " A l " ) . Select мак-
роса нужна для выделения ячейки А1. Корректность работы этого кода читатель может
проверить самостоятельно.
Несмотря на то, что обычно макросы, если они не очень тривиальны, пишутся
"вручную", все же прибегать к помощи утилиты записи макросов бывает иногда очень
даже полезно. Речь, как правило, идет о тех случаях, когда в создаваемой подпрограм-
ме можно выделить базовый алгоритм, который и записывается в автоматическом ре-
жиме. Далее созданный код открывается в редакторе VBA и в него вносятся нужные
изменения. Такой подход может сэкономить огромное количество времени и усилий.
Непременным условием его эффективного использования, тем не менее, является
удачно записанный исходный макрос. Его логическая схема должна полностью соот-
ветствовать конечной задумке. В противном случае задача только усложнится.

Функции пользователя
Совершенно очевидно, что макросами область применения языка VBA не ограни-
чивается. Действительно, вполне разумным является подход, при котором на основе
введенных в ячейки таблицы Excel данных выполняются некоторые преобразования и
результат этих преобразований снова отображается в таблице. Ситуация аналогична
той, что имеет место при использовании встроенных функций Excel. Проблема, одна-
ко, в том, что этих встроенных функций (хотя их и достаточно много) хватает далеко
не на все случаи жизни. Очень часто нужна функция, которой среди предлагаемых
пользователю в рамках приложения Excel просто нет или же использование тех, что
есть, приводит к существенным неудобствам. В этой ситуации разумно будет обра-
титься к языку VBA и его практически неограниченным возможностям. Именно во-
просу создания собственных функций и посвящен данный раздел.

Созданиефункции
Процесс создания собственной функции логично будет начать с открытия редак-
тора VBA (комбинация клавиш <Alt+Fl 1>). В открывшемся окне редактора следует
выбрать команду Insert^Module (Вставка1^Модуль). В результате к проекту будет
добавлен новый модуль. Вид окна редактора VBA в этом случае показан на рис. 3.27.

224 Часть I. Основы Excel


i- Miciosolt Visual Basic Bookl [M odule! (Code)]
He Ed« View Insert Fojraat BSDUJ gu> ID

Я- У ' чл ЕЙ ^ ' '••' , ». I! • fe


.*! •^ j HDeclaiirtions)

^ VBAPraject (Bookl)
В ф Mcrosof t Excel Objects
i fp Sheetl (Sheetl)
• в Sheet2 (5heel2)
О Sheec3 (Sheets)
1
Q ThisWcrkbook
El-(gi Modules

Рис. 3.27. Окно редактора VBA с новым модулем

Большое белое поле в правой части окна редактора предназначено для ввода про-
граммного кода модуля (в данном случае — кода создаваемой функции). Это можно
делать непосредственно с помощью клавиатуры. Однако некоторые стандартные
программные конструкции (например, инструкции начала и окончания процедуры
или функции) можно ввести с помощью команд редактора VBA. Для этого доста-
точно выбрать команду Insert^Procedure (Вставка^Процедура). Открывшееся
диалоговое окно Add Procedure (Добавить процедуру) будет иметь вид, представ-
ленный на рис. 3.28. В этом окне следует выполнить ряд настроек, имеющих непо-
средственное отношение к создаваемой функции или процедуре.
В частности, в поле Name (Название) следует указать имя создаваемой функции
(в нашем примере мы будем создавать именно функцию). В данном случае функция
будет называться Му_Ехр. Соответственно, переключатель Туре (Тип) следует уста-
новить в положение Function (Функция) (это свидетельствует о том, что создается
функция), а переключатель Scope (Доступность) — в положение Public (Глобальная),
чтобы функция была доступна во всех других программах, а не только в процедурах
данного модуля. Перед щелчком на кнопке ОК диалоговое окно Add Procedure должно
иметь такой вид, как на рис. 3.29.
После щелчка на кнопке ОК в окне редактирования кода появятся автоматически
созданные редактором VBA инструкции начала (Public Function My_Exp ( ) ) и
окончания функции (End Function), как это видно на рис. 3.30. Между этими ин-
струкциями будет вводиться программный код нашей функции.

Глава 3. Программирование в Excel 225


Add Procedure

те: |My
Type

= Scope -
j ^ Pubte
: Г Private

Г 41 Local variables as States P fiJ Local variables ев Statics

. Диалоговое окно встав- Рис. 3.29. Настройки в диалоговом


ки процедур и функций окне Add Procedure

Ключевое слово Public в начале описания функции свидетельствует о том, что


это функция глобального доступа (т.е. ее можно вызывать и вне пределов рабочей
книги, в которой она создается). Там же, после зарезервированного слова Function,
указано ее название (Му_Ехр). Следует обратить внимание и на тот факт, что хотя у
функции аргументов нет (пока, во всяком случае), ее название отображается вместе
со скобками — это стандартная форма описания функций.

gte Е* Sew 8>sert Format ; Qebug gun loots fidd-Im

a-
y!l f™7
(General)

- ^ VBAProject (Bookl) Public Function Hy_Exp()


H Si Microsoft Excel Objects
! |Q Sheetl (Sheetl) End Function
: в SheetZ (Sheeta)

§
Sheets (Sheet3)
ThisWorkbook
Й-SS
' Modules

Modutel Module

Рис. 3.30. Редактор кода с инструкциями начала и окончания функции

226 Часть I. Основы Excel


Прежде чем вводить собственно программный код функции, следует определить-
ся с тем, что же эта функция будет выполнять, или, другими словами, что эта функ-
ция будет делать со своими аргументами, которых пока, как известно, нет. В качестве
примера попробуем создать функцию вычисления ряда Тейлора для экспоненты
(отсюда, кстати, и название функции).
Замечание. Разложением функции fix) в ряд Тейлора в точке ха называется
бесконечная сумма f(x) = ^ct(x-xa)k, где коэффициенты разложения функции в
пМ)

ряд определяются как ct = f(k>(x0)/k\. Необходимо, чтобы для данной функции


существовали, как минимум, производные до бесконечного порядка. Что касается
экспоненциальной функции, то для нее справедливо такое разложение:
40 k

екр(х) = У— . Это, фактически, есть разложение экспоненты в ряд Тейлора в ок-


tik\
рестности нуля (в этом случае, т.е. когда ха = 0, ряд называется рядом Маклоре-
на). Поскольку радиус сходимости этого ряда равен бесконечности (т.е. приве-
денное соотношение справедливо для любого аргумента экспоненты), он может
использоваться для приближенного вычисления экспоненциальной функции.
" jc* хг х"
В частности, можно полагать ехр(;с) = У— = \ + х-\ к..н—, причем чем больше
&*! 2 п\
число п, тем выше точность вычисления экспоненты. Такой урезанный ряд еще
называют частичной суммой. Именно этой формулой и воспользуемся.
Сразу отметим, что функции нужно указать два аргумента: точку, в которой вы-
числяется функция (аргумент экспоненты х) и количество слагаемых, которые будут
оставлены при вычислении ряда (т.е. п). Именно эти аргументы и указываются,
через запятую, в скобках в качестве аргументов функции (рис. 3.31). Программный
код функции приведен в листинге 3.5.
Microsoft Visual Basic. - Ну Fwc.il* - IModulel (Code))
He t* ^ew Insert fynaf Qeburj &1Л Jpofc ftM-Вв JBnOjOH

• У i X * ill M! •"• «"»i >..ii-Bfe£;%liS'1S'?'!Cil 1


Ш I llf.cnfial)

VBAPrn ject (MyJHmcjcb) Public Function My_Exp(x, n)


В 4S Microsoft Excel Objects s-0
:
; Щ] ShMll (Sherti) p- 1
i (QSheet2(Sheet2) For i * 0 To n Step 1
Sheets (Sheets) s - s + p
ThisWorkbook p - p * x /
В-® Modules Next i
Hy_Exp • s
End Function

л
Рис. 331. Программный код функции Му_Ехр <)

Глава 3. Программирование в Excel 227


Листинг 3.5. Программный код функции Му_Ехр()
Public Function My_Exp(x, n)
s = 0
Р = 1
For i = 0 То n Step I
s = s + р
р = р * х / (i + 1)
Next i
My_Exp = s
End Function
После заголовка с названием функции и указанием ее аргументов (х и п) инициа-
лизируются две переменные: s со значением 0 (инструкция s = 0) и р со значением 1
(инструкция р = 1). Первая переменная необходима непосредственно для вычисле-
ния частичной суммы ряда, а во второй на каждом шаге вычисления функции будет
сохраняться значение прибавляемого к этой частичной сумме слагаемого. Далее идет
оператор цикла. Начинается он ключевым словом For, после которого указывается
начальное значение для переменной-счетчика i (инструкция i = 0), а также, после
ключевого слова То, его конечное значение (т.е. п). Помимо этого указывается в явном
виде еще и шаг изменения переменной счетчика. Для этого после конечного значения
переменной счетчика указано ключевое слово Step и значение шага 1.
На заметку. Если шаг изменения переменной-счетчика в условном операторе яв-
но не указывать, то по умолчанию он равен единице. Другими словами, в рас-
сматриваемом случае конструкцию Step 1 можно просто опустить.
В рамках оператора цикла, который заканчивается конструкцией Next i, выполня-
ется два оператора. Первым оператором значение переменной s увеличивается на вели-
чину р (инструкция s = s + р), после чего вычисляется новое значение для перемен-
ной р, которое получается из прежнего значения умножением его на аргумент функции х
и делением на (i+l). Все это реализовано инструкцией р = р * х / (i + 1).
Наконец, последней инструкцией Му_Ехр = s значение переменной s возвращается
как результат выполнения функции (иначе говоря, значение этой переменной присваи-
вается другой переменной, имя которой совпадает с именем функции).
х1 х"
Подробности. Если проанализировать слагаемые ряда 1 + лч К.. + —, то можно
2 п\
заметить, что каждое следующее слагаемое на г'-м шаге получается умножением
предыдущего на аргумент и делением на i. Именно такой подход использован в
алгоритме вычисления значения функции. Единственное отличие состоит в том,
что значение добавки определяется наперед, для следующего шага. Именно по-
этому выполняется деление на (/ + 1), а не на г. Как результат, одна операция
будет лишней — это вычисление добавки для (п + 1)-го шага, которая вычисляет-
ся на последней, и-й итерации цикла. Вычисление добавки, что называется, в лоб,
с привлечением факториала, практиковать не рекомендуется. Причина проста —
для больших чисел факториал просто огромен. В выражении он находится в зна-
менателе, обеспечивая тем самым малость добавки. Однако чтобы он в этом знаме-
нателе оказался, его сначала нужно вычислить. Последнее может привести к
ошибке, если соответствующее число выйдет за допустимые границы.

228 Часть I. Основы Excel


После того как функция определена, вполне логично попытаться ее использовать.
Для этого поступим следующим образом. В той же рабочей книге, где определена
функция, в одном из рабочих листов введем два числа: аргумент для экспоненты
(значение 1 в ячейку ВЗ) и количество слагаемых ряда (значение 5 в ячейку В4).
В еще одну ячейку (а точнее, в ячейку В5) вводим формулу =ЕХР(ВЗ), с помощью
которой вычисляется значение экспоненты с использованием встроенной функции
Excel (рис. 3.32).
Наконец, в ячейку В6 вводим формулу =Му_ЕХР(ВЗ,В4). В этом случае вызыва-
ется только что созданная функция, аргументами которой указываются адреса тех
же ячеек, что и для встроенной функции Excel. После нажатия на кнопке <Enter> в
ячейке В6 можно увидеть результат вычислений (рис. 3.33).

В5 =ЕХР(ВЗ) ВВ =Му_ЕХР(ВЗ,В4)
В В
'.Тестирование функции i_ I Тестирование функции
__
Аргумент х- 1] 3_:Аргуиент х« 1!
I Слагаемые п- ' 5 4 Слагаемые п ............ 51
|Точное значение 2.7182818281 5 Точное значение 2.718281В28
Функция Му_Ехр0 Функция My ExpO I 2.7166666671

Рис. 3.32. Ввод данных для проверки Рис. 3.33. Результат вычисления при-
работы функции ближенного значения для экспоненты

Точность далеко не самая лучшая, однако следует учесть, что в расчет было при-
нято только первых пять слагаемых. Если значение в ячейке В4 изменить, например,
на 10, картина получится совершенно иная (рис. 3.34).
Если еще увеличить количество слагаемых ряда, можно добиться абсолютного сов-
падения. Хитрости здесь никакой нет. Дело в том, что использование ряда для вычис-
ления экспоненты — это стандартный подход. Более того, рассмотренный выше ряд
(бесконечный) по сути является определением экспоненциальной зависимости.
Проанализированный пример исключительно прост. Более того, способ его реа-
лизации в некотором смысле утрирован, поскольку не указывался ни тип аргумен-
тов функции, ни тип внутренних переменных (хотя это преступлением не является и
код, как мы могли убедиться, будет успешно работать). К этому вопросу еще пред-
стоит вернуться. Однако здесь разумнее рассмотреть проблему, связанную с доступ-
ностью создаваемых функций из других рабочих книг. Она напрямую связана с тем,
где и как сохраняются рабочие книги с описанными в них функциями.

В4 10
В
I Тестирование функции
Аргумент х= '
^Слагаемые
Яочное значение
п- I т
2.718281828
1функция Му_Ехро1 .2.7.18281801..

Рис. 3.34. Вычисление экспоненты по


десяти слагаемым

Глава 3. Программирование в Excel 229


Сохранение и доступность функций
Как мы выяснили в предыдущем примере, всякая собственная функция записы-
вается в некоторый модуль, модуль содержится в какой-то рабочей книге, а книгу
нужно где-то сохранить. Желательно организовать работу так, чтобы потом все это
можно было найти. Так вот, для того чтобы ту или иную функцию можно было ис-
пользовать, должна быть открыта книга, где хранится модуль, в котором эта функ-
ция определена.
Замечание. Интересно, читал ли Бил Гейтс в детстве сказку про Кощея
Бессмертного.
На этом неприятности не заканчиваются. Если функция используется в книге,
отличной от той, где она определена, при вставке функции в формулу Excel между
знаком равенства и непосредственно названием функции следует обязательно ука-
зывать эту рабочую книгу. Название книги и имя функции отделяются восклица-
тельным знаком. Например, если функция Му_Ехр сохранена в рабочей книге под
названием My_Func .xls, то для вызова ее из другой книги нужно использовать та-
кую форму записи: =My_Func.xls!My_EXP(1,15) (рис. 3.35).

А1 •'*'; "'' -' ' '.'. ~~ jfb —My Func xlslMy EXP(1,15) Рис. 3.35. Вызов функции пользователя
А В : С ; ,0 ! .Е . р F
1 2.718282
из ячейки внешней рабочей книги
2
. [
'3

Это достаточно утомительный способ вызова функции пользователя. Есть более про-
стой. Состоит он в том, что выбирается ячейка, в которую нужно ввести формулу с дан-
ной функцией, после чего выбирается команда Insert1^Function (Вставка^Функция).
В результате открывается диалоговое окно Insert Function (Вставка функции). Если на
момент выбора этой команды уже открыта какая-то книга или книги, в которых опреде-
лены функции пользователя (причем доступные для внешнего использования, т.е. с оп-
цией Public в описании функции), в списке категорий функций появится дополни-
тельный элемент User Defined (Определенные пользователем). Его и следует выбрать
(рис. 3.36).
insect Function

Search For a function:

У Type a brief description of what you want to do and then


IdickGo

Most Recently Used


Recently used

Financial
AVERAGE Date & Time
IF Math 8> Trig
HYPERLINK Statistical
COUNT Lookup & Reference
MAX Database
IN Text
Logical
SUM(numberl,nun Information
Adds ai the numbers

Heb on frhis function

Рис. 336. Выбор категории функзлий пользователя

230 Часть I. Основы Excel


Подробности. Кроме этого, разумеется, до функции пользователя можно
добраться, если выбрать элемент АИ (Все), но в результате будет предоставлен
список всех доступных функций, а он может быть очень внушительным.
В рассматриваемом случае функция пользователя всего одна, поэтому в списке
функций пользователя в окне Insert Function (Вставка функции) только она одна и
будет отображена (рис. 3.37). Именно эту функцию и следует выбрать. Теперь мож-
но воочию убедиться в преимуществах используемого подхода. После щелчка
на кнопке (Ж будет выведено диалоговое окно для ввода аргументов функции
(рис. 3.38).
Правда, несколько удручающе выглядит область отображения справки по функ-
ции, но на фоне возможности ввести аргументы и сразу оценить результат это не так
уж и важно. В частности, если в поле X ввести значение 1, а в поле N — значение 15,
можно видеть результат вычисления ряда для экспоненты (рис. 3.39).

Type a brief descrption of what you want to do and then


click Go
тешашяат
Or setett a category; |Usw Defined

Setett ahjncMon:

Puc. 3.37. Функции пользователя

Рис. 338. Окно ввода для аргументов функции Му_Ехр

Глава 3. Программирование в Excel 231


Xjl
NJI5

Nohdpavafabte.

Formula гея* » 2.718281828

Heio on thts function

Puc. 339. Предварительный просмотр результата

Это удобно, поскольку можно сразу поменять нужный аргумент, если результат
по каким-то причинам далек от желаемого. Однако главное неудобство остается —
рабочая книга с описанием функции должна быть открыта. Если смириться с таким
положением дел нет никакой возможности, можно, наконец, сохранить данную ра-
бочую книгу в качестве надстройки (файл с расширением . xla) в каталоге
XLSTART. В этом случае при запуске Excel данный файл (а с ним и функция) будет
автоматически загружаться в память. Поэтому функцию можно будет использовать
без ссылок на ее рабочую книгу.
Внимание! Для того чтобы сохранить файл как надстройку нужно выбрать ко-
манду File^Save as (Файл^Сохранить как), после чего из списка типов выбрать
для сохраняемого файла тип файла надстройки. При этом следует проявить вни-
мание: как только данный тип для сохраняемого файла будет выбран, Excel авто-
матически предложит для сохранения тот каталог, где хранятся надстройки
(место этого каталога в общей иерархии зависит от конфигурации системы).
Это не является проблемой. Можно хранить данный файл с прочими надстрой-
ками. Однако для того, чтобы функция всегда была доступна, придется подклю-
чить надстройку с этой функцией (т.е. сохраняемый файл) самостоятельно. Дела-
ется это выбором команды Tools^Add-lns (Сервис^Надстройки), после чего в
открывшемся окне со списком надстроек следует поставить флажок у имени той
надстройки, в которой записана интересующая функция, и подтвердить выбор.
Это нужно сделать только один раз (т.е. при следующих запусках Excel указанная
надстройка будет загружаться уже автоматически).
После того как вопрос сохранения рабочих книг с функциями пользователя про-
яснен, имеет смысл вернуться к самим функциям.

Переменные и типы данных


Хорошим тоном считается явное объявление переменных с указанием их типа.
Это как раз то, что не было сделано в предыдущем примере. Переменные, (равно как
и аргументы) созданной выше функции объявлялись неявно в тот момент, когда им
присваивались значения. В этом случае переменные имеют тип Variant. Другие
доступные в языке VBA типы данных представлены в табл. 3.15.

232 Часть I. Основы Excel


Таблица 3.15. Типы данных в языке VBA
Тип данных Размер в байтах Описание
Byte I Положительные числа в диапазоне от 0 до 2 5 5
Boolean 2 Логический тип. Данные этого типа могут принимать
два значения: TRUE и FALSE
Currency Числа в диапазоне от -92233720368 54 77. 5808 до
922337203685477.5807. Данные этого типа сохра-
няются как целые числа (8 байт), деленные на 10000.
Обычно этот тип используется при выполнении опе-
раций с валютой
Date Тип данных для хранения даты и времени. Данные
хранятся в формате чисел с плавающей точкой
(8 байт). Целая часть числа определяет дату (начиная
с 1 января 100 года до 31 декабря 9999 года), а десятич-
ная — время(от 0 : 0 0 : 0 0 ДО 23:59:59)
Decimal 14 Десятичный тип числа. Данные этого типа представ-
ляются в виде знакового целого числа (12 байт),
деленного на число, равное 10 в целой степени.
Последняя может принимать значения от 0 до 28.
Отсюда самое большое число (по абсолютной величи-
не) равно 79228162514264337593543950335,
а самое маленькое (имеется в виду отличное от нуля,
т.е. фактически степень точности)
0.0000000000000000000000000001
(тоже по абсолютной величине)
Double 8 Тип чисел с плавающей точкой двойной точности.
Позволяет оперировать с числами в диапазонах от
1.79769313486231Е308ДО
-4 . 94065645841247Е-324 для отрицательных
чисел И от 4 . 94065645841247Е-324 ДО
1.79769313486232Е308 для положительных
Integer 2 Целочисленный тип. Значениями могут быть целые
числа в диапазоне от-32768 до 32767
Long 4 Расширенный целочисленный тип. Значения — целые
числа в диап зоне от -2147483648 до 2147483647
Object 4 Ссылка на любой объект
Single 4 Тип чисел с плавающей точкой. Допустимый диапазон
чисел: от -3 .402823Е38 до -1.401298Е-45 для от-
рицательных чисел йот 1.401298Е-45ДО
3 .402823Е38 для положительных
String Для строк пере- Строчный тип данных. Это тип данных для хранения
менной длины 10 текста. В зависимости от того, относятся ли данные к
плюс длина стро- тестовой строке фиксированной или переменной дли-
ки. Для строк фик- ны, может содержать 2"' или 2" символов
сированной длины
определяется дли-
ной строки

Глава 3. Программирование в Excel 233


Окончание табл. 3.15

Тип данных Размер в байтах Описание


Variant 16 для численных Этот тип данных используется для всех переменных,
значений и 22 тип которых не указан в явном виде. На этом область
плюс длина тек- применения типа не ограничивается. Обычно этот тип
стовой строки для используют в тех случаях, когда нужно обеспечить
переменных, достаточную гибкость в способах обработки данных
содержащих тек-
стовые символы

Данный способ определения переменных вполне приемлем, однако при этом уве-
личивается вероятность совершения ошибки, которая может быть не отслежена
компилятором. Такая ошибка приведет к искажению логики программы. Например,
если в очередном из операторов в названии введенной ранее переменной допустить
синтаксическую ошибку (скажем, пропустить какой-то символ), то VBA ситуацию
проинтерпретирует как ввод новой переменной. Такие ошибки отслеживать доста-
точно трудно, особенно в больших программах. Это же относится и к ситуации, ко-
гда сбой в программе происходит при попытке обработать значение переменной не-
адекватными ее типу методами.
Альтернативой неявному объявлению переменных является, как несложно дога-
даться, явное их объявление. Оно может осуществляться с указанием типа перемен-
ной и без указания типа. В последнем случае типом переменной является Variant.
Для явного объявления переменной используется инструкция Dim. Например, что-
бы объявить переменную MyAge можно воспользоваться инструкцией Dim MyAge.
Если нужно объявить эту переменную как целочисленную, используют инструкцию
Dim MyAge As Integer.
Использование явного способа определения переменных имеет то несомненное
преимущество, что позволяет более экономно распределять ресурсы системы. Это, в
свою очередь, положительно сказывается на времени выполнения программ, к тому
же отслеживать ошибки в такой ситуации, как правило, намного проще. Однако сле-
дует понимать, что выбор способа объявления переменных существенно зависит от
той задачи, которую следует решить.
Что касается аргументов функций, то для них также можно в явном виде указывать
тип. После названия аргумента нужно, после ключевого слова As, указать тип аргумента.
Например, инструкция Function My_Exp2 (x As Double, n As Integer) свиде-
тельствует о том, что первый аргумент является числом с плавающей точкой двойной
точности, а второй аргумент — число целое.
Ниже в листинге 3.6 приведен программный код функции, которая дублирует
созданную ранее функцию вычисления ряда для экспоненты по двум аргументам:
показателю экспоненты и количеству оставляемых в сумме слагаемых (если точнее,
то индексу последнего слагаемого). Однако в отличие от предыдущего случая, здесь
для всех переменных, аргументов и самой функции указан в явном виде тип.

234 Часть I. Основы Excel


Листинг 3.6. Функция с явным объявлением типа переменных и аргументов
Public Function My_Exp2(x As Double, n As Integer) As Double
Diih s As Double
Dim p As Double
Dim i As Integer
s = 0
p = 1
For i = 0 To n Step 1
s = s + p
p = p * x / (i + 1)
Next i
My_Exp2 = s
End; Function;та_та гг,_.„ ,
„.„
„..
,,.
, _.„,, ....„„„„^..
=

В частности, функция Му_Ехр2 () возвращает в качестве результата число с пла-


вающей точкой двойной степени точности, а все внутренние переменные имеют тип,
который определяется их назначением с точки зрения логики программы. Сам про-
граммный код функции можно сохранить в том же модуле, где записывался код
функции Му_Ехр ( ) (рис. 3.40).
Несмотря на то, что указание в явном виде типа аргументов и переменных кажется
чистой формальностью, это далеко не так. Хотя обе функции, Му_Ехр ( ) и Му_Ехр2 ( ) ,
с точки зрения реализованного в них алгоритма совершенно эквивалентны (явное опи-
сание типов здесь не в счет), в их работе могут быть существенные различия. Иллюстра-
цией к этому служит рис. 3.41 с результатами вызова обеих функций.

<S| Efe tdit Sew Insert Format Qebug gun loots

' > n • Ы, -
Ш |(Geneialt TJ MDecUidliotn

В ^5 VBAProject (My_Func.xls) Public Function Hy_Exp(x, n)


B-t3 Microsoft Excel Objects 0
И] Sheetl (Sheetl) I
SB Sheet2 (Sheet2) Fo i e 0 To n Step 1
, ЧЙsheet3 (Sheets) s + p
i £l ThisWorkbook p '« x / (i + 1)
B--€S Modules Next i
Hy_Exp = s
End Function

Public Function Hy_Exp2(x As Double,


|Modulel Module n As Integer) As Double
Dim s As Double
alphabetic (categorized |
Dim p As Double
SUBlModuiel Dim i As Integer
s- 0
t - 1
For i = 0 To n Step 1
se s + p

Next i
Hy_Exp2 - s
End Function

Puc. 3.40. Модуль с программными кодами двух функций пользователя

Глава 3. Программирование в Excel 235


вю =Му_Ехр2(1.8.4) Рис. 3.41. Результаты вызова двух функций
с различными аргументами
; Сравнение двух функций

........................
....... _
4 .Формула Результат
ПМу_Ехр(1 ,8) 2 7182787/1
6 ;MylExp2(1.8) ' 2.71827877!
"Л My Екр(1.8.7) 2.71827877;"
Щ]му~Ехр2(1,8.7) " 2.718231526!
.
"'2.718261526 '
_10]му_Ехр2{1 .8.4)1 _ 2.718278771
1:

В левом столбце представлены, для удобства, соответствующие формулы


(без знака равенства, разумеется), значения для которых приведены в правом столб-
це. Как видно по первым двум строкам, в том случае, если вторым аргументом ука-
зано целое число (как и должно быть), результат вычисления для обеих функций со-
вершенно идентичен. Сюрпризы начинаются, когда вторым аргументом введено
дробное число. Так, если ввести в качестве индекса для последнего слагаемого ряда
значение 8.7, то по формуле =Му_Ехр(1,8.7) получаем такое же значение, как и в
предыдущем случае, т.е. для формулы =Му_Ехр(1,8), а вот результат формулы
=Му_Ехр2(1,8.7) уже существенно отличается. Нетрудно заметить, что оно совпада-
ет с результатом формулы =Му_Ехр(1,9). Причина в том, что если тип аргумента в
явном виде не указан (как для функции Му_Ехр ( ) ), то программный код выполня-
ется с теми аргументами, что переданы функции. Поэтому в операторе цикла пере-
менная изменяется до тех пор, пока не превысит пороговое значение (в данном слу-
чае 8.7); эффект получается такой же, как если бы это пороговое значение было рав-
но 8. Если для аргумента указан тип (целочисленный в функции Му_Ехр2 ( ) ) ,
аргумент перед использованием будет преобразован к этому типу (в данном кон-
кретном случае путем банального округления). В результате вместо 8.7 эффективно
получается 9. А если, например, аргумент указать равным 8.4, то он будет округлен
до значения 8 (см. рис. 3.41, ячейки А10:В10).

Замечание. В языке VBA аргументы функциям могут передаваться по ссылке


(этот режим используется по умолчанию) и по значению. В первом случае функ-
ции передается, фактически, адрес в памяти, где хранится данное значение. Если
в теле функции аргумент изменяется, он будет изменен по месту своей
"прописки", т.е. изменяется само значение аргумента. Если аргументы передают-
ся по значению, то в функцию передается копия этого аргумента, и все выпол-
няемые с ней манипуляции на оригинале не скажутся. Следует однако принять к
сведению, что если в качестве аргументов указаны ячейки электронной таблицы,
то даже после внесения изменений в теле функции для этих аргументов значения
ячеек таблицы останутся прежними независимо от того, как передаются аргумен-
ты — через ссылку или по значению. Чтобы программно изменить значения ячеек
электронной таблицы, следует писать специальный код.
Для того чтобы передача аргумента осуществлялась по значению, в начале его
декларирования в функции следует указать директиву ByVal. Для передачи ар-
гумента по ссылке используют директиву ByRef. Однако в этом редко бывает не-
обходимость (поскольку этот режим и так используется по умолчанию).

236 Часть I. Основы Excel


Тип переменной в теле функции можно задать не только с помощью явного ее
определения. Есть способ указать тип переменной даже в том случае, если она опи-
сана неявно. Для этого к названию переменной (в конце) добавляют специальный
символ определения типа. К сожалению, такие символы есть не для всех типов дан-
ных. В табл. 3.16 представлены символы определения типа, которые можно исполь-
зовать в языке VBA.

Таблица 3.16. Символы определения типов

Символ Тип
] Single
@ Currency
# Double
$ String
% Integer
& Long

Справедливости ради все же следует отметить, что определение типа переменных


при явном их описании выглядит куда более предпочтительней.

Рекурсия и необязательные аргументы


Очень часто возникает необходимость использовать при описании функции не-
обязательные аргументы, т.е. аргументы, которые при вызове функции могут указы-
ваться, а могут и не указываться. Для того чтобы определить такой необязательный
аргумент, перед его именем помещается ключевое слово Optional. Если при описа-
нии функции был определен такой необязательный аргумент, функция может быть
вызвана без ссылки на него. Разумеется, функция при этом должна быть запрограм-
мирована таким образом, чтобы ее значение вычислялось корректно независимо от
того, указан данный аргумент или нет. В качестве примера создания такой функции
рассмотрим задачу о приближенном вычислении синуса.
Замечание. Обычно для вычисления синуса (равно как и косинуса) прибегают к
помощи ряда Тейлора, в полной аналогии с примером о вычислении значения
экспоненциальной функции. Отличие в данном случае состоит в том, какой ряд
используется. Так, для синуса справедливо следующее разложение в окрестности
» (-]_)'"х2М д:3 х5 х1
нуля: 5т(л:) = У-— =х + + .... Если оборвать этот ряд, то получим
tf (2i-l)! 3! 5! 7!
приближенное значение для синуса. Именно так и поступим.

Очевидно, функции для вычисления приближенного значения синуса придется


передавать два аргумента: непосредственно аргумент синуса и индекс того слагаемо-
го, на котором обрывается ряд. В качестве такого индекса будем использовать пока-
затель степени аргумента синуса для последнего слагаемого суммы, получающейся
обрыванием ряда.
Что касается самого алгоритма вычисления, то его можно было бы организовать
так, как это делалось при вычислении экспоненциальной функции. Однако здесь мы
пойдем иным путем — используем принцип рекурсии. Под рекурсией в программи-

Глава 3. Программирование в Excel 237


ровании понимают вызов в процессе вычисления значения функции самой этой
функции. Ниже будет определено две функции. В рамках одной вычисляется обрат-
ный факториал целого числа (т.е. единица, деленная на факториал числа), а второй
функцией вычисляется непосредственно значение синуса. При этом в процессе вы-
числения вызывается функция расчета обратного факториала. Программные коды
обеих функций приведены в листинге 3.7 для обратного факториала и в листинге 3.8
для вычисления синуса.

j Листинг 3.7. Функция с рекурсией


Private Function InvFact (k As Integer) As Double
' Вычисление обратного факториала
If k = 0 Then
InvFact = 1 ' п о определению полагают 0!=1
Else
InvFact = InvFact (k - 1) / k ' формула с рекурсией
End If

Ключевое слово Private в начале определения этой функции указывает на то,


что функция будет доступна только в пределах того модуля, где она определена.
Совет. Если такая ситуация по каким-то причинам неприемлема, достаточно за-
менить ключевое слово Private на Public или просто его удалить. Тогда
функцию можно будет использовать и в ячейках электронной таблицы.
Функция реализуется по следующей схеме: сначала проверяется на равенство
нулю единственный целочисленный аргумент функции. Делается это в рамках ус-
ловного оператора, который начинается с ключевого слова If, после которого и ука-
зывается проверяемое условие (k = 0). Если условие верно, выполняется группа
операторов, размещенная после ключевого слова Then. В данном случае это всего
один оператор и состоит он в том, что в качестве значения функции присваивается
единица (инструкция InvFact = 1). Здесь нет ничего удивительного, поскольку
по определению факториал нуля полагают равным единице.
Если аргумент функции отличен от нуля (т.е. условие k = 0 не выполняется),
вступают в силу операторы, расположенные после ключевого слова Else. Там тоже
всего один оператор (InvFact = InvFact (k - 1) / k), в котором и реализует-
ся рекурсия. Действительно, обратный факториал числа k есть не что иное, как об-
ратный факториал числа (k-1), деленный на k. Обратный факториал для (k-1) вы-
числяется функцией InvFact (k-1) . При ее вычислении будет вызвана функция
InvFact ( k-2 ) и т.д. до тех пор, пока аргумент вызываемой функции не будет равен
нулю. А в этом случае значение функции определено как единица.
Заканчивается условный оператор ключевым словом End If. Вместе с условным
оператором заканчивается и программный код функции InvFact ( ) , которая в по-
следующем, как отмечалось, будет использована при вычислении значения синуса.
Функция вычисления синуса, в которой, в свою очередь, вызывается функция
InvFact ( ) , представлена в листинге 3.8.

238 Часть I. Основы Excel


Листинг 3.8. Функция вычисления синуса
Public Function My_Sin(x As Double, Optional n)
' Вычисление ряда Тейлора для синуса
'Описание переменных:
Dim m As Integer ' Индекс последнего слагаемого в сумме
Dim i As Integer ' Переменная цикла
Dim s As Double ' Переменная для записи суммы
s = 0 ' Инициализация переменной для записи суммы
1
Проверка наличия необязательного
' аргумента и определение переменной т:
If IsMissing(n) Then т = 7 Else т = n
For i = 1 To т Step 2 ' Переменная цикла изменяется с шагом 2
'Вычисление суммы-.
л л
s = s - (-1) ((i+1) / 2 ) * InvFact(i) * х i
Next i ' Окончание оператора цикла .
My_Sin = s ' Результат

В первую очередь следует обратить внимание на то, что данная функция содержит
необязательный аргумент n (второй по счету), который задает индекс последнего сла-
гаемого (точнее, степень аргумента синуса для данного слагаемого, которую еще назы-
вают порядком малости). Об этом свидетельствует ключевое слово Optional в объ-
явлении аргумента. Тип аргумента не указан специально. Комментарий по этому по-
воду будет приведен несколько позже, в процессе анализа программного кода.
В теле функции в явном виде описаны, с указанием типа, три переменные: m для
записи индекса последнего слагаемого суммы (целое число), целочисленная пере-
менная цикла i, а также переменная s для записи значения суммы на промежуточ-
ных этапах вычисления, тип которой указан как число с плавающей точкой двойной
точности. Начальное значение этой переменной устанавливается равным нулю.
Далее выполняется, в рамках условного оператора, проверка наличия второго,
необязательного аргумента функции. Проверяемое условие имеет вид IsMissing (n) .
В данном случае использована встроенная функция языка VBA IsMissing ( ) , аргу-
ментом которой указан необязательный аргумент n функции My_Sin ( ) . Функцией
IsMissing () возвращается в качестве результата значение TRUE, если данный
аргумент отсутствует, и FALSE в противном случае.
Внимание! Функция IsMissing () работает с аргументами типа Variant.
К сожалению, использование ее с аргументами других типов, таких, например,
как Integer, невозможно. Именно поэтому в описании функции My_Sin ( ) для
второго аргумента тип данных явно не указан (в этом случае он по умолчанию
интерпретируется как Variant). Если все же существует необходимость в явном
виде указать тип необязательного аргумента, это можно сделать. В таком случае
используемое по умолчанию значение аргумента (т.е. когда аргумент явно не ука-
зан) следует задать прямо в описании аргументов функции, после знака равенст-
ва сразу за типом аргумента. Как это делается, будет продемонстрировано
несколько позже, на конкретном примере.
Если второй аргумент явно не указан при вызове функции, переменной m присваива-
ется значение 7. В противном случае эта переменная равна второму аргументу функции
My_Sin ( ) . Это те действия, которые выполняются в рамках условного оператора.

Глава 3. Программирование в Excel 239


Замечание. Что касается самого условного оператора, то в языке VBA он может
иметь несколько форм записи. В частности, в функции My_Sin() использована
однострочная форма, которая имеет такую структуру: If условие Then опера-
торы Else операторы. Все это должно вводиться в одну строку. Если при
такой записи после ключевых слов Then и Else указывается несколько операто-
ров, то они друг от друга отделяются двоеточием.
Кроме этой формы записи существует еще и блочная, которая имеет следующий вид:
If условие Then
операторы
Else
операторы
End If
В последнем случае условный оператор заканчивается ключевой фразой End I f.
После условного оператора следует оператор цикла, в рамках которого непосредственно
и вычисляется приближенное значение синуса. Переменная цикла ± пробегает значения от
1 до m (индекс последнего слагаемого) с шагом 2. На каждом шаге значение переменной s, в
которой записана сумма членов ряда Тейлора для синуса, уменьшается на величину, кото-
рая вычисляется по формуле (-1) " ( ( i + 1) / 2 ) * InvFact(i) * х Л i.
В этой формуле три множителя, с каждым из которых следует разобраться в отдельности.
Здесь сразу же следует заметить, что переменная суммирования в операторе цик-
ла не совпадает с индексом суммирования в выражении для ряда Тейлора для сину-
са. Переменная суммирования, поскольку шаг ее изменения равен 2, а не 1, опреде-
ляет показатель степени аргумента для слагаемого, равно как и аргумент для вычис-
ления факториала в знаменателе. Таким образом, множитель х Л i соответствует
аргументу синуса в нужной степени, a InvFact (i) задает не что иное, как единицу,
деленную на факториал числа, соответствующего показателю степени аргумента си-
нуса. Наконец, множитель (-1) Л ( ( i + 1) / 2) обеспечивает поочередное из-
менение плюсов и минусов для каждого очередного слагаемого.
Замечание. Возведение в степень в языке VBA осуществляется с помощью опе-
ратора-"шляпки" (л). Список прочих математических операторов, среди которых
и те, что уже использовались ранее, приведен в табл. 3.17.

Таблица 3.17. Основные математические операторы языка VBA


Оператор Пример использования Описание
+ а + Ь Сложение двух чисел
- а - Ь Вычитание
* а * Ь Умножение
1 а / Ь Деление
\ а \ Ь Целочисленное деление
Mod a Mod b Деление по модулю. Возвращается остаток от
деления а на Ь
л
А
а Ь Возведение в степень

240 Часть I. Основы Excel


По окончании оператора цикла значение переменной s возвращается в качестве
результата функции.
Обе функции, My_Sin () и InvFact ( ) , разумно реализовать и сохранить в од-
ном модуле (рис. 3.42).
Логично проверить работу созданной функции. Для этого в рабочей книге в од-
ном из листов в ячейку ВЗ вводим формулу =Pi()/6. Это будет аргумент для функции
вычисления синуса. Точное значение синуса равно 0.5. Однако на случай полагаться
не будем и для надежности эксперимента введем в ячейку В5 формулу =SIN(B3).
Это позволит вычислить значение синуса с помощью встроенной функции Excel.
В ячейку В4 ввести это значение не удастся, поскольку в данной ячейке должно быть
указано число 5, определяющее порядок малости последнего слагаемого в сумме для
приближенного вычисления синуса. Наконец, в ячейку В6 вводится формула
=My_Sin(B3,B4) (второй аргумент указан) и формула =My_Sin(B3) — в ячейку В7.
В последнем случае созданная функция вызывается только с одним аргументом.
Результат представлен на рис. 3.43.

Micioioft Vitual Basic - Me Sine xl. - [Modulel (Code


Jnsett Format Qebug &un Io

'' ' •• r" > II• У

Private Function InvFaet(k As Integer) As Double


1
Вычисление обратного факториала
I -Qsheetl (Sheet! If h - 0 Then
InvFact " 1 ' п о определение:! полагают 01 = 1
i i в Sheets (Sheet's Else
InvFact - InvFact(k - 1) / k ' формула с рекурсией
8 •& Modules End If
J£nd Function ___

Public Function Hy_Sin(x As Double, Optional n)


: i 1
Вычисление ряда Тейлора для синуса
• Описание переменных;
Dim m As Integer ' Индекс последнего слагаемого в сумме
JModulel M o d u t e _ »
Dim i As Integer ' Переменная цикла
CaegorMd) Dim s As Double ' Переменная для записи суммы
Modulel 3=0 ' Инициализация переменней для записи суммы
' Проверка наличия необязательного аргумента и определение переменной m: fj
It IsHissingtn) Then т • 7 Else т - n
For i - I To т Step 2 ' Переменная цикла изменяется с шагом 2
1
Вычисление суммы;
з = з - (-1) (U + 1) / 2) * InvFact (1) * х А i
А

Next i ' Окончание оператора цикла


Hy_Sin = s ' Результат
End._ Function И
'' " " " '
Рис. 3.42. Модуль с кодами функций My_Sin () и InvFact ()

В! ' =My_Sin(B3) Рис. 3.43. Проверка работы собственной


функции вычисления синуса
j Вычисление синуса
\
| Аргумент 0.523599
1 Индекс последнего слагаемого суммы 5;
1 Точное значение (встроенная функция) 0.5!
j Приближенное значение (деа аргумента) 0500002^
1 Приближенное значение (один аргумент) j 0^51

Глава 3. Программирование в Excel 241


Очевидно, что написанный нами программный код работает. Причем хочется об-
ратить внимание, что достаточно корректное значение для синуса получается при
учете всего трех слагаемых в сумме-(порядок малости 5 соответствует выражению
3 5
х х
х + всего три слагаемых!).
'
Замечание. Несмотря на то, что в рассмотренном примере использовано разло-
жение синуса в ряд Тейлора в окрестности нуля, соответствующее выражение
может использоваться для определения значения синуса при любом значении ар-
гумента. Причина в том, что, как и в случае с экспоненциальной функцией, ряд
для синуса имеет бесконечный радиус сходимости.
При реализации функции My_Sin ( ) для проверки наличия второго необяза-
тельного аргумента использовалась функция IsMissing ( ) . Как отмечалось выше,
при этом возникает необходимость внимательно следить за типом необязательного
аргумента. Там же упоминался альтернативный подход для решения данной про-
блемы. В качестве примера реализации этого альтернативного подхода приведена
функция My_Sin2 ( ) , программный код которой представлен в листинге 3.9.

\ Листинг 3.9. Код функции My_Sin2()


Public Function My_Sin2(x As Double, Optional n As Integer = 7)
1
Вычисление ряда Тейлора для синуса
' Описание переменных:
Dim i As Integer ' Переменная цикла
Dim s As Double ' Переменная для записи суммы
s = О ' Инициализация переменной для записи суммы
For i = 1 То n Step 2 ' Переменная цикла изменяется с шагом 2
'Вычисление суммы:
s = s - (-1) «i + 1) / 2 ) * InvFact(i) * хл i
л

Next i ' Окончание оператора цикла


My_Sin2 = s ' Результат
End Function

В отличие от функции My_Sin ( ) , для необязательного аргумента n явно указан


тип (это целое число). Кроме того, после знака равенства в описании аргументов
функции после указания типа задано значение для этого аргумента на тот случай,
если при вызове функции аргумент будет опущен. Другими словами, если при вызо-
ве функции не указать второй аргумент, то это все равно, что указать вторым аргу-
ментом число 7 (в данном примере). Поэтому необходимость в проверке наличия
второго аргумента просто отпадает, как отпадает и необходимость в использовании
переменной т. В результате программный код существенно упрощается. Что касает-
ся функциональности, то можно убедиться самостоятельно, что результат вызова
функции My_Sin2 ( ) во всем аналогичен вызову функции My_Sin ( ) .
Однако такой подход далеко не всегда эффективен, поскольку очень часто приходит-
ся сталкиваться с ситуациями, когда отсутствие одного или нескольких аргументов, к
сожалению, не сводится к простому использованию их значений по умолчанию.

242 Часть I. Основы Excel


Использование функций приложения
Если смотреть на возможности языка VBA через призму обработки результатов
измерений и математического их анализа, то можно прийти к неутешительному вы-
воду, что набор встроенных математических функций VBA не очень велик. Список
этих функций (в некотором смысле он неполный, поскольку иногда бывает трудно
однозначно разделить функции на математические и не очень) приведен в табл. 3.18.

Таблица 3.18. Математические функции языка VBA

Функция Пример Описание Тип возвращаемого


использования результата
Abs Abs(x) Модуль числа х Совпадает с типом
числа х
Atn Atn(x) Арктангенс числа х Double
Cos Cos (x) Косинус числа х Double
Exp Exp (x) Экспоненциальная функция Double
(в степени х)
Fix Fix(x) Возвращает целую часть числа х. Doubl e
Если х — отрицательно, то воз-
вращается ближайшее целое неот-
рицательное число, которое боль-
ше либо равно х
Int Int (x) Возвращает целую часть числа х. Double
Если х — отрицательно, то воз-
вращается ближайшее целое неот-
рицательное число, которое мень-
ше либо равно х
Log Log(x) Натуральный логарифм числа х Double
Rnd Rnd (x) или Rnd Генерируется случайное число. Single
Если аргумент не указан, то это
число в диапазоне от 0 до 1. Аргу-
мент используется для инициали-
зации генератора случайных чисел.
Если он больше нуля, при очеред-
ном вызове генерируется новое
случайное число, если меньше
нуля — одно и то же случайное
число. При нулевом аргументе воз-
вращается последнее сгенериро-
ванное случайное число
Sgn Sgn(x) Знакчислах Integer
Sin Sin(x) Синус числа х Double
Sqr Sqr(x) Корень квадратный из х Double
Tan Tan(x) Тангенс числа х Double

Глава 3. Программирование в Excel 243


Перечисленные функции, как несложно заметить, далеко не полностью перекрывают
спектр даже элементарных математических функций. Поэтому весьма вероятно, что в
процессе работы придется столкнуться с ситуацией, когда необходимо вычислить значе-
ние недоступной в рамках языка VBA функции. Из этого затруднения может быть двоя-
кий выход. Во-первых, можно запрограммировать функцию самостоятельно. Если суще-
ствует возможность выразить используемую функцию через встроенные функции языка
VBA — замечательно. К сожалению, часто и этого сделать нельзя, поэтому вторая воз-
можность состоит в привлечении внешних функций. В первую очередь имеются в виду
встроенные функции Excel — их спектр заметно шире, чем набор функций собственно
языка VBA. Причем это относится не только и, может быть, не сколько к математическим
функциям. Другими словами, актуальной является задача использования в программных
кодах VBA встроенных функций Excel. Рассмотрение этого вопроса начнем с конкретно-
го примера. Строго говоря, теми же методами программно можно изменять атрибуты
ячеек электронной таблицы. Но в этом случае речь идет уже скорее не о функциях, а о
процедурах, которые будут обсуждаться в следующем разделе.
В качестве базовой рассмотрим задачу о вычислении среднего значения. В част-
ности, будем вычислять среднее значение температуры, которая измерялась на про-
тяжении десяти дней. Эти данные представлены в таблице на рис. 3.44.
Вычислить среднее значение температуры труда не составляет: достаточно вве-
сти в ячейку В12 формулу =AVERAGE(B2:B11). Результат можно видеть все на том
же рис. 3.44. Попытаемся внести некоторое разнообразие в этот скучный и быстро-
течный процесс. Усложнять жизнь будем путем создания функции. Создавать ее
можно по-разному. В частности, с помощью редактора VBA предлагается создать
новый модуль и ввести туда несколько строк программного кода. Окно редактора
VBA с этим кодом показано на рис. 3.45. Для облегчения анализа программного кода
функции он приведен отдельно в листинге 3.10.

Листинг 3.10. Программный код функции Avr_Tem()


Public Function Avr_Tem(A) As String
Dim t As Single
t = Application.Average(A)
Avr_Tem = "Average temperature is " + Str(t) Chr(176) "C"
End Function

В12

(
£ =AVERAGE(B2:B11)
A i В l С ' D
Day Temperature ;

29
|
27! ;
I
9
li
24 *
,

Ю< 26
leverage £ 27 .8J

Puc. 3.44. Данные о температуре

244 Часть I. Основы Excel


a Micmsnll Visual Basic - Mf Func2.»ls - [Modulel (Code)) глпга
£fe В* gew insert Ffflinat Qebug Run loots Add-lns Window tjWp - ff X

a - У i * * il Л ,« ' ••. > и ш Й • %l ел1 *S *' 8) i mi


(Geneiat) j£j jtT eclai aliens)

\ & VBAProject (My_Func2.xls) Public Function Avr Tem(A) As St cing


В i*3 Microsoft Excel Objects Dim t As Single
| в] Sheell (Sheetl) с = Application. Average (A)
; • (F) ShettZ (5h«t2) Avr Ten» = "Average temperature :з " + S t r ( t ) + Chr(176J + "C"
: в Sheets (Sheet3) End Function
1
Й THsWorkbook
Б Si Modules

Module 1 Module
Alphabet (categorized)

Рис. 3-45. Модуль с кодом функции Avr__Tem ()

Назначение у этой функции, которая называется AM r_Tem ( ) , достаточно простое:


вычисление средней температуры и возвращение соответ ствующего текстового сообще-
ния с данными об этой средней температуре. Аргумент у функции один (это А), тип ар-
гумента не указан, однако предполагается, что это будет; иапазон ячеек. Тип результата,
возвращаемого функцией, — строка, о чем свидетельсп ует инструкция As String в
конце заголовка функции. В теле самой функции объяв шется переменная t — число с
плавающей точкой. Значение этой переменной присваи зается с помощью инструкции
t = Application. Average (A). Интерес представляет правая часть этого выраже-
ния — там указана встроенная функция Excel вычислени я среднего значения (имеется в
виду AVERAGEO). Вызывается эта функция как метод п риложения Excel. Поэтому сна-
чала идет ключевое слово Application, далее точка, а: атем имя функции. Это, факти-
чески, и есть пример вызова встроенной функции Excel. ()стальные встроенные функции
Excel вызываются аналогично. Их использование бывает крайне продуктивно, поскольку
существенно экономит усилия по созданию программн >го кода, как, например, в этом
случае. Ведь для вычисления среднего значения как мин имум потребуется организовать
цикл. Если структура данных не очень сложна, в этом i :ет ничего страшного. Однако с
усложнением задачи вероятность ошибки быстро возрас гает, поэтому желательно везде,
где только это возможно, использовать встроенные среде гва Excel.
Следующей инструкцией в теле функции возвра цается результат. Это строка,
которая формируется из четырех фрагментов. Первы i — это текст "Average tem-
perature is " (что в переводе значит средняя тем lepamypaравна). Пробел меж-
ду последним словом в этой фразе и закрывающими савычками оставлен специаль-
но, чтобы текст не сливался с числом для среднего зн; чения температуры. Это число
(переменная t) преобразуется в текст с помощью фу «ции Str ( ) . Далее использо-
вана функция Chr ( ) , которая по заданному численш му аргументу возвращает сим-
вол с соответствующим номером в кодовой таблице. I i данном случае это 176-й сим-
вол, который соответствует символу градуса.

Глава 3. Программирование в Excel 245


Совет. Чтобы узнать код символа, можно поступить, например, так. Сначала сле-
дует ввести в ячейку этот символ, после чего в другую ячейку в качестве значения
ввести функцию CODEQ, аргументом которой указать ячейку с введенным сим-
волом. В результате выполнения функции CODEQ будет возвращен код данного
символа. Вообще же функция возвращает код первого символа ее текстового ар-
гумента.

Для объединения всех этих текстовых фрагментов использован оператор сложе-


ния (обычный плюс). Для строк операция сложения заключается в объединении их в
одну строку. Это и есть результат выполнения функции.
Осталось только проверить, как работает функция. Для этого в ячейку D1 вводим
формулу =Avr_Tem(B2:B11). Результат показан на рис. 3.46.

D1 =Avr_Tem(B2:B1l)
D
Temperature rtperature is 27.8°С
..... l]
' ............. 29
28
зо
4 31'
5: 29
6j 27
7 28
S 2S
91 24
i1 10 25
: j ftve 27.8
; i.
Рис. 3.46. Результат вызова созданной функции Avr_Tem ()

Безусловно, это более чем простой пример. Однако он дает некоторое представ-
ление о возможностях использования VBA при создании и более сложных докумен-
тов. Еще одно, очень мощное средство, предоставляемое пользователю в рамках
языка VBA, описывается в следующем разделе. Там речь пойдет о создании форм.

Создание и работа с формами


В классическом своем понимании программа является набором инструкций, кото-
рые должны быть последовательно, одна за другой, выполнены. Однако при создании
программ для Windows приходится сталкиваться с той проблемой, что сам процесс
выполнения программы существенно зависит от действий пользователя. В качестве
примера можно привести работу с диалоговым окном: в зависимости от того, какая
кнопка нажата или какой установлен переключатель, процесс может развиваться са-
мым различным образом (иногда, к сожалению, непредсказуемым). С другой стороны,
использование таких диалоговых окон (форм, в более широком понимании) является
достаточно мощным инструментом, поскольку позволяет наиболее эффективно орга-
низовывать процесс обработки данных, и не только. Именно о создании форм пользо-
вателя с помощью средств языка VBA и пойдет речь в данном разделе.

246 Часть I. Основы Excel


Создание формы
Для начала рассмотрим пример создания исключительно простой формы. Затем,
постепенно, эта форма будет усложняться.
В первую очередь необходимо открыть редактор VBA. После этого в окне редак-
тора следует выбрать команду Insert1^UserForm (Вставка^Форма пользователя).
В результате в текущий проект будет вставлена новая форма пользователя
(появится панель элементов управления формы Toolbox), а окно редактора VBA
примет вид, представленный на рис. 3.47.
У этой формы есть свойства. Эти свойства представлены в окне Properties
(Свойства). На рис. 3.48 окно проекта Project свернуто, поэтому в левой части окна
редактора окно свойств формы видно практически полностью. -
Замечание. Упомянутые названия для окон — это видоизмененные названия ок-
на свойств, проекта и т.п. При работе с конкретными объектами их названия не-
сколько меняются.
Чтобы в окне свойств отображались свойства именно формы, эту форму в правой
части окна редактора нужно выделить. В данном случае это не актуально, поскольку
форма всего одна и на ней нет еще никаких элементов. Однако в общем случае
принцип такой: чтобы в окне свойств отображались свойства какого-то объекта или
элемента, следует этот объект или элемент выделить мышью в окне редактора.

Eg Hte £ей. ^ew Insert Format QebuQ R«ji

> И Л'-Ж

VBAprojecneoaklj
B- ^$ Mcrosoft Excel Objects
•Ц Sheet! (Sheetl)
IT|5heet2<Sheet2)
5he«3 (Sheets)
TrfcWorkbook
3 'Si Forms

userFormi
JackColor 0 SeooboooFe.
iorderCcJor ««300000126.
PorderStyte 0 • fmBorderSt
UserForml

=ont
=oreCoior
Height
HebContextlD

Puc. 3.47. Окно редактора VBA с новой формой

Глава 3. Программирование в Excel 247


'M Microsoft Visual Basic - Bookl - [UlerFoml srForn)
eebog Run loote fldd-Im WM»¥ ,Цф'

^ > и • tf •.*}[? W ?•" S •

^,t~ ~ .'mCydeANForms
DraneufFer -32000
Enabled ilrue ........
Font ЛаЬота
=oreColor Щ SH80000012&
height .180. I_
:
telpContext 0
'eepScrollBarsVisrrble 3 - fmScroKarsBot
Left 0
Mouselcon (Wore)
Mc<j5*PoM« 0 • fmMousePointeri
Ийигё " " . . . . '. '(None)
PictureAlignment 2 • fmPictureAli
D
icture5i2eMode 0 - fmPictureSeeMo '
PictureTifing Fate*
RighlToleft_
ScrolBars - fm5crol6arsNoni
ScrdHeight
5crol.eft
ScrolTop

Рис. 3.48. Изменение свойств формы

Возвращаясь к форме можно заметить, что в строке заголовка (при создании фор-
мы) отображено UserFormI. Это заголовок формы, который по умолчанию совпадает с
ее названием. Изменить заголовок можно, изменив значение свойства Caption фор-
мы. Для этого в списке свойств (левый столбец окна свойств Properties) следует найти
значение Caption (это свойство). Его значение отображено напротив, в правом столбце.
Вместо UserFormI следует ввести My First Form (или что-нибудь другое). Резуль-
тат можно видеть на рис. 3.48 (здесь видно, как изменился заголовок формы).
Внимание! Не следует путать имя формы с заголовком формы. Имя формы опре-
деляется ее свойством Name и служит для идентификации объекта. Заголовок
определяется свойством Caption и отображается (для формы) в строке назва-
ния формы.
Кроме этого, разумно уменьшить размеры формы. Это делается совсем просто:
курсор мыши помещается на нижний правый угол формы, после чего ее размеры
приводятся к приемлемому значению — т.е. как и при изменении размеров обычных
окон (рис. 3.49).
Замечание. В процессе изменения размеров формы можно заметить, что автома-
тически изменяются значения ее свойств Height и Width. Эти свойства задают,
соответственно, высоту и ширину формы (в пунктах, один пункт — 1/72 дюйма).
Так что изменять размер формы можно не только с помощью мыши, но и просто
задав новые значения для этих свойств.

248 Часть I. Основы Excel


\'jt MICIOSO» Vnual Basic - Book.1 [UterForail
Ш Irwert Fgfroat Qetug R,un ;

a - \* • ; ;"- t tie

•Forml UserForm
|C*eeort«l|
UserForml '
О &H8000000F& ~
• wsoooooia. 1
:
0 • fmBorderStyteNtl)
My first Fotm
O-fmCydeAIFormsf
^32000
:
True
Tahoma
• UHSOOOOOl» I
:
97.5

:
! 3-fr
0
(None) ~ ~ I
0 • fmMousePointerl:; Cortd. I
(None)
2 - fmPictureAlignrm^ ; Г||(*А'«Ы a
0 - fmPictureSzeMo
False
False
0 - FmScroJbarsNoni :H

":b

il

PMC. 3.49. Изменение размеров формы


Далее на форме желательно разместить какие-нибудь элементы управления.
Ведь функциональность формы во многом определяется именно тем, какие на ней
есть элементы. Начнем с самого, пожалуй, простого — метки. Метки, как правило,
служат для отображения в форме текста. Чтобы разместить на форме метку, следует
на панели элементов управления Toolbox щелкнуть мышью на пиктограмме с изо-
бражением большой литеры А (рис. 3.50).
Совет. Обычно панель элементов управления формы отображается автоматически
при вставке новой формы. Однако если в силу каких-то причин эта панель пропала
из видимости, для ее отображения достаточно выбрать команду View^Toolbox
(Вид1^ Элементы управления) в окне редактора VBA. Другой вариант — щелкнуть
на соответствующей кнопке стандартной панели инструментов.

Рис. 3.50. Выбор метки на панели элементов


управления формы

После щелчка на этой кнопке она отображается на панели Toolbox нажатой и это
значит, что в форме можно разместить метку. Для этого следует мышью выделить
область размещения метки, указав ее расположение и размер (т.е. нажать левую
кнопку мыши и, удерживая ее нажатой, выделить требуемую область в форме).
Процесс размещения метки в форме показан на рис. 3.51.
После того как метка вставлена, форма примет вид, показанный на рис. 3.52.

Глава 3. Программирование в Excel 249


i Microsoft Visual Basic - Bookl - [OteiFoiml (UseiF
Fte £dit J0»« insert Format gebug g>jn loot

С II M$g

jUserForml
D etHSOOOOOOF&
• &H8000001Z&
0 • fmBorderStyteNc
My First Form
Cycle 0 - fmCydeAIIForms
>awBuffer I32000
:nSfecT ;True
=ont hfahonM
:
oreCpfqr
Height :97.S
HdpContextlD ;p
KeepScrollBarsVisible;3 - l-'mScroJiarsBotK
Left _" jp
l^ouselcon (None)
MousePpinter iO - fmMousePointerl
Picture ;(None)
." L,_.. ... —I

Puc. 3.51. Размещение метки в форме

Рис. 3.52. Метка размещена в форме


По умолчанию в поле метки отображается текст Label 1. Это не что иное, как зна-
чение, помещенное в ее свойство Caption, которое исходно совпадает с именем это-
го объекта (свойство Name).
Замечание. Свойства метки (Caption и Name) никакого отношения к упоми-
навшимся выше одноименным свойствам формы не имеют. Просто свойства
имеют одинаковые названия, да и характеристики они определяют идентичные,
только в случае формы — для формы, а в случае метки — для метки. Вообще же
следует отметить, что очень многие объекты имеют одинаковые или похожие
свойства. И это удобно.

250 Часть I. Основы Excel


Как уже отмечалось, главная задача метки — отображение текста, помещенного в
ее свойство Caption. Попробуем изменить этот текст. Для этого в окне свойств
найдем соответствующую строку и справа введем требуемое значение — заголовок
формы This is my first form (до этого там было Label"!) (рис. 3.53).
Внимание! При этом в форме должна быть выделена именно метка, поскольку
изменяются свойства метки, а не самой формы! Если с выделением нужного объ-
екта (которое выполняется простым щелчком на нем левой кнопкой мыши) есть
какие-то проблемы, можно поступить иначе. Достаточно раскрыть список объек-
тов, который размещен сразу под строкой заголовка окна свойств Properties, и
выбрать нужный объект (в данном случае Labell).
Однако, как несложно заметить, текст выглядит несколько отрешенно, как будто бы
он для этой формы "неродной". Исправить положение дел можно путем изменения
шрифта. Для этого следует в окне свойств найти свойство Font и щелкнуть на кнопке
с тремя точками, которая расположена справа от этого свойства (см. рис. 3.53). В ре-
зультате откроется диалоговое окно настройки шрифта, в котором следует выбрать
жирный шрифт 14 размера (тип шрифта Arial), — метка изменится просто до неузна-
ваемости (рис. 3.54).
На этом же рис. 3.54 показано, как на панели элементов управления Toolbox вы-
бирается кнопка (пиктограмма с изображением прямоугольника), которая затем
размещается в форме, сразу под меткой. Принцип вынесения кнопки на форму такой
же, как и для метки (рис. 3.55).
Как и прежде, в первую очередь изменяем заголовок кнопки (свойство Caption).
По умолчанию оно имеет значение CormandButtonl (рис. 3.56).
Изменяем значение этого свойства на ОК, а в качестве шрифта (свойство Font)
для его отображения задаем полужирный шрифт Times New Roman размера 8 пунк-
тов. Шрифт устанавливается точно так же, как и для метки. Результат с благогове-
нием можно наблюдать на рис. 3.57.
! 'М Microsoft Visual Basic - ВооМ - [UseForml (UseiFormll

Д Bte Bft Sew Insert Format Bsbug B.un Ipote fidd-Ins да*» Ц* ' ''l^L^E—JOr * X

IB 3 - й ' ? »fi *•:«••; ?> U .. • и ' *r з w ч» у .. .• -.> ,.<. ..':• :


[Predates • Labell

JLabell Label
Щ

_»]
"•™"™™~"""^""™"^™^^^^^e~~ii

liiiiiii
fttohabeft |cateeorized|
(Name) Labell *|1
Accelerator :
; AutoSize Wse
j SackColw Щ] ЬН8ПОООООР8<

i BorderColoc
BorderStyie
• &H80000006&
0 - fmBorderStyteNone V
^
;? Caption This is my first form
ContrdTipText
: Enabled True

H =oreCotor • &HS0000012& ^
: Height ;i8
! HdpContexttD 0
f'Left 74~ "_"
i Mouselcon (None)
, MousePointer 0 - fmMousePointerDef au ^ 1 j

Puc. 3.53. Изменение заголовка метки

Глава 3. Программирование в Excel 251


Microsoft Visual Bane - Bookl - [UserForail (UserF
EJe £dit £iew [nsert Fgrmat Debug gun

I u3- В М -"- -•", > ц '•

Alphabetic J Categorized J • ::xThlslsmyflrstform


}°! (Name) ILJserForml л
;;BackColor Q &H800000GT& ^
BorderCoior • &H80000012& " "
BorderStyle ~ ~_ 0 - frnBorderStyleNc
i Caption My First Form .-. . ii ... /. ... _ - - . - . , i
Cycle 0 - fmCycleAIIForms • \
DrawBuffer 32000
Enabled True
Control! |
, ForeColor • №800000128. :
i Height """(97.5 ц' А «ы я т •
jiHelpContextID ;0
;
il KeepScrolBarsVisible 3 • fmScrollBarsBotf
Hleft 0
Mouselcon (None)
! Г5 | CornmandButtonl
Й MousePointer :0 - fmMousePointerl ; '•
•.
• Picture '(None) „j
;

Рис. 3.54. Выбор кнопки на панели элементов управления формы

Fee gat Wew insert F^mat ОеЫд Rut Tools Add-Ins

: This Is my
'Name) User Form!
BacKolor В ьнзоооорога
BorderColor • &H80C00012&
BorderStyle :0-fmBorder5tyleNc
Caption My First Form
Cycle 0 • fmCycleAIIForms
DrawBuffer 132000
Enabled iTrue
Tahoma
ForeColor &Ш0000012&
Height 97.5
HelpContextID 0
KeepScroJIBarsVisible 3 - fmScrollBarsBotl-
,eft 0
Mouselcon (None)
MousePointer p - fmMousePointerl
Picture (None)

Рис. 3.55. Размещение кнопки в форме

252 Часть I. Основы Excel


Microsoft Visual Basic - Bookl - [UseiFwml (UterF

Fte £dt View Insert Fa-mat Debug £un ]

jCommandButtonl CommandButton

Alphabetic J Categorized This Is my first form :: • :


CommandButtonl j<
srator J^""^___] ~
CommancBUttonl

П iiH8000000F& '
:1 - fmBackStyleGpaqu'* ^
CommandButtonl

False
iselcon (None)

Puc. 3.56. Кнопка размещена в форме

Microsoft Visual Bask - Bookl - IU<eiFo«1 Ш

fjte £dft Jflew gisfflt f^m^ B?^^ BM^

> it Я
x
!

This
'Name) CommandButtonl ^
Accelerator
ftuloSee False
3ackColor П weooooooFe.
Back5tyle 1 - FmBackStyleOpaqui .
Cancel False
Caption lot;
ControlTlpText 1Г
Default [False
CortroU)
Enabled ;True
BBH.1 1 Times New Roman '«. j"^ АЛaH
=oreColor • &H80000012&
Height he
HelpContextlD ;0
-eft"
Cocked
•51
False

:
Houselcon (None) ж

PMC. 3.57. Изменение названия кнопки и шрифта

Глава 3. Программирование в Excel 253


Дальше начинается самое интересное — создание программного кода для обработки
событий. Последних, правда, будет совсем немного. В первую очередь разумно разо-
браться с кнопкой. Если кнопку размещают в форме, значит, зачем-то это надо. Другими
словами, раз кнопка есть, то при щелчке на этой кнопке что-то должно происходить.
А что может быть проще, чем закрытие формы? Именно этот процесс и запрограммируем.
В общем случае ситуация выглядит так: при щелчке на кнопке (это событие) вы-
полняется какая-то процедура (это обработчик события). Что именно выполняет про-
цедура-обработчик события, зависит от того программного кода, который составит
пользователь (в данном случае это будет закрытие формы). Для того чтобы процедура
исполнялась именно в результате события (а событием может быть не только щелчок
мышью на кнопке), процедура должна иметь специальное название. Однако если речь
идет о щелчке, то достаточно в процессе редактирования дважды щелкнуть мышью на
данной кнопке, как автоматически откроется редактор кода с готовыми инструкциями
начала и окончания процедуры-обработчика события "щелчок на кнопке" (рис. 3.58).
Для этой процедуры (она называется CorranandButtonl_Click()) нужно написать
программный код.
Замечание. Несложно догадаться, что название процедуры-обработчика события
получается объединением, через символ подчеркивания, названия кнопки
(CommandButtonl) и события, которому соответствует данный обработчик (это
щелчок на кнопке, Click). Полный список событий можно увидеть, если раскрыть
список, размещенный в правом верхнем углу редактора кода (см. рис. 3.58). Что ка-
сается непосредственно объявления процедуры, то главным отличием, по сравне-
нию с объявлением функции, является использование вместо ключевого слова
Function ключевого слова Sub.

Miciototl Visual Basic - Bookl • [UseiFoiml (Code)]

Edit Sew Jisert Fgrmat Debug Bun loots flck

H * 4' fe#* ' - t » m&M't


L£J j CommandButtonl

Private Sub ConmiandBuctonl Click()

tftme) jCcmmandButtonl « End Sub


Accelerator
IF*»
Q &H80COOOOF8.
SackStyte __ jl-fmiackStyHeOpaqui
Сапсг|
,False
Caption -OK
ControlTipText I
<aJt 'False
True
Times New Roman
:
oreColor В &Н800Э0012&
18

±r
Рис. 3.58. Программирование обработчика события для кнопки

254 Часть I. Основы Excel


Как уже неоднократно отмечалось, в результате щелчка на кнопке форма должна
закрываться. Для этого нужно вызвать метод Hide формы. Делается это с помощью
инструкции UserForml. Hide. Причем при вводе этого кода, после того как введено
название формы и поставлена точка, появится список с методами и свойствами фор-
мы, среди которых достаточно выбрать значение Hide (а можно просто ввести с кла-
виатуры название этого метода) (рис. 3.59).

Private Sufci COOTnandButtonl_ClicfcO


В ® VBAProject(Bookl) UserForml.|
H €S Mcrosoft Excel Objects End Sub jgi Enabled
| (p Sheetl (Sheetl) E£ Font
!'-(B Sheets (SheelZ) 1
Й ForeColor
•J 5heet3 (Sheets) И? Height
45 THsWorkbook HelpContextID
H <Я Forms
13 UserForal
*l
insldeHelght

-i
.J

Times New Roman _„.] ^ i


'

P«c. 3.55. ВвоЭ программного кода

Таким образом, для обработки события (т.е. щелчка на кнопке) используется


процедура, программный код которой представлен в листинге 3.11.

: Листинг 3.11. Код обработчика события


Private Sub ComrnandButtonl_Click()
UserForml.Hide
End Sub

Однако одного этого обработчика для использования формы еще недостаточно,


поскольку для того, чтобы форму закрыть, ее сначала нужно, как минимум, открыть.
А на этот случай процедура пока не создана. Вывод напрашивается сам собой —
такую процедуру нужно создать!

( Совет. На данном этапе разумно будет сохранить документ, однако это не прин-
ципиально.
Создавать процедуру будем в новом модуле, для чего в редакторе VBA выбираем ко-
манду Insert^Module (Вставка^Модуль). Далее выбираем команду Insert^Procedure
(Вставка1* Процедура). В открывшемся диалоговом окне Add Procedure (Добавить про-
цедуру) в поле Name (Название) указываем имя создаваемой процедуры (в данном слу-
чае это будет ShowMyForm). Переключатель Туре (Тип) устанавливается в положение

Глава 3. Программирование в Excel 255


Sub (что соответствует процедуре), а переключатель Scope (Доступность) — в положе-
ние Public (Глобальная) (рис. 3.60).
В результате получаем базовый шаблон программного кода для реализации про-
цедуры (рис. 3.61).
Для того чтобы в результате выполнения процедуры отображалась созданная
ранее форма, достаточно ввести в ее тело единственную инструкцию UserForml. Show
(рис. 3.62).

I :• .,H vnv.- [МЯЛ fO'

, X]
-JJ j(General| _vj |<Declai«ions|

Л
(Ц Sheetl (Sheetl) '
(Qshe<:t2(Sheet2) H Add Htoceduie ВИ
•J SheeO (SheeU)
Q ThisWorkbook Йагое; jShowMyForm Qg I
В- forms
ЁЭ UserForml | -Type
Cancel 1
В fS Modules
Г.'ВяеИоп
j: : С froperty

Scope

f Pu»
f~ Private

Г" № Locel veriabtes as Statics


1
1 Ьи- "

Pwc. J.60. Создание процедуры

Microsoft Visual Basic - MyFonub - [Module! (C 1 J


E* view insert format Bebug gun в X

jrj JShowMyform

Public Sub ShowMyForm()


•] Sheet2 (Sheets)
i в Sheets (Sheets) End Sub
;
%J ThisWorkbook
В gi Forms
S UserForml
EKt! Modules

1 Module 1

с. J.61 Шаблон-заготовка процедуры

256 Часть I. Основы Excel


Miciotoft Visual Basic - MjiFoim.nl: - Morlulel И
Hte SsSt Sew Insert Format Qebug gun

тз-в -n KI . , „ .
т | ,| ShowMyfoi m

B] Sheetl (Sheell) Public Sub ShowMyFormO


| ST) Shest2 (Sheets) UserForml.Show
!•• (II Sheets (Sheets) End Sub
45 ThisWorkbook
Й--§| Forms
i 0B UserForml
В-gj Modules

|Modulel Module
Alphabetic I categorized

Puc. 3.62. Программный код процедуры отображения формы

В листинге 3.12 приведен программный код этой процедуры.

| Листинг 3.12. Код процедуры отображения формы


Public Sub ShowMyFormO
UserForml.Show
End Sub

В этой процедуре для отображения формы вызывается ее метод Show.


Замечание. Перед отображением формы ее нужно предварительно загрузить в
память. Если этого не сделать, то при вызове метода Show, перед отображением
формы, загрузка ее в память осуществляется автоматически. Кстати, методом
Hide форма из памяти не выгружается, а только убирается с экрана.
Теперь осталось только определить способ запуска процедуры отображения формы
ShowMyFormO на исполнение. Делать это можно разными способами, но в данном
случае для запуска процедуры создадим специальную кнопку на панели инструментов.
Для этой цели щелкнем правой кнопкой мыши на панели инструментов и из раскрыв-
шегося контекстного меню выберем команду настройки панелей инструментов
Customize. В открывшемся диалоговом окне Customize на вкладке Commands
(Команды) в списке категорий Categories выбираем значение Macros (Макросы),
после чего в правой части диалогового окна в списке Commands выбираем значение
Custom Button (Специальная кнопка) и перетаскиваем его на панель инструментов
(в рассматриваемом примере это стандартная панель), как показано на рис. 3.63.

( Замечание. Что касается пиктограммы кнопки, то ее, разумеется, можно изме-


нить. Как это делается, описывалось в первой главе.
Далее для этой кнопки следует указать макрос, который будет выполняться при
щелчке на ней.

Глава 3. Программирование в Excel 257


Toofears 'Comma-ids I QpSons j
Open -л workbook
Toaddacommandloatoofcar: select ace My_Func2.xls
command out of thfe: datog box to a toofca
My _Sne.xls
My_Func.xls
Custom Menu Km My_Func.xla
Custom Button Qgr More wordbooks..,

Web

Control Toofcox
New from existing workbook
Choose workbook...
New from template
General Templates...
i|3 Templates on my Web Sites
<£] Templates on Microsoft.corn

ftdd Web Folder...


l?j Microsoft Excel Help
[v-1 Show at startup

' ' MJC

Рис. 3.63. Размещение новой кнопки на панели инструментов

( Замечание. Макрос, по сути, — это та же процедура, но только без параметров


(как в данном случае). Этим и воспользуемся далее.
На размещенной на панели инструментов кнопке нужно щелкнуть правой кноп-
кой мыши, и в раскрывшемся контекстном меню выбрать команду Assign Macro
(Назначить макрос) (рис. 3.64).
В результате открывается диалоговое окно Assign Macro (Назначить макрос) — из спи-
ска доступных макросов выбираем нужный. В данном случае макрос только один. Это, соб-
ственно говоря, не что иное, как созданная ранее процедура ShowMyForm (рис. 3.65).
После щелчка на кнопке ОК дело, фактически, сделано. Осталось проверить ре-
зультаты работы. Для этого возвращаемся непосредственно в окно приложения
Excel и щелкаем на созданной кнопке. В результате появляется диалоговое окно
My First FoVm (рис. 3.66).
Если щелкнуть на кнопке ОК этого окна, форма закроется. Таким образом, кноп-
ка успешно выполняет свою нелегкую задачу по сокрытию формы, и это внушает
некоторый оптимизм. Взяв этот оптимизм на вооружение, попытаемся "научить"
созданную форму чему-нибудь более полезному.

258 Часть I. Основы Excel


My_Sine.xts
My_Func.xls
My.Func.xle
^ More workbooks

Choose workbook,.,

bfneral Templates...
Templates on my Web Sites.
TemplatesonMicrosoft.com

Add Web Folder...


MKfosoft Excel Help
v Show at startup

Puc. 3.64. Настройка кнопки

To ado a command to a todbari setect a category агю drag the


command out of (his dialog box to a toofcar.
Cateopries: Conenands:

Pwc. 3.65. Выбор макроса для кнопки

Глава 3. Программирование в Excel 259


Ecfit Sew Iroert Fsrmet loofc [Jata J£Sr*tow ttelp

В "Si. a a 5> * * Eft -


-to - n / ; Ш- 9 * •
fi

Open a workbook
My_Func2.xl!
My_Sine.xls
My_Func.Kli

B ; Mor
New
This Is my First form D Blink Workbook
New from existing workbook
Choose workbook. . .
i New from template
!• Щ] General Templatei...
Templates опту SVebSftes.
Templates on MoiKoft.com

C3 ftdd Web Folder...


05 Microsoft Excel Help
>, Show at startup

Рмс. З.бб. Отображение формы в окне Excel

Переопределение элементов формы


Совершенно очевидно, что использование форм оправдывает себя только в том
случае, если позволяет упростить процесс обработки данных. Другими словами, в
рамках вызова формы должны выполняться какие-то полезные, конструктивные
действия. Рассмотрим простенький пример, который раскрывает некоторые особен-
ности работы с языком VBA в процессе создания и редактирования уже существую-
щих форм. Если точнее, то поэтапно будем превращать созданный ранее проект в
нечто более осмысленное, нежели простое отображение формы и закрытие ее после
щелчка на единственной кнопке. Первым шагом на этом тернистом пути станет оп-
ределение еще одной формы, которая будет открываться по закрытию первой, уже
созданной. Для этого придется создать упомянутую вторую форму и несколько пе-
реопределить уже существующий программный код для обработчика события щелч-
ка на кнопке первой формы.
Прежде всего создадим новую форму. Для этого выберем в редакторе VBA ко-
манду Insert^UserForm (Вставка1^Форма пользователя) и в результате получим то,
что показано на рис. 3.67.

260 Часть I. Основы Excel


•4 9= В* Insert Fsyroat Qi&bug. gun ',
• •- . • •' • • • > к я

ПВ p
& VBAProjecl (MyForm.Kls)
Eh ЙУ Microsoft Excel Objects
(] Sheetl (Sheet!)
i . (B Sheets (5heet2)
' . -Q Sheets (Sheets)
!
I -в TheWortoook
Ы- -*й( Forms
:
, 9 UserFOfmi

И £j MocUes

JserForm2
BackCokjr П ЬНвООООООРв.
BOfderCotor • UH30000012S
•derStyte' 0 - fmeorderStyteNone
Caption User For m2
Cycle 0 • fmCydeAIIFprms
•awftjffer 132000
Enabled |True
For* Tahoma
weColor • 8«80000012&
*j* ;180
lelpContextlD ;o
eepScrcJBarsVisibte : 3 - fmScrolearsBoth

Puc. 3.67. Новая форма в проекте

Для этой новой формы (ее имя UserForm2) в качестве заголовка указываем зна-
чение My Options. Размеры формы устанавливаются следующие: высота (значение
свойства Height) 250 и ширина (значение свойства Width) 370. Однако эти значе-
ния являются, так сказать, рекомендуемыми, но не обязательными. Помимо этого
следует указать параметры шрифта (тип, размер и т.п.). Если шрифт задается для
формы, то он автоматически будет использоваться в качестве основного шрифта для
размещенных в форме элементов.

Совет. Шрифт можно устанавливать для каждого элемента в отдельности, однако


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

Для настройки шрифта следует найти в списке свойств формы в окне свойств
Properties свойство Font. В данном случае используется полужирный шрифт типа
Arial размера 10. После выполнения настроек форма будет иметь вид, представлен-
ный на рис. 3.68.
Далее в этой форме разместим рамку. На панели элементов управления формы
выбираем элемент Frame (рис. 3.69). Особой функциональной нагрузки рамка не
несет (по крайней мере на данном этапе), однако с ее помощью легче структуриро-
вать содержимое формы.

Глава 3. Программирование в Excel 261


Miciosolt Visual Basic - МуГопп ris - [UsefFoim2 (U.eiForrnll
E* Sew Insert

^ VBAProject (MyForm.xls)
& ^Э Microsoft Excel Objects

iQ5heec2(5heet2)
Sheets (Sheets)
%] TtisWofftook

Рис. 3.68. Настройка параметров формы

Рис. 3.69. Выбор элемента Frame на панели Toolbox

После выбора соответствующего элемента, в форме следует выделить область,


где будет размещена рамка. Она занимает примерно четвертую часть формы и рас-
полагается в ее левом верхнем углу (рис. 3.70).
После того как рамка размещена, окно с формой будет иметь вид, представлен-
ный на рис. 3.71.
В первую очередь следует изменить заголовок рамки (свойство Caption). В ка-
честве значения этого свойства устанавливаем название Data. В области, ограни-
ченной рамкой, будут вводиться данные, которые затем будут присваиваться ячейке,
которая также должна задаваться в этой области формы (имеется в виду определе-
ние адреса ячейки). Данные (значение и адрес ячейки) нужно куда-то вводить. Это
удобно делать посредством текстового поля, которому соответствует элемент
TextBox на панели управления элементами Toolbox (рис. 3.72).

262 Часть I. Основы Excel


Mrciotoft Visual Basic - МуГопг, ids • (UseiFomZ (UmFom

Efa 6* Sew Jrsert Farm*, Bsbug uun IP*


II и

ia a
Й VBAProject (MyFotm.Kls)
S" f^f Microsoft Excel Objects
1
, (Й Sheetl (Sheetl)
i : ~в 5heet2 (5heet2)
1 № Sheets (Sheets)
i ' -S ThisWorkbook
Srj • ei Fornts
Я UserForml
: -m
•Ж- О Modules
Jl

UserFormZ UserForm

| categorized)
UserFormZ
'Ш &H8pooqpOf &
• бнеоооос1г&
.Q • fmBorderStyteNone
My Options
0 - fmCydeAllForms _,
;
32000
1
iTnie- j
ЩI

JKeepScrolBarsVislbte 3 - fmScroBBarsSoth
Left 0
ii i

Puc. 5.70. Размещение рамки в форме

aur> IOSAS дай?» as™&w

... _.

d Й VBAProjeit (Myf orm.xls)


В Q Microsoft Excel Obiects '
i \ в] Sheet! (Sheet!)

i Л Sheets (Sheets)
, fi ThisWorkbook
El- ^s Forms
•• Э UserForml

;»: IV) Modules

Frame 1 Frame

• ewoooooi»
0 - fmBorderStyteNone
Framel XI

•« A <AI а §я
F7 «f 'r!-Q-J
Height
HelpContextID
...tlp2
!0
-^ _j s *) a
:
Keeps croHBarsVisible 3 - ft .a . . •
Left 6

Puc. 3.71. Форма с рамкой

Глава 3. Программирование в Excel 263


Рис. 3.72. Выбор элемента TextBox

fjte E* £iew Insert Cebug gun loofs fidd-Ira £Jeip

Г4$ VBAProJecffMyForm.*!*)
;~i *,1 Microsoft Excel Objects
И] Sheetl (Sheet 1)
- И) Shert2 (SheetZ)
g Sheet3 (Sheets)
TheWorkbock
В ^ Forms
• -9 UserForml

Alphabetic | Categorised J
amel
&H3000000F&
&Н1ГО000012&
0-fmEttrder5tyleNone
Data

0 - fmCycleAlFormj ' Cnmrah |


True
Aria! •t A ' r t B i
• &н8осяоо1 га P a ft Q .
102
•ContextlD 0
arsVi«lble 3 - fmScrollBarsBoth

Рис. 3.73. Размещение в форме текстового поля

Соответствующее текстовое поле размещается в форме (рис. 3.73). Форму с тек-


стовым полем можно видеть на рис. 3.74.
Это поле будет использоваться для ввода значения, помещаемого в ячейку.
Кроме того, понадобится еще одно поле, в которое будет вводиться адрес ячейки
(или ячеек). Можно повторить процедуру размещения в форме текстового поля, а
можно скопировать первое поле в буфер обмена и затем выполнить вставку. В фор-
му в результате будет скопировано еще одно поле, параметры которого совпадают с
исходным (но не все — например, названия у каждого поля уникальны). Эти поля
можно перемещать по форме так, чтобы добиться желаемого визуального эффекта.
На рис. 3.75 представлена форма с двумя текстовыми полями.
Для того чтобы было понятно, что куда вводить, возле полей, слева, размещаются
две метки, названия которых задаются так: Value для метки, соответствующей пер-
вому полю для ввода значения ячейки, и Cell(s) для метки у второго поля, где будет
вводиться адрес ячейки. Ситуация с размещением и настройкой меток проиллюст-
рирована на рис. 3.76.

264 Часть I. Основы Excel


Micmtoft Visual Ваш - MyForm.xls - |UseiForn2 (UiciForni)!

fte E* Be» Insert Fonw* Beoug Bun lods fekHns uindow tjeb

'т- 3' *-ад f?. j?i:« r> : > i, mil ssis1 w[#]: oy;
п г- [51
±i-^S VBAProject (MyForm.xls)
b C> Microsoft Excd Objects
: •] Sheet! (Sbeetl)
i : BQ 5heet2 (Sheet?)
i № Sheets (5beet3)
I 8 ThSWorkbook
И Si Forms
Я UserForml
:
'•- Я U»Fbrtn2
И £^^toddes

|TextBoxl
AutoSze False
AutoTab False
AutoWordSeiect True
BackColc» D Ш80000005&
BackStyle 1 - fmBackStyleOpaque
BorderColor • 8JH80CI000068. Cortrak j
BorderStyle 0 - frrfiorderStyleNone
ControlSource Ч АаЫЗ!
ControlTipText !У ff ft Q

Enabled
p - frrOragBeriaviorDisable
True i
: ^ _j s *i i
LnterFleldBehavlor 0 - fmEnterFteidBehaviorS '' i 'Я
EnterKeyBehavior False

Рис. 3.74. Форма с текстовым полем

itoft Visual Basic - МуГсмт xl. [Us«Fotn2 (llteiFinm))

| fjfe £« tfen insert Format Cebua Bun lods udd-lns ЦФ

$& VBAProject (MyForm.xls)


В •£* Microsoft Excel Objects
i : -ЩЗ Sheetl (Sheetl)
i : в 5heet2 (5heet2)
:
'- Ж Sheets (Sheets)
. ' б ThisWofkbook
В <*( Forms
г 3 UserForml
ES UserFomtf
it! GJ Modules

TcKtBo»2 TextBox

Alphabetic | categorized |
TextBox2
AutoSize False
AutoTab False
AutoWordSetect True
BackColor 0 bH80000005&
Backstyle 1 • fmBackStyleOpaque
BorderCdor • UH80000006& Coribote |
Border Style 0 • fmBorderStyleNone
ControlSource
\\ A <
ControlTipText
DragBehavior 0 - fmDraoBehaviorDisaNf
Enabled Jrue
EnterFleldBehavio 0 - frnEnterFieldBehaviorS ra
EnterKeyBehavtor False

Рис. 3.75. Форма с двумя текстовыми полями

Глава 3. Программирование в Excel 265


osofl Visual Basic - MvFom.A • [U*eiFmin2 {UjerFotmH

Be £* 4dd-Ins \Jilndow

3 • В:
•;
Sg. VBAProject (MyForm.Kls)
-i '--i Microsoft Excel Objects
I в Sheetl (Sheetl)
, (Q Sheet2 (5heet2)
i И SheeO (Sheets)
, -45 ThiisWotkbook
В & Forms
13 UserForml

Й Uj ModJes

(Narne) lLabe!2
Accejerator ' i
AutoSze 'False
BackColor П &H8000o6SFJi7 '
BackStyle 1 - fmBackStyleOpaque
BorderColor • &H60000006&
BorderStyte 0 - FmBorderStyleNone
ВИИ ,:=»«•; ' __
ControlTipText
Tr
inabled : >^
Font iAriaj
ForeCote • №800000128.
hi 18
HdpContextlp ;0 •'•

Puc. 3.76. Добавление меток возле полей

Кроме рамки с двумя текстовыми полями, разместим в форме две кнопки. Одна
будет нужна для инициализации процесса внесения изменений в рабочий лист таб-
лицы (т.е. для присваивания значения указанной ячейке), а вторая — на тот случай,
если пользователь решит выполненные им изменения не вносить. Кнопки размеща-
ются в левой нижней части формы, как показано на рис. 3.77.
Первая кнопка получает название ОК, а вторая (кнопка отмены) — название
Cancel. На этом первый этап создания формы завершается. Далее следует ввести и от-
редактировать программный код, для того чтобы данную форму можно было исполь-
зовать. Начнем с самого простого задания: составления программного кода для обра-
ботчика события, связанного со щелчком на кнопке отмены Cancel. Поскольку данное
событие для кнопки — это событие по умолчанию, то при двойном щелчке на кнопке в
процессе редактирования формы открывается окно редактора программного кода с
шаблоном процедуры CommandButton2_Click(), которая является обработчиком
события для щелчка на кнопке. Между инструкциями начала и окончания процедуры
следует ввести всего одну инструкцию UserForm2 . Hide (рис. 3.78), в результате вы-
полнения которой форма UserForm2 будет закрыта (но из памяти не выгружена).
Полный программный код этого обработчика события представлен в листинге 3.13.

266 Часть I. Основы Excel


VBAPtoject (MyForrn.xls)
& Microsoft Excel Objects
: Ю Sheetl (Sheetl)

•ВЦ Shset2 (5heet2)

ThisWorkbook
Forms
UserForml
Я UsecFerm2
£i Modules

1 - fmeackStyteOpaque
Fake
Cancel

Puc. 3.77. Размещение кнопок в форме

>м Miciotolt Visual Ba<ic • Mrfomi.nl. - [UieiFonnJ I


£dt $ev* Insert Fjymat £в!зид Bun

' H -r ;ч ' ^ к а
тшяиятяш
Private Sub CommandButton2_Clicfc()
= Й VBAProjcct (MyForm.Kls) UserForm2.Hide
В -Э Microsoft Excel Objects End Sub
•• . -f\ Sheetl (Sheetl)
:
-ЩЬ 5heet2 (5heet2)
в Sheets (Sheets)
45 ThsWorkbook
iri" '^V Forms
Fj3 UserForml

Ш •£] Modules

CommandButton2 CommandButton
| Categorized |
(Name) Command8utton2
Accelerator
AutoSize False
BackCoior
BackStyle 1 - fmrJackStyteOpaque
Cancel 'Fake
Cancel
ControlTipText
Default False
Enabted •True
:
Font Arlal
ForeColor • &H80000012&
Height 24
HelpContextID 0

PMC. 3.78. Программный код обработчика события для кнопки Cancel

Глава 3. Программирование в Excel 267


j Листинг 3.13. Код процедуры CommandButton2_Click()
Private Sub CommandButton2_Click( )
UserForm2 . Hide

Теперь следует определиться с программным кодом, который будет выполняться


в случае щелчка на кнопке ОК. Как уже отмечалось, в результате выполнения этого
кода ячейке, указанной в поле TextBox2, должно присваиваться значение, указан-
ное в поле TextBoxl. Содержимое текстового поля возвращается свойством Value.
В листинге 3.14 приведен код процедуры ConimandButtonl_Click ( ) .

( Листинг 3.14. Код процедуры CommandButton1_Click()


Private Sub ComrnandButtonl_Click( )
UserForm2 .Hide
Range (TextBox2 .Value) -FormulaRlCl = TextBoxl .Value
End_&ub _ ^ ......... .1:;:шщ^„„,..т ................... ,„_,,„„.-„„,. __
Как можно видеть, в теле процедуры присутствует две инструкции. Первой
(UserForm2 .Hide) форма скрывается, а второй (Range (TextBox2 .Value)
.FormulaRlCl = TextBoxl .Value) в ячейки в качестве значений помещаются
данные, введенные в поле TextBoxl. Что касается самой процедуры, то для ввода ее
кода разумно дважды щелкнуть на кнопке ОК (напомним, название этой процедуры
CommandButtonl_Click( ) ) и ввести упомянутые инструкции. На рис. 3.79 показа-
но, как все это выглядит в окне редактора кода.

Ireert Fffroat Qebug &un loots fedd-Ins $ndow -.ex


i. и Л «"' '- t и • Ы, Ы rS1 W "*"• F
ПНЯ^ННИЙНзу |< immandButtonZ ^j jChck

— El Privat Sub CornnandButtonl Click() Г£


:- ^ VBAProject (MyForm.xl«) UserFo rn2.Hide
E в Microsoft Excel Objects Range ( extBox2 .Value) .FormulaRlCl •• TextBoxl .Value
•1 Sheet 1 (Sheet 1) End Sub
: : И] She>t2 (5heet2)
l в Sheets (Sheets) Privac Sub Co»mandButt;on2 CllckO
в ThisWorkbook UserFo ra2.Hide
Е<Э Forms End Sub
"• 3 UserFofml
El U5erf=ormZ
:*> '1Л Modules

Il
lll
^ ^ ,^tt^ Z3
Alpnabetic (categorteed 1

Accelerator
AutoSize False
ЗасКоЬх Н енвООООООРЬ
BackStyle 1 - fmBackStyleOpeque
Cancel False
Caption ;OK
ControlTipText j
Default False J
Enabled ;True j
Font ;Arial .", ' i
=oreCc4or • &H80000012& , , j
Height 24 J
HelpContextlD 0 ^j
*J»^L_J' _ . . . .v/..,' ".v,— ,-л-л --. ±Г
Рис. 3.79. Окно редактора кода с процедурами обработки событий

268 Часть I. Основы Excel


Наконец, осталось определить, каким образом вторая форма предстанет пред очи
пользователя. Проблема разрешается просто. Для этого достаточно в обработчик собы-
тия CommandButtonl_Click ( ) щелчка на кнопке первой формы UserForml добавить
инструкцию UserPorm2 . Show (листинг 3.15). На рис. 3.80 представлено окно редактора
с отредактированной процедурой UserForml . CommandButtonl_Click ( ) .

\ Листинг 3.15. Измененный код процедуры UserForml. CommandButton1_Click()


Private Sub CoiranandButtonl_Click ( )
UserForml .Hide
UserForm2 . Show

Совет. Для того чтобы перейти к нужному объекту, например, форме UserForml,
этот объект следует выделить в окне проекта Project (Проект) и дважды щелкнуть
на нем мышью. В этом случае в правой части окна редактора VBA будет отображе-
на форма или окно с ее кодом (в зависимости от выделенного объекта). Обычного
выделения будет мало.

t* Vksre Insert Fptnat ftebug gun loots Add-Ins H™tow tHp


:
-У .,;, '

Private Sub CornmandButtanl_Click()


BAPtoject (MyForm.xls) UserForml.Hide
^ Microsoft Excel objects UserForm2,Shov
(] Sheen (Sheetl) End Sub
: О SheetZ (ShratZ)
в] Sheets (Shee[3)

Д UserForm2
*! Si MocUes

CommandButtonl CommandButton

Accelerator
AutoSze False
JackCojor П &HeooooppF&
Backstyte ;l-fmeack5tyleOpaque
Cancel False
Caption
ControlTlpText
DeFaJt False
Enabled True
Font Times New Roman
Forecoior' • №1800000128.
Height 118
HelpContextID 0

Рис. 3.80. Отредактированный код процедуры Us erForml. CommandBu ttonl_Click()

Глава З. Программирование в Excel 269


Хотя, по большому счету, процесс создания приложения еще не завершен, на
данном этапе уже можно проверить его функционирование. Для этого достаточно
вернуться в окно приложения Excel и щелкнуть на кнопке, размещенной ранее на
панели инструментов для запуска макроса (т.е. процедуры) ShowMyForm ( ) . После
щелчка на этой кнопке, как и следовало ожидать и как это было ранее, открывается
форма My First Form с единственной кнопкой (рис. 3.81). Однако в результате щелч-
ка на этой кнопке не просто закрывается первая форма, а еще и открывается вторая
(рис. 3.82).
Проверим работу формы следующим образом: введем в поле Value диалогового
окна My Options число 13, а в поле Cell(s) укажем адрес В2 (рис. 3.83).

Рис. 3.81. Начало выполнения измененного макроса ShowMyForm ()

270 Часть I. Основы Excel


Puc. 3.82. Форма для ввода данных

Puc. 3.83. Ввод данных

Глава 3. Программирование в Excel 271


После щелчка на кнопке ОК в рабочем листе значение ячейки В2 будет установ-
лено равным 13, как и должно быть (рис. 3.84).
А! Рис. 3.84. Результат выполнения макроса

13

Замечание. Достаточно примечателен тот факт, что в процессе присваивания


значения ячейке активной она не делается. Так, в рассмотренном примере перед
началом выполнения макроса активной была ячейка А1, а значение присваива-
лось ячейке В2. После выполнения макроса ячейка А1 так и осталась активной.
Несложно проверить, что при щелчке на кнопке Cancel диалоговое окно My Options
закрывается. Однако здесь можно заметить одну интересную особенность. Дело в том,
что если еще раз запустить макрос на выполнение (т.е. еще раз щелкнуть на кнопке за-
пуска макроса), то форма (диалоговое окно My Options) будет открыта с заполненными
полями. Причем значения этих полей совпадают с теми, что были туда введены при пре-
дыдущем выполнении макроса. Объясняется это просто. Дело в том, что методом Hide,
который использовался в программном коде для закрытия форм, эти формы убираются с
экрана, но, как уже отмечалось, из памяти не выгружаются (для этого нужно вызвать ин-
струкцию Unload). Если нужно, чтобы при каждом новом запуске макроса поля были
пустыми, одним из способов может быть добавление двух соответствующих инструкций
в процедуру UserForml. CommandButtonl_Click (): UserForm2. TextBoxl. Value
= Null и UserForm2.TextBox2.Value = Null (рис. 3.85). Это инструкции, в ре-
зультате выполнения которых полям TextBox2 и TextBoxl присваиваются пустые
значения (Nul 1). Код процедуры приведен в листинге 3.16.

Листинг 3.16. Добавление инструкций очистки полей


Private Sub CommandButtonl_Click()
UserForml.Hide
UserForm2.Show
UserForm2.TextBoxl.Value = Null
UserForm2.TextBox2.Value = Null
End Sub

Однако часто бывает очень удобно, если при вызове формы в полях уже введены
какие-то значения (их, кстати, разумно задавать сразу в окне свойств Properties).
В этом случае можно в приведенном выше коде процедуры две последние инструк-
ции очистки полей пометить комментарием (что и будет сделано далее).
Второй этап модернизации проекта состоит в добавлении возможности задавать в
поле Cell(s) не только абсолютные, но и относительные ссылки (имеется в виду, что
синтаксис ссылок будет как у относительных, а интерпретируются они программой
как абсолютные). С этой целью введем в форму переключатель на два положения, со-
стояние которого и будет определять, относительная ссылка введена в поле Cel)(s) или
абсолютная (напомним, что с точки зрения программы это текстовое поле TextBox2).
Вначале сразу под рамкой Frame 1 (ее заголовок Data) размещаем еще одну рам-
ку, внутри которой и будет находиться переключатель. Заголовок рамки устанавли-
ваем как Reference (рис. 3.86).

272 Часть I. Основы Excel


••'• »'•- * x

j С ommaiulBiittoit t
пга |g] Private Sub ComtnemdButtonl ClickO
VBAProjecl (MyFarm.xls) UserForml.Hide
*±> Microsoft Excel Objects UsecForin2 . Show
l (Sheetl) Usecrorm2.TextBoxl.Value - Null
, вЗ 5beet2 (5heet2) UserForm2.TexcBoxZ.Value - Null
End Sub
§ Sheets (Sheets)
ThisWotMiook
Forms

CornmandButtonl CofnrnandButton

Alphabetic j categorized |
CornmandButtonl
Accelerator
AutoSfce False
BackCoior
Back5tyle 1 - fmBackStyteOpacfje
Cancel False
Caption 'OK™
ControlTipText
Default False
Enabled True
=ont Tmes New Roman
ForeColor
Height 16
HelpContextID
-; _

Рис. 3.85. Добавление двух инструкций очистки полей

{$ VBAFrojcct (MyForm.Kte)
Б ^ Microsoft Excel Objects
B] Sheet! (Sheetl)
•} Sheet? (Sheet?)
«Ц Sheets (Sheets)
; Св11(5)
%5 ThisWorMjook
Ir] ^ Forms
: Я UserForml
Я UserForuu
. С j Modules

Frame?
О &H8000000F&
| &Н8000СЮ12&
0 - fmBorderStyleNone
Reference

0 - f mCycleAIIForms j|£ort»qb j
True
Л А «Ы '
•Arial :
• &H80000012&
P ?r J !
:
72
-•-^ —J.»
:o ;
(eepScroHBarsVisibte 3 - fmScr oUBarsBoth ra '
Left ;6

Рис. 3.86. Добавление еще одной рамки в форму

Глава 3. Программирование в Excel 273


После этого пришел черед размещения внутри рамки переключателя. Переклю-
чатель — это набор из необходимого количества элементов OptionButton панели эле-
ментов управления формы (рис. 3.87).
Рис. 3.87. Выбор переключа-
теля на панели Toolbox

Внутрь рамки вносятся два таких элемента (можно внести один, а второй размес-
тить в форме путем копирования первого). Один (OptionButtonl) получает заго-
ловок Absolute (для абсолютных ссылок), а второй (optionButton2)— Relative
(для ссылок относительных). По умолчанию будет предполагаться, что ссылка абсо-
лютная. Поэтому для свойства Value элемента OptionButtonl указывается зна-
чение True (рис. 3.88).
Однако в этом случае придется существенно редактировать код процедуры
UserForm2 . CommandButtonl__Click ( ) . По большому счету, его придется полно-
стью изменить (рис. 3.89). При этом из двух старых инструкций остается только ин-
струкция закрытия формы, а вторая просто спрятана в комментарий. Если проана-
лизировать код этой процедуры, представленный в листинге 3.17, можно сделать ряд
основополагающих выводов.
(A Microsoft Visual Basic - MyFoiB xls - |MyFor«i.«li - UsetFwm2 (UwFomj)

Oam
Ei J$ VBAProject (MyForm.xls)
Microsoft Excel Obiects
• Value
в Sheet! (Sbeetl)

;ce«(4

I
:ted •False
Mouselcon l(Ncra)
•lousePointi 0 - fmMousePointerDefault
;
Picture (None)
tcturePosition 7 - fmPicturePositionAboveCet
:2 - fmButtonEffectSunken

Puc. 3.88. Настройка параметров переключателей

274 Часть I. Основы Excel


Private Sub Coim\andButtonl_ClicKO
« Й VBAProjecl (Myfomuels) Dim R As Object
E'i ON Microsrft Excel Objects If OptionButtonl.Value - True Then
! IP Sheetl (Sheet!) Set R - Range(TextBox2.Value)
Ij] Sheets (Sheet2) Else
' в Sheets (Sheets) Set R - ActiveCell.Ranee(TextBox2.Value)
• Щ ThisWorkbook End IJ
Й- £j Forms UsecFotm2.Hide
El UseForml R.rormulaRlCl - TextBoxl.Value
'Rangi {TextBoxS .Value) . FormulaRiCl « TexcBoxl .Value
End__Sub

Private Sub ComnandButton2_ClickO


UserFocru2 .Hide
End Sub

Рис. 3-89. Новый код процедуры UserForzn2. CommandBut tonl_Click ()

Тистинг 3.17. Код процедуры UserForm2.CommandButton1_Click()


Private Sub CommandBut tonl_Cl ick ()
Dim R As Object
If OptionButtonl .Value = True Then
Set R = Range (TextBox2 .Value)
Else
Set R = ActiveCell .Range (TextBox2 .Value)
End If
UserForm2 .Hide
R.FormulaRlCl = TextBoxl .Value
' Range (TextBox2 .Value) .FormulaRlCl = TextBoxl .Value

B частности, в начале процедуры объявляется переменная R объектного типа


(объявление Dim R As Obj ect) — такие переменные обычно содержат ссылку на объ-
ект (его адрес). После этого проверяется значение первого переключателя (свойство
Value). Если это свойство равно True (т.е. переключатель выбран, и ссылка, следова-
тельно, абсолютная), то заполнять нужно диапазон ячеек Range (TextBox2 .Value).
Переменная R именно на этот объект и будет ссылаться (поскольку ссылка на объект, ис-
пользуется инструкция Set). В противном случае (ссылка относительная) следует ука-
зать, что диапазон отсчитывается от активной ячейки. Этот диапазон возвращается инст-
рукцией ActiveCell . Range (TextBox2 .Value) . На этом условный оператор закан-
чивается. По его завершении закрывается форма, и поскольку диапазон заполняемых

Глава 3. Программирование в Excel 275


ячеек возвращается переменной R, то заполнить эти ячейки (или ячейку) можно посред-
ством инструкции R.FormulaRlCl = TextBoxl. Value.
Замечание. Фактически, "старая" инструкция
Range(TextBox2.Value).FormulaRlCl = TextBoxl.Value,
заключенная в комментарий, является частным случаем инструкции
R.FormulaRlCl = TextBoxl.Value.
Теперь можно проверить, насколько корректно осуществляется работа с абсо-
лютными и относительными ссылками. Для этого, как всегда, запускаем макрос.
Диалоговое окно My Options в этом случае будет иметь такой вид (рис. 3.90).
Сначала проверяем работу с абсолютными ссылками. Переключатель из раздела
Reference оставляем в положении Absolute, а данные (число 12) будут вводиться в
ячейку А1. Результат представлен на рис. 3.91.
После этого проверяется работа с относительными ссылками. Активной при
запуске макроса в обоих случаях является ячейка В4. Если в качестве относительно-
го адреса ячейки заполнения указать В2, то значение должно быть занесено в ячейку
С5 (рис. 3.92).

Format loot tat» SSJndw tt*>


.
Mil - 10 •- -• в > S ; * * * Ш ® °
f,
D

Data

Value

C«ll(i)
10

, < Reference

О Absolute

f Relative

Cancel

> w \sheen / 9»*tZ / Я»ЙЭ /


Reedy

Puc. 3.90. Проверка работы формы с абсолютными и относительными ссылками

276 Часть I. Основы Excel


:
БД -г ; f, Рис. 3.91. Результат использования
А 1 В 1 С 0
JJ 12
абсолютной ссылки
J2J
3 . i 1 i

В4 " f-
А В \ С 0 } Е .i _ F i_. ..... <? Jj tL._:J _i i i^a J<_ i k Т
"\

G
ПаМ
5 |. . *'
Value hi
Т
э с>ии |B2
10
11 •1 -
12
^3 -Reference
r
•|J I Ahsoh It*

м]
я
19
c
J ™c«'
. ^
t ! O K
i :

яннвнянннщ^^^^н
> M\ShMll/5he»l2 /S««3/
HI iBBSB 1 ЧГ

Рис. 3.92. Использование относительной ссылки

Как видно из рис. 3.93, результат вполне соответствует ожиданиям.


На последней стадии добавим в форму элементы управления, позволяющие кон-
тролировать шрифт для отображения данных в ячейке. В правую часть формы по-
мещаем рамку, которой присваиваем в качестве заголовка значение Font (рис. 3.94).
Далее в форму, в область, ограниченную рамкой Font (имя объекта рамки РгатеЗ),
добавляется два элемента CheckBox, которые позволяют выбирать или отменять неко-
торую опцию (рис. 3.95).

Рис. 3.93. Результат использования


относительной ссылки

Глава 3. Программирование в Excel 277


Microsoft Visual Basic - MyForm «U - [MyFom-lrii - UlMfomZ (UiwFoimll
4dd-Ins - - в X
£* Be»
' ffindow tielp

-• ^VBAProject(MyForm.xls)
ij- Si Microsoft Excel Objects
' : в sbeetl (Sheetl)
i (Q Sheet? (Sheet2)
: ••№ Sheets (Sheets)
! б ThBWorttiook
ЕЕ! Ш Fo^ns
!- 3 UserForml
•Reference - -
Й- Q McHlules
: f*~ Absolute

РгатеЭ Frame : <~ Relative


Alphabet,
(Name)
BackColor Q анаоооооога
BorderCdor
BorderStyle 0 - frreotderStyieNone
Font
ControlTpText
Cycle 0 • fmCydeAUForms
Enabled •True
=ont iArial
• UH8IM000128!
180
HelpContextID !0
Keep5croKBarsVtsibfe;3 - fmScrolBarseoth
-eft :i92
;
Puc. 3.94. Размещение в форме еще одной рамки

Рис. 3.95. Выбор элемента CheckBox на панели Toolbox

Один элемент получает заголовок Bold, а второй — Italic. Заголовок определяется,


как и ранее, свойством Caption (рис. 3.96).
Для определения размера шрифта воспользуемся элементом управления
SpinButton, который позволяет с помощью щелчков на кнопках со стрелками уста-
навливать значение в соседнем текстовом поле (рис. 3.97).
Поскольку этот элемент нужен для контроля значения в текстовом поле, следует
разместить такое поле рядом с данным элементом (так выглядит более эстетично).
Кроме того, поблизости поместим метку с заголовком Size (рис. 3.98). В результате
размер шрифта указывается в текстовом поле TextBox3 и определяется значением
свойства Value этого элемента управления.
В соответствии с внесенными в форму новыми элементами управления и их
назначением вносим необходимые изменения и в процедуру UserForm2 .Com-
mandButtonl_Click ( ) (рис. 3.99). Проанализировать внесенные изменения мож-
но в листинге 3.18.

278 Часть I. Основы Excel


• Microsoft Visual Basic - МуГогвп-xls - fMyFoim.Bts - UimFormZ (UseiFt
fjte t* »ew Insert Fym* ; bebug Eun I«* SiM-Ins JBntfow ИФ
:
3-я - >i?-.:•- •• • » H вM -^^'"ой Ш

3-4$ VBAProject (MyFotm.Kb)


В ^f Microsoft Excel Objects
' : в Sheet) (Sheet!)
i i -в Sheet2 (Sheet2)
i ;» Sheets (Sheets)

9 UserForml
Я»
ie Si Modules

Frame
) Categorized]
Frames
Q 8H8000000F&

0 - fmBorderStyteNone
Fort
ControlTpText
Cycte ;0 - fmCydeAIIForms
Enabled ^True
Font Aral
:
oreColdf В 8^60000012&
Height '_ J1£O 2 .
;
jHdpContextlD 0
icrcJBarsVisbleb - fmScrolBarsBotb

Puc. 3.96. Размещение элементов управления CheckBox в форме

Рис. 3-97. Выбор элемента SpinButton на панели Toolbox

I Листинг 3.18. Изменения в процедуре UserForm2. CommandRuttonl_Click ( )

Private Sub CommandButtonl_Click()


Dim R As Object
If OptionButtonl.Value = True Then
Set R = Range(TextBox2.Value)
Else
Set R = ActiveCell.Range(TextBox2.Value)
End If
UserForm2.Hide
R.FormulaRlCl = TextBoxl.Value
With R.Font
.Bold = CheckBoxl.Value
.Italic = CheckBox2.Value
.Size = TextBoxS.Value
End With
1
Range(TextBox2.Value).FormulaRlCl = TextBoxl.Value
End Sub

Глава З. Программирование в Excel 279


Microtofl Visual Basic - MyFofm.xU - [МуГмт.,1. - UietFotnZ (UserFoim)]
'• Efe illt Я=» Insert Fojma Csbug Bun lools Add-Ins декЫ Ие»

3'* H *• [ 'л !?• -'•'• ^*" ° ' » ц • |£ i


!

:ЯНННВН*!
Data
^E VBAProject (MyForm.nls) ;

и <3S Microsoft Excel Objects


: • Value
: - в] Sheetl (Sheetl)
: ® 5heet2 (Stieet2)
5he
-в «3 (5heet3)
:
i %J ThisWorkbook
В ••'iS Forms
И Userforml

• Reference
if f'j Modules

SplnButtonl SpMutton Relative

__ SpinButtonl
BackColor Q &H8000000F8t OK Cancel
ControlSource
CcmtrolTipText 1

Enabled True
ForeColor • &H300C10012& Cortn* |
Hetght
HelpConCextID
18
0
fit'А
.eft 126 P ff
Max 100
0 ."..
-^^i
Mouselcon !(None) я
»1ousePointer ;0-fmMousePointerDefault .^

Рис. 3.98. Элементы управления для регулирования размера шрифта

HjFonuA (Us»

^vj jciiek
Privace Sub ConTmandBuT;T;onl_Click()
i VBAProjett (MyForm.Kls) Dim R Аз Cfcject
и £3» Mcrosoft Excd Objects If OptionButtonl.Value - True Then
:
. -(|3 Sheetl (Sheetl) Set R - Range(TextBoxZ.Value)
; ® Sheet2 (5heet2) Else
: ' № Sheets (Sheet3) Set- R - ActiveCell.Range (TextBox2 .Value)
I S ThisWorkbook End It
Э t\*S Forms U=erForai2.Hide
: Э UserForml R.FormulaRlCl ™ TexcBoxl.Value
W i t h R.Font
Ж £3 Modules .Bold - CheckBoxl.Value
.Italic - CheckBoxZ.Value
.Size - TextBoxS.Value
PPP^^g^g
CommandButtonl CommandButton
End Kith
1
Range (TextEoxZ .Value) . T'oEKiUlftRlCl = T e x c E o x l .
A^iabebc | categorized | End Sub_

Accelerator Private Sub CommandButtan2_Click(J


AutoSize False UserForm2.Hlde
BackColor П &H8000000F& End Sub
BackStyle 1 - fmBackStyleOpaque
Cancel False
Caption OK
ControlTjpText
Default False
Enabled True
:
ont Arial
ForeColor • &Н80СКЮ012&
Height 21
HdpContextlD 0

Puc. 3.99. Изменения в коде процедуры UserFormS . CommandButtonl_Click()

280 Часть I. Основы Excel


В частности, добавлен блок оператора With (начинается с ключевого слова W i t h
и заканчивается инструкцией End With). В рамках этого оператора для шрифта
объекта (определяется ссылкой R. Font после ключевого слова with) перебираются
такие свойства, как Bold (полужирный шрифт), Italic (курсив) и Size (размер),
которым и присваиваются значения.
Замечание. Если с размером все более или менее очевидно, то определение значений
свойств Bold и Italic требует некоторых комментариев. Дело в том, что если соот-
ветствующее свойство равно True, то данный эффект (т.е. выделение полужирным
шрифтом или курсивом) используется, а если False — нет. С другой стороны, свой-
ство Value элемента типа CheckBox равно True, если флажок установлен, и
False — в противном случае. Отсюда и способ определения значений свойств шрифта.
Однако редактированием программного кода процедуры UserForm2. Com-
mandButtonl_Click () дело не заканчивается. Во-первых, желательно задать перво-
начальное состояние (значение) в поле TextBox3, в котором задается размер шрифта.
Для этого свойству Value в окне свойств Properties нужно указать значение 12 (таким
образом будет предлагаться использовать 12-й размер шрифта) (рис. 3.100).
Кроме того, чтобы щелчок на одной из стрелок элемента SpinButtonl приводил к
изменению содержимого поля TextBox3, нужно написать еще код и для обработчиков
соответствующих событий (рис. 3.101). Это процедуры SpinButtonl_SpinDown()
(уменьшение значения, стрелка вниз) и SpinButtonl_SpinUp ( ) (увеличение значе-
ния, стрелка вверх). Программные коды этих обработчиков, приведенные в листин-
гах 3.19 и 3.20, достаточно просты и похожи.
I MiciosoU Visual Basic - MyFoim xls - [MyFoim.xls - UieiFo
Insert FQfrftat Bebuo Run loois fidd-Ins • Jgmdow Help

-
- ^ VOAProfccl (МуРогтлЬ)
R *j Microsoft Excel Objects
О Sheet! (Sheetl)
в 5heel2 (5heet2)
Щ5 Sheets (Sheets)
^] ThisWorkbook
В tS Forms
. ^ [3 UserForml
E| Usefform2
f. ~i Modules

TentBon3 TextBox
Alphabetic |cateaori2ed |

Puc. 3.100. Выбор начального значения для поля с данными о размере шрифта

Глава 3. Программирование в Excel 281


0e E* Sew Insert FfjiMt Qebug; R.gn T

т. a ;•*.»$-й л «••<» > к


J |S|iFnUp
П Гз1 [(_ I Set H - ActiveCell.Rancre(TextBox2.Value)
12 & VBAProject (MyForm-xIs) End If
3-S Microsoft Excel Objects UserForm2.Hide
•J Sheetl (Shntl) R.FormulaRlCl - TextBoxl.Value
L ® Sheet2 (5heet2) Dith R.font
;- Ijp Sheets (Sheet3) .Bold - CheckBoxl.Value
'- %j TNsWorkbook .Italic - CheckBoxZ.Value
Й- & Forms .Size - TextBoxS.Value
9 UsetFnml End Kith
' R a n g e ' Т е х с Б о х Е . V a l u e ) . F o r a r u l a R l C l = TextB
it; S3 ModJes End 3ub

Private Sub ComnandButton2 C l i c k f )


Userrorm2.Hide
End Sub
Private Sub SpinButtonl_SpinDown()
Uith TextBoxS
.Value - .Value - 1
End Hith
End Sub

Private Sub SpinButtonl SpinUpO


Vith TextBoxS
.Value - .Value + 1
End With
End Sub

Рис.3.101. Обработчики событий щелчков на стрелках элемента управления


SpinButtonl

Листинг 3.19. Код обработчика SpinButtonl SpinDown()


Private Sub SpinButtonl_SpinDown()
With TextBoxS
.Value = .Value - 1
End With
End Sub

Листинг 3.20. Код обработчика SpinButtonl SpinUp()


Private Sub SpinButtonl_SpinUp()
With TextBox3
.Value = .Value + 1
End With
End Sub

Основу обоих обработчиков составляет оператор With, в рамках которого значе-


ние свойства Value текстового поля TextBoxB, в зависимости от обработчика, уве-
личивается или уменьшается на единицу.
Таким образом программный код обработчиков задан, а проект готов к использова-
нию (хотя еще и не завершен). Чтобы проверить результаты работы, щелкаем на завет-
ной кнопке на стандартной панели инструментов. После того как на экране появится
диалоговое окно My Options, в поле Value следует ввести значение Text (присваиваться в

282 Часть I. Основы Excel


качестве значения может не только число, но и текст), установить флажки опций Bold и
Italic, а также задать 11 размер шрифта (рис. 3.102). Результат можно видеть на рис. 3.103.
Кроме возможности задавать размер и характер шрифта, предусмотрим также
возможность задавать и его тип. Для этого в форму добавляем элемент управления
ComboBox (рис. 3.104), с помощью которого в формах реализуется раскрывающийся
список с полем, куда можно, помимо выбора элемента из списка, вводить собствен-
ное значение.
Разместим этот элемент в форме, как показано на рис. 3.105. Помимо самого эле-
мента сверху над ним размещается еще и метка с заголовком Font Type.
В качестве значения (свойство Value) указывается Time New Roman (именно
оно отображается в поле раскрывающегося списка на рис. 3.105). Кроме этого, сле-
дует определить ссылку на данные, которые будут отображаться в качестве элемен-
тов раскрывающегося списка. Для этого свойству RowSource указываем в качестве
значения ссылку на диапазон ячеек А2:А4 из второго рабочего листа книги. Справа
от данного свойства вводим значение Sheet2 ! А2 : А4 (см. рис. 3.105).

В] Be ЕЛ Bew tocrt %гл* loot Qrfa Bimto adp

и Щ S? % , '.и Л да -Ш ' - -з> - .А .,

Daw

Value

СеИф

Reference
<v Absolut»

f Relative

OK A Cancel

Puc. 3-102. Использование настроек для шрифта

В2 Рис. 3.103. Результат выполнения макроса


с учетом настроек шрифта

Глава 3. Программирование в Excel 283


,xj Рис. 3.1 04. Выбор элемента CornboBox на панели Toolbox
Conuds |

; it А «Ы Я;Я
f: ffifi !§ _J

— -^ — I" zl jComboBo f
ra*

fjm Micioioll Visual Basic - MyFom A - [MfFonLlb - UseiFwmZ (UieiFaim)] г


JK rW-a
jg £un 'loofe &W-Ir» 5йпсЫ йНр, '".••• •• - ' •••' --:• * * «Э 'X

1гЖЁЖШШаИВН*1 •Mr Option» ЗШЛ


:- [OJ *
; Data - W Fowl
г; ^ VBAProjecl (MyForm.Kk)
И Ш Microsoft Excel Objects
в Sheetl (Sheetl) ; ; - Value -j 8 p Bold'
! -O Sheet2 (Sheet2)
; -ЕЙ 5heet3 (Sheets)
i -fi ThisWorkbook

EH UserForml

I
§ Userf^ntZ size; •l 1 12 -4 : * ; ; j
; Reference - '\ > . , . ' , ' , . .,.. .^ ^1 '.'.
Щ ГГ.? Modules
Of е
','.'.(• Absolute ...%..' ^ !* ТУР
' • • Г ft | tfw * ' ' ' P' ' fl Times New Roman j^ju ! : ;;
ComboBoxl CornboBox
' . : ...,. i' i ^%, '. Р^Р^ж^1^^^®^^^^^^;:; i.;i
AjptubeEic jcategodrftd |

lousePonter 0 - fmMousePomtefDej»J
OK |;:; Dmcel |: ;;:: : ; ; ; : ; ; ; : ; ; ; ; ^ ; ; ; ; ; ; ; ; ;: :
SelectionMargin ^ =True
ShowDropButtonWhen 2 - fmShowDrop6uttor < -.
SpecialEffect 2 • fmSpeciaCffectSur. /
Style '0 - fmStyfeOropDownC",,'":
ГвЫпоех :5
Tab5top .True
Tag
Text -Times New Roman '•
TextAlign 1 1 - FmTextAlignLeft |
TextColumn 1-1
Top ;138
Toplndex Sheet2! A2:A4 ^j '

PMC. ^. 105. Размещение элемента CornboBox в форме

'{ Листинг 3.21. Окончательный вариант кода процедуры


i UserForm2.CommandButton1_Click()
Private Sub CommandButtonl_Click()
Dim R As Object
If OptionButtonl.Value = True Then
Set R = Range(TextBox2.Value)
Else
Set R = ActiveCell.Range(TextBox2.Value)
End If
UserForm2.Hide
R.FormulaRlCl = TextBoxl.Value
With R.Font
.Bold = CheckBoxl.Value
.Italic = CheckBox2.Value
.Size = TextBoxB.Value
.Name = ComboBoxl.Value

284 Часть I. Основы Excel


End With
'Range(TextBox2.Value).FormulaRlCl = TextBoxl.Value
'Unload UserForm2
End Sub

Замечание. На рис. 3.106 в области кода, как и в листинге 3.21, можно видеть за-
ключенную в комментарий инструкцию выгрузки формы из памяти Unload Form.
Пояснения по этому поводу будут приведены несколько позже.
Наконец, чтобы при вызове макроса в раскрывающемся списке выбора типа
шрифта было что отображать, нужно в ячейки диапазона А2:А4 (рабочего листа
Sheet2) ввести названия шрифтов, как это показано на рис. 3.107. Процесс тестиро-
вания нового добавленного кода проиллюстрирован на рис. 3.108.
Результат выполнения макроса представлен на рис. 3.109 (текстовое значение в
ячейке А1 осталось от предыдущего запуска макроса).

{• Microsoft Visual Basic - MyFonn.ids - (UseiFoim2 (Code)] *•=. ЯВЕ


•<*$£& £<& £«w Insert Format Q^ug &un. 'look Add-Ins Bndow .Jjdp » » * "X

» u » fe£ Ь:Й7^ J ! 3'uii5.aw 1

CommendB.mon1 »| Click
П Hi [Oj Private Sub CorcmandButt-onl C l i c k ( ) ,^
.-; £$ VBAProject (MyForm.Kb) Dim R As Object
Er fS| Hicfosoft Excel Objects If OptionButtonl, Value « True Then
:
: lj Sheetl (Sheetl) Set R ~ Range (TextBoxE .Value)
'= . ® 5heet2 (Sheet2) Else
; | lp Sheets (5heet3) Sec R ™ ActiveCell. Range (TextBox2 .Value)
i ' -%J ThisWorkbook End It
E; ^ Forms UserForm2 .Hide
Щ UserForrnl R. FormulaRlCl ~ TexCBoxl .Value
О UserForm2 Kith R.Font
Eij- S3 Modules .Bold - CheckBoxl. Value
.Italic - CheckBox2. Value
ДМЦ'^ , ,
.Name - ComboBoxl .Value

Alphabet*) Categorized! ' Raivge (Text.box2 . V a l u e } .Formula Ч1С1 = T e x t E o x l . V a l ' A e


1
l(Name) CommandButtonl » Unload UaejrFfcrta2
[Accelerator End 5ub
|Auto5ize False
ЗЗЭЗЕЯИИЮ &H80DOOOOF& VJ Private Sub CommandButronS Cllck()
BackStyle 1 - FmBackStyleOpaque UsecForm2 .Hide
Cancel False End Sub
Caption OK .,- ; :
ControlTipText PC ivate Sub SpinButtonl SpinDown ()
i default False With TextBox3
!
Enabled True .Value - .Value - 1
=ont Anal End Hith •
End Sub '
• ForeColor | &H80000012&
Height 24
HelpContextID 0 w\
^j
. . , .... ~~~^ ш «1 i^LJ.,
Puc. 3.106. Внесение изменений в код процедуры Us erForm2. CommandBu ttonl_Click()
^

CA Puc. 3.107. Ввод данных с названиями шрифтов


i A ; В i_ для раскрывающегося списка
1 : Шрифты
2,jArial
3 1 Courier New
4 JTimes New Roman
5 '
H 4 и \ Sheetl \Sheet2 /Sh«O /

Глава 3. Программирование в Excel 285


gle . E* №«> l"*"t Formal: loob Bale B

D fiS.B% ®'Ui !?.•:; X 4*


10 .-.' я ^r ц

Рис. 3.108. Проверка корректности работы макроса

Рис. 3.109. Результат выполнения макроса

На этом, безусловно, возможный набор элементов управления, которые могут


размещаться в форме пользователя, далеко не исчерпывается. Среди них есть как
исключительно функциональные, так и в основном декоративные. В качестве при-
мера последнего можно привести рисунок. Хотя это совсем не значит, что в форме
рисунки не могут использоваться для взаимодействия пользователя с приложением.
Для рисунков существует возможность создавать обработчики событий не хуже, чем
для кнопок (например, программировать последовательность действий, выполняе-
мых при щелчке на рисунке).
В качестве последнего штриха в процессе создания проекта разместим в форме
рисунок, который, надо отметить, функциональной нагрузки нести не будет.
Для этого на панели Toolbox следует выбрать элемент Image (рис. 3.110).
Рисунок размещается в правом нижнем углу формы. Чтобы указать, какое имен-
но изображение следует загрузить, в правой части свойства Picture в окне свойств
Properties для элемента Imagel нужно щелкнуть на кнопке (с тремя точками), в ре-
зультате чего откроется диалоговое окно загрузки рисунка Load Picture (Загрузить
рисунок). С его помощью следует выбрать требуемое изображение.

286 Часть I. Основы Excel


Очень может статься, что размер рисунка не совсем соответствует размеру отве-
денной для него области в форме. В данном случае рисунок существенно больше.
Поэтому свойству изображения PictureSizeMode присваиваем значение f mPicture-
SizeModeZoom (нужно выбрать соответствующий элемент в раскрывающемся списке
допустимых значений этого свойства), в результате чего изображение будет автома-
тически масштабировано до установленного размера (рис. 3.111).
Наконец, устраиваем созданному макросу окончательную проверку, указав в
качестве адреса ссылку не на одну ячейку, а на целый диапазон (рис. 3.112). Макрос
и в этом случае справляется с задачей. Результат представлен на рис. 3.113. В част-
ности, видно, что не только значения ячеек из указанного диапазона заданы пра-
вильно, но еще и нужным образом применены настройки для шрифта.

{
'••••••КЭ~~
Puc. 3.110. Выбор элемента Image на панели Toolbox
^**|
•"ПГАоыан
};-;i7: •••<?'. fi QfJ
--ij_j з Mm
га
j 1 mage

• • • • i
i^J g» EO* Sfcw JKert po/mat. 6«bug Eon" lads edc№* ИгЮои Hefe Д"ъ1» з q'j?at>. fw • i; - _ в х
!

• • • • •
• H

• Data • Font
E ^ VBAProject (MyForm.xls)
В ^J Microsoft Excel Objects
• • •) Sheetl (Sheetl)
::; Value •] ;; ; Г Bold
i ; И 5heM2 (5heet2)
\ вП Sheets (Sheets)
: ^J ThisWorkbook
: :: Ceii^sj :
j :;.: ; г Halle
- -^« Forms
; . El UserForml
13 OserFormZ
». '.'j Modules

IK^i
[image 1 [mage _:..! . . С Relative
:JW»b«lfc|c«l»90rt2ecii:,,,,

JEnabted
Irleight
True
30
3 OK Cancel I•
Left ;330 '".'.'. .... . , . ";••'. L$^4-^4*P
JMouselcon (None) •
JMousePointer 0 - f mMousePointerDefauft
Jpicture (Bitmap)
jPictureAlignffient 2 • fmPictureAtignmentCentf
ЭВМг^^|И8Яз - fmPictureSijeModeZo^j

SpecialEffect :o - ffflSpecialEffectFlat
Teg
Top 192
:

Visible :True
Width 30 p "

Рис. 3.111. Размещение в форме изображения

Глава 3. Программирование в Excel 287


Puc. 3.112. Применение значения к диапазону ячеек

Рис. 3.113. Результат присваивания значе-


ний диапазону ячеек

. 12
_ п
12

Еще раз хочется обратить внимание на ту особенность, что при каждом после-
дующем вызове макроса диалоговое окно My Options отображается с настройками,
которые были выполнены при предыдущем вызове (даже если после этих настроек
был выполнен щелчок на кнопке Cancel в этом диалоговом окне). Как уже отмеча-
лось, причина в том, что при закрытии соответствующей формы она из памяти не
выгружается, поэтому "помнит" последние настройки. Ранее предлагалось при за-
грузке формы выполнять сброс значений ее элементов управления. Однако когда
таких элементов много, это не очень удобно, поскольку приходится задавать слиш-
ком большое количество команд. Можно поступить проще — при закрытии формы
выгружать ее из памяти инструкцией Unload Form. Эта инструкция в процедуре
обработки щелчка на кнопке ОК формы уже присутствует (в последнем варианте
кода), правда, в виде комментария. При желании достаточно просто убрать символ
комментирования. Такую же инструкцию можно добавить и в конец процедуры об-
работки щелчка на кнопке Cancel формы. Окончательное решение в подобных слу-
чаях принимается исходя из назначения разрабатываемого проекта.

288 Часть I. Основы Excel


На этом пример заканчивается, а вместе с ним и глава. Безусловно, рассмотрен-
ные здесь вопросы лежат, что называется, на поверхности и раскрывают далеко не
всю глубину и сложность темы работы с VBA. Однако, хочется верить, читатель
сможет составить для себя общее представление о том, что можно сделать в VBA, и
чего сделать нельзя. Ведь знание того, где искать, очень часто бывает не менее, а мо-
жет даже и более важным, чем ответ на вопрос, как искать. Не исключено, что пред-
ставленные в этой главе сведения в этом смысле будут полезны читателю.

Глава 3. Программирование в Excel 289


ЧАСТЬ II
Решение задач
В этой части...
• Методы вычислительной математики
• Теория вероятностей и математическая статистика
• Совместное использование Excel и Maple
Г Л 'А В А 4

Методы вычислительной
математики
В этой главе...
• Решение уравнений и систем
• Надстройка оптимизации и поиска решений
• Приближенные методы решения уравнений и систем
• Вычисление производных и интегралов
• Дифференциальные и интегральные уравнения

С/та глава посвящена методам использования Excel при выполнении всевозмож-


ных математических операций. В первую очередь имеются в виду численные методы,
которые достаточно широко используются при решении инженерных задач. Особое
внимание уделено методам поиска приближенных решений уравнений и систем урав-
нений. В главе описаны основные способы вычисления производных от функций
(в численном виде), рассказано, как с помощью Excel можно вычислять интегралы и
даже решать дифференциальные уравнения. При этом следует иметь в виду, что речь
идет о выполнении именно численных операций, поскольку возможности Excel в пла-
не аналитических методов, мягко говоря, далеки от совершенства. Тем не менее, доста-
точно часто этот недостаток может быть в некоторой степени компенсирован путем
использования специальных программных кодов, составленных с помощью VBA, или
за счет привлечения других приложений (см. главу 6). Хотя, по большому счету, не-
возможность выполнять в Excel аналитические преобразования недостатком продукта
не является — просто Excel для этих целей не предназначен.
В этой главе предлагается не только краткий обзор встроенных утилит Excel, но и
приведены некоторые примеры разработки собственных программ. В первую оче-
редь рассмотрим методы решения алгебраических уравнений и их систем. Как уже
отмечалось, в Excel такие уравнения или системы решаются в численном виде. Все
методы получения решений можно условно разделить на два типа. В первом случае
решение фактически точное, просто результат преобразуется к виду числа с пла-
вающей точкой. Очень часто для поиска такого решения бывает достаточно встроен-
ных утилит Excel. Во втором случае приходится иметь дело с процедурами поиска
приближенного решения с последующим его уточнением. Однако еще раз хочется
обратить внимание, что разделение это более чем условно. Кроме того, поиск реше-
ний может, как правило, осуществляться различными способами. Выбор подхода
существенно зависит от того, где и как в последующем будут использоваться полу-
ченные результаты а также, безусловно, от предпочтений пользователя. Поэтому в
некоторых случаях приводится несколько возможных методов поиска решения для
одной и той же задачи.
При решении систем линейных алгебраических уравнений широко используют-
ся, как известно, методы линейной алгебры. Отдельно будет продемонстрировано,
как в Excel выполняется перемножение векторов и матриц, вычисление определите-
лей и поиск матриц, обратных к данным. Эти методы описываются параллельно с
поиском решения систем уравнений.

Решение уравнений и систем


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

Решение будем искать в численном виде относительно переменной х. В таблицу


будут вводиться параметры атлЬ, после чего все в той же таблице отображается зна-
чение х. Что касается последнего, то непроизвольно напрашивается мысль принять
х = b/а. Как будет показано далее, это не всегда так, однако на данном этапе будем
вычислять решение именно по приведенной выше формуле для переменной х.
Таблица с результатом (не окончательным, правда) представлена на рис. 4.1.
В частности, значения параметров а и Ь вводятся соответственно в ячейки ВЗ и
В4. Значение для переменной х, т.е. решение уравнения, отображается в ячейке В5.
Оно вычисляется по формуле =В4/ВЗ. Для значений а = 2 и b = 3, как видно из
рис 4.1, результат равен 1.5, и это точное значение.
На первый взгляд все нормально. Однако проблемы начинаются, когда в ячейку
ВЗ вводится значение 0. В этом случае будет предпринята попытка деления на ноль,
и в ячейке В5 появится сообщение об ошибке (рис. 4.2). Если щелкнуть мышью на
раскрывающемся меню, расположенном слева от ячейки, в которой была предпри-
нята попытка деления на нуль, появится список команд, которые могут оказаться
полезны при выяснении причины возникновения ошибки и ее характера.

В5 Г* =B4/B3
А. D
; Поиск решения уравнения ах-Ь

Рис. 4.1. Решение линейного уравнения

Глава 4. Методы вычислительной математики 293


В5 =В4/ВЗ
A j В | С 1, 0,^1_
J Поиск решения уравнения ах=Ь

by Zero Error
Help on tNs error

Show Calculation Steps...

ignore Error

Edit in Formula Bar

Error Checking Options.,.

Show Formula Auditing Toofcar

Puc. 4.2. Ячейка с сообщением об ошибке


В данном случае причина ошибки очевидна. Разумно переопределить формулу
так, чтобы ситуация, когда значение в ячейке ВЗ равно 0, обрабатывалась отдельно.
Для этого используем логическую функцию IFQ. Первым аргументом функции ука-
зываем проверяемое условие В3=0. Вторым аргументом следует указать значение,
которое возвращается функцией при выполнении условия, т.е. когда в ячейку ВЗ
введен 0. В этом случае уравнение решений не имеет (из этого правила есть исклю-
чение, но о нем речь пойдет несколько позже). Условимся, что в такой ситуации в
ячейке В5, где отображается значение переменной х, будет выводиться сообщение
"Решений нет". Именно эта фраза указана вторым аргументом функции IF().
Замечание. Это текстовая величина, поэтому она заключается в двойные кавычки.
Отображаться же будет фраза без кавычек!
Третий аргумент функции — это то значение, которое возвращается функцией, если
указанное первым ее аргументом условие не выполняется. В таком случае значение
определяется как В4/ВЗ. Результат представлен на рис. 4.3. В частности, там можно
видеть, как обрабатывается ситуация, при которой значение ячейки ВЗ равно 0.

( Замечание. Чтобы текст в ячейке В5 не превышал ширины ячейки, последнюю


следует увеличить до приемлемых размеров.
Несложно убедиться в том, что теперь согласно введенной формуле вычисляется
корректное значение и в том случае, если значение ячейки ВЗ отлично от нуля (рис. 4.4).
Наконец, осталось разобраться с ситуацией, когда оба параметра уравнения, т.е. а
и Ь, одновременно равны нулю. В этом случае уравнение превращается в тождество
и в качестве х можно принять любое число — формула в ячейке В5 трансформирует-
ся в =IF(B3=0,IF(B4=0,"Любое число","Решений нет"),В4/ВЗ) (рис. 4.5).
В5 » fr =IF(B3=0. "Решений нет",В4/ВЗ)
i A ' В J С i D • г
1 Поиск решения уравнения ах=Ь

: t-
4 Ь- 3
х-|Решений нет] i
6 1 i ]

Рис. 4.3. Корректная обработка особой ситуации

294 Часть II. Решение задач


В5 . =1Р(ВЗ=0,"Решений нет",В4/ВЗ)

i Поиск решения уравнения ax=b

b-
*=c Ш
Рис. 4.4. Корректный результат, вычисленный по
новой формуле

В5 f, =IF(B3O,IF(B4=0,"Любое чисто".'Решений нет"),В4/ВЗ)


6 C
CIA!.:•• " I ' Р '~

1 j Поиск решения уравнения ах=Ь

х=|Лю6ое число!

Рис. 4.5. Обработка еще одной исключительной ситуации

Согласно введенной формуле сначала проверяется условие В3=0. Если это условие
выполнено, вызывается еще одна условная функция IF() (второй аргумент), в которой,
в свою очередь, проверяется на равенство нулю значение ячейки В4, и если условие
выполнено, возвращается значение "Любое число". В противном случае значение рав-
но "Решений нет". На этом обработка ситуации, когда в ячейку ВЗ введен ноль, закан-
чивается. Если условие В3=0 не выполняется, возвращается значение В4/ВЗ.
Совет. Если формула слишком длинная, можно разбить ее в строке формул на
несколько строк, для чего достаточно навести курсор (в строке формул) в место
разбивки и нажать <Alt+Enter>. Следует использовать левую клавишу <Alt>.
Для решения этой же задачи можно привлечь средства VBA. В частности, напи-
шем простенькую программку, с помощью которой будет вызываться диалоговое
окно, в которое, в свою очередь, будут вводиться параметры уравнения, и после это-
го решение, как и параметры уравнения, заносится в таблицу.
В первую очередь следует создать форму, которая будет запускаться при щелчке на
кнопке в таблице (с кнопкой разберемся позже). Чтобы создать форму, лучше всего
запустить редактор VBA и в окне этого редактора выбрать команду Insert^UserForm.
В результате окно редактора будет иметь примерно такой вид, как показано на рис. 4.6.
После этого следует присвоить форме заголовок. Он вводится в окне свойств
формы как значение свойства Caption. В данном случае в качестве заголовка указано
Finding Solution(s). Кроме того, следует изменить размер формы, сделать ее немного
уже. Далее в верхней части формы размещаем метку, в качестве заголовка которой
указываем уравнение (значение свойства Caption объекта Label"! следует установить
равным ах=Ь). Текст выравнивается по центру (значение поля TextAlign выбирается
равным 2-fmTextAlignCenter). Помимо этого, следует изменить шрифт. Для этого
нужно щелкнуть на кнопке с тремя точками, расположенной в правой части назва-
ния шрифта, который указан в качестве значения свойства Font. В данном случае
был установлен полужирный шрифт размера 14 пунктов. Результат этих действий
можно видеть на рис. 4.7.

Глава 4. Методы вычислительной математики 295


Mic.osofl Visual Basic - Equation ,02 xls (design! - lUtefForm
Me Edit £ew Insert Format Cebug E>un i'loob Sdrf-I

-и > > ii чН «й?

Ж-в funcres ( F U N C R E S . X L A ) ¥
- j$ VBAProject (Equation_02.xls
В -gS Microsoft Excel Objects
в Sheet! (Sheet 1)
i |- (1} Sheet2 (Sheets)
Sheets (Sheets)

(Name) :UserForml
ID SH8000000
BorderColor • waoooooiZEt
Borderayte 0 - ffnBorderStyleN
:
Caption UserForml
Cycle
DrawBuffer
!
0-fmCycleAIIForm-
32pqo
1%; А аы а
Enabled
!
frue 17 ff pi О
Font
ForeCotor
Tahoma
• &H80000012& ^ _j: s •)' i
Height ISO Я:
НфСоптехсЮ 0
KeepScrdlBarsVisibleS - fmScrolBarsBot
!±J
c. 4.6. Создание формы

MiciosoK Visual Basic - Equation 02 «Is [design) - lllseiroiml (UserFotinll

«Э Efa tctt Se« Insert Famw* Bun loote «dd-Ins SBndow

Finding Solutmn(s)

t VBAProject (Equation_02.Hl«) i
:
IS 13 Microsoft Excel Objects
•в Sheetl (Sheetl)
: i esheet2(Sheet2)
;-(} Sheets (Sheets)
ф ThisWorkbook
F; fe> Forms

Jlabdl Label
u. 1-^.^- jI Categorized ij
*nabetlc
| &H80000012&
e
:extID q
66
«Icon (None)
lousePointer 0 - fmMousePointerDefault
Jure (None)
:turePosition 7 - frnPicturePositionAbove
SpecialEffect 0 - FmSpeciaEffectFlat
'ablndex ;0
'abStop False
>_g
2 - fmTextAlignCenter *V
-i

Puc. 4.7. Выбор параметров метки

296 Часть II. Решение задач


В форму также добавляется рамка (исключительно из эстетических соображе-
ний), в качестве ее заголовка указано слово Parameters. Две дополнительные метки
отображают названия параметров (заголовки а = и b = соответственно), которые
вводятся в поля, расположенные справа от этих меток. Шрифт текста для заголовков
меток установлен как полужирный размера 10с выравниванием по правому краю
(значение поля TextAlign равно З-fmTextAlignRight). Размер шрифта для полей уста-
новлен равным 6, чтобы в дальнейшем при вводе значений они полностью отобра-
жались в поле (поля достаточно узкие). Процесс размещения рамки и меток в форме
проиллюстрирован на рис. 4.8.
На рис. 4.9, помимо упомянутых текстовых полей, размещены еще и две кнопки.
Первая имеет заголовок ОК, вторая Cancel. Для большей наглядности шрифт назва-
ний полужирный. Первая кнопка будет использоваться для запуска процесса поиска
решения, вторая — для закрытия формы.
После этого обратим свое внимание непосредственно на таблицу. Вводим тексто-
вые комментарии, которые позволяют ориентироваться в назначении таблицы,
а, кроме этого, главный в данном случае элемент — кнопку, щелчок на которой будет
приводить к отображению созданной формы. Чтобы разместить в таблице кнопку,
понадобится открыть панель Control Toolbox (Элементы управления). Это можно
сделать посредством выбора команды View ^Toolbars^Control Toolbox (Вид1^Па-
нели инструментов^Элементы управления). На этой панели выбирается кнопка
Command Button, после чего курсором определяется место расположения данной
кнопки в таблице и ее размер (рис. 4.10).

- Equation 02 xls [design] - {UteiFoiml (UserFoim)]


«Л EN Edit MOW Insert Fgrmat Qebug loote tW* Bfindow Help

x] Finding SolulKm s
ID В j(5]
t J VBAProject (EquaMon_OZ.xts) ax=b
В %& Microsoft Excel Objects
1 |Q Sheetl (Sheetl)
i 13 Sheel2 (Sheel2)
B] Sheets (Sheets)
45 ThisWortoook
E-t*'S Forms
FS UsarForml ZJ
-

(Labett Labd
Alphabetic | Categorized |
ForeColor _
Height 18 А вЫ'Н
-telpContexHD 0
Left 12 17 ff H Q
Mouselcon (None)
MousePointer 0 - frnMousePolnterDefault
-^_J S U
Picture ;(None) •a
^icturePosition 7 - FmPlcturePosltionAbove
SpecialEffect 0 - fmSpecialEffectFlat
Tablndex 1
:
TabStop False
Tag

hnn

Puc. 4.8. Размещение меток и рамки в форме

Глава 4. Методы вычислительной математики 297


Micmsoft Visual Basic - Equation OZxIs (design) - [Equation _02.xls - liscrl oiml (UseiFotro)l
E*e Edit J0m insert Fa-met QAug Run Tools Add-Ins vgndow - ff X


: I'..! т..'".".
^5 VBAProject (Equ«lon_02j<ls) _»
г.; .«5 Microsoft Excel Objects
(3 Sheetl (Sheetl)
; в Sheet2 (3heet2)
^ B ] Sheets (Sheets)
• в TNsWorkbook
ь =• Г
El 'f-f Forms
ilusorftwil JSl

JGonlmandButtonZ CommandButton
alphabetic (categorized)
(Name) XommandButton2
Accelerator
AutoSize ^alse
Backcoior Q "awoooowrs
BackStyle ; 1 - fmBackStyleOpaque \
'False
; Cancel

Рис. 4.9. Размещение кнопок в форме

E MicfomR Excel - Equation_02.xls


.

|Щ] Sle £tft .;;• Vjew Jnsert Fw-mat loote Qata i^ndow НФ ^ Vy; » _ ff X

; D:S У ч

CommandBut... -^ ^r ~EMBED("Forms.CommandButton.1"."")
: A ; f В \ С i 0 E F G ; H
1 ; Решение уравнения ах=Ь

3 Для начала поиска щелкните на кнопке


. .
о find soluttoiHs)

I
jjfi
141

161
I?]
18";""
_19l
M <' > «\Sheetl/Sheet2/Sheet3y ' HГ
Ready

Рис. 4.10. Размещение кнопки в таблице

298 Часть II. Решение задач


Для того чтобы запрограммировать реакцию кнопки на щелчок мыши, следует
при включенном режиме разработки (на панели Control Toolbox должна быть вы-
брана кнопка Design Mode — кнопка с пиктограммой, на которой изображена тре-
угольная линейка и карандаш) дважды щелкнуть на создаваемой кнопке. В резуль-
тате будет открыт модуль с кодом процедуры, выполняемой при щелчке мышью на
этой кнопке. По умолчанию данная процедура не содержит команд — только инст-
рукции начала и окончания процедуры:
Private Sub CommandButtonl_Click()
End Sub
Между этими инструкциями следует разместить инструкцию загрузки формы
(Load UserForml) и ее отображения (UserForml. Show). В результате код будет
иметь вид, как показано на рис. 4.11.
Замечание. Инструкцию загрузки формы Load UserForml можно и не исполь-
зовать. При вызове метода UserForml. Show, если объект (в данном случае —
форма) не загружен в память, такая загрузка будет выполнена автоматически.
Следует также иметь в виду, что после загрузки в память форма отображаться не
будет. Для ее отображения нужно воспользоваться методом Show.
Помимо этого, в поле Caption следует задать заголовок кнопки: Find solution(s) и
выбрать для него тип шрифта (в данном случае полужирный).

<ffl Be В* Sew insert Fojmat Eebug £un Xods &dd-Ins ^ndow Це<р _ r5 X

И 'ЩИ ^.Й4 **? '" :


'•> i Ln4,Col8 ' .

CommandButtonl т] j Click

Private Suto ComnandButtonl Click()


Ы ^ Microsoft Excel Objects ~*[] Load UserForml
•} Sheetl {a»etl) UserForml. Show
Щ Sheec2 (Sheet2) End Sub
;-в Sheets (Sheets)
Q TNsWorkbook
El £S Forms I
31 UserForml

РННННННВкЗ
|CommandButtonl CommandButton jy
j !
A^habetfc [categorized )
I
(Name) ; CommandButton 1 _*_
Accelerator !
; Autoload False
ftutoSize False
; SackColor П &H80QOOOOF&
:
iS BackStyle 1 - frt^ackStyleOpaque
Caption :Findsolution(s)
Enabled ;
True •
3ffiHBBIAr^' .У
: ForeColor Щ &Н30000012&
i Height ;18.75
Left ~ 26.25^'J
: Locksd True
Mm KfiTrnn fNnnft) ^J i^J_J .. , . :,. , , . , ^

Рис. 4.11. Процедура, выполняемая при щелчке мышью на кнопке в таблице

Глава 4. Методы вычислительной математики 299


На этом этапе, собственно говоря, можно выполнить предварительную проверку
того, как кнопка реагирует на щелчок. Для этого следует сохранить изменения
(на всякий случай) и выйти из режима разработки (в таблице еще раз щелкнуть
на кнопке Design Mode панели Control Toolbox). В этом случае после щелчка мышью на
кнопке появится диалоговое окно, как показано на рис. 4.12.
Главный недостаток, к сожалению, состоит в том, что пользы от вызова формы
на данном этапе никакой — на действия пользователя (имеются в виду щелчки на
кнопках формы) она не реагирует. Так что ее можно либо перемещать по рабочей
области, либо закрыть. Причем для этого следует воспользоваться кнопкой с кре-
стиком на панели названия формы (кнопка Cancel пока что в нерабочем состоянии).
Чтобы форма адекватно реагировала на действия пользователя, следует описать
соответствующие процедуры. В первую очередь это относится к кнопкам ОК и
Cancel. Для этого в редакторе VBA достаточно перейти к форме и дважды щелкнуть
на соответствующей кнопке. Порядок программирования кнопок большого значения
не имеет. Поскольку код для кнопки Cancel проще, с него и начнем. Этот код, если
не считать инструкций начала и окончания соответствующей процедуры, состоит из
одной инструкции UserForml .Hide, в результате выполнения которой форма
убирается с экрана (рис. 4.13).

_J A i. В„_1... С j D F e
1 : Решение уравнения ax=b
3 :Для начала поиска щелкните на кнопке
4 Г ~" I
5 find solutiorM*)
6

I, « » и \Sheet l/She«2/Sheets/ in
Ready

Рис. 4.12. Проверка работы кода — вызов формы

300 Часть II. Решение задач


I>m Miciotolt Visual Basic - Equation 02 «Is - ILIserf oiml (Code)]
ЙЯ fjfe Edit View Insert Format Run Tools 5dd-Ins WSndov» цй>
gj /Г;. В @ $\ - ii • 6£.: Ш rJ W ;'* • i-J Ln is, cd i
jCommoiidButton? Clich
G В: Q Private Sub CoHimandButconi CliclcO
- ^ VBAProject (Equation_02.xls) "jjj Range("A7").FormulaRlCl « "a «"
S-13 Microsoft Excel Objects Range("A8").FormulaRlCl = "b ="
rt e
I Щ Sheetl (Sheetl) Range t "A9") . FormulaRlCl = x "
: ф5Ьее12(5Ьее12) Range("ВТ") .FormulaRlCl = UserFocml .TextBoxl Value
:»Sheet3 (Sheets) Range("B8").FormulaRlCl * UserForml.TextBox2 Value
! Q ThisWorkbook Range ("69") . FormulaRlCl = __
Pzi Forms LinEq(UserForml.TextBoxl.Value, __
3 UserForml .TextBox2.Value}
End Sub

Private Sub CommandButton2_Click()


UaerForml.Hide
End Sub

*j

Рис. 4.13. Программирование кнопок формы


На этом же рис. 4.13 можно видеть и код для процедуры, выполняемой при щелч-
ке на кнопке ОК. Ниже в листинге 4.1 этот код приведен отдельно.

Листинг 4.1. Процедура для кнопки ОК


Private Sub CommandButtonl_Click()
Range("A7").FormulaRlCl = "a ="
Range("A8").FormulaRlCl = "b ="
Range("A9").FormulaRlCl = "x ="
Range( "B7").FormulaRlCl
11
= UserForml.TextBoxl.Value
Range I B8") .FormulaRlCl = UserForml .TextBox2 .Value
Range("B9").FormulaRlCl = _
LinEq(UserForml.TextBoxl.Value, _
UserForml.TextBox2.Value)
End Sub

Первыми тремя инструкциями ячейкам в диапазоне А7:А9 присваиваются тек-


стовые значения, определяющие тот параметр или переменную, для которой в со-
седней, правой ячейке, отображается значение. В качестве значений ячеек В7 и В8
указываются значения текстовых полей (соответственно UserForml.TextBoxl
.Value и UserForml .TextBox2 .Value), в которые пользователь при работе с
формой вводит значения параметров а и Ь. Наконец, в качестве значения ячейке В9,
где должно отображаться решение уравнения, присваивается результат выполнения
функции LinEq ( ) . Это функция пользователя. У нее указано два аргумента (те же
значения полей, что и определяют величину параметров а и Ь). Именно этой функ-

Глава 4. Методы вычислительной математики 301


цией будет осуществляться поиск решения, и эту функцию следует описать. Посту-
пить можно, кроме прочего, так: в окне редактора VBA выбрать команду
1
Insert^Procedure (Вставка *Процедура). Далее в открывшемся диалоговом окне
следует ввести название функции (т.е. LinEq) в поле Name, переключатель Туре
установить в положение Function (Функция) и щелкнуть на кнопке ОК. В результа-
те в модуль с уже существующими процедурами будут добавлены инструкции ини-
циализации функции. После этого их следует отредактировать. Окончательный про-
граммный код функции можно видеть на рис. 4.14.

a Microsoft Visual Basic - Equation O2.«h (design) - il jerFoiml


. £} ete E* Bew Jisert F&mat Eebug Bun jools fldd-lns ffindow ЦЫр
IS'tM-H • •••'• > is щ |B[]'3st ef ' '§ •;? (3 ша
eneial) jrj LinEq
a a .J5j Private Sub ComtnandBuctonl ClicK{)
I VBAProject (Equation. Range("AT").Fo mulaRlCl • "a ="
-rjji Microsoft Excel Object Range("A8").Fo
8|3 Sheetl (Sheetl) Range("A9"J .Fo
-|T|Sheet2(Sheet2) Range("Б7").Fo UserForml.TextBoxl.Value
] Sheet3 (5heet3) Range("B8") .Fo mulaRlCl UserForml.TextEox2.Value
) ThisWorkbook Range("B9") .Fo mulaRlCl
LinEq(UserForml.TextBoxl.Value,
UserForml.TextBox2.Value)
End Sub

Private Sub CommandButton2_Click(J


UsecForml.Hide
' ; ' End Sub__
(Name) CommandButton 1
Accelerator Public Function L i n E q ( a As Single, b As Single)
!
AutoSize False Select Case a
Case is - 0
SackStyle : 1 - fmBackStyleOpaque ^ If b - 0 Then
Cancel False LinEq = "Any number"
Caption OK Е1зе
ControlTipText LinEq * "No solutions"
Default Valse End If
Enabled .True Case Else
=ont Tahoma LinEq *= b / a
ForeColor Я &Н80000012& ';! End
,d Select
Height 24 id Function
"I End
-telpContextID 0 v|
aajLLJ
Puc. 4.14. Программный код функции поиска решения
На этом коде полезно будет остановиться подробнее — он приведен в листинге 4.2.

Листинг 4.2. Код функции LinEqQ


Public Function LinEq(a As Single, b As Single)
Select Case a
Case Is = 0
If b = 0 Then
LinEq = "Any number"
Else
LinEq = "No solutions"
End If
Case Else
LinEq = b / a
End Select
End Function

302 Часть II. Решение задач


Основу программного кода составляет оператор выбора Select Case. В этом
операторе проверяется значение первого аргумента функции (т.е. переменной а).
Следует сразу отметить, что оба аргумента функции объявлены как такие, что имеют
тип числа с плавающей точкой (инструкция As Single). Так вот, если первый пара-
метр равен нулю (условие Is = 0), вызывается условный оператор If Then Else.
Проверяемым в этом операторе условием является равенство нулю второго аргумента
(а именно b = 0). Если это условие выполнено, в качестве значения функции возвра-
щается сообщение "Any number" (инструкция LinEq = "Any number"). В про-
тивном случае значение функции равно "No solutions" (инструкция LinEq =
"No solutions"). На этом условный оператор заканчивается. Далее в операторе
выбора после инструкции Case Else указана инструкция LinEq = b / а. Она вы-
полняется только в том случае, если первый аргумент функции отличен от нуля. Это и
есть код функции поиска решения. После его создания остается только протестировать
таблицу и программный код на корректность работы.
После щелчка на кнопке Find solution (s) открывается диалоговое окно созданной
ранее формы. Если в поля этого окна ввести значения 2 и 3 соответственно, а затем
щелкнуть на кнопке ОК, результат будет таким, как показано на рис. 4.15.
Результат вполне ожидаемый. На рис. 4.16 показано, что произойдет, если ввести
числа 0 и 3.
На рис. 4.17 оба параметра уравнения нулевые, поэтому уравнение превращается
в тождество. Программа справляется и с этой ситуацией.
Здесь хочется остановиться на некоторых довольно важных моментах, касаю-
щихся как функциональности самой созданной программы, так и целесообразности
использования продемонстрированного подхода.

Rte gat
с ••& в ч.

в
£_i _ A—J. - L - J? I Р...: \
1 Решение уравнения ах=Ь
Ш ' _L : ' ; ' j _J
3 Для начала поиска .щелкните на кнопке

£ . FiKi J.u4utiorK»i "


6

BE з
7Па= 2

9 »= 1.5'
10
11
12"

|М < > И\Shet*l/SwttXSheets


Ready,

Рис. 4.15. Проверка работы программы

Глава 4. Методы вычислительной математики 303


__J A j.B В л С .; D ; E i F j G j .H i I.. • ; J
1 Решение ураЕшения ax=b

| 3 Для начала поиска щелкните на кнопке

IM < > H \Sheet 1 / SheeK / Sheets /

Рис. 4./б. Уравнение решений не имеет

В] £te E* few Jmert Farnrt I( ~-S x


с & у 14 в а У '

_j A i в ^ j ....... с i
1 Решение уравнения ax=b

Для начала поиска щелкните на кнопке

Рис. 4.17. Решение — любое число

Во-первых, несложно заметить, что после щелчка на кнопке ОК форма с экрана не


исчезает. Она будет скрыта только при щелчке на кнопке Cancel. Иногда это удобно, а
иногда и нет. Удобно это в тех случаях, когда приходится много раз подряд находить
решения для разных значений параметров (разумеется, не для такого уравнения!).
Если нужно, чтобы форма убиралась с экрана, достаточно разместить в обработчике
события (щелчка) кнопки ОК в самом конце инструкцию UserForml. Hide.
Во-вторых, при вызове формы (до тех пор, пока она не закрыта) работа приложения
Excel заблокирована, т.е. при открытой форме внести изменения в ячейки таблицы не-
возможно, что тоже не всегда хорошо (хотя и не всегда плохо). Наконец, в функции

304 Часть II. Решение задач


поиска решения совершенно не предусмотрена обработка исключительных ситуаций
(например, когда поле оставлено незаполненным или туда введено не число).
Следует, однако, иметь в виду, что данный пример достаточно простой и иллюстра-
тивный, и в этом смысле, думается, цель оправдывает средства. Это же относится и к ис-
пользованию в программном коде функции LinEg () оператора выбора Select Case.
С не меньшим успехом там могло быть использовано два условных оператора.

Встроенные утилиты Excel для решения уравнений


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

Пример4.^Решит^равнениех -5х + 6 = О

Сразу следует отметить, что это уравнение в качестве решений имеет значения 2
и 3. Их и будем искать. На рис. 4.18 представлен рабочий лист книги Excel, в кото-
ром будет осуществляться поиск решения.

В4 - •••* =ВЗ«2-5*ВЗ-НЗ
1. А \- ...в.. Л с ; А о ; Е...
Поиск решения уравнения х 2-6х+6»0
Решение x -
Левая част
уравнения I 1
2[

Рис. 4.18. Заполнение таблицы для после-


дующего поиска решения

В ячейку В4 вводим формулу =ВЗА2-5*ВЗ+6. Если теперь в ячейку ВЗ ввести число,


то в ячейке В4 будет отображаться значение левой части уравнения при значении пе-
ременной х, определяемой числом в ячейке ВЗ. Следовательно, задача сводится к тому,
чтобы подобрать такое значение в ячейке ВЗ, при котором значение ячейки В4 станет
равным нулю. Можно конечно, подбирать число в ячейке ВЗ наугад. Но это занятие
весьма сомнительного характера. Разумнее воспользоваться встроенными утилитами
Excel. В частности, в ячейку ВЗ вводим начальное значение корня. Желательно, чтобы
оно поближе располагалось к реальному решению. На рис. 4.18 это значение равно 1.
При этом значение полинома, расположенного в левой части уравнения, равно 2.
Далее выбираем команду Tools^Goal Seek (Сервис^Поиск решения). В результате
будет открыто одноименное диалоговое окно (рис. 4.19).
В этом окне в поле Set cell (Назначить ячейку) следует указать ту ячейку, значе-
ние которой будет проверяться в процессе поиска решения. В данном случае это
ячейка В4. Признаком того, что корень найден правильно, будет, как уже отмеча-
лось, равенство ее значения нулю.
В поле То value (Значение) указывается число (в рассматриваемом примере это
0), к которому приравнивается значение упомянутой ячейки. Наконец, в поле
By changing cell (Изменять ячейку) указывают ту ячейку, значение которой следует
изменять в процессе поиска решения (ячейка ВЗ). После этого необходимо щелк-
нуть на кнопке ОК. Результат показан на рис. 4.20.

Глава 4. Методы вычислительной математики 305


Совет. Чтобы не вводить адреса ячеек в поля диалогового окна Goal Seek, можно
поместить на нужную ячейку курсор и щелкнуть мышью. В результате в поле
появится ссылка на эту ячейку.
Как можно заметить, корень найден с довольно неплохой точностью. Для под-
тверждения следует щелкнуть на кнопке ОК в диалоговом окне Goal Seek Status
(см. рис. 4.20). Однако найденный корень — только один из двух корней уравнения.
Второй корень, тем не менее, также может быть найден описанным выше методом.
Для этого достаточно ввести другое начальное значение для решения в ячейку ВЗ.
В частности, если ввести в эту ячейку начальное значение 4, найдем и второй корень
уравнения. Ситуация проиллюстрирована на рис. 4.21.

A
-j: . .; t. : ' •'" л в
: Пг.ь-п решения уравнения х 2-вх+6 С

Рис. 4.19. Диалоговое окно Goal Seek

В4 f, =ВЗ-2-5*ВЗ+6
: А ; IL_J С ! ..D I i '-:
iПоиск решения уравнения х*2-5х+6=0
Решение х - 1.999961
Левая часть
уравнения I 3.91 Е-05

J6J
7 Goal SeeWng MthCrttM
•в"; found a solution.
9
' Target value: 0
Current value: . 3.9080JE-05
12

ill
Puc. 4.20. Результат поиска решения уравнения

, f, =B3«2-6*B3-t6
:
........ ; _: ....... A j 8 l С ; .D E,
. jj Поиск решения уравнения хА2-5х+б=0
........ ........
Решение к

•i
Левая часть
уравнения
5

Рис. 4.21. Второй корень уравнения

306 Часть II. Решение задач


Понятно, что выше была рассмотрена достаточно простая ситуация. И даже в
этом случае от выбора начального приближения зависит очень многое. Когда урав-
нение более сложное, вопрос выбора корректного начального приближения стано-
вится намного острее. Как правило, бывает достаточно выделить интервалы, на ко-
торых размещены корни уравнения. Если не прибегать к методам аналитического
исследования функциональных зависимостей, то самый простой, наглядный и эф-
фективный метод заключается в построении графика соответствующей зависимо-
сти. А графики, как известно, достаточно легко строятся в Excel. Ниже рассматрива-
ется пример, в котором при поиске решения, кроме прочего, используется метод
предварительной оценки решения графическим методом.

Это уравнение имеет бесконечное число решений. Поэтому выбор начального


приближения для корня имеет первостепенное значение.
Чтобы иметь представление о том, как примерно распределены корни уравнения,
построим графики двух функций: у(х) - х и у(х) = atg(;c). Решения уравнения тогда
определяются точками пересечения графиков соответствующих функций. Ниже на
рис. 4.22 приведен соответствующий график для значения а = 0,5.

Е ,
[75
76
Поиск решения


i

3 -

I
<N 04
t О
a> *-

Рис. 4.22. Графическое представление решения уравнения

Прежде чем приступить непосредственно к поиску решения, следует сделать не-


сколько замечаний относительно способа построения самого графика, поскольку в
данном случае этот процесс имеет свои особенности. В первую очередь это связано с
тем, что функция тангенса имеет точки разрыва, в которых она обращается в бесконеч-
ность. Эти точки определяются, как известно, условием хп = 71/2 + т, где п может быть
любым целым числом (в том числе и отрицательным). Причем с приближением к точ-
ке разрыва слева функция стремится к плюс бесконечности, а с приближением к точке

Глава 4. Методы вычислительной математики 307


разрыва справа — соответственно, к минус бесконечности. Если попытаться отобра-
зить в Excel функциональную зависимость для тангенса обычными методами (т.е. так,
как описывалось ранее), то она построена будет, но в окрестности точек разрыва левая
от разрыва точка будет соединена прямой с правой от разрыва точкой, что не совсем
корректно. Здесь имеются в виду те точки (значения), по которым строится график
функции. Кроме того, такие значения, при адекватном выборе шага табулирования
функции, будут достаточно большими (по абсолютной величине), в результате чего
прочие графики (если таковые имеются) будут на этом фоне невидны или слабо раз-
личимы. Для решения этой проблемы применим небольшую хитрость.
Во-первых, создаем столбец с данными для значений аргумента функции танген-
са у(х) = Q,5lg(x) (здесь и далее значение параметра а принято равным 0,5). Эти же
данные одновременно будут служить и табличными значениями линейной функции
у(х) =х. Результат показан на рис. 4.23.
Прежде всего, в ячейку F2 вводим значение для параметра а. Как отмечалось вы-
ше, это 0.5. Впоследствии, когда таблица будет окончательно завершена, достаточно
поменять значение в ячейке F2, и все вычисления для нового значения, включая и
график, будут обновлены автоматически. Непосредственно данные для аргумента
функции и ее значения можно вводить, например, следующим образом.
В ячейку В2 вводится формула =$F$2*TAN($A2). Эта формула впоследствии бу-
дет копироваться, поэтому нужно обратить особое внимание на использование абсо-
лютных и относительных ссылок. Так, ссылка на ячейку F2 обязательно должна
быть абсолютной, поскольку это ссылка на коэффициент в уравнении, и он для зна-
чений функции в разных точках должен быть один и тот же. Кроме того, в аргументе
тангенса ссылка такая, что при ее копировании может меняться только индекс стро-
ки, но не столбец ячейки, на которую эта ссылка выполнена (это, как известно, сме-
шанная ссылка). Зачем это нужно, станет понятно несколько позже.

В2 f, =IFI2*TAN($A2)
r А 8 | С i 0 ГЖ1ГЗ f; i ?.._.
i '" х" а'1я(х|
и °1
а
01 „Ж.
,3_; 0.1570В 0.079192 1 \
Т"' 0.31415Э 0.16246
Т1 0.471239 0.254763-
В : 0.62831 Э 0!363271 I
7 : 0.785398 0.5
I 8 0.942478 0.688191 \ \
"9 i 1.099557 0.981306
W 1.256637 1.538842
11 1.413717 3.156876
12 1570796 8.16Е+15: 1 | [
13' 1.727876 -3.15688:
14' 1.884956 -1.53884
15 2.042035 -0.98131
Тб- 2199115 -0.68819
17 2.356194 -0.5
' \ ; '
18 " 2.513274 -0.36327
Те"; 2 670354 -0.25476
20 ' 2.827433 -6.16246;

Рис. 4.23. Начало табулирования функциональной


зависимости

308 Часть II. Решение задач


Что касается данных в столбце для аргументов функции, то первое значение, с
которого начинается отображение графиков, равно нулю (ячейка А2). В следующую
ячейку (т.е. в ячейку A3) вводим формулу =А2+Р1()/20 (рис. 4.24). Если теперь выде-
лить диапазон А2:АЗ и с помощью маркера заполнения распространить выделение
на область А2:А72, то соответствующий диапазон будет заполнен числовой последо-
вательностью, начиная со значения 0 с шагом, равным одной двадцатой от числа п
(это примерно 0,15708). Поскольку ссылка в последней формуле относительная, то
при ее копировании она будет указывать на ячейку, расположенную на одну строку
сверху по отношению к текущей (т.е. к ячейке, где находится формула).

Рис. 4.24. Заполнение столбца со значе-


ниями аргумента функции

Шаг дискретизации данных выбран не случайно. Как известно, тангенс — перио-


дическая функция, и период ее равен п. Таким образом, шаг дискретизации равен
одной двадцатой периода функции. Как уже отмечено выше, значения аргумента
внесены в диапазон ячеек А2:А72, и это значит, что функция рассматривается для
положительных значений аргумента на интервале, составляющем примерно три с
половиной периода функции, начиная с нуля.
На следующем этапе нужно выделить столбец В, и, используя маркер заполне-
ния, скопировать соответствующие данные в столбцы С, D и Е (рис. 4.25). При этом
данные в столбцах с В по Е должны быть идентичными.

Рис. 4.25. Заполнение столбцов С, D и Е

Глава 4. Методы вычислительной математики 309


План последующих действий весьма прост. Столбец В будем использовать для ото-
бражения графика функции тангенса на интервале от 0 до я/2 (это первая особая точ-
ка). В этом столбце оставим значения функции только для аргумента, попадающего в
указанный диапазон. Все остальное удаляем. Другими словами, значения в диапазоне
В2:В12 оставляем без изменения, а вот данные из диапазона В13:В72 удаляем.
Столбец С используем для отображения по записанным в нем данным графика функ-
ции тангенса (с соответствующим множителем, разумеется) на интервале аргумента от
71/2 до Зтс/2. Поэтому в столбце С оставляем значения функции в диапазоне С13:С32, а все
остальное удаляем (речь идет о данных в диапазонах С2:С12 и СЗЗ:С72).
Аналогично, по данным из диапазона D33:D52 строим график на интервале от
Зя/2 до 5л/2, а по ячейкам диапазона Е53:Е72 функция отображается при значениях
аргумента, лежащем в интервале от 5л/2 до 7л/2. После выполнения всех этих дейст-
вий таблица будет иметь примерно такой вид, как показано на рис. 4.26.
Внимание! Чтобы отобразить таблицу в рабочем окне полностью, некоторые
строки таблицы были скрыты. На это стоит обратить внимание. В действительно-
сти число строк таблицы существенно больше.

Далее по введенным таким образом в таблицу данным следует построить графи-


ческие зависимости. Делается это практически так же, как описывалось в предыду-
щих главах — в Excel можно строить графики, используя таблицу и со свернутыми
строками. При этом процедура, по сравнению со стандартной ситуацией, практиче-
ски не претерпевает изменений. Так, следует выделить диапазон данных, по кото-
рым будет строиться график, и затем, запустив мастер создания диаграмм, выбрать
нужный тип и подтип диаграммы (рис. 4.27).

Рис. 4.26. Вид таблицы после внесения в нее изменений

310 Часть II. Решение задач


Me £<* View Insert Fo/mat Jffob Date Window Help
;;
п:о*. a a^a a c л - s <? --—• •;
fan! - . 1 0 ...; в ./ с *шиШ3?

О
',0.15708
1.413717
1,57079В
1,727876
i.884956
'4.5553»
4.712389
.4.869469
5.026548
7.6Э6902
7.853982
8.011061
8.168141
10.83843
10.99557

Н 1 Vw\Sheetl/Sheet2,/Sheets /
Ready , : "'••' ' MJM ' f:"

m^^dmmms® •!&№ШШ iSmF


Puc. 4.27. Создание графической иллюстрации

Однако если диаграмма создается по таблице, содержащей свернутые строки или


столбцы, после того, как диаграмма размещена в рабочем документе, ее следует настро-
ить, т.е. установить режим отображения данных в скрытых ячейках (если точнее, отме-
нить режим отображения данных только в видимых ячейках). Для этого диаграмму нуж-
но выделить, после чего выбрать команду Tools'^Options (Сервис1* Параметры) и в от-
крывшемся диалоговом окне Options перейти во вкладку Chart (Диаграмма) (рис. 4.28).

Cotor j International j 5ave j Error Checttng } Spefing | Securfty


View | CafcJatton j ЕЛ j General j Transition | CustomUsts Chart
Active chart
Hot empty сеЬм: <• К* plotted (leave gaps)

:ChartMps

Puc. 4.28. Вкладка Chart диалогового окна Options

Глава 4. Методы вычислительной математики 31'


На этой вкладке следует отменить режим отображения данных только в несвер-
нутых ячейках, для чего необходимо сбросить флажок опции Plot visible cells only
(Показывать только видимые ячейки). Следует также убедиться в том, что в разделе
Active chart (это тот же раздел, где находится упомянутая только что опция) пере-
ключатель Plot empty cells as (Пустые ячейки отображать как) установлен в поло-
жение Not plotted (leave gaps) (He отображать) (см. рис. 4.28).
Замечание. Если в некоторых ячейках диапазона, по которому строится диаграмма,
отсутствуют данные и при этом установлен переключатель Not plotted (leave gaps),
то в соответствующих местах диаграммы будет оставлено пустое место (что в рас-
сматриваемом примере и необходимо). Помимо этого, можно было бы установить
данный переключатель в положение Zero (Нуль) (в этом случае в качестве зна-
чения функции принимается нуль) или Interpolated (Интерполирование) (выпол-
няется интерполяция по соседним точкам).
После создания диаграммы она, скорее всего, будет иметь весьма неприглядный
вид в том смысле, что на фоне катастрофически больших значений тангенса в окрест-
ности особых точек работать с такой диаграммой практически невозможно. Поэтому
следует установить разумный масштаб отображения данных по вертикальной оси. Для
этого следует выделить данную координатную ось, и, после щелчка правой кнопкой
мыши, выбрать из раскрывающегося списка команду Format Axis (Форматировать
ось). В открывшемся одноименном диалоговом окне следует перейти ко вкладке Scale
(Масштаб) и установить максимальное значение для вертикальной координатной оси
равным, например, 10, а минимальное, скажем, -1 (рис. 4.29). Все остальные настройки
можно не менять — они будут откорректированы автоматически.
В остальном создание графика никаких особенностей не имеет. Следует задать
название диаграммы (в данном случае это Поиск решения), убрать серый фон, из-
менить толщину и цвет линий графиков и т.п. Все эти приемы описывались ранее, во
второй главе.

Patterns ПИИТ] j f=ont | Number | Jtfgnment i


Vak»(Y) axis «ate
Auto __
Г" г4йтит: j-1
Г" Ma^fnum: ••[15-
I? Major ur*:
|0.4
Category (X) axis
Crosses at: p]

Г~ XogarRhmic scale
Г~ Values in reverse order
Г* Category (X) e*& crosses at gjaximum value

Puc. 4.29. Изменение масштаба отображения

312 Часть II. Решение задач


Теперь разумно перейти непосредственно к поиску решения. Для этого в одну из яче-
ек таблицы (пускай это будет ячейка В2 второго рабочего листа книги Sheet2) нужно
ввести формулу =Sheet1 !$F$2*TAN(Sheet2!B1 )-Sheet2!B1. После этого в ячейку В1 сле-
дует ввести начальное значение (в данном случае 1.4), и с помощью команды Goal Seek
найти корень, расположенный в пределах изменения аргумента от 0 до л/2 (рис. 4.30).
Если, тем не менее, попытаться ввести значение из другого диапазона, скажем, зна-
чение 7,8, приходящееся на диапазон изменения аргумента от Зтг/2 до 5п/2, то получим
несколько обескураживающий результат — в качестве решения будет указано близкое
к нулю значение аргумента, что явно не соответствует первоначальным предположе-
ниям об интервале, на котором расположен искомый корень (рис. 4.31). И хотя най-
денное значение корнем все-таки является, очевидно, что этот результат неприемлем.

В2 ; =Sheet1!JFJ2*TAN(Sheet2!B1)-Sheet2!B1
I A g В I
Г) х"- 1.1В55В1
j2J а'1я1х)-х=П.41Е-05|
3 i

-5J
S3
7 I
:
]Ц :

10'
11
14 « > H\5heetl X*heet2 / Sheets /

Puc. 4.30. Поиск решения уравнения с помощью команды


Goal Seek

В2 yb =Sheet1!$F$2*TAI\l(Sheet2IB1)-Sheet2!B1
:

•А . i В:.. | С • D ' ! E , F G
1 ' х"- -1 Е-05
.2] л'1д(х) * =1 5.09Ё-06Д
3 ' "il !
4
1 | j

! • 1.

и < f n\Shertl \SheetZ / Sheets /" ~ '"! 7


"1<l :
Рис. 4.31. Пример некорректно найденного решения

Отсюда напрашивается очень простой вывод: чтобы быть абсолютно уверенным


в правильности решения, следует контролировать процедуру его поиска. Возможно-
сти Excel в плане поиска решений алгебраических уравнений весьма велики, однако
это ни в коей мере не может служить поводом для их непродуманного использова-
ния. В этом случае проблема состоит в том, что используемая для нахождения реше-
ния итерационная процедура для данной функциональной зависимости непримени-
ма. Более детально о возможностях использования тех или иных методов при реше-
нии всевозможных задач, и, в первую очередь, при решении алгебраических
уравнений, речь еще будет идти. В частности, чтобы найти корни данного уравнения
на произвольном интервале, можно воспользоваться методом половинного деления

Глава 4. Методы вычислительной математики 313


(этот метод описывается далее). Здесь же рассмотрим более простой пример,
для решения которого применимы встроенные процедуры Excel. Попытаемся найти
решение уравнения, у которого в правой части вместо тангенса стоит косинус.

[Пример4.4. Решить
LwX«H*-_jL«M..mHHW*_MM««»Mi

Это уравнение имеет единственное положительное решение, которое лежит в ин-


тервале значений аргумента от 0 до тс/2. Желающие могут убедиться в этом, построив
графики функций у(х) = х и у(х) = cos(;t). Можно построить график одной функции
у/(х).— cos(*) - x, и убедиться, что эта функция пересекает ось абсцисс (горизон-
тальная координатная ось) в единственной точке. Именно такой график представлен
на рис. 4.32.

P^c. 4.52. Определение количества и расположения корней уравнения с помощью графика

Для нахождения корня уравнения можно использовать циклическую ссылку. Идея


циклической ссылки состоит в том, чтобы в формуле использовать ссылку на ячей-
ку, в которой эта формула размещена. По сути, если вводимая формула описывает
некоторую функцию f(x), то использование в качестве аргумента этой функции
ссылки на ячейку, где размещена формула, эквивалентно поиску решения уравнения
x=f(x) путем выполнения последовательных итераций согласно соотношению
*,>i =.ЛХХ т-е- следующее итерационное значение аргумента jcw получается, если в ка-
честве аргумента функции указать итерационное значение х. аргумента на предыду-
щем шаге (этот метод будет рассматриваться далее). Здесь же следует отметить, что
метод работает далеко не со всякой функцией (абсолютное значение производной на

314 Часть II. Решение задач


интервале поиска решения должно быть меньше единицы), но в данном случае его
использовать можно. Однако прежде чем обратиться к циклической ссылке, следует
выбрать команду Tools<=>Options, перейти в раскрывшемся диалоговом окне во
вкладку Calculation (Вычисления), после чего установить на ней флажок опции
Iteration (Итерация) (рис. 4.33).

li; Cotar. •/:]• IntematiQRd j Save j EnorOwd*tQ ] 2^Ид j Securfty


, View Calculation | Ш ;| General j TransSon | Custom Usts 1 1 Chart

СаЫайоп

f Automatic except tables 17 ;-.-. """""".' """"


Cakgwet

Pperatfofv!
: Maximum ftgratioas; J 100 Maximum фалде: jo.0'?l

WorifboOk Options :;
P ,tftxtete reraote references & Save extetnallNi values

Г" grectaon as dsptayed 1 Accet^ wfeds и formulas


f" 1904 dsfte system

Г^мр^с^ 1
Puc. 4.33- Установка режима выполнения циклических
итераций

Там же можно видеть два весьма важных и полезных поля. Первое — это поле
Maximum iterations (Максимальное число итераций), его значение по умолчанию
равно 100. Оно определяет максимальное количество итераций, после которых Excel
прекращает процесс поиска решения. В поле Maximum change (Максимальное из-
менение) значение по умолчанию равно 0.001. Оно задает границу приращения зна-
чения при выполнении итерационного процесса. Процесс продолжается до тех пор,
пока приращение вычисляемого значения не станет меньше указанной величины.
Если необходимо увеличить точность вычислений, можно изменить соответствую-
щие значения (увеличить число итераций и/или уменьшить значение границы при-
ращения). После того как эти операции выполнены, рабочий документ готов к ис-
пользованию циклических ссылок при вычислениях.
Замечание. Если попытаться ввести циклическую ссылку при сброшенном
флажке Iteration (Итерация), появится сообщение об ошибке. И хотя это не са-
мый безнадежный вариант, лучше такого не допускать. Дело в том, что Excel,
если можно так выразиться, весьма болезненно реагирует на всякого рода рекур-
сии и перекрестные ссылки. Они, как правило, интерпретируются в том смысле,
что пользователем была допущена ошибка и ее следует исправить. Очень часто
это именно так и есть, но "часто" все же не значит "всегда".

В ячейку ВЗ вводим формулу =COS(B3). После того как формула введена и на-
жата клавиша <Enter>, в ячейке ВЗ будет отображено приближенное решение урав-
нения. На рис. 4.34 ячейка с этим приближенным решением активна, поэтому в
строке формул можно видеть соответствующее выражение.

Глава 4. Методы вычислительной математики 315


Чтобы сравнить, насколько точным является полученное значение, в ячейку В4
вводим все ту же формулу =COS(B3). При этом речь о циклической ссылке уже не
идет, поскольку формула вводится в ячейку, отличную от ячейки ВЗ. На рис. 4.35
показан результат выполнения такой операции.
Как несложно заметить, после того, как было вычислено значение для косинуса,
изменилось и значение в ячейке ВЗ. Причина проста и состоит в том, что при вводе
формулы в ячейку В4 производятся вычисления для всех ячеек таблицы. В резуль-
тате этих вычислений, согласно итерационной процедуре, уточняется и значение в
ячейке ВЗ. То значение, что приведено в этой ячейке на рис. 4.35, не является верхом
совершенства. Его можно уточнить еще. Для этого достаточно нажать клавишу
<F9> (результат представлен на рис. 4.36).
Если сравнить рис. 4.35 и рис. 4.36, можно заметить, что то значение, которое было
в ячейке В4 на рис. 4.25, теперь в точности совпадает со значением ячейки ВЗ на
рис. 4.36. Это не случайно. Ведь согласно итерационной процедуре, на каждом сле-
дующем шаге значение в ячейке ВЗ получается, если вычислить косинус от текущего
значения этой же ячейки. Но это есть не что иное, как значение ячейки В4. Поэтому
при каждом нажатии клавиши <Е9> значение ячейки В4 "перепрыгивает" в ячейку ВЗ.
Если нажимать клавишу <F9> достаточно долго, можно прийти к ситуации, ко-
гда обе ячейки ВЗ и В4 содержат абсолютно одинаковые числа и последующее нажа-
тие на этой клавише видимых последствий иметь не будет. Именно такая ситуация
представлена на рис. 4.37.

=С05(ВЗ) B4 q, =cos(B3)
J А [__В __ J С, : 0
; Решение
'
уравнения
.......
x=cos(x) t j Решение уравнения x=cos(x)
""2
3j x-l 0.7337Б0321 x -"" 0738937757
COSX- cos|x) -I 073918441

Puc. 434. Приближенное решение Рис. 4.35. Проверка точности решения


уравнения
В4 =COS(B3) В4 =COS(B3)
в В
1 j Решение уравнения x=cos(x) | Решение уравнения x=cos(x)
3 х-' ' 07391844'' "х- : " 0739085133'
4 | сот(х)-| 073901B262I cos(xl-l 07390851331

Рис. 436. Уточнение решения Рис. 437. Решение найдено

Это достаточно элегантный способ поиска решения, однако еще раз следует на-
помнить, что применим он далеко не к каждому уравнению. В частности, в случае
тангенса напрямую этот метод использовать не удастся (можно найти только нуле-
вое решение). Для поиска решения на каком-то конкретном интервале приходится
искать иные подходы. Вообще же идея перекрестных (циклических) ссылок находит
достаточно широкое применение.

316 Часть II. Решение задач


Системы уравнений
В качестве примера решения систем уравнений в данном разделе рассмотрим
системы линейных уравнений. Такие системы могут решаться достаточно просто в
Excel с использованием встроенных функций для работы с матрицами.
Как известно, система линейных уравнений может быть представлена в виде

ч
х, = 6,, где коэффициенты а~ образуют матрицу А, коэффициенты в правой части
i'
уравнений Ь: формируют вектор В, и индекс i (как и индексу) пробегает значения от 1
до N (т.е. матрица А является квадратной — будем рассматривать именно такие систе-
мы), а N, в свою очередь, определяется числом неизвестных переменных xf относи-
тельно которых решается система. Эта же система может быть записана в матричном
виде как АХ = В, где через X обозначен вектор неизвестных переменных. Решение такой
системы, опять же в матричном виде, может быть представлено как X = А~'В, и здесь
1
через А" обозначена матрица, обратная к А. Другими словами, по определению матри-
ца А"' такая, что А~'А = Е, а Е — единичная матрица (все диагональные элементы равны
единице, все прочие элементы — нулю). Поэтому формально процедура поиска реше-
ния системы линейных уравнений сводится к отысканию обратной матрицы и пере-
множению матрицы и вектора. Рассмотрим пример.

+ z = 6, 2х- у + z = 3 и Зх

Для решения этой системы в Excel в рабочую таблицу следует ввести все данные,
относящиеся к этой задаче: матрицу коэффициентов системы (т.е. матрицу А),
а также вектор со значениями правых частей уравнений (вектор В). Такая таблица с
внесенными в нее данными показана на рис. 4.38.
Е11 -r f,
J A В 1 ..С j 0 • E_ J .F .
1 i Решение системы линейных уравнений
"2 ;
з ; Г
4 "
_,..,
1 1 1
6 А- 2' -1 1
7 з *
1 ' -i ' '"* '
"8
~9 "
10? 6
ла в- 3 1 1
111
13
2
! ...
14 ;

Рис. 438. Таблица с начальными данными

Прежде чем непосредственно приступать к вычислениям, разумно выполнить не-


которые вспомогательные процедуры. Имеется в виду возможность присваивать от-
дельным ячейкам и диапазонам персональные названия. Это бывает весьма удобно,
особенно при решении математических задач, когда существенно проще работать с
названием диапазона, чем каждый раз указывать такой диапазон напрямую.
Во-первых, это снижает вероятность ошибки, а, во-вторых, если названия подобраны
удачно, по ним легче ориентироваться в процессе выполнения вычислений.

Глава 4, Методы вычислительной математики 317


В данном случае присвоим диапазону B5:D7, т.е. тому диапазону, куда введены
коэффициенты системы, название А (оно совпадает с названием матрицы коэффи-
циентов). Для этого диапазон следует выделить, в поле названий ввести символ А,
после чего нажать клавишу <Enter> (рис. 4.39).
Точно так же поступим с вектором правых частей уравнений. Выделяем диапазон
ячеек В10:В12 и присваиваем ему название В (рис. 4.40).
Теперь можно определить обратную матрицу. С этой целью выделяем диапазон
G5:I7, после чего в строку формул вводим формулу =MINVERSE(A) (рис. 4.41).

j А Г> -В F 'С Т D I E
I Решение системы линейных уравнений

Рис. 4.39. Определение названия для диапазона


ячеек (матрица коэффициентов)

1, А , i Bj [ с I D :
е ;
Решение системы линейных уравнений

А-

i; -'• i

Рис. 4.40. Название для вектора правых частей


уравнений системы
=MINVERSE(A,)|
1 : Решение системы линейных уравнений

Рис. 4.41. Определение обратной матрицы

318 Часть II. Решение задач


Для того чтобы формула была применена именно к диапазону ячеек, необходимо
нажать комбинацию клавиш <Ctrl+Shift+Enter>. В результате получим матрицу,
обратную к той, что была указана аргументом в функции обращения матриц
MINVERSEQ (рис. 4.42). Сразу же зададим для найденной таким образом матрицы
название (в данном случае это будет 1А).
После этого осталось только найти произведение обратной матрицы iA и вектора,
который задан массивом В. Выделяем диапазон G10:G12 и вводим в строку формул
выражение =MMULT(iA,B). После этого, как и на предыдущем шаге, следует нажать
<Ctrl+Shift+Enter> (рис. 4.43).
В результате проделанных вычислений (рис. 4.44) получаем вектор, элементы
которого записаны в ячейки диапазона G10:G12 и определяют последовательно зна-
чения переменных х (ячейка G10), у (ячейка G11) и z (ячейка G12).
Безусловно, на этом методы решения систем уравнений не исчерпываются. В ка-
честве альтернативы поиска обратной матрицы можно рассмотреть метод определе-
ния решений по формулам Крамера. Так, если система уравнений имеет вид АХ = В,
то значение переменной xt может быть найдено согласно соотношению *; = А/А, где А
есть определитель (детерминант) матрицы А, а А, тоже детерминант, но только мат-
рицы Л,, которая получается из матрицы А, если в ней заменить i-й столбец вектором
коэффициентов В правых частей системы уравнений. Для иллюстрации применения
данного метода рассмотрим ту же систему уравнений, что и в предыдущем случае.

f, (=MINVERSE(A))
....А i[ ...в j_ __с_ :L о.... Т Е.,; L
Решение системы линейных уравнений

' ; i
Ill III II
2 -1 1
"з 1 '-Т

Рис. 4.42. Для обратной матрицы задается название

MMULT 6, =MMULT(iA,B)
А в:^
..:.' X . С J_ р_.. :jxE^J,.v.J:>i.; &~ ! н i j
1 Решена е систе!лы линейных ур авнений
/
3
4
}
В 1 1 1 i 0: 0.2 0.2
6 2 -Г ' 1 А'(-1). 0.5 -0.4 0.1
7 " А= з 1 л" !
0.5 0.2. ' -0.3
8
) i -
!у .
10 6 -T(iA,B) J !. ..
1 В- 3 А'(-1)В-
Щ 2
13

Рис. 4.43. Вычисление произведения матрицы и вектора

Глава 4. Методы вычислительной математики 319


G10 J» /1 j=MMULT(iA,B)}
j A 8 С i D , E ; F i S . H 1 : J
1 'Решени e смете мы линейных уравнений : ;
[ [ : i
1 1 1 0 02 0.2
l

§ 2
1
-1
1
1
-1
i A«(-1J-1 0.5i
0.5-
-0.4:
0.2:
D.I
-0.3
:
j
I i
6
В- 3 AM-DB-v 2
2

Puc. 4.44. Результат решения системы уравнений

Выполним ввод данных и начальное присвоение названий в полной аналогии к


предыдущему случаю (до того места, где вычисляется обратная матрица). Вместо вы-
числения обратной матрицы, однако, вычислим определитель матрицы А (формула
=MDETERM(A)). На рис. 4.45 показан результат вычисления этого определителя.
Последующая задача представляется более сложной, поскольку предстоит соз-
дать три новых матрицы, для которых затем будут вычисляться определители, а по
этим определителям уже непосредственно отыскиваться решения системы уравне-
ний. Начнем с определения значения переменной х. Этой переменной соответствует
первый столбец в матрице коэффициентов. Поэтому матрица, с помощью определи-
теля которой будем вычислять значение переменной, должна иметь первый столбец,
совпадающий с вектором коэффициентов правых частей системы уравнений В (эти
коэффициенты записаны в ячейки диапазона В10:В12), а два других ее столбца
должны совпадать с соответствующими столбцами матрицы А (таким образом, речь
идет о диапазоне C5:D7). Саму матрицу поэтому будем создавать в два этапа. Снача-
ла выделяем диапазон ячеек В15:В17 и в строку формул вводим =В (рис. 4.46).
После нажатия комбинации клавиш <Ctrl+Shift+Enter> данный диапазон будет
содержать в точности те же значения, что ячейки массива В. Теперь нужно запол-
нить два оставшихся столбца. Выделяем ячейки в диапазоне С15:017 и присваиваем
в качестве значения этому диапазону =C5:D7. Этот диапазон, как легко догадаться,
соответствует второму и третьему столбцам матрицы А (рис. 4.47).

G6 т • К =MDETERM(A)
_j A , В ! С !.-• D F .E I F j G....J Н
1 PeiueHk е системы линейных уравнений

i !
:
' ' - -

5
•6~] А-
и2::!:
,
г:::г:з::
-1 1
|

7_ 3 1 [ -1 i

81
_
i
10 6
зш /
11 В- 3
2
13 i

Рис. 4.45. Вычисление определителя матрицы коэффициентов


системы уравнений

320 Часть I I . Решение задач


MMU.T X V £ =В
_ А ,ч В J ^ С_: D__.i_ Е L_£
1 : Решение системы линейных уравнений
М I : I ! I

10

Рис. 4.46. Ввод первого столбца матрицы

X V f- =05-07

i Решение системы линейных уравнений


" '
1 1
-1 1 ю
1 -1 Т

18

Рис. 4.47. Заполнение второго и третьего столбцов матрицы

После выполнения указанных операций в диапазоне ячеек В15:017 будет находиться


именно та матрица, по детерминанту которой можно определить значение переменной х.
Для этого в ячейку G7 вводим формулу =MDETERM(B15:D17)/G6 (рис. 4.48).
В качестве аргумента функции определения детерминанта MDETERMQ на этот
раз явно указан диапазон ячеек (имеется в виду диапазон B15:D17). Значение де-
терминанта исходной матрицы коэффициентов системы уравнений дается через
ссылку на ячейку G6, где этот детерминант был ранее вычислен. В результате полу-
чаем точно то же значение для искомой переменной, что и при использовании мето-
да обращения матрицы.

Глава 4. Методы вычислительной математики 321


Определение значения прочих двух переменных происходит практически так же.
Единственное принципиальное различие при поиске значения переменной у состоит
в том, что построение вспомогательной матрицы происходит не в два, а в три этапа.
Это имеет место потому, что данная матрица получается из базовой матрицы коэф-
фициентов системы уравнений заменой второго, т.е. среднего столбца, на вектор ко-
эффициентов правых частей системы уравнений, поэтому для первого и третьего
столбцов нужно выполнять присваивание отдельно (их нельзя объединить в один
диапазон). Это проиллюстрировано, в частности, на рис. 4.49.
Конечный результат представлен на рис. 4.50.

GS '•ft =MDETERM(B15:D17)/G6
I _А. I._B;,: L_C | D ,j E , I
Решение системы линейных уравнений

А1-

Рис. 4.48. Определение значения переменной х

WMU.T •» X *J ft =DE .07


Г) ] р р : p. i 11
! А В \ С Р j С
;
Г ; О ; П

1 Р'ешение системы линейных уравнений


2 •;
3 : ? : j

4 I • •; :

5 : 1 1 1 :
6 А= 2 -1 1 D- : 10
7 3 1 -1 : :
8 ; х- : 1
9 :
ю: """} ; | '
TV В-
J2J
13
В ? " I t ' '•
UJ
15' 6 1 1
16 А1 - 3 -1 1
17 I 2 ill -1: ;
18
1 6 =P5:D7 :

20 А2 = г i j

21 1 3 2
22'

Puc. 4.49. Создание вспомогательной матрицы для определе-


ния значения переменной у

322 Часть II. Решение задач


G12 f, =MDETERM(G15:I17)/G6

! Решение системы линейных уравнений

Рис. 4.50. Результат решения системы уравнений

Хочется сразу отметить два немаловажных обстоятельства. Во-первых, с точки


зрения реализации в Excel метод поиска обратной матрицы несомненно проще и на-
гляднее, особенно если учесть, что оба рассмотренных метода, по сути своей, мало
чем отличаются с математической точки зрения. Во-вторых, в рассмотренном выше
примере приходится создавать вспомогательные матрицы в полуавтоматическом
режиме. Если уравнений в системе достаточно много, это не всегда приемлемый
путь. Кроме того, сам процесс создания матриц можно было бы свести к простому
копированию значений из одних ячеек (диапазонов) в другие. Это, пожалуй, выпол-
няется быстрее, чем ввод данных посредством ссылок. Однако в таком случае при
внесении изменений в исходные матрицы коэффициентов системы пользователю
придется процесс копирования каждый раз повторять самостоятельно. В данном же
случае, т.е. когда используются ссылки, пересчет коэффициентов и поиск решений
Excel выполняет при внесении изменений автоматически. Это важное обстоятельст-
во всегда следует иметь в виду.
Возможности Excel в области решения уравнений и систем теми методами, что
были представлены выше, ни в коей мере не ограничиваются. В Excel можно решать
существенно более сложные задачи. В данном разделе была представлена краткая
иллюстрация встроенных утилит Excel, имеющих прямое (и не очень) отношение к
задачам подобного рода. Прежде чем приступить к изучению вопросов, связанных с
численным дифференцированием, интегрированием и решением уравнений отлич-
ными от рассмотренных выше методами, обратим внимание на одну весьма полез-
ную надстройку, которая с успехом может использоваться при работе с Excel.

Глава 4. Методы вычислительной математики 323


Надстройка оптимизации
и поиска решений
Речь идет о надстройке Solver Add-in. В некотором смысле использование над-
стройки напоминает вызов команды Goal Seek (Поиск решения), которая уже опи-
сывалась. Однако надстройка Solver предоставляет более широкие возможности и
позволяет решать не только уравнения, но и задачи по оптимизации. Это особенно
важно для тех, кто имеет дело с линейным программированием. Задачи подобного
класса возникают, например, при планировании перевозок, распределении произ-
водственных ресурсов, оптимизации структуры производства и т.п. Находят они
свое применение и при проведении инженерных расчетов. Ниже предлагается об-
щий обзор возможностей приложения Excel при использовании надстройки Solver.
Прежде чем надстройку можно будет использовать, ее, само собой разумеется, сле-
дует подключить. Для этого выберите команду Tools'^Add-lns (Сервис^Надстройки).
В результате открывается диалоговое окно Add-lns (Надстройки). В нем следует уста-
новить флажок опции Solver Add-in, после чего щелкнуть на кнопке ОК (рис. 4.51).

Puc. 4.51. Окно подключения


надстроек Add-lns
v Analysis ToolPak <ж
Г Analysis ToolPak - VBA
Conditional Sum Wizard Cancel
H Euro Currency Tools
Internet Assistant VBA grawse...
Lookup Wizard
pr— Automation,..

J
' -Solver Add*
Toot for optimization and equation solving

После подключения надстройки станет доступной команда Tools^Solver


(Сервис^Решение), посредством которой и будет активизироваться данная утили-
та. Методы ее использования рассмотрим на конкретных примерах. Начнем с реше-
ния уравнения.

Уравнение имеет три решения, которые, строго говоря, можно найти точно и без
всяких дополнительных программных средств. Этот простой пример должен проил-
люстрировать возможности надстройки. Когда решения известны, намного проще
проводить анализ работы приложения. В частности, рассматриваемое уравнение
имеет в качестве корней числа 0, 2 и 4. В этом несложно убедиться, если представить
3 2
полином х - бх + 8л в виде произведения х(х - 2)(х - 4).

324 Часть II. Решение задач


В ячейку В4 вводим формулу =ВЗ*(ВЗ-2)*(ВЗ-4), а в ячейку ВЗ пробное значение 1
(мягко говоря, не очень удачное). Корень уравнения, таким образом, будет отобра-
жаться в ячейке ВЗ (рис. 4.52).
После этого выберем команду Tools^Solver (Сервис^Решение), в результате
чего раскроется диалоговое окно Solver Parameters (Настройки решения), пред-
ставленное на рис. 4.53.
=ВЗ*(ВЗ-2)*(ВЗ-4)

1 Решение уравнения с помощью Solver


2 j ; ........ ; ....... !
3 ^Переменная
4 [Уравнение

Рис. 4.52. Ввод формулы, определяющей


решаемое уравнение

1 Solver Paiamete» шшяшяшвяшш


Sgt Target €rf: ••• |$В$4 ij" "

;
EquafTo; Г $gax
; 8y Changing Cefc: ~
C~ од *•" J£e
**' '° g°*L I
; 1$B$3 il fiuess ]
•Sb^Ject to the Constraints: Options j

1 jj Add [ •
Ц Change I
J
' : R«et Al 1

1 ,
,I Qetete ' 1 . ... .'"•""""
' U«»

Puc. 4.53. Диалоговое окно Solver Parameters

В этом диалоговом окне достаточно большое число элементов управления: пере-


ключатель, поля ввода, командные кнопки. Особое внимание стоит обратить на пе-
реключатель Equal To (Равно), расположенный в верхней части диалогового окна.
Для того чтобы решить уравнение, переключатель следует установить в положение
Value of (Значение) и в расположенное правее поле ввести значение, к которому
должно стремиться выражение в ячейке, указанной в поле Set Target Cell (Целевая
ячейка). По умолчанию там указан адрес ячейки, активной на момент выполнения
команды активизации надстройки поиска решений. В поле By Changing Cells
(Изменять ячейки) указывается ячейка или ячейки, значения которых будут изме-
няться в процессе поиска решения. В данном случае указывается ячейка ВЗ (для это-
го на ней достаточно щелкнуть мышью). После щелчка на кнопке Solve (Решить)
начинается процесс поиска решения. Результат представлен на рис. 4.54.
Замечание. В окне Solver Results (Результаты решения) присутствует, помимо
прочего, переключатель на два положения: Keep Solver Solution (Принять ре-
зультат) и Restore Original Values (Вернуться к исходным значениям). Если пе-
реключатель установлен в первое положение, то после щелчка на кнопке ОК из-
менения, внесенные в ячейки в результате поиска решения, вступят в силу. Ели
переключатель установлен во второе положение, то значения ячеек останутся та-
ким, какими они были до начала поиска решения.

Глава 4. Методы вычислительной математики 325


=ВЗ'(ВЗ-2)'(ВЗ-4)

1 i Решение уравнения с помощью Solver

з
vj
5
Переменная
Уравнение
Solver FcHffld a solution.
i contlttons are satisfied. Reports
i
,' nswer I
!
Sensitivity
6 Lmvts
Э Г* Restore Original Values
i:;
11 Cancel SaveScenarte,
i
i;

PMC. 4.54. Решение уравнения с помощью надстройки Solver

В данном случае найден корень 2. Очевидно, это связано с тем оценочным значением,
которое было введено перед началом поиска решения в ячейку ВЗ (напомним, что это
было значение 1). Если ввести иное значение и затем попытаться найти решение с помо-
щью надстройки Solver описанным выше методом, можно получить другой результат.
В частности, если ввести значение —1, получим нулевой корень (приближенно). Ситуа-
ция проиллюстрирована на рис. 4.55, где показаны значения в ячейках таблицы перед на-
чалом поиска решения. На рис. 4.56 представлен результат поиска.
В4 =ВЗ*(ВЗ-2)*(ВЗ-4) Рис. 4.55. Значения ячеек перед нача-
А fe'..В.: I С ..;.. D .„j Е лом поиска решения
1 Решение уравнения с помощью Solver
:
_2.". i } ' ;
3 Переиенная -V
^Уравнение | -151
.§_: ' . ' ' I

т ;:'* =вз*(вз-2)*(вз-4)
Ч .: A i 8 • | С J . D ^ j . Е i F . i G 1 H j 1 ; J
1 ^Решение уравнения с помощью Solver
2,!
3 Нерешенная 8.16Е-08 • Solver Results Е7ЕГ5 •
4 |Уравнение 1 В.53Е-07Д
Soiver f oiffxJ a sdutiwi, Al CMi^r^nti and optimafty
] i | condaAjrts aresatisNed, j&eports - -
Б
7
8 :
i
; .

Л" |eep Stiver Sc^Sonj •
. .:_•• • Answer

Limits
9 ; \ < ^ Restore &фгй Vabes
( ,'„
11 | j <Ж'': C«nod '•.'ferveScenafto.- | НФ Ч
12 • ./. i
13!
Рис. 4.56. Результат поиска решения с другим начальным значением

Замечание. В правой части диалогового окна Solver Results (см. рис. 4.56) нахо-
дится поле Reports (Отчеты), в котором представлены три элемента: Answer
(Ответ), Sensitivity (Устойчивость) и Limits (Пределы). Можно выбрать один или
несколько элементов данного списка. Если это сделано, то после поиска решения,
помимо результата, в отдельных рабочих листах будут представлены отчеты о
проделанных вычислениях в процессе решения задачи. Отчеты имеют разный
тип в зависимости от того, какой элемент списка Reports был выбран. Для значе-

326 Часть II. Решение задач


ния Answer отчет содержит сведения о целевой и изменяемой ячейке (их началь-
ные и конечные значения), равно как и сведения о наложенных ограничениях.
Для значения Sensitivity отчет составляется с указанием параметров, характери-
зующих устойчивость решения по отношению к выходным данным задачи.
Наконец, отчет Limits содержит сведения о возможных пределах изменения дан-
ных в целевой и изменяемой (или изменяемых) ячейках. Обращение к таким от-
четам может быть весьма полезным, поскольку позволяет получить представле-
ние о методах, использованных программой для поиска решения, а также о при-
менимости полученных результатов.
Что касается точности вычислений и прочих связанных с этим параметров, то
они устанавливаются в окне Solver Options (Параметры решения), которое может
быть вызвано, если в диалоговом окне Solver Parameters щелкнуть на кнопке
Options (рис. 4.57).
BJOZ!

Iterations: |ioo
gredston: |o.000001 Load Model...
Toferance: |s Save Model...
Convergence: jo.0001 U*
Г Assume linear HO** f~ Use Automatic Scaling
;Г" Assume Non-Negative , Г .Show Iteration Results
rEstmates Derivatives iSeardi

•t~£entral Г Conjugate

Puc. 4.57. Окно настроек Solver Options


В открывшемся окне первые пять полей, расположенные в верхней части окна,
позволяют контролировать основные параметры, отвечающие за поиск решения
уравнений. Так, в поле Max Time (Максимальное время) указывается время, отпу-
щенное приложению для поиска решения. Если по истечении указанного промежут-
ка (в секундах) решение не найдено, поиск будет прекращен.
В поле Iterations (Итерации) указывается предельное число итераций, отводимых
для поиска решения, а в поле Precision (Точность) указывается относительная по-
грешность, определяющая точность решения. Следует иметь в виду, что чем точнее
нужно определить решение, тем больше времени потребуется приложению для его
определения. Правда, для не очень сложных задач таким эффектом, как правило,
можно пренебречь.
В поле Tolerance (Отклонение) указывается верхняя граница отклонения для
решений, если они ищутся на множестве целых чисел. Эта величина указывается в
процентах.
Наконец, в поле Convergence (Конвергенция) задается величина для оценки от-
носительного изменения значения ячейки. Если это изменение за последние пять
операций становится меньше того, что указано в данном поле, процесс уточнения
решения прекращается. Назначение флажков опций, расположенных ниже данных
полей, кратко описано в табл. 4.1.

Глава 4. Методы вычислительной математики 327


Таблица 4.1. Флажки опций в диалоговом окне Solver Options
Опция Описание
Assume Linear Model Эта опция используется при решении линейных задач (т.е. таких,
(Линейная модель) где зависимости между данными в разных ячейках имеют линей-
ный характер). При выборе данной опции задачи решаются быст-
рее, чем в том случае, когда флажок опции не установлен. Если
окажется, что опция установлена при попытке решения нелиней-
ной задачи, появится сообщение об ошибке
The conditions for Assume Linear Model are not satisfied (Условие ли-
нейности не выполнено). Опцию рекомендуется использовать
только в тех случаях, когда задача безусловно линейная
Assume Non- Эта опция полезна в случаях, когда следует искать решение на
Negative множестве неотрицательных чисел
(Неотрицательные
значения)
Use Automatic Scaling Опция автоматического масштабирования. Ее разумно использо-
(Использовать вать, когда при оптимизации приходится иметь дело с числами,
автоматическое существенно различными по порядку величины
масштабирование)
Show Iteration Results В случае выбора этой опции при каждой последующей итерации
(Показать результаты будет выдерживаться пауза, так что можно просматривать соот-
итераций) ветствующие значения изменяемых ячеек на очередном этапе
итерационного процесса

Помимо перечисленных выше опций, при работе с надстройкой Solver могут ока-
заться полезными три переключателя в диалоговом окне Solver Options: Estimates
(Оценки), Derivatives (Производные) и Search (Поиск), каждый из которых имеет
два положения. Установив первый переключатель (Estimates), можно выбрать ре-
жим методов оценки начальных значений при решении однопараметрических задач.
Переключатель Derivatives позволяет выбрать способ вычисления производных от
заданных в численном виде функций, а переключатель Search задает тип итераци-
онной процедуры для поиска решения задачи. Дополнительные сведения об этих пе-
реключателях приведены в табл. 4.2.

Таблица 4.2. Переключатели диалогового окна Solver Options


Переключатель Положение Описание
Estimates (Оценки) Tangent (Тангенциальная) Использование линейной экстра-
поляции
Quadratic (Квадратичная) Использование квадратичной
экстраполяции
Derivatives Forward (Прямая) Метод простых разностей при
(Производные) определении производных
Central (Центральная) Метод центральных разностей при
определении производных
Search (Поиск) Newton (Ньютон) Итерационный метод Ньютона
Conjugate (Сопряженный) Метод сопряженных градиентов

328 Часть II. Решение задач


Помимо упомянутых опций и переключателей, диалоговое окно содержит кнопки
Save Model (Сохранить модель) и Load Model (Загрузить модель), которые позво-
ляют создавать и загружать модели поиска решений. Это разумно делать в тех слу-
чаях, когда приходится решать достаточно большое количество однотипных задач.
По сравнению с командой Goal Seek (Поиск решения), использование надстрой-
ки Solver имеет, кроме прочего, то преимущество, что в последнем случае на предпо-
лагаемое решение можно накладывать всевозможные ограничения. Эту особенность
можно с успехом использовать, когда уравнение имеет несколько решений и необхо-
димо найти то, которое лежит в каком-то конкретном интервале значений. В частно-
сти, в рассматриваемом примере уравнение имеет, как отмечалось, три корня (0, 2 и
4). Попытаемся найти то из них, которое на числовой оси лежит правее числа 3
(ясно, что это решение — число 4). Можно было бы попробовать просто изменить
начальное значение в ячейке ВЗ. Однако в данном случае поступим по-другому: на-
ложим на решение ограничение, которое будет состоять в том, что оно не должно
быть меньше 3. Делается это достаточно просто. Сначала следует щелкнуть на кноп-
ке Add (Добавить) диалогового окна Solver Parameters (Настройки решения), после
чего в открывшемся окне Add Constraint (рис. 4.58) в поле Cell Reference (Ссылка
на ячейку) указать ячейку (а можно и целый диапазон!), на которую накладывается
ограничение. Далее необходимо выбрать тип ограничения из раскрывающегося спи-
ска в центре диалогового окна, а затем в поле Constraint указать накладываемое ог-
раничение (в данном случае это число 3). Для подтверждения выполненных дейст-
вий следует щелкнуть на кнопке ОК. Щелчок на кнопке Add (Добавить) также будет
подтверждением, однако при этом диалоговое окно Add Constraint не будет закрыто
и появится возможность ввести еще одно ограничение. Так можно поступать в слу-
чаях, когда вводимых ограничений несколько.
Ограничения на решение отображаются в поле Subject to the Constraints
(рис. 4.59). Если там присутствует лишнее условие, его следует выделить и щелк-
нуть на кнопке Delete (Удалить). Для внесения изменений в ограничение щелкают
на кнопке Change (Изменить).
Рис. 4.58. На ячейку
Cel Reference! ВЗ накладывается
|$Bt3 ограничение

Solve! Parameters

Set Target Cd:


EqualTo: Г Max Г MQ
gy Changing Cefc:

-5ф)к( t° the Constraints:


>- 3

Рис. 4.59. Поиск решения с ограничением

Глава 4. Методы вычислительной математики 329


На рис. 4.60 представлен результат поиска решения. Как легко видеть, найдено
именно то решение, которое нам нужно.
Замечание. Если попытаться решить с помощью Solver уравнение с тангенсом, то
для начального значения в изменяемой ячейке, равного 7.8 (даже без всяких огра-
ничений), получим корректное решение на нужном интервале значений (т.е. от Зл/2
до 5я/2). Это еще раз подтверждает и без того неоспоримое превосходство над-
стройки Solver над встроенной утилитой поиска решений Goal Seek. Очевидно, по-
следнюю разумно использовать только при решении достаточно простых задач.
Как уже отмечалось, надстройка Solver может использоваться не только для
решения уравнений, но и в задачах оптимизации. Ниже в качестве иллюстрации та-
ких возможностей рассматриваются некоторые характерные примеры.

•- =ВЗ*(ВЗ-2)*(ВЗ-4)
j А 1 '1в:-:4. "С. j О. • Е ..
1 Решение уравнения с помощью Solver
' "

Рис. 4.60. Результат поиска решения с огра-


ничением

Даже без дополнительного исследования понятно, что в данном случае речь идет
о поиске минимума, (поскольку при неограниченном возрастании аргументов функ-
ции она также будет возрастать в пределе до бесконечности — поэтому о максимуме
речь идти не может). Правда, теоретически мог бы иметь место локальный максимум
где-нибудь поближе к точке начала координат (нулевые значения аргументов функ-
ции). Но в данном случае его нет (см. комментарии ниже). Желающие могут убе-
диться в этом самостоятельно.
Для решения этой задачи в Excel вводим в ячейку ВЗ начальное значение для пе-
ременной х, а в ячейку В4 — начальное значение для переменной у (рис. 4.61).

В5 ' f, =ВЗЛ4+В4«4-ВЗ«2-2*ВЗ*В4-В4»2
_j... А | В j С. " ; О Г~Т JZi г
1 ; Поиск экстремума
2
3 х- 5
. V : У -• 2_ } \ I

6 : " I ' [Г

Рис. 4.61. Ввод начальных значений для переменных

330 Часть II. Решение задач


В ячейку В5 вводим формулу =B3M+B4M-B3A2-2*B3*B4-B4A2, согласно которой
и определяется значение функции по ее аргументам (ячейки ВЗ и В4). После этого
следует выбрать команду Tools'^Solver (Сервис^Решение) и в раскрывшемся диа-
логовом окне (рис. 4.62) указать в качестве целевой ячейки (поле Set Target Cell)
ячейку В5, а в качестве изменяемых ячеек (поле By Changing Cells) диапазон ячеек
ВЗ:В4, и установить переключатель Equal То в положение Min (что соответствует
поиску минимума).
Замечание. На рис. 4.62 и во многих других случаях ссылки на ячейки и диапазоны
являются абсолютными, поскольку они вводились с помощью щелчка мыши на со-
ответствующей ячейке или путем выделения диапазона. Если вводить относитель-
ные ссылки, результат выполнения описываемых действий будет неизменным.
После этого можно щелкнуть на кнопке Solve (Решить). В результате получим
точку минимума (т.е. значения аргументов функции в точке минимума), а также
значение самой функции (рис. 4.63).

В5 - •••-'•••* =ВЗ -4+В4М-ВЭ«2-2*ВГВ4-В4«2


_i A j.j. 8 1 _;С, ~Т О " } Е \ JF j G ; Н „J, .,„!,_ 1
1 i Поиск экстремума
.2J
"3 ' х -^ 5' ВР
4 У- 2:

*S^ Ufx,y) -£~ "592J gTwgetC* .ОШШИГЗ [ S« ]


6 ЕqUdlo: <~Ню С'Мп Г- value rf: I close 1
т": : х::' nil у Changing Cells:

Id \ : 1 1iybject
$B$3i$B$4
to the Constraints: -;
^j SUMS |
Qytons 1
«И 1 i
11
12
13 <J«nge j
jv; -l в*»
-• Reset At 1
"is" ' ЦФ 1
In
171 1 i *

Pwc. 4.62. Установка параметров поиска решения

В5 ;- ' • • ••'" f. =ВЗ»4+В4«4-ВЗД2-2*ВЗ-В4-В4«2


! А Ё В С D :
. ; E i . F i : G i H . ! 1 J
1 Поиск экстремума
]
2 ! • i i i : j
3
4
х - 0.999999
у- 1
;
5 I U(x.y)-| -2I
В i
7.;^ Г'' ;;: Sdvw has converged to the current soJuUm, Al
8 constraints are satisfied.
I '• •p^^ -3
in i й-ЕййзЖй^жйд tefwty
ЯЙ ! i Г Restore Qriginat Values _J
13. 1 OK j Cancel'"/ Save Scenario... j : :'ЦФ | ,

"is!
Puc. 4.63. Минимум найден

Глава 4. Методы вычислительной математики 331


Внимание! Хочется еще раз обратить внимание читателя на выбор оценочных
значений. В данном случае будет иметь место просто-таки трагическая ситуация,
если в качестве начальных значений для аргументов функции принять нулевые,
т.е. если в ячейки ВЗ и В4 ввести нули. Тогда поиск минимума (как, кстати, и
максимума) в буквальном смысле ни к чему не приведет. Дело в том, что при ну-
левых значениях аргумента как сама функция, так и ее первые производные рав-
ны нулю. Последнее, как известно, является условием экстремума — необходи-
мым, но не достаточным. Excel, к сожалению, разобраться с этой ситуацией не
может, поэтому выдает эту же точку и как минимум, и как максимум (даже без
намека на какие-то неприятности, хотя в действительности данная точка ника-
ким экстремумом не является). Отсюда еще раз следует, что обращаться с ре-
зультатами, полученными с помощью встроенных утилит, когда от пользователя
скрыт существенный объем информации о методе получения результата, следует
крайне осторожно. Тем не менее, данный пример с нулевой точкой является ско-
рее исключением из правил, поскольку здесь речь идет о кратном нуле функции.
Кроме того, в силу симметрии исходного уравнения, совершенно очевидно, что в
точке х = -1 и у = -1 функция также должна иметь минимум. Таким образом, вы-
ше была определена только одна из двух экстремальных точек. Чтобы определить
вторую, следует ввести иные начальные значения для х и у, например, х = -5, у = -2.

Это была достаточно простая задача. На практике часто приходится искать экс-
тремальные значения функций при условии, что на переменные, от которых зависит
такая функция, накладываются ограничения (т.е. они должны удовлетворять каким-
то равенствам или неравенствам). В таких ситуациях говорят о поиске условного
экстремума. Об этом — следующий пример.

ф^НКДШ1^^^^^
Как и в предыдущем случае, здесь речь идет о минимуме. Безусловно, данную за-
дачу можно решить и без привлечения Excel. Мало того, ее можно свести к задаче
отыскания обычного минимума, если из уравнения, задающего ограничение на пе-
ременные, выразить одну из переменных и затем подставить это выражение непо-
средственно в функцию. Однако здесь всего этого мы делать не будем и на данном
простом примере продемонстрируем, как решаются задачи подобного типа в Excel с
использованием надстройки Solver.
Как и прежде, в первую очередь заносим в таблицу начальные значения для ар-
гументов функции (ячейки ВЗ и В4), равно как и формулу =ВЗЛ2+В4Л2, определяю-
щую значение функции. Эту формулу вводим в ячейку В5 (рис. 4.64).

В6 т f, =B3+2*B4 Рис. 4.64. Ввод начальных данных в таблицу


; А | в . •( с i о
1 _ Условный экстремум
..1 11. ~_j ::::i!
* Г.ЗЯГ зГ
'-I Ufx.y)- 10

щ
6 | Условие! Ч I :
Тел

332 Часть II. Решение задач


По сравнению с предыдущим примером, в рассматриваемом случае есть одна
особенность — в ячейку В6 вводится формула =ВЗ+2*В4, которая задает левую часть
уравнения. Оно и является ограничением на переменные.
Далее можно выбором команды Tools^Solver вывести диалоговое окно
Solver Parameters (рис. 4.65). В этом окне следует указать, как и в предыдущем слу-
чае, целевую ячейку (В5), изменяемые ячейки (диапазон ВЗ:В4),. а также то, что
ищется минимум (установить переключатель Equal To в положение Min).
Помимо этого, следует указать ограничение. Оно состоит в том, что значение
ячейки В6 должно равняться (согласно уравнения в условии задачи для ограниче-
ния на переменные) единице. После этого начинается процесс непосредственного
поиска минимума. Результат представлен на рис. 4.66.

Д
=ВЗ*2+В4 2

1_Условный экстремум
2
3~ х-
у-
_§J U(x.y)-
ввоош
6 Условие Sgt Target CeH:
7 EqualTo: Г йи (Т Мп
8 &-Changing Cefc:
9 1

St&ject to the Constants:

$B$6 - 1

J,

Puc. 4.65. Ввод параметров для поиска условного минимума

: =ВЗД2+В4«2
ft. | : В . , ] С j 0 .
1 Условный экстремум
_,
х-; 0.2!
v= 0.4
0.2l
\'B Условие
ScAvef found a solution.
condSJons are s Eepwts
Answer
Sensitivity

^" Restore ^-i^naJ Уа1ию J


:
::.rOK | ••. Caned . iX:5avB5MMrto...

Рис. 4.66. Условный минимум

Глава 4. Методы вычислительной математики 333


Как несложно убедиться, условный минимум найден корректно. Этот же метод
может с успехом использоваться для решения более сложных задач на условный
экстремум. Например, когда приходится иметь дело с функцией большого числа пе-
ременных, ограничений на них накладывается больше, чем одно. Процедура поиска
решения при этом в сути своей не меняется. Просто придется вместо одного ограни-
чения указать при настройке параметров поиска то их количество, которое опреде-
ляется условием задачи.
Помимо условного экстремума часто есть необходимость искать экстремумы
функций, заданных в неявном виде. В этом случае функциональная зависимость, как
правило, задается в виде уравнения F(x, у, z) = 0, из которого функция z(x, у) опреде-
ляется как такая, что при заданных х и у указанное выше уравнение превращается в
тождество. В следующем примере рассматривается подобная ситуация.

Пример 4.9. Найти экстремумы функции z(x, у), заданной неявно:


х + у2 + z - 2х + + 2у - 4z - 10 = О

В данном случае функцию будем исследовать как на минимум, так и на максимум


(т.е. будем искать и минимум, и максимум).
На рис. 4.67 показано, какие начальные данные следует внести в таблицу непо-
средственно перед поиском экстремумов.

В6 , f, =ВЗ«2+В4»2+В5А2-2*ВЗ+2*В4-4*В5-10
'' А 1 В I С D i Е ! F
1 : Экстремум неявной функции

3 х- Г
4, у =; 2
...5 j *» '•
6 j Уравнение^ Ц
7J

Рис. 4.67. Начальные данные для поиска экстре-'


.чума неявно заданной функции

В частности, в ячейки ВЗ, В4 и В5 вводятся начальные значения для х, у и z соот-


ветственно (произвольные в данном случае — это 1, 2 и 3). В ячейку В6 вводим фор-
мулу =ВЗЛ2+В4Л2+В5Л2-2*ВЗ+2*В4-4*В5-10, которой задана неявная зависимость
для рассматриваемой функции. После того как все эти данные будут введены, акти-
визируем надстройку Solver. Сначала будем искать максимум. В качестве целевой
ячейки указываем ячейку В5 (ведь именно z является функцией!). Далее, в качестве
диапазона изменяемых ячеек указывается ВЗ:В5. Значения именно этих трех ячеек,
включая ячейку с функцией (т.е. В5), следует изменять в процессе поиска решения.
При этом выражение, записанное в ячейку Вб, должно быть тождественно равно ну-
лю. Этот факт отражен в поле Subject to the Constraints (Ограничения) диалогового
окна Solver Parameters (рис. 4.68).
Результат поиска представлен на рис. 4.69.
Практически так же ищется минимум. Достаточно лишь изменить положение пе-
реключателя Equal To, как это показано на рис. 4.70.

334 Часть II. Решение задач


f- 3
А ;. В I С \ ,_ р
1 | Экстремум неявной функции

Solver Pdiemeteu

•: 6':>,1 Уравнение Set Тагоре* |«$5 jyy

И EquatTo; К J! Г MIQ. Г

i |$В«:$В$5 guess

:'13ф)еЛ (оthe ConstraWs: '••; Options

.........
Цф ••

Рис. 4.68. Параметры для поиска максимума неявно заданной функции


Л Д
- )Ь =ВЗ 2+В4«2+В5 2-2*ВЗ+2*В4.4*В5-10
:
. А , 6_J С , D Е i f i G H I i J
V ! Экстремум неявной функции
•щ е
j - -|

3 X 1:
Т' ' у- "-0.99509] "
I [
6 \ Уравнение! 44E07I гм^и ^шм _J^_ ' 1— .."...._.._!
Ш 71X11
,ЖЗ 4 • >• Sdww has con«srged to the a«t«r* solution. Al
9 ^ сгатЕЙгагй:5 зге satisfied. Reports. ; • ' - ; . ,
Answer
!.J . • i f* feep Solver Sc£fewii 5я sitivity
.„ . : - :.. ** — — ~* ! '

J§j
J

f OK Cancel Save Scenario.. a* _j


16
т ^ ^ •>
Рис. 4.69. Результаты поиска максимума
f, 3
: 1 AС ; 0 8 i E i f j G i H i 1 i J*
1 Экстремум неявной функции
2 '• • \ 1 i
| X-. 1
; ./ .. Л„ , _. . . _ ; i. i.
^|ft Д|(ЩЦ|В11к4ЯН
-I 3J •S» Targeted: j$B$5 3 I iot*e j
~6 Уравнение -6
7 Equal To: Г Max ' - f §| <" Value of: 1 g^^ j
В ;^fiy Changing Ceb : "~ -
: |$B$3:$B$5 iJ SJMS |
10
11 1
' rSiAject to the Constraints! - uirjons I
12
-( • |rtaje-o д! д,м |
13
"4
|5
::;:::":"]• Cherrae !
Eeset A l l
16
17
::: ::::::;. :;;: . d
„«. | ^^j
• 1
- ------ |
19

Puc. 4.70. Подготовка к поиску минимума неявно заданной функции

Глава 4. Методы вычислительной математики 335


Результат поиска минимума показан на рис. 4.71.
Стоит обратить внимание, что пока в диалоговом окне Solver Results (Результаты
решения) не выполнен щелчок на кнопке ОК, значение ячейки, найденное в
процессе решения, отображается в самой ячейке, а не в строке формул. В строке фор-
мул отображено начальное значение (см. рис. 4.71). После щелчка на кнопке ОК все
становится на свои места (рис. 4.72).
При этом в строке формул можно видеть вычисленное значение, в то время как в
самой ячейке это значение округляется.
Что касается непосредственно решения, то данная функция имеет максимум при
значениях х = 1, у - -1 и z =6 и минимум при х=\,у = —\ и г = -2. Фактически эти зна-
чения и были найдены Excel. Тот факт, что функция z принимает максимальное и ми-
нимальное значение при одних и тех же значениях своих аргументов (х= 1 и ;у = -1),
обескураживать не должен. Дело в том, что это неоднозначная функция, она как бы со-
стоит из двух поверхностей (если точнее, то это сфера радиуса 4 с координатами цен-
тра х= 1, у = -1 и г = 2), и на одной из них имеет максимум, на другой— минимум.
Возможность задавать сложные поверхности с помощью уравнений, подобных рас-
смотренному, во многом и является причиной достаточно частого использования
неявных функций.

•г • • £ 3
J А В | " С 1. 0__] Е L_F , G 1 H , 1 J
1 Экстремум неявной функции
"т; 1 :
i j _ |
"3 ' х= 1
X" " V - "-0-9Х57 '

р Уравнение 4 4^р-Л7
• Solver Results : : mtsm
jj Solver has converged to the current solution, Ai
9" ; constraints are satisfied. 1 , geports
10 - 1 Answer .
11 ^jpe^sSverSoli^ Sensitivity
"12 . Limits
_, f Restore Original Values


15
.' ' •r__II__1
1 QIC J
' '
Cancel |aveSo№uHo... I Нф
16
;
17! i : i !

Рис. 4.71. Минимум неявно заданной функции

В5 -* -1.99999858511924 Рис. 4.72. Значение ячейки отображается


А \ ', -s . | с. ;......J?. также и в строке формул
Экстремум неявной функции

6 ; Уравнение 4.44Е-07

336 Часть II. Решение задач


Приближенные методы решения
уравнений и систем
Помимо тех возможностей, которые предоставлены пользователю в рамках ути-
лит приложения Excel, все же часто приходится прибегать к стандартным (и не
очень) подходам в решении численных задач. Именно этим вопросам и посвящен
данный раздел. В первую очередь здесь рассматриваются методы решения обыкно-
венных (т.е. не дифференциальных) уравнений. Сразу следует отметить, что суще-
ствует одна универсальная возможность для решения разнообразных типов вычис-
лительных задач. Состоит она в использовании кода VBA для написания соответст-
вующей программы. В этом случае таблица может служить, например, как среда для
ввода и вывода данных. Этот подход достаточно эффективен и позволяет решать
сложные вычислительные задачи. Однако с таким же, а может и большим успехом
для подобных целей можно использовать любой язык программирования высокого
уровня или соответствующую среду разработки. Кроме того, такая концепция не-
сколько выходит за рамки книги. Здесь язык VBA рассматривается исключительно
как вспомогательное средство, полезное при работе с электронными таблицами.
Поэтому читателя, интересующегося вопросами реализации численных методов
средствами языка VBA (или в другой программной среде), мы отсылаем к соответ-
ствующим изданиям, тем более что недостатка в последних нет. Здесь и далее рас-
сматриваются подходы, не подразумевающие широкого использования программно-
го кода пользователя.

Метод половинного деления


Прежде всего рассмотрим методы реализации численных алгоритмов решения
алгебраических уравнений, которые широко используются в вычислительной мате-
матике. Одним из самых простых, эффективных и достаточно популярных как среди
профессионалов, так и новичков в области численного счета, является метод дихо-
томии, или метод деления пополам. Суть метода предельно проста. Следует указать
функцию, которая определяет решаемое уравнение (т.е. нужно найти аргумент
функции такой, при котором она обращается в нуль), и интервал, на котором осуще-
ствляется поиск корня. Метод будет работать, когда функция на границах интервала
примет значения разных знаков. Если функция непрерывна, это будет гарантией то-
го, что на данном интервале имеется по крайней мере одно решение. Дальнейшая
процедура состоит в вычислении значения функции в средней точке интервала. Знак
функции в этой точке будет совпадать со знаком функции на одной из его границ.
Именно эта граница перемещается в центральную точку. Ситуация аналогична на-
чальной: есть функция и интервал, на границах которого эта функция принимает
значения разных знаков (ситуацию, когда на одной из границ функция обращается в
нуль, пока не рассматриваем). Таким образом, на каждом шаге интервал локализа-
ции корня уменьшается в два раза, что является залогом получения решения с нуж-
ной точностью. Ниже на примере решения уравнения х - Их + 18 = 0 показано, как
данный метод может быть реализован в Excel.

Глава 4. Методы вычислительной математики 337


Прежде всего следует отметить, что уравнение имеет два решения: х = 2 и х = 9,
а левая часть уравнения, которая и является приравниваемой к нулю функцией, мо-
жет быть представлена в виде произведения (х - 2)(х - 9). Именно такая форма запи-
си и будет использована далее (но это не принципиально, просто так удобнее отсле-
живать корни).
Начальный этап заполнения таблицы для решения данной задачи проиллюстри-
рован на рис. 4.73.
D2 " f, =(А2-2Г(А2-9)

!1
А В С » ! Е F ' ! G
Функция Функция
Левая Правая Функция на правой
Центр • на левой
граница ; граница в центре
; границе ' границе
'
И ! 1 2.5 ' 4 [=1=1 -3.25 -10

Рис. 4. 73. Начало заполнения таблицы

В ячейку А2 вводится число 1 — это начальное значение для левой границы диа-
пазона, на котором будет осуществляться поиск решения. Соответственно, в ячейку
С2 введено в качестве значения правой границы диапазона число 4. В столбце В
будут отображаться центральные точки диапазона. В частности, в ячейку В2 вводим
формулу =(А2+С2)/2. Далее, в ячейку D2 нужно ввести формулу =(А2-2)*(А2-9).
После этого следует скопировать данную формулу в ячейку Е2 и затем в ячейку F2.
В результате в ячейке D2 будет определяться значение функции на левой границе
диапазона, в ячейке Е2 будет отображено значение в центре диапазона, и, наконец, в
ячейке F2 — на правой границе диапазона. На этом первый этап ввода данных закан-
чивается. После него заполняется следующая строка таблицы. Начало процесса
заполнения показано на рис. 7.74.
A3 * =IF(D2'$E2>=0,$B2.A2)
Л ] В j С _ ]_ О Е F ] G_
i Функция ФуНКЦИЯ :
Левая Правая
Центр i на левой Функция на правой
граница : ', граница
границе в центре границе

5
3 1 | 2^5 I 8 -3.25 : -10

4 :

Рис. 7.74. Второй этап заполнения таблицы


В следующую строку заносим данные, которые будут отображать состояние про-
цесса поиска решения на первом шаге (если не считать этап ввода начальных дан-
ных). Так, в ячейку A3 вводим формулу =IF(D2*$E2>=0,$B2,A2). Значение
(численное) будет присвоено этой ячейке после проверки условия D2*$E2>=0. Дру-
гими словами, проверяется знак произведения значения функции на левой границе
диапазона и в средней точке. Если оно неотрицательно (а это значит, что оба значе-
ния одного знака или одно из них нуль), то левой границей становится средняя точ-
ка интервала. В противном случае левая граница интервала не меняется. Относи-
тельные и абсолютные (точнее, смешанные) ссылки выбраны так, чтобы формулу

338 Часть II. Решение задач


можно было скопировать в ячейку СЗ, и она (формула) корректно работала и в этой
ячейке (т.е. все как и раньше, но только для правой границы). В качестве знака срав-
нения выбрано нестрогое неравенство, чтобы не потерять корень, если он на каком-
то этапе случайно попадет точно на границу диапазона.
Таким образом, копируем формулу из ячейки A3 в ячейку СЗ. Результат опера-
ции продемонстрирован на рис. 4.75.
СЗ =IF(F2"$E2>=O.SB2,C2)
D
Функция Функция
Левая ; Правая Ф нкция
Центр е „ой! * на правой!
!граница граница в центре ;
границе границе
-3.25 -10

Рис. 4.75. Копирование формулы в ячейку СЗ

В ячейку ВЗ вводится (или копируется из ячейки В2) формула =(АЗ+СЗ)/2.


При этом в верхнем левом углу ячейки появляется зеленого цвета отметка, а слева
пиктограмма с восклицательным знаком (рис. 4.76). Если на этой пиктограмме
щелкнуть, открывается список с набором команд, позволяющих отредактировать
или поменять формулу в данной ячейке, равно как и получить справку по той неор-
динарной ситуации, которая с точки зрения Excel имеет место в данном случае.
Все эти устрашающего вида сообщения и пиктограммы можно совершенно спо-
койно игнорировать. Причина их появления заключается в следующем.
Дело в том, что в ячейках A3 и СЗ размещены достаточно однотипные формулы, в
то время как формула в ячейке ВЗ существенно иная. В этом случае Excel предпола-
гает худшую ситуацию — пользователь сделал ошибку. То есть такая ошибка явно не
констатируется, но предполагается возможной. На самом деле это не так.

I Совет. Чтобы убрать значок раскрывающегося меню вместе с зеленой меткой в


углу ячейки, из раскрывающегося при щелчке мышью списка следует выбрать
команду Ignore Error (Игнорировать ошибку).

ВЗ -г Ц =(АЗ+СЗ)/2
А | В ;.;-| С j О i Е . ;. F 1 6
! Функция i „ Функция !
1 евая
\ Центр ! n P aeafl i на левой :Фуикция : на правой 1
аница; | граница; ^^ | в центре ^^ ,

1 : 2.5 4 8 -3.25 \ -10
Я 1 |
i I i
Inconsistent Fortouta
5
_.„.
Copy Formula from Left """ ' 4
1 "" " 1-. " ~
j i
i
~7 "\ '••) fcjdp on this error
В .,
__ Ignore Error

551 . \- Edfc in Formula Bar


"if, it* Error Checking Options...
J2]
13 1 Show Formula AufStff>g Toobar I j j
и':
! ! -1 t ! - :
Рис. 4.76. Ввод формулы в ячейку ВЗ имеет свои особенности

Глава 4. Методы вычислительной математики 339


Дальше целесообразно скопировать с помощью маркера заполнения формулы из
диапазона D2:F2 в диапазон D3:F3. Для этого первый диапазон выделяется и марке-
ром заполнения выполняется захват второго диапазона (рис. 4.77).
На этом, по большому счету, ввод данных как таковых заканчивается. Дальше
можно начинать поиск решения. Для этого нужно выделить, например, диапазон
A3:F3 и маркером заполнения захватить одну или несколько строк внизу (рис. 4.78).
В результате такой операции в нижней строке будут отображены данные, относя-
щиеся к очередному итерационному шагу по сужению интервала, содержащего корень
уравнения. Этот процесс можно продолжать до тех пор, пока решение не будет найде-
но с нужной точностью. Так, на рис. 4.79 представлена ситуация после некоторого чис-
ла таких последовательных шагов (их, кстати, можно выполнять, что называется,
одним махом — просто перетянуть маркер заполнения на нужное расстояние вниз).
D2 t =(А2-2) (А2-9)
A ;
-
в С ,:•: D г из з ~~т с :
Функция Функция I
Левая Правая ФУНКЦИЯ на» й;
Центр на левой
граница граница
границе "Центре: границ. ;

i
i
1
1
25
Г 1.75
4
2.5
8

i 4
5 I \

Рис. 4.77. Заполнение диапазона D3:F3

В L J
; п : г, Функция „ Функция
J
; Левая Правая . Функция
Центр на левой на правой
, граница граница в центре
границе
:
2~ : 8

6
Рис. 4.78. Выполнение следующего шага в процедуре по-
иска решения

Функция ^ Функция
. Функция '
на левой на правой
B цент е
границе i Р границе

-3.25 -10
1.8125 " -3.25
-0.859375 -3.25
0.4414063 -0.859375
2.03125 -0.217773 •0.859375
1.98437S 0.1096191 -0.2177734
1 984375 [2.007813 -0.054626 -0.2177734
1 98Д375 [1.9Э6СВ4 0.027359 -0.0546265
996094 -0.013668 -0.0546265
1.996094 00068369 -0.01366В1
1.999023 -0.003418 -0.0136681
1.999023 0.001709 -0.0034177
1.999756 -0.000854 -0.0034177
1.999756 0.0004272 -0.0008545
-0.000214 -0.0008545

Рис. 4.79. Решение уравнения

340 Часть II. Решение задач


Для удобства столбец В, где отображена средняя точка интервала на каждом шаге,
выделен. В столбце Е можно просмотреть, насколько точно выполняется равенство
нулю исследуемой функции при данном приближенном значении корня уравнения.
На рис. 4.80 проиллюстрирована ситуация, когда на одном из этапов корень
уравнения попадает на границу диапазона. В этом случае обе границы сдвигаются в
данную точку (т.е. в точку, где корень) и дальше строки просто копируются (имеется
в виду повторение численных значений, но никак не формул).
Другая интересная ситуация складывается, когда на обеих границах функция
имеет одинаковые знаки. В этом случае численные значения строк при копировании
также не меняются, что можно видеть на рис. 4.81.

А2 V А -13
• А | В ' С D 1 Е i F i G
Функция Функция
Левая Правая Функция
Центр на левой на правой
граница граница в центре
1 границе границе :
JLJ -13 I -5 з _...
330 96 -6
3 -5 -1 з" " зо -6
4~; -1 Т з 30 _| ""•6 :
5 ! Т 2 з в 6 i -в :
~6 ' :
2 2 2 0 0 0
7 ' 2 2 2" о о о
8~ 2 2 2 0 0 0
э] 2 2 2 о о о
10 2 2 2 0 0 0
11 2 2 ] ""2 0 о 0
12
13
2
2
2
2 ! ' 2
2
'. о
о rii:;. :
0
о
0 :

14 2 2 : 2 о 0 b
15 2 2 2 0 0 0
16 2 2 ; 2 о '[;;;; "о; ::;i
о
17

Рис. 4.80. Корень попадает на границу интервала поиска


решения

А2 » J» 1
. ••' A j В __, _с о. i Е j :1_ F i G
Функция Функция
Левая Правая Функция
Центр на левой на правой
граница : граница 8 центре
границе границе
h
3
1
1
I 6
Ill
11
11
8
8
-12
-12
18
18
Л 1 6 11 8 -12 18
5 1 Б тгё" -12 ii
В 1 6 11 8 -12 "is
7 "\ "ё'~ i 11 в -12 • • ^g

8 1 6 11 8 -12 18 Г
9 6 11 8 "-12 18 I
10 6 11 8 -12 1В
11 6 11 8 -12 18
11 18
гиж j
12
"
6 8 -12
13 Hill] 11 8 18
14 6 i"i 8 " -12 18
15 е 11 8 -12 18
16 е 11 8 Т -12 _] 18
17

Рис. 4.81. Некорректно введенный интервал поиска решения

Глава 4. Методы вычислительной математики 341


Относительная простота этого элегантного метода иногда сказывается на не очень
быстрой сходимости, т.е. чтобы получить решение с приемлемой точностью, нужно
проделать приличное число вычислений. Хотя при нынешнем уровне вычислительных
средств это редко вызывает проблемы. Кроме того, следует иметь в виду, что если на
указанном для поиска интервале есть несколько корней, то какой именно из них будет
найден, существенно зависит от конкретного значения граничных точек. Например, в
общем случае если расширить (сузить) начальный интервал поиска, но так, чтобы туда
не попали (вышли за пределы) корни уравнения, решение может быть совершенно
иным (но это будет решение!). Поэтому проблема локализации корней является не
менее (а, может, даже более) важной, чем непосредственный их поиск.

Метод хорд
Очень похож на метод дихотомии метод хорд. Разница состоит в способе выбора
новой границы интервала. В методе половинного деления это центральная точка ин-
тервала. В методе хорд она выбирается несколько иначе — эта точка определяется как
пересечение координатной оси и линии, проходящей через точки (x,,J{xt)) и (*27/(*,)),
при этом х, и х2 есть границы интервала, на котором ищется корень, а решаемое урав-
нение, как и ранее, имеет видДлг) = 0. Центральная точка интервала может быть найде-
на из равенства х3 = (xj(x2) - x./(x^)/(J(x2) -Д*,)). Дальше проверяется значение функции
в этой точке, после чего она становится новой границей интервала, вместо той, где
функция имела такой же знак. Процесс проиллюстрирован на рис. 4.82.

f(X2)

f(x4)
f(x3)
f(xi)

Рис. 4.82. Выбор новой точки в методе хорд

342 Часть II. Решение задач


Этот метод, мало чем отличающийся по сути от метода дихотомии, обеспечивает
более быструю сходимость. Для его реализации в Excel можно воспользоваться тем
документом, который ранее был создан для метода половинного деления. Там следу-
ет удалить все данные, относящиеся к процессу поиска решения, когда выполнялось
копирование строк, и оставить только две первые строки с данными (если не считать
строки с текстовыми метками). В этих строках необходимо переопределить форму-
лы в некоторых ячейках. Так, в ячейку В2 следует ввести формулу =(A2*F2-
C2*D2)/(F2-D2), после чего ее нужно скопировать в ячейку ВЗ. Кроме того, в форму-
лах в ячейках A3 и СЗ лучше заменить нестрогое неравенство строгим. Это необхо-
димо сделать на тот случай, если граница интервала, на котором ищутся решения,
попадает точно в корень. В силу формулы, используемой для новой границы интер-
вала (там в знаменателе разность функций), если оставить нестрогое равенство, мо-
жет иметь место попытка деления на нуль, а это приведет к ошибке. Таким образом,
в ячейке A3 должна быть формула =IF(D2*$E2>0,$B2,A2), а в ячейке СЗ — соответ-
ственно =IF(F2*$E2>0,$B2,C2). Во всем остальном процедура заполнения таблицы,
по сравнению с методом половинного деления, остается неизменной (рис. 4.83).
Внимание! Название текстовых меток в ячейках В1 (Центр) и Е1 (Функция в
центре) менять не будем! Это поможет проследить преемственность данных в
соответствующих столбцах по сравнению с предыдущим примером использова-
ния метода половинного деления. При этом следует помнить, что новая точка на-
ходится не строго посредине интервала, а где-то между левой и правой границей.

Далее поступаем в полной аналогии к предыдущему примеру: выделяем строку с


номером 3 (до нужных пределов) и с помощью маркера заполнения растягиваем
вниз. Если в дальнейшем окажется, что итераций выполнено недостаточное количе-
ство, можно будет процесс продолжить — выделить последнюю строку и прибегнуть
к помощи маркера. На рис. 4.84 можно видеть результат поиска решения уравнения
х 2 -11*+18 = 0 методом хорд.
Как несложно заметить, по сравнению с методом половинного деления, метод
хорд действительно имеет более быструю сходимость, т.е. приемлемый результат
может быть получен за сравнительно небольшое число итераций.
Замечание. На рис. 4.84 можно наблюдать ситуацию, когда с некоторого шага ото-
бражаемое в столбце С значение (правая граница интервала), равно как и значение в
столбце В, не меняется. Это совсем не значит, что соответствующее значение на каж-
дом шаге одно и то же. Просто перед отображением оно округляется. Об этом свиде-
тельствует и тот факт, что функция в данной точке (правая граница — столбец F,
новая граница, или центр — столбец Е) на каждом шаге меняет свое значение.

На рис. 4.85 продемонстрирована ситуация, когда одна из границ интервала


(в данном случае левая), на котором выполняется поиск решения, совпадает с кор-
нем решаемого уравнения. Поскольку ранее в формулах определения правой и ле-
вой границы нестрогое равенство было заменено строгим, это позволяет избежать
ошибок при вычислениях.

Глава 4. Методы вычислительной математики 343


В2 ft =(A2*F2-C2-D2)/(F2-02)
: А | • '8 | С I О Г •-...£ ; F |
функция функция
• Левая . Правая на Функция на
граница граница! левой ; в центре правой
1 ; ; ; границе' границе
J] 1 2.3333331 4 8 : -2.22222 -10
• 1 2043478*2.333333: В '• -0.30246 -2.22222;

Рис. 4.83. Ввод начальных строк таблицы

Функция Функция
Левая Правая на : Функция на
Центр
граница левой в центре
граница правой
границе границе
1 2.333333 ; 8 ; -2.22222 -10
1 "2.043478 2.333333
г
8 -0.30246 -2.22222 ;
1 '2.005464 2.043478 8 i-0.03822 -0.30246
:

2.QQ0684 2.005464 8 -000478 -0.03822 Г


2.000085 2.000684
:
8 -0.0006 •0.00478"'
8 -7.5Е-05 -0.0006
:
8 -93Е-06 •7.5Е-05 j
8 -1.2Е-06 -9.3Е-06 i
В I -1 5Е-07 -1.2Е-06
8 -1 8Е-08 -1.5Е-07
8 -2 ЗЕ-09 -1.ВЕ-08
8 ' -29Е-10 -2.3Е-09
8 -3 6Е-11 -2.9Е-10 '
8 -4.5Е-12 -3.6Е-11
8 '-5.6Е-13 -4.5Е-12

Рис. 4.84. Решение уравнения методом хорд

A3 : / 1 =IF(D2*IE2>D,JB2 А2)
"ЖШ Функция Функция
_ F L. 6

: Левая Правая на Функция на


Центр
I граница граница ; левой в центре правой
; границе границе

г
2 2 " 2 4 0 0 -10
3 | 2 Г 2 4 0 0 -10
4.1 2 Т
•J
4 0 0 -10 :
2 \ 4
1
о 0 -10
2 4 "о ' 0 -10
.2 I ; 4 о 0 -10
'4 о ".ID
2 4 0° 0 -10
2 i 4 0 о -10 :
7 4 0 0 -10
"2 "" ' " 4
о о -ID I
2 ' "! 4 0 0 -10 L
2 ; 4 о о -10
2 "1 4 0 " 0 -10
"_ 2 1 4 Г о о " 1
"° '!

Рис. 4.85. Грании/i совпадает с корнем уравнения

344 Часть II. Решение задач


Кстати, можно было бы использовать строгое неравенство и в примере с делени-
ем отрезка пополам. К существенным изменениям это не привело бы. Однако если в
методе хорд интервал поиска решения введен неправильно, замена нестрогого нера-
венства на строгое не помогает. В этом можно убедиться из рис. 4.86.

СЗ i =IF(F2*SE2>0,$B2 C2)
;
;
А 8 ! __^ D E F . G
Функция Функция
Левая Правая на Функция на
Центр :
граница граница левой в центре правой
1 границе границе
' 1 -7 11' 8 144 1В
-7 «DIV/O! | ~ I 144 #оШ 144
«DIV/0! ' «DIV/0! ' #DIV/D! #0!УЛ! *OIV/0!
; #DIV/0!
#oiv/of «DIV/D! #OIW)! *С1УЛ! «DIV/D! SOIV/0!
I «DIV/0! «DMO! «DIV/0! #DIV/0! SDIVffl! #OIV/0!
7 «DIV/0! «DIV/0! «DIV/OI «DIV/D! *DIV«! «DIV/0!
В #OIV/0! «DIV/D! «DIV/D! #OW/0! #DIV/0! SDIV/0! :
9 «DIV/0! «DIV/0! «IIVAD! #OIV/0! «DIV/0! «DIV/0!
10 #DIV/0! «DIV/D! WDIV/0! #OIV/0! SDIV/0! «OIV/0! Г
!
11 «DIV/0! «DIV/0! #OIVA3! tfOIV/0! #OIVjO! «DIV/0!
12 *OIV/0! «DIV/0! «DIV/D! #DIV/0! *Div/0! «DIV'/O!
13 «DIV/0! «DIV/0! *OIV/0! ADIV/0! *DIV/0! «DIV/0!
14 '#OIV/D!" «DIV/of *DIV/0! #DIVA1! #OIV«! «DIV/0!
15 «DIV/D! «DIV/0! #DIV/D! #OIV/0! #OMO! «DIV/0!
1 «DIV/0! «DIV/0! #DIV/0! «CIV/0! #OIVA3! SDIV/0! 1
17
18'

Puc. 4.86. Неверно введенный диапазон поиска решения

В этом случае после первой итерации обе границы диапазона совпадают, что, в
свою очередь, имеет катастрофические последствия, поскольку при определении но-
вой точки в знаменателе стоит разность функций на границах (а это нуль!).
В результате в ячейке ВЗ (и, соответственно, в ячейке ЕЗ) появляется сообщение об
ошибке. Дальше все происходит, как в цепной реакции — сообщения размножаются,
как кролики.

Метод Ньютона
Достаточно популярным методом решения уравнений является метод касатель-
ных, или метод Ньютона. В этом случае уравнение вида Длс) = 0 решается следую-
щим образом. Сначала выбирается нулевое приближение (точка *„). В этой точке
строится касательная к графику функции у =J(x). Точка пересечения этой касатель-
ной с осью абсцисс является следующим приближением для корня. В этой точке
снова строится касательная и т.д. Процесс последовательного определения точек в
методе касательных иллюстрируется на рис. 4.87.
Процедура определения точки на (п + 1)-м шаге может быть записана в виде фор-
мулы л„+1 =xri-J{xn)/f(xn), где через/(х) обозначена производная от функции Дх).
Однако прежде чем приступить непосредственно к решению уравнения с помощью
метода касательных, необходимо сделать несколько замечаний относительнб воз-
можностей использования этого метода (он, к сожалению, применим далеко не в
каждом случае), и, кроме того, о тех принципиальных подходах, которые разумно
использовать в Excel для решения задач этим методом.

Глава 4. Методы вычислительной математики 345


f(x0)

f(xi)

f(x2)

f(x)

Рис. 4.87. Метод касательных

В первую очередь следует отметить, что начальное приближение должно быть


таким, чтобы в этой точке как сама функция f(x), так и ее вторая производная, имели
одинаковые знаки. Помимо этого, метод будет сходиться, если отношение макси-
мального значения первой производной к максимальному значению второй произ-
водной функции (по абсолютной величине) на интервале поиска решения больше
половины длины этого интервала. На этот случай есть специальные теоремы и заин-
тересованного читателя отсылаем к литературе соответствующего профиля. Здесь
же просто резюмируем, что для применения метода касательных определяющая
уравнение функция должна быть достаточно плавной.
Далее, что касается реализации этого метода в Excel, то здесь можно пойти как
минимум двумя путями: либо реализовать нечто, напоминающее предыдущие два
примера (метод деления пополам и метод хорд), либо воспользоваться циклической
ссылкой. Недостаток второго подхода состоит в том, что контролировать процесс
поиска нужного решения будет сложнее, особенно если таких решений несколько.
Однако реализовать его существенно проще. Так, на рис. 4.88 приведен пример по-
добного решения поставленной задачи.
В4 ft =B3«2-4-B3+3
..: А.. _ i• s n с 1 D,_,
1 Решение уравнения методом Ньютона
/
з Точка к-
Функция f(x) -
Производная Г(х)

Рис. 4.88. Ввод начальных данных для решения


уравнения методом Ньютона

346 Часть II. Решение задач


Решать в данном случае будем уравнение х — 4х + 3 = 0, которое имеет два реше-
ния: х = 1 и х = 3. В ячейку В4 вводим соответствующую формулу (это формула
Л
=ВЗ 2-4*ВЗ+3) и, таким образом, в ячейке ВЗ будет размещаться циклическая ссыл-
ка. Там же отображается результат. Помимо этого, нам понадобится производная.
В данном случае вычисляется она элементарно и равна, очевидно f(x) = 2x-4.
Формулу с производной заносим в ячейку В5. Формула имеет вид =2*ВЗ-4.
Замечание. При численном решении уравнения методом Ньютона с использова-
нием электронных таблиц Excel совсем не обязательно аналитически вычислять
производные. О том, как избежать этой иногда достаточно утомительной проце-
дуры, рассказывается далее.

Наконец, осталось ввести циклическую ссылку в ячейку ВЗ. Вводим в эту ячейку
формулу =ВЗ-В4/В5 (рис. 4.89).

I Внимание! Чтобы циклическая ссылка сработала корректно, нужно установить


флажок опции Iteration на вкладке Calculation диалогового окна Options. Окно
можно открыть, воспользовавшись командой Tools'^Options.

Как видно из рис. 4.89, в найденной точке функция неострого равна нулю (ячейка
В4), хотя в ячейке ВЗ отображен точный корень уравнения. Дело в том, что, как от-
мечалось ранее, корень в ячейке ВЗ при отображении округляется. Если нажать кла-
вишу <Е9>, получим более приемлемую ситуацию (рис. 4.90). На этом же рисунке
можно видеть формулу, которая введена в ячейку В5.

вэ =ВЗ-В4/В5
А .••• : В Г С. i D
Решение уравнения методом Ньютона

3•' | Точка : 71
4 Функция 1(х| - Э.29Е-08
5 ! Производная Г(х) - -2
I
7 "

Рис. 4.89- Результат ввода циклической ссылки в


ячейку ВЗ

:
В5 =2*ВЗ-4

1 | Решение уравнения методом Ньютона


3 Точка х *=
4 Функция f(x) -
5 | Производная Г(х| -[
6
1'

Рис. 4.90. После нажатия клавиши <F9> точность


результата повышается

Глава 4. Методы вычислительной математики 347


Выше было замечено, что вычислять производные в аналитическом виде при ис-
пользовании метода Ньютона, строго говоря, необходимости нет. Это почетное зада-
ние можно всецело перепоручить Excel. Разумеется, производная в этом случае будет
вычислена в численном виде, и, совершенно очевидно, что это будет приближенный
результат. Однако практически во всех случаях такой результат вполне приемлем.
Для вычисления производных существует несколько методов, иногда весьма замысло-
ватых, особенно в отношении такой простой задачи (об этом будет сказано далее).
Здесь же мы просто воспользуемся определением производной, т.е. тем, что производ-
ная — это есть предел, к которому стремится отношение приращения функции к при-
ращению аргумента при стремлении последнего к нулю. Другими словами, по опреде-
лению производной полагают /'(*) = Km . Если приращение аргумента
Дд:
достаточно мало, то можем приближенно принять f'(x) - —. Этим при-
Дх
блаженным равенством и воспользуемся для вычисления производной функции.
Как это все реализуется в таблице, можно понять из рис. 4.91.

С5 =(С4-В4)/В6
'• .... ..
[Решение уравнения методом Ньютона
к ; x»dx j
j Точка х-j
I Функция f(x) -
I Производная Г(х) =
I Шаг dx =

Рис. 4.91. Решение уравнения с численным опре-


делением производной

Формула в ячейке В4 остается неизменной. Это формула =ВЗЛ2-4*ВЗ+3. Без из-


менений оставляем и формулу =2*ВЗ-4 в ячейке В5. Однако в действительности зна-
чение этой ячейки ни на что влиять не будет. Оно приводится исключительно для
сравнения точного значения производной и приближенного.
Помимо уже использовавшихся ранее ячеек, в данном случае в ячейку В6 вводит-
ся число (на рис. 4.91 это 0.001), определяющее приращение аргумента при вычис-
лении производной. В ячейку СЗ вводится формула =ВЗ+В6, согласно которой по-
лучаем значение аргумента с приращением. Значение функции в этой точке дается
формулой =СЗЛ2-4*СЗ+3 в ячейке С4. Эту формулу можно скопировать из ячейки
В4. Численная производная определяется в ячейке С5. С этой целью в ячейку нужно
ввести формулу =(С4-В4)/В6. Наконец, циклическая ссылка в ячейке ВЗ, с помощью
которой и решается уравнение, в данном случае будет иметь вид =ВЗ-В4/С5. Отли-
чие от предыдущего случая только в том, что производная определяется значением в
ячейке С5, а не в ячейке В5, как это было ранее. Результат представлен на рис. 4.92.
Если сравнить значения в ячейках В5 (точное значение производной) и С5
(приближенное значение производной), можно заметить, что разница достаточно
небольшая. Точность можно повысить, если уменьшить шаг (изменить число в ячей-
ке В6), как показано на рис. 4.93.

348 Часть II. Решение задач


ВЗ 6 =ВЗ-В4/С5
.;_^:1А i; ... 8 1 C 1 D b-LJL__
1 Решение уравнения методом Ньютона
2 x+dx
Точка х- 1.001:
Функция f(x) = -0.002
Производная Г(х) - -2 -1.999;
Шаг dx = 0.001; \ I
1
Рис. 4.92. Результат
^ поиска решения уравнения

С5 =(С4-В4)/В6
j _ А ; _В 1 С \ D
1 [Решение уравнения методом Ньютона
2J _! ' х
3J Точка х= 1
Д1 Функция f(xl- 8.98Е-08
"б"| Производная Г(х) - -2
fj Шаг dx=; 0.00001
!
7

. Для повышения точности вычислений


уменьшен шаг приращения аргумента функции

Вычисление производной в численном виде разумно использовать, очевидно,


в тех случаях, когда аналитическое выражение для функции достаточно громоздко,
в силу чего громоздким будет и выражение для производной, а сам процесс ее вы-
числения трудоемким (хотя производную можно вычислить в общем-то для любой
приличной функции).
Этот метод всем хорош, за тем исключением, что практически невозможно уга-
дать, какое из решений будет найдено. Иногда это не является проблемой вообще, но
очень часто такая ситуация просто неприемлема. Проблема усугубляется еще и тем,
что при использовании циклических ссылок в Excel в качестве нулевого приближе-
ния (т.е. начального значения) принимается нуль. Иногда это приводит просто к ка-
тастрофическим последствиям. Однако нет таких крепостей, которые нельзя было
бы взять штурмом.

( Замечание. Жизнь показывает, что на каждый программный продукт найдется


своя хитрая отвертка.
Речь идет вот о чем. Как известно, итерационной процедуре, выполняемой в со-
ответствии с циклической ссылкой, можно сопоставить уравнение х = ц>(х), где ср(;с)
есть именно та функция, которая вводится (в виде формулы) в ячейку с цикличе-
ской ссылкой. В этом уравнении можем выполнить формальную замену у = х - *„, где
у является новой переменной, а л0 — начальное значение для переменной х. Тогда,
очевидно, что х — у + х„ и для новой переменной уравнение может быть записано как
у = ф(у + х0) - х0. Следовательно, если в ячейку ввести формулу ср(у + лс„) - ха, получим
циклическую ссылку (но уже по отношению к переменной у), причем для перемен-
ной у Excel в качестве начального предлагает нулевое значение. Это соответствует
начальному значению ха в итерационной процедуре для JE! После того, как значение у
найдено, к нему следует прибавить дг0, в результате чего получим решение уравнения
для исходной переменной — т.е. именно то, что и нужно.

Глава 4. Методы вычислительной математики 349


По отношению к процедуре Ньютона все сказанное выше приобретает следую-
щий вид. Учитывая, что для этой схемы <р(;с) = х -f(x)lf(x), приходим к выводу, что в
ячейку следует вводить формулу (сразу или через ссылки), задающую выражение
х
У + о ~АУ + xa)/f(y + ха) - х0. Здесь, равно как и далее в формулах таблицы с реализа-
цией описываемого метода, слагаемые с разными знаками при дг„ не сокращены спе-
циально, чтобы можно было легче проследить принцип построения формулы, вво-
димой в ячейку с циклической ссылкой.
Данный подход следует теперь реализовать в таблице. На рис. 4.94 проиллюстри-
рован процесс ввода начальных данных. В частности, в ячейку В4 вводится формула
Л
=(ВЗ+В6) 2-4*(ВЗ+В6)+3. Циклическая ссылка будет введена в ячейку ВЗ, а ячейка
В6 хранит начальное значение для итерационной процедуры (на данном этапе оно
установлено равным 0). В ячейку В5 введена формула =2*(ВЗ+В6)-4 для определе-
ния производной в нужной точке. В ячейке В7 по формуле =ВЗ+В6 определяется ко-
рень уравнения. Для этого к значению, полученному путем итераций, согласно цик-
лической ссылке (ячейка ВЗ) прибавляется начальное значение (ячейка В6). Нако-
нец, в ячейку ВЗ вводится формула для циклической ссылки =ВЗ+В6-В4/В5-В6
(с таким же успехом можно было бы ввести формулу =ВЗ-В4/В5). Результат выпол-
нения вычислений, согласно введенным данным, показан на рис. 4.95.
Как несложно заметить, в данном случае найдено (с приемлемой точностью)
решение х=\. Так и должно быть, поскольку использовалось нулевое начальное
значение для инициализации итерационного процесса. Можно ввести другое на-
чальное значение. Например, на рис. 4.96 показана ситуация, когда данные вводятся
при значении ячейки В6 (т.е. начальном значении для итераций), равном 5.

В4 =(вз+вв)*2-г(вз+ве)+з
в
1 Решение уравнения методом Ньютона
14 • Точка у-
:.i :q г
ЯЩ функция f(y*xb) -| 31
5J Производная Пу*хО) ~ -*i
Б Начальное значение х О = О
7^1 Решение К"| Oi
И

Рис. 4.94. Ввод начальных данных в таблицу

| Решение уравнения методом Ньютона

Щ Точка у-1 0.999999954]


7j Функция f(y»xO)- 9.29223Е-08
Г, Производная Г(у*хО) - -2.000000т
6 Начальное значение х О = О
7 ; Решение x-j 0.999999954J
BJ

Рис. 4.95. Решение уравнения для нулевого началь-


ного значения

350 Часть II. Решение задач


В5 =2*(ВЗ+В6>4
В
1 [Решение уравнения методом Ньютона
' '
• Точка y.~i.
;
4 Функция f(y+xO| —
5 1 Производная Г(у»хО)-^
6 Начальное значение хО -....
71 Решение к=^
и \
Рмс. 4.96. Начальное значение переменной в ячей-
ке 66равно 5

Результат для этого случая будет таким, как показано на рис. 4.97.
Видим, что в этом случае найден другой корень уравнения, а именно х - 3.
Разумеется, совсем необязательно при изменении начальной точки для итераций
заново вводить все данные. Достаточно изменить значение ячейки В6. При этом ото-
бражаемые данные могут несколько отличаться от тех, что приведены выше (в пре-
делах погрешности вычислений). Это связано, как правило, с разным количеством
итераций, выполненных в том или ином случае. Чтобы привести данные к приемле-
мому виду, можно один или несколько раз нажать на клавишу <F9> (активизи-
руется команда вычисления рабочего листа). В результате таблица примет вид, как
показано на рис. 4.98.
В последнем случае хорошо видно, что при значении х = 3 (ячейка В7) функция
равна нулю (ячейка В4), это свидетельствует о том, что уравнение решено правильно.

В7 -г : •••''ft =ВЗ+В6
! . . А в С, ; D ,
1 {Решение уравнения методом Ньютона
2 : " '
З" 1 Точка у- -2
4] Функция f(y*xO)- 9.31321E-10
;
iili Производная f(y*xO) - 2.000000001
6 • Начальное значение хО - 5
7 | Решение х-1 3
8 }

Рис. 4.97. Решение уравнения с начальным значе-


нием переменной в ячейке В6, равным 5

В7 *•'* =вз+ве
. ' ! - .'А в j с ] D
1 Решение ypatжения методом Ньютона
3D
3 } Точка
4 Функция ffy»xO)-;
:. у-г: r.-?i i 0;
5 Производная Пу*хО)-.; 2i : ;
6 \ Начальное зна 1ение хО = 5
Э
7 ] Решение х-ТЦ 1
8 i

Рис. 4.98. Вид таблицы после выполнения допол-


нительных вычислений

Глава 4. Методы вычислительной математики 351


Предложенный подход достаточно удобен, однако часто нужно иметь не только
конечное значение (корень уравнения), но и значения корня (приближенные, разу-
меется) на разных этапах итерационного процесса. В такой ситуации процесс поиска
решения в электронной таблице можно организовать несколько иначе, подобно то-
му, как это делалось для метода половинного деления или метода хорд. На рис. 4.99
представлена таблица с начальными данными, которые потом будут взяты за основу
в процессе поиска решения.
Л
В ячейку А4 вводится формула =С4 2-4*С4+3. Этой формулой определяется
значение функции для аргумента, указанного в ячейке С4. Ячейка содержит началь-
ную точку для итерационного процесса. В ячейку В4 вводим формулу =2*С4-4 для
определения значения производной.
На следующем этапе в ячейку С5 нужно ввести формулу =С4-А4/В4. Согласно
этой формуле по предыдущему значению аргумента функции (ячейка С4), значению
функции (ячейка А4) и производной (ячейка В4) определяется следующее прибли-
жение для корня уравнения (рис. 4.100).
Ячейки А5 и В5 можно заполнить, скопировав формулы соответственно из ячей-
ки А4 и В4. Поскольку в этих формулах ссылки использовались относительные, они
автоматически будут преобразованы так, как надо (рис. 4.101).
Далее процесс поиска решения уже достаточно очевиден. Следует выделить диа-
пазон ячеек А5:С5 и с помощью маркера заполнения расширить его (вниз) до нуж-
ных пределов. Нужные пределы определяются исключительно той точностью, с ко-
торой следует найти корень уравнения (рис. 4.102).
Впоследствии, если нужно выбрать новую начальную точку для итерационного
процесса (в результате чего может быть найден другой корень!), достаточно поме-
нять значение в ячейке С4. На рис. 4.103 в эту ячейку введено значение 5, и, как
результат, метод позволяет получить еще один корень решаемого уравнения.

S, =С4«2-4*С4+3 C5 А =С4-А4/В4
В С . 0 A i В • С ] 0
1 | Метод Ньютона • i Метод Ньютона
2 "_ | ' !
3 Функция Производная Кор&нь 3 ] Функция .Производная Корень

4
~4~\ 31 -4': О
[ 0.75J

Рис. 4.99. Ввод данных для решения Рис. 4.100. Заполнение ячейки С5
уравнения методом Ньютона
С9 fi =
I А ! В ;. С .4

'. Метод Ньютона


В5 " f, =2'C5-4
\ А I FJ Т С D • Функция Производная Корень
1 Метод Ньютона 3' -4: О!
2 ' [ 0.5625! -2.5 0.75i
Г
3 , Функция Производная Корень 1 0.050Б25! ""-2.05" 0.975
4 3 -4; 0 ] 000060981 :2.0G0609756 0.999695*
5 |
6
7 I
0.5625I -2.51 0-75
т
10
' 9.292Е-08 -2.0С0000093
О -2Г"
1

Рис. 4.101. Заполнение ячеек А5и В5 Рис. 4.102. Решение уравнения методом
Ньютона

352 Часть II. Решение задач


я, • f. 5 ' | Рис. 4.103. Изменение началь-
ного приближения для корня

Функция Производная: Ко
' ~
3.333333333 З.С
2.266666667'3.133333 Г
1
2.015686275 3.007843
2.000061036" 3.000031;
2.000000001! " 3!

При этом может оказаться, что корень определен недостаточно точно. Чтобы
точность увеличить, можно выделить последнюю строку с данными и прибегнуть к
помощи маркера заполнения, как это делалось ранее.

Решение систем уравнений


Помимо уравнений, очень часто приходится решать их системы. И совсем не обя-
зательно эти системы будут линейными. По этой причине далеко не всегда удается
воспользоваться встроенными возможностями Excel или теми простыми методами,
что были описаны выше для линейных систем. Однако в Excel можно реализовать
процедуры, позволяющие достаточно эффективно искать решения систем алгебраи-
ческих уравнений. Ниже рассматриваются некоторые полезные подходы к решению
этой проблемы.
Следует отметить, что рассмотренный выше метод Ньютона (с соответствующи-
ми модификациями) может быть расширен и на случай системы уравнений. Суть
метода в этом случае сводится к следующему. Представим, что необходимо решить
систему уравнений видаДх,,..., лс„) = 0, где индекс i пробегает значения от 1 до п, а х.,
есть независимые переменные, относительно которых система решается. Другими
словами, нужно решить систему из и уравнений, заданных функциями /.(Зс). В по-
следнем случае введен вектор x = (xt,...,xa), элементами которого являются незави-
симые переменные. Если рассматривать вектор-функцию /(*) = (/, (Зс),—,/„(*)), то
система уравнений может быть записана в виде векторного уравнения как /(*) = О
(нуль в правой части уравнения — это нуль-вектор). По аналогии со случаем, когда
система состоит всего из одного уравнения, последующее (k + l)-e приближение для
вектора переменных Зса+1) через предыдущее, k-e приближение Зс"', можно опреде-
лить согласно соотношению Зс"+" = xw - А~'(3са))/(*а>) - а матрица А'\х) является об-
ратной к матрице А(3с), составленной из частных производных функций f.(x) по их
аргументам. Иными словами, элементы этой матрицы atj(x) определяются согласно
равенству a l j ( x ) = d f l ( x ) / d x j . В свете означенного понятен дальнейший принцип реа-
лизации в Excel итерационной процедуры вычисления корней системы уравнений
методом Ньютона. В качестве примера рассмотрим систему, состоящую из двух
уравнений.

Глава 4. Методы вычислительной математики 353


tJ^^^
Для того чтобы решить систему из двух уравнений, нужно найти значения двух
2 2
переменных: х и у. Рассмотрим две функции: /,(*, у) = 4х + у + 2ху - у - 2 и f2(x, у) =
2 2
= 2л: + у + Эху - 3. Матрица производных, которая используется в процессе поиска
решения, в данном конкретном случае будет определяться как

дх ду 2х + 2у-1
А(х,у) =
Зх + 2у
дх
На рис. 4.104 представлен процесс внесения исходных данных в соответствую-
щую таблицу.
В качестве начальных приближений используем значения х = 0,4 и у = 0,9. Значе-
ние 0.4 для первой переменной вносим в ячейку С4, а в ячейку С5 — начальное зна-
Л Л
чение 0.9 для второй переменной. В ячейку Е4 вводим формулу =4*С4 2+С5 2+
2*С4*С5-С5-2 для определения по значениям аргументов значения первой функции.
Л Л
В ячейку Е5 следует ввести формулу =2*С4 2+С5 2+3*С4*С5-3. В диапазон ячеек
G4:H5 вводятся формулы, согласно которым определяются частные производные от
рассматриваемых функций по их аргументам. В частности, в ячейку G4 вводится
формула =8*С4+2*С5, в ячейку Н4 нужно ввести формулу =2*С5+2*С4-1, формула в
ячейке G5 имеет вид =4*С4+3*С5, и, наконец, в ячейке Н5 должна быть формула
=3*С4+2*С5. Таким образом, диапазон G4:H5 будет представлять из себя ни что
иное, как матрицу производных для данной системы уравнений. Вектор-функция
задается диапазоном ячеек Е4:Е5, а вектор переменных — это диапазон С4:С5.
Следующий важный этап связан с вычислением первого приближения. Результат
такой операции отображается в диапазоне ячеек С6:С7. Этот диапазон следует выде-
лить и в строку формул ввести такое выражение: =C4:C5-MMULT(MINVERSE(G4:H5),
Е4:Е5)(рис.4.105).
Е5 Л =2*С4«2+С5Я2+3'С4'С5-3
J
А ! В : С 0 i__i__J F . '....б.,..! "НШШП !
1 Метод Ньютона для системы уравнений
2 i
3 ; Итерация Точки Функции Матрица производных
х-: 0.4 fKx.vl- -0.73 5 1.6
5! ° У-; аэ f2(x,vl -I -0.79 А-! 4.3 ^ 3
! i ! , :
7'! ^ | : i ! ;

Puc. 4.104. Ввод начальных данных в таблицу

СБ » £(=C4:C5-MMULT(MINVERSE(G4.H5),E4:E5)}
А ; В \___ С J D ;_ Е \ . .. LL-Sbb-JLiJ. tt_..l !i_ J
1 Метод Ньютона для системы уравнений

3 Итерация Точки Функции i Матрица производных


4 0 х-! 0.4 f1(x,y)- -0.73 5; 1.6!
Rfx.yH -079 A- 4.3! 3:
1 У-' 0,51 4039
х-|_
f у- 6.999877 |
3

Puc. 4.105. Определение первого приближения

354 Часть II. Решение задач


Поскольку выражение присваивается в качестве значения для диапазона, а не от-
дельной ячейки, по окончании ввода формулы следует нажать комбинацию клавиш
<Ctrl+Shift+Enter>.
Согласно приведенной формуле, сначала вычисляется обратная матрица к мат-
рице производных (команда MINVERSE(G4:H5)). Эта обратная матрица указывает-
ся как первый аргумент функции MMULTQ. Второй аргумент этой функции -
вектор-функция (диапазон ячеек Е4:Е5). Таким образом вычисляется произведение
обратной матрицы производных и вектор-функции. Вектор (с математической точки
зрения, а для Excel это диапазон) вычитается из вектора начальных значений пере-
менных (диапазон ячеек С4:С5). Таким образом, с помощью данной формулы реа-
лизована схема вычисления последующих приближений. Начнем процесс поиска
решения системы уравнений. Заполним диапазон ячеек 06:17. Это делается доста-
точно просто. Следует выделить диапазон 04:15 и с помощью маркера заполнения
захватить диапазон 06:17. Результат представлен на рис. 4.106.
Замечание. Причина появления меток в некоторых формулах такая же, как и ра-
нее — Excel подозревает, что в формулах есть ошибки, поскольку в соседних
ячейках формулы существенно отличаются. Это все следует игнорировать.
Для выполнения следующей итерации можно выделить диапазон ячеек А6:17 и
переместить маркер заполнения на две позиции вниз. В результате получим значе-
ния всех параметров (вектор-функции, матрицы производных и, самое главное, век-
тора аргументов) на втором шаге итерационного процесса. Результат можно наблю-
дать на рис. 4.107.

Н7 > *• =3'СБ+2*С7
А '• I СВ i D : Е F G H I J
1 Метод Ньютона для системы уравнений
2"
3 Итерация Точки Функции Матрица производных
4 ; о х= 0.4 f1(x.y)-i -0.73 Б 1.6
5J у"-. 0.9 «2(х,у)-" -0.79 А-'"" 4.3Г 3.
х- 0.514039 f1(x,y|- O.OB4775 6.112069 2.027S33
I у - 0.999877 R(x.y)- 0.070155 A -r 5.0557881 3.541872J
8
Э I •;

Рис. 4.106. Заполнение диапазона D6;I7

СВ v £{=C6:C7-MMULT(MINVERSE(G6:H7).E6:E7))
F G
_Ел1ТГ , в i ••••C.-.---I о г Е X. IL j _н JUT" ___4jji|
1 Метод Ньютона для системы уравнений
jp
3 : Итерация Точки Функции Матрица прошводных
4 о _ х i 0.4 f1(x,y)= -0.73 S- 1.6
5 у '! 0.9 О(х,у) -' -0.79 А=^" 4.3* з":
6 1 х ! 0.514039 П(х,у)= 0.084775 : 6.112069: 2.027833
Т V : 0.999877 f2(x.y)-'o!070155 А -'5.055788 '3.541 872
JJ 2 х | 0,500175 f1(x,y)- 0.000769 6.001119: 2.00007
т у , 0.99986 R(x.y)- 0.000385 А-' 5.000281 3.500245
Щ [_____J____J__________J____J____J____J

Рис. 4.107. Вторая итерация

Глава 4. Методы вычислительной математики 355


Процесс продолжается до тех пор, пока не будет достигнута приемлемая точность
в определении корней системы уравнений. На рис. 4.108 представлена таблица с
данными для трех итераций (не считая начальной).
Как видно из рисунка, уже на третьем шаге решение определено довольно непло-
хо. Причина большей частью кроется в том, что было выбрано начальное значение
для вектора переменных, достаточно близкое к точному решению системы. Если вы-
брать другие начальные значения для переменных (для этого нужно ввести соответ-
ствующие числа в ячейки С4 и С5), то итераций может понадобиться больше
(рис. 4.109).
Мало того, можно так "угадать" начальные значения, что результат будет крайне
негативным (рис. 4.110).
В последнем случае проблема связана с тем, что в предложенной в качестве на-
чальной точки (имеется в виду точка на множестве переменных) определитель мат-
рицы производных равен нулю, поэтому обратную матрицу вычислить невозможно.

Puc. 4.108. Третья итерация

Puc. 4.109. Изменение начальной точки для итераций

356 Часть II. Решение задач


=2-С5+2*С4-1

tjj Метод Ньютона для системы уравнений


Функции Матпицл производных
,
г
С(х.у)-
' «MUM! ' «MUM! i
gfr.y)- «MUM! "'А-Г «мим! Г «мим! ;'
f1(x,y)- SWUM! ' «MUM! Г «MUM!
r
O(x.Y)- «MUM! A-* #NUM! ' «MUMI
«MUM! ' «MUM! ' «MUM!
О(х.у) -* «MUM! A-7 «MUM! "* «MUM!

Рис. 4.110. Некорректные начальные значения для выполнения итераций

Отсюда сам собой напрашивается вывод, что выбор начальной точки — достаточ-
но важный момент. В качестве начальных значений можно использовать далеко не
любые. На этот случай есть специальные теоремы и читатель может найти их в лите-
ратуре по данной проблематике. Обсуждение этого вопроса выходит за рамки тема-
тики книги. В качестве практической рекомендаций можно посоветовать метод проб
и ошибок: если не подходит одно значение, следует ввести другое.
Для решения системы уравнений может быть использован другой популярный
метод, который называется методом градиентного спуска. Суть этого метода сводит-
ся к следующему. Предположим, что нужно решить систему уравнений /(Зс) = 0.
В качестве вспомогательной к этой задаче рассматривают проблему поиска миниму-
ма функции Ф(3с) = fT(x)Cf(x), где знак Т означает транспонирование (заменяются
местами строки и столбцы матрицы; в частности, вектор-строка трансформируется в
вектор-столбец и наоборот). Матрица С должна быть симметричной (для ее элемен-
тов справедливо соотношение Ctj = С,,) положительно определенной (это значит, что
для любого ненулевого вектора у имеет место у1 Су > 0). Для положительно опреде-
ленной матрицы, таким образом, функция Ф(3с) может иметь минимум (нулевое
значение) только при условии /(Зс) = 0. Поэтому задача поиска минимума упомяну-
той функции в данном случае эквивалентна решению исходного уравнения. Реше-
ние ищется следующим образом: выбирается начальное приближение, после чего
посредством итерационной процедуры это решение уточняется (часто существенно).
Новое значение для вектора переменных х на (k+ 1)-м шаге выбирается согласно

соотношению x(t+1) = х ( * ) -Х,УФ(х" > ), где V = (—,—,...,—) есть оператор градиента,


Эх, Эх, Эх„
а константа Xt на каждом шаге своя (об этом свидетельствует индекс). Индексы
вверху у векторов, как и ранее, указывают шаг, на котором получены соответствую-
щие значения. Константа Xt выбирается из условия минимума функции
Ф(3с(4) -ХУФ(Зс(")) (по параметру X). Другими словами, "kk = пйпФ(х<*) -ЛУФ(х ( *>)). Это
минимальное значение может быть найдено как решение уравнения
о\\
-^ = 0. Таким образом, если представить зависимость Ф(х) как по-

верхность в многомерном пространстве переменных х, то в процессе поиска реше-


ния (минимум функции) движение происходит от начальной точки к этому самому

Глава 4. Методы вычислительной математики 357


минимуму. Причем направление каждого следующего перехода выбирается проти-
воположным максимальному возрастанию функции (т.е. в сторону ее наибольшего
уменьшения). Последнее обеспечивается тем, что градиент функции задает направ-
ление максимального возрастания функции в данной точке.
Проблема, однако, состоит в следующем: при использовании этого метода на практи-
ке на каждом шаге приходится решать уравнение для параметра А, а это, как правило,
достаточно трудоемкая задача. Поэтому обычно ищут параметр А на основе приближен-
ного уравнения. Это уравнение получается из оригинального, если выполнить разложе-
ние в ряд Тейлора по данному параметру. Такое приближенное уравнение может быть

решено аналитически. В частности, можно показать, что А 4 = —

Здесь использована матрица производных А ( х ) , элементы которой, как и в предыдущем


примере с методом Ньютона, определяются соотношениями а^(х) = Э/.(*)/<Элг,. Через эту
матрицу можно выразить и градиент исследуемой на минимум функции — здесь имеет
место соотношение УФ(5) = 2AT(x)Cf(x).
Если параметр А определяется приближенным уравнением, то метод называют
модифицированным методом градиентного спуска. В этом случае переход к следую-
щей точке на поверхности осуществляется не строго в направлении самого сильного
уменьшения рассматриваемой функции. Тем не менее, это позволяет существенно
сэкономить время на составление процедуры поиска решения (не нужно задавать
специальные подпроцедуры вычисления параметра А). Кроме того, сама процедура
поиска становится намного проще и понятнее.
В качестве примера, иллюстрирующего способы реализации метода градиентного
спуска (модифицированного), рассмотрим задачу, которая была решена выше мето-
дом Ньютона. Заодно это позволит сравнить разные методы поиска решения.

Пример 4.12. Решить систему уравнений 4х + у + 2ху -у-2 = 0и2х +у + Злу -3 = 0


методом градиентного спуска
По большому счету, использование метода градиентного спуска мало чем отлича-
ется от расчетов по методу Ньютона. Принципиальные изменения потребуется вне-
сти только в содержимое тех ячеек, где определяются последующие приближения
для аргументов вектор-функции. Кроме этого придется заполнить несколько ячеек
для параметров, которые в предыдущем случае (т.е. в методе Ньютона) не использо-
вались. Речь идет о векторе градиента и о коэффициенте пропорциональности, кото-
рый находится перед этим самым градиентом. Помимо этого, сразу сделаем одно
весьма важное замечание. Оно касается матрицы С. Очень часто ее выбирают в виде
единичной матрицы (матрица с единицами по диагонали и остальными нулевыми
элементами). Именно так и поступим в данном случае. При этом все необходимые
условия, налагаемые на матрицу С, выполняются автоматически. Для такой матри-
цы существенно упрощаются и выражения для вектора градиента и коэффициента
пропорциональности (параметр А). Точнее, в этом случае можем пользоваться соот-

358 Часть II. Решение задач


ношением X t = - r~^—;т Для определения коэффициента пропорцио-

нальности перед градиентом в формуле вычисления следующего приближения, а для


определения самого градиента можно использовать формулу УФ(х) = 2Ат(Зс)/(х).
Начальный этап заполнения таблицы, в которой будет реализован метод градиент-
ного спуска, проиллюстрирован на рис. 4.111.
Существенно новыми являются данные в ячейке L5 (коэффициент пропорцио-
нальности перед градиентом) и диапазон ячеек J4:J5 (градиент). Все прочие ячейки
заполняются так же, как и в методе Ньютона. В табл. 4.3 перечислены основные мо-
менты, связанные с заполнением этих ячеек (формулы в ячейках L5 и J4:J5 описаны
отдельно).

Рис. 4.111. Начальный этап заполнения таблицы

Таблица 4.3. Метод градиентного спуска — вводимые в ячейки значения и формулы

Ячейка Значение или формула


А5 0
С4 0.4 •
С5 0.9
Е4 =4*С4л2+С5л2+2*С4*С5-С5-2
Е5 =2*C4A2+C5*2+3*C4*C5-3
G4 ^8*С4+2*С5
G5 =4*С4+3*С5
Н4 =2*С4+2*С5-1
Н5 =3*С4+2*С5
В диапазон ячеек J4:J5 следует ввести формулу =2*MMULT(TRANSPOSE(G4:H5),
Е4:Е5). Согласно этой формуле градиент (это вектор)- получается как результат
(удвоенный, о чем свидетельствует множитель 2 перед функцией MMULT()) умноже-
ния транспонированной матрицы производных (команда TRANSPOSE(G4:H5)) и
вектор-функции (ссылка на диапазон Е4:Е5). Что касается формулы =MMULT
(TRANSPOSE(Vect01),Vect01)/MMULT(TRANSPOSE(Vect02),Vect02)/2 в ячейке L5
для вычисления коэффициента пропорциональности перед градиентом, то выглядит
она довольно замысловато и требует особых комментариев. В частности, перед тем, как
вводить ее в ячейку, разумно определить две вспомогательные формулы VectOI и
Vect02. Делается это следующим образом. Следует выделить ячейку L5 и после этого
выбрать команду Insert^Name^Define (Вставка^Название^Определить). В от-
крывшемся диалоговом окне Define Name в поле Names in workbook нужно ввести на-

Глава 4. Методы вычислительной математики 359


звание для формулы (сначала создается формула VectOI — это важно!), а в поле
Refers to (Ссылается на) саму формулу. Для VectOI это выражение =MMULT (TRANS-
POSE(Sheet1!G4:H5),Sheet1!E4:E5)(pHc.4.H2).
С помощью этой формулы вычисляется произведение транспонированной матрицы
производных (команда TRANSPOSE(Sheet1 !G4:H5) — в ссылке на диапазон ячеек Excel
автоматически указывает рабочий лист) на вектор-функцию (ссылка Sheet1!E4:E5).
Само произведение, как и ранее, вычисляется с помощью функции MMULTQ.
Внимание! При вводе формулы ссылки должны быть относительными. Если
диапазоны вводятся путем выделения в рабочем листе соответствующих ячеек,
по умолчанию ссылки указываются как абсолютные. Эти абсолютные ссылки
следует изменить на относительные, для чего достаточно нужное количество раз
нажать клавишу <F4>, предварительно поместив курсор в поле ввода на изме-
няемую ссылку. Следует помнить, что нажатие клавиши со стрелкой при вводе
формулы в поле Refers to (Ссылается на) приводит не к перемещению по полю
ввода, а к переходу к соседней ячейке в рабочем листе.

После этого можно либо щелкнуть на кнопке ОК (в этом случае диалоговое окно
Define Name будет закрыто и для ввода новой формулы Vect02 придется снова вы-
бирать команду Insert^Name^Define), либо кнопку Add (Добавить) (в результате
будет принята формула VectOI и появится возможность ввести еще одну, поскольку
окно Define Name при этом не закрывается).
Для формулы Vect02 вводится в качестве определяющего выражение
=MMULT(Sheet1!G4:H5, VectOI )(рис. 4.113).

Refers to:
-MMULT(TRAN5PO5E(Sheetl!G4:H5),5heeU!E't:E5) |=MMULT(Shc!etl!G4:H5,Vect01)

Puc. 4.112. Формула VectOI Рис. 4.113. Формула Vect02

В этой формуле, как несложно заметить, используется формула VectOI, опреде-


ленная на предыдущем этапе. Результат выполнения формулы Vect02 состоит в том,
что вычисляется произведение матрицы производных (ссылка Sheet1!G4:H5) и ре-
зультата перемножения транспонированной матрицы производных на вектор-
функцию (это произведение возвращается согласно формуле VectOI). Здесь также
остается в силе замечание о необходимости использования относительных ссылок
(выделенной при этом в рабочем листе должна быть ячейка L5!). По окончании про-
цесса ввода формулы следует щелкнуть на кнопке ОК.
Теперь можно вернуться к формуле, размещенной непосредственно в ячейке L5
(напомним, что она имеет вид =MMULT(TRANSPOSE(Vect01),VectOI )/MMULT
(TRANSPOSE(Vect02),Vect02)/2). Согласно этой формуле коэффициент пропор-

360 Часть II. Решение задач


циональности определяется как половина отношения квадратов модулей (т.е. вектор
множится на себя, транспонированного) двух векторов: вектора VectOI и вектора
Vect02. Командой MMULT(TRANSPOSE(Vect01),Vect01) вычисляется квадрат мо-
дуля вектора VectOI. При этом следует учесть, что для корректного перемножения
двух матриц количество столбцов первой должно совпадать с количеством строк
второй. Поэтому чтобы посчитать квадрат модуля вектора (а это с точки зрения
Excel, и не только, есть частный случай матрицы), следует вектор транспонировать
(вектор-столбец становится вектором-строкой) и умножить на оригинальный, т.е. не
транспонированный, вектор. Именно поэтому первым аргументом функции
MMULT() указана команда TRANSPOSE(VectOI) (т.е. транспонированный вектор
VectOI). Точно так же вычисляется квадрат модуля второго вектора (команда
MMULT(TRANSPOSE(Vect02),Vect02)).
Внимание! В ячейку L5 формула вводится так же, как и в диапазон ячеек, т.е. с
помощью нажатия комбинации клавиш <Ctrl+Shift+Enter>. Таким образом, эта
ячейка рассматривается как диапазон.

На этом особенности ввода формул данных для нулевой итерации, в принципе,


исчерпываются.
Замечание. Приведенные выше формулы имеют большей частью иллюстратив-
ный характер. Некоторые вычисления можно было бы существенно упростить.
Например, читателю предлагается подумать над вопросом, как при вычислении
модуля вектора можно было бы использовать функцию SUMSQ().
Далее нужно задать формулу, согласно которой будет вычисляться значение
переменных на последующих этапах поиска решения. С этой целью выделяется диа-
пазон ячеек С6:С7, куда вводится формула =C4:C5-L5*J4:J5 (рис. 4.114).
Эта формула достаточно проста: от предыдущих значений (диапазон С4:С5) от-
нимается вектор градиента (диапазон ячеек J4:J5), умноженный предварительно на
коэффициент пропорциональности (ячейка L5). После этого ячейки диапазона
D6:L7 заполняются копированием диапазона D4:L5. С этой целью можно, например,
выделить диапазон D4:L5 и затем расширить его с помощью маркера заполнения до
пределов D4:L7. Ячейку А7, на худой конец, придется заполнить вручную. Результат
представлен на рис. 4.115.
Процесс выполнения последующих итераций очевиден. Следует выделить диапа-
зон А6:1_7 и растянуть его с помощью маркера заполнения вниз на нужное количест-
во позиций. На рис. 4.116 показаны восемь итераций (не считая начальной).

Рис. 4.114. Ввод формулы для вычисления следующего приближения

Глава 4. Методы вычислительной математики 361


Рыс. 4.115. Заполнение ячеек с данными для первой итерации

Рмс. ^.У/б. Первые восемь итераций

Как несложно заметить, полученная точность решения существенно хуже, чем


для метода Ньютона. Хотя из этого, безусловно, никак не следует, что данный метод
нельзя использовать на практике. Выбор того или иного метода решения — вопрос
достаточно субъективный и зависит от типа задачи, которую приходится решать.
Однако все же важно отметить, что метод градиентного спуска несколько громоздок,
о чем свидетельствует еще один пример, в котором данный метод используется для
решения системы линейных уравнений. Система более чем простая, и поэтому при-
мер является хорошим индикатором эффективности рассматриваемого метода.

1Пример 4.13. Решить методом градиентного спуска систему уравнений: 2х + у - 5 = О

Сразу отметим, что система имеет единственное решение х = 1 и у = 3. Именно это


решение, следовательно, и нужно будет найти. В качестве начальной точки исполь-
зуем значения х = 2 и у = 2. По сравнению с предыдущим примером, в таблицу нужно
внести минимальные изменения. Введем новые начальные точки (ячейки С4 и С5),
а также переопределим вектор-функцию системы: в ячейку Е4 введем формулу
=2*С4+С5-5, в ячейке Е5 должна быть формула =4*С4-3*С5+5. Другой будет и мат-
рица производных.

362 Часть II. Решение задач


Совет. Здесь можно еще раз вспомнить о способе определения производных.
Если бы производные определялись приближенно, с помощью метода малого
приращения аргумента функции, то данные для матрицы производных менять бы
не пришлось. Таким образом, если в дальнейшем предполагается использовать
таблицу для решения различных систем уравнений, можно пожертвовать точно-
стью в определении производных. Зато в этом случае для решения очередной
системы достаточно будет поменять формулы для функций в левых частях урав-
нений и ввести начальные точки.
В данном случае, поскольку функции линейным образом зависят от аргументов, мат-
рица производных будет состоять из чисел и в процессе вычислений меняться не будет.
Внимание! Несмотря на то, что элементами матрицы производных являются
числа, вводить их следует как формулы, т.е. со знаком равенства: в ячейку G4
вводится формула =2, в ячейку G5 вводится формула =4, в ячейку Н4 нужно вве-
сти выражение =1, а в ячейку Н5 нужно ввести формулу =-3. Если этого не сде-
лать (т.е. не вводить знак равенства и ограничиться только числами), то при по-
следующем копировании ячеек таблицы с помощью маркера заполнения эти чис-
ленные значения будут трактоваться как начальные данные для формирования
последовательностей, в результате чего на каждом шаге матрица производных
будет изменяться самым катастрофическим образом. С этой ситуацией можно
было бы бороться, выбирая режим простого копирования (не рассматривая чис-
ленные данные как последовательность), но тогда будут проблемы с автоматиче-
ским изменением номера итерации в столбце А. Поэтому самым разумным выхо-
дом представляется использование формул, как было указано выше.
На рис. 4.117 приведена таблица с пятью последовательными итерациями для
рассматриваемой системы уравнений.
Из приведенных данных следует, что по сравнению с другими методами поиска
решений системы уравнений, метод градиентного спуска никакими существенными
преимуществами (скоростью сходимости или простотой реализации) не обладает.
Однако это все же достаточно эффективный метод и он может с успехом использо-
ваться для решения сложных систем, когда методы линейной алгебры неприменимы.

Рис. 4.117. Решение системы линейных уравнений методом градиентного спуска

Глава 4. Методы вычислительной математики 363


Вычисление производных и интегралов
Помимо решения уравнений и систем, часто приходится сталкиваться с пробле-
мой вычисления производных от функций, или задачей, во многом обратной к
этой — с вычислением интегралов.
Подробности. Что касается аналитического вычисления производных или неоп-
ределенных интегралов (т.е. нахождения первообразных), то это обратные по от-
ношению друг к другу задачи. Здесь речь пойдет о вычислении производных и
интегралов в численном виде. Это не совсем одно и то же, что аналитическое их
вычисление, но все же операции, связанные друг с.другом.
Начнем с задачи вычисления производной (в численном виде, разумеется). Реше-
ние ее может быть связано с рядом проблем принципиального характера. Во-первых,
если функция задана в табличном виде (т.е. значения функции заданы только в неко-
торых точках, называемых узлами), вычисление значения производной между узловы-
ми точками (равно как и значения самой функции) подразумевает, как правило, ис-
пользование специальных методов интерполирования или аппроксимации (соот-
ветствующие методы рассматриваются в следующей главе). Во-вторых, многое зави-
сит от особенностей самой функции. Для корректного вычисления производной по
значениям функции в точках, количество табулированных значений функции на ин-
тервале ее существенного изменения должно быть достаточно большим (чтобы можно
было выстроить адекватную картину поведения функции). Без такой детальной ин-
формации процесс поиска производных может плавно перейти в гадание на кофейной
гуще. Здесь разумно будет выделить два принципиальных момента относительно вы-
числения производной: это полнота данных о функции (и связанные с этим проблемы)
и выбор метода расчета производных. Способы анализа статистических данных, на-
прямую связанные с первой проблемой, достаточно широко освещаются в следующей
главе. А теперь остановимся на методах, которые могут использоваться для вычисле-
ния производной в численном виде по известным значениям в узлах, а также кратко
проанализируем ситуации, при которых те или иные методы используются.

Вычисление производных
Существует несколько способов вычисления производной функции, которая за-
дана в виде таблицы значений. Для большей конкретности будем в дальнейшем
(если не оговорено другое) рассматривать функцию Дд;) a priori неизвестную, для ко-
торой на множестве значений аргумента {х.} заданы значения {_£} (индекс / = 1..и).
Другими словами, по определению полагаем fix) =/. Для вычисления производной
ft в точке х. может быть использована, например, формула f, = (fM - f)l(xin - х). Эта
формула иногда еще называется правой конечной разностью. Она может быть легко
проиллюстрирована графически (рис. 4.118).
Идея состоит в том, что для вычисления производной в точке х, функция получает
конечное приращение, вызванное увеличением ее аргумента до значения хм. Производ-
ная вычисляется как отношение приращения функции к приращению аргумента. В этом
случае неявно предполагается, что между точками х, и хм, где заданы ее значения, эта
функция линейно зависит от аргумента (т.е. соответствующие точки соединяются пря-
мой). Чем меньше приращение последнего, тем, по идее, должна быть выше точность.

364 Часть II. Решение задач


Рис. 4.118. Метод правых разностей при вычислении производной

Замечание. Точность при вычислении производных — это вообще тема отдель-


ная. Здесь отметим, что неточности, возникающие в процессе вычисления произ-
водных (и не только), могут быть обусловлены следующими обстоятельствами:
неточностью исходных данных, неточностью используемых алгоритмов или
формул, ошибками округления на промежуточных этапах вычислений. Как пра-
вило, когда речь идет о численных методах, имеют в виду погрешность, возни-
кающую из-за использования приближенных формул. Как бороться с неточно-
стью данных (если это вообще возможно), кратко излагается в следующей главе.
Совершенно очевидно, что с таким же успехом можно для вычисления производ-
ной изменять аргумент не вправо (в сторону увеличения), а влево (в сторону
уменьшения). Графически эта ситуация представлена на рис. 4.119.
В этом случае можно использовать формулу для левых конечных разностей
f.= (/;-/_,)/(*,.-*,-_,). Если сравнить формулы для правых и левых разностей, можно
заметить, что они, фактически, определяют один и тот же набор значений для произ-
водной (за исключением, пожалуй, граничных точек), только значения эти смещены
на одну позицию.
Помимо уже упомянутых формул, достаточно популярна и формула вычисления
производной по центральным разностям. Она имеет вид/,. = (/•+,- /,^)/(хм - *м).
Иначе говоря, для вычисления производной в этом случае используются значения
функции в соседних точках (справа и слева от той, в которой вычисляется производ-
ная) (рис. 4.120).

Глава 4. Методы вычислительной математики 365


Xi-1

Рис. 4.119. Смещение аргумента влево для вычисления производной

Xi-1 XH-I
Рис. 4.120. Центральные разности

366 Часть II. Решение задач


Что касается производных более высоких порядков, то тут можно вспомнить, что,
например, вторая производная — это производная от производной. Если есть значе-
ния для первой производной, то, используя приведенные выше формулы, можно по-
считать и вторую. По известной второй производной можно посчитать третью и т.д.
Замечание. Вычисление производных на границе интервала, где задана функция,
имеет свои особенности. Несложно догадаться, что, например, если вычислять
производные согласно формуле для правых разностей, на правой границе диапа-
зона производную вычислить не удастся. Для формулы левых разностей пробле-
мы возникают, соответственно, на левой границе. Что касается центральных раз-
ностей, то формула не может использоваться на обеих границах диапазона.
Во всех этих случаях нужно применять военную хитрость.
Ниже приведен пример вычисления производной функции. В качестве исследуе-
мой выбрана функция Дл) = 1/(1 +х) и рассматривается она на интервале от 0 до 5.
На рис. 4.121 представлена соответствующая таблица, которая содержит данные для
функции и ее первой производной, вычисленной по трем разным формулам. Там же
приводятся и точные значения для производной в соответствующих точках.

С5 » £ =(D2-B2)/(D1-B1)
! А [....- В ,| с
I D Е F G | н 1 J К L
1 .Аргуиент х = 0 0.5 1 1.5 2 2.5 3 3.5! 4 4.5 5
2 Функция f(x) = 1 066667 0.5: 0.4 0.33333: 0.28571 i 0.25 0.22222 0.2 0.18182 0,16667
Правые
3 разности Г(х) - -0.6867 -0.3333: -0.2! -0.1333 -0.0952 -0.0714 -0.0556 -0.0444 -0.0364
ь
-0.0303 003233
Левые
4 разности Г{х) = -0.6667 -о.зззз: -0.2 -0.1333 -0.0952; -0.0714 -0.0556 -0.0444 -0.0364 -0.0303;
(•Центральные
5 {разности Г(х) = •o.sl -0.2667^ -0.1667 -0.1143 -0.0833!; -0.0635
;
-0.05! -0.0404 -0.0333 0.0404
Точное
6 ; значение Г (х) « -1 Л. 4444 -0.25 Л. 16 -0.1111 -0.0816 -0.0625 Л .0494 Л. 04 -0.0331 -0.0278
74 : : i : • : : ; , >•

Рис. 4.121. Вычисление производной

В диапазон ячеек B1:L1 вводятся значения аргумента для функции (и производ-


ной, разумеется), начиная с 0 с шагом 0.5.
Совет. Для заполнения диапазона В1:1_1 достаточно ввести значение 0 в ячейку
В1 и значение 0.5 в ячейку С1, после чего выделить эти две ячейки и с помощью
маркера заполнения расширить область выделения до пределов диапазона В1:1_1.
Достаточно просто табулируются и значения функции. Для этого в ячейку В2
вводится формула =1/(1+В1), после чего она копируется во все ячейки диапазона
B2:L2. Точное значение производной заносится в диапазон B6:L6. Поскольку произ-
водная равна f(x) - -1/(1 + x f , то в ячейку В6 нужно ввести формулу =-1/(1+В1)л2 и
затем путем копирования (можно воспользоваться маркером заполнения) заполнить
остальные ячейки.
В ячейках диапазона B3:L3 представлены данные для производной, вычисленные
на основе формулы для правых разностей. В ячейку ВЗ вводится формула =(С2-
В2)/(С1-В1), после чего ячейка выделяется и маркером заполнения захватывается
диапазон B3:L3. Причем следует иметь в виду, что на правой границе (ячейка L3),
как это уже отмечалось, данная формула неприменима. Тем не менее, если в ячейку
все же скопировать формулу, значение будет вычислено. Дело в том, что при копи-

Глава 4. Методы вычислительной математики 367


ровании в ячейку L3 формула содержит ссылку на пустые ячейки. В этом случае по
умолчанию значение этих ячеек интерпретируется как нулевое. Иногда это прием-
лемо, но только не в данном случае. Поэтому упомянутая ячейка с некорректными
данными выделена серым цветом (см. рис. 4.121).
Для вычисления производной по формуле для левых разностей в ячейку С4 вво-
дится формула =(С2-В2)/(С1-В1). Дальше эта формула копируется в ячейки из диа-
пазона C4:L4. В этом случае на правой границе проблем не возникает, зато пришлось
оставить незаполненной ячейку В4, соответствующую левой границе диапазона зна-
чений аргумента.
Наконец, вводим формулу для определения производной через центральные разно-
сти =(D2-B2)/(D1-B1) в ячейку С5. Путем копирования соответствующая формула мо-
жет быть применена к оставшимся ячейкам из диапазона C5:L5. При этом справедли-
выми остаются замечания, сделанные выше для граничных точек диапазона изменения
аргумента функции. Для удобства анализа все ячейки, в которых значение производ-
ной не определено или определено некорректно, выделены серым цветом.
Как видно из анализа данных в таблице на рис. 4.121, наилучшее приближение
дает формула центральных разностей. Тем не менее, следует принять во внимание,
что в рассматриваемом случае выбран достаточно большой шаг для изменения аргу-
мента. Если вместо шага 0,5 выбрать шаг 0,1, т.е. уменьшить шаг в пять раз, получим
значительно более точные результаты — это проиллюстрировано на рис. 4.122.
Возвращаясь к проблеме неопределенности производной на границе, можно
предложить, например, такой выход: если используемая формула для вычисления
производной не работает на одной или обеих границах, разумно в этом случае просто
использовать другую формулу. Скажем, если используется формула для централь-
ных разностей, то производную на правой границе можно вычислять по формуле
для левых разностей, а на левой границе — соответственно, по формуле для правых
разностей. Хотя у такого подхода есть и альтернативы, их обсуждение представляет-
ся здесь не совсем уместным.
Предложенный выше метод вычисления производных функции может быть, с
некоторыми изменениями, применен и для вычисления производных в более слож-
ных случаях. В качестве примера рассмотрим процедуру вычисления производной
для функции, заданной в параметрическом виде.

С4 j=(C2-B2)/(C1-B1)

.•rl.jApiyKHTK- О
1 ~ D Г
0.1; 0.2 0.3 0.4 0.5!
H
0.6
I
0.7 0.8
К
0.9
•I
:
j Функция f(x) 1' 0.90909.! 0.83333 0.7Б923; 071429; OJ6667; 0.625 O.S8S24! 0.55556 0.52632! 0,5!
(Правые
jpaiHQCTMf(x)- |JI9091j -0.7576; :0:64lj J;5495j ;0:4762 -0.26321
• Левые
|ра)ности fjx) « -0.90911 -0.7576! -0.641 -0.5495 -0.4762; -0.4167! -0.367б -0.32681 -0.2924! -0.2632
I Центральные
I 5 разности Г(х)- -О.ВЗЭЗ -0.6993 -0.5952! -0.5128! -0.4464! -0.3922 -0.3472! -0.3096! -0.2778
[Точное
6 значение Г(») • -II -0.8264! Л.6944 -0.5917 Л.5102 Л.4444! Л.3906 -0.346 -0.3086 .0.277! .0.25!

Рис. 4.122. Результат изменения приращения аргумента

368 Часть II. Решение задач


Замечание. О функции говорят, что она задана в параметрическом виде, если за-
висимость у(х) задается посредством системы уравнений у = y(t) и х = x(t). Произ-
водная такой функции также задается в параметрическом виде и может быть
найдена как решение системы уравнений у'х = y'(t)/x'(t) нх = x(t). Аналогично вы-
числяются и последующие производные.

Пример 4.14. Найти производную параметрически заданной функции, если

Для того чтобы представить, что же за кривая задается указанными в условии


уравнениями, можно построить ее график, что и будет сделано. Однако и так можно
заметить, что это часть окружности (размещенная в первом квадранте) единичного
радиуса, с центром в начале координат. Действительно, достаточно убедиться в том,
что независимо от значения параметра t выполняется соотношение х + у2 = 1.
В первую очередь заполняем таблицу с данными для аргумента и значений
функции: сначала в ячейки диапазона В3:1_3 вводим (лучше путем копирования)
значения параметра начиная с нулевого значения (ячейка ВЗ) с шагом 0.1 до значе-
ния 1 (ячейка L3). В ячейку В4 вводим формулу =SIN(PI()*B3/2), а в ячейку В5 —
формулу =COS(PI()*B3/2). Диапазон В4:В5 выделяется, и маркером заполнения
расширяется до пределов B4:L5. Результат представлен на рис. 4.123.
Чтобы построить кривую по этим данным, выделяем диапазон ячеек В5:1_5 и вы-
бираем, например, команду Insert^Chart (Вставка1^Диаграмма). Далее следует
выбрать тип создаваемой диаграммы (рис. 4.124).
С4 > ft =SIN(PIO*C3/2)
~~J ~ А L __B г С ,| D [, § J F ' Л_6. J H J_ _ J j J Л L
1 Параметрическая производная "
1
Т1 ; ; L
3 |Пара«етр 1- 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1;
4 [Аргумент х - ; gj 0156431 0.30902 0.45399 0.58779 0.70711 0.80902 089101 0.95106 098769 1!
5 Функция у - 0.93769* 0.95106 0.89101 0.80902 0.70711 0.58779 0.45399 0.30902 0,15643 6.1 1-17;
"б" Г
Puc. 4.123. Заданная в параметрическом виде функция

Рис. 4.124. Выбор типа диаграммы

Глава 4. Методы вычислительной математики 369


На следующем шаге необходимо указать название для последовательности отобра-
жаемых на графике данных — в поле Name следует ввести значение у(х) или ="у(*)").
а в поле Category (X) axis labels (Метки для данных вдоль оси X) указать диапазон
ячеек В4:1_4 (для этого достаточно выделить данный диапазон в рабочем листе). Дан-
ные в ячейках диапазона послужат для разметки оси абсцисс (горизонтальная коорди-
натная ось). Результат выполнения перечисленных действий показан на рис. 4.125.
На третьем этапе нужно ввести название для графика — в поле Chart title (Заголовок
диаграммы) на вкладке Titles (Заголовки) введем текст Параметрическая кривая. Кроме
этого в поле Category (X) axis (Данные вдоль оси X) укажем название для горизонталь-
ной оси (это х), а для вертикальной оси в поле Value (Y) axis (Значение вдоль оси Y) вве-
дем название у. Полученный результат показан на рис. 4.126.

_J yaluei: ' J-Sbeetl!$BJS:tL*5


Add I Bemove j.

Categor, (X) axtt labels: "; j-Sheetl!$BJ4:$L$< iJ

31

Рис. 4.125. Второй этап создания диаграммы

Chair Wi^rrt - Step 3 nl 4 - Thai! Qplinnt

**M; Grt*f»« legend Data labels Data Table j


Chart ВИе:'. ______
- Параметрическая кривая
. Category (X)a*is:

Puc. 4.126. Ввод названия графика

370 Часть II. Решение задач


Кроме этого, неплохо было бы отобразить вертикальные координатные линии,
для чего на вкладке Gridlines (Линии сетки) следует поставить флажок опции
Major gridlines (Основная сетка) в разделе Category (X) axis (Данные вдоль оси X).
Флажок аналогичной опции в разделе Value (Y) axis (Значение вдоль оси Y) уже ус-
тановлен (рис. 4.127).
Дальнейший процесс создания диаграммы особых комментариев не требует.
Результат (т.е. готовая диаграмма) показан на рис. 4.128.
При этом предварительно было изменено выравнивание названия вертикальной
координатной оси и численных меток вдоль горизонтальной оси. Предполагается,
что читатель уже знаком с техникой внесения подобных изменений и трудностей у
него это не вызовет.

Chart Wizard - Step 3 of 4 - Chart Options

Тик | Axes aWnes | legend | DataLabete { DataTabte |


CategoryOO axis -
17 jgjajpr qrSlinesj

Value (Y)axB -
I? Ma&r gridnes

Рис. 4.127. Отображение координатных линий

L5 » A =COS(PI()*L3/2)

1
А В
Параметрическая производная
! С . | D_..j Е | F~~T'_ G \ H j j __d_J K-;;l ~r~r
: ;
2 ; i ! i , '
3 Параметр!- i Q 0.1! 0.2 0.3: 0.4: 0.5! 0.6; 0.7 0.8: 0.9: 11
4 Аргумент х-
1
Q 0.15643 0.30902 0.45399 0.58779; 0.70711 0.80902 0.89101 0.95106: 0.98769 1
r
S | Функция у « • i 0.98769- 0.95106' 0.8910V 0.80902 0.70711 j o!58779; 0.45399 0.30902 0.15643 6.1E-17I

_
6
I

I
i Параметрическая кривая
i I
I I
1.2-1
I :

':
*- < - I i
I *
\
|
' I 1 :
i
* и I * y^l
16 ».
«, i_ =±
L
zm
17 -Vi' '.

18 0 0.31 0.59 0.81 0.95 1


19 '. i
20 X
— j. —
21 !
- - -1
22: ' ! : • ! i

Puc. 4.128. График параметрической зависимости

Глава 4. Методы вычислительной математики 371


Замечание. Из приведенного рисунка сложно заключить, что отображаемая кри-
вая — часть окружности. Причина, однако, состоит в том, что по горизонтальной
и вертикальной осям выбраны разные масштабы, поэтому окружность как бы
растянута вдоль горизонтали.
Теперь приступаем непосредственно к процессу вычисления производной от
заданной в параметрическом виде функции. В ячейку С6 вводим формулу
=(D5-B5)/(D4-B4) — это формула определения производной по центральным разно-
стям. В ячейку С7 следует ввести формулу =-SIN(PI()*C3/2)/COS(PI()*C3/2), которая
представляет собой выражение для производной, вычисленное аналитически.
Замечание. Если x(i) = sin(m/2) и y(t) = cos(ro/2), то х'(t) = (7i/2)cos(ro/2) и
y'(t) = (-7i/2)sin(ra/2). Поэтому согласно формуле вычисления параметрической
производной получаем у'х = у'(i)lx'(r) = -sin(m/2)/cos(ra/2). Именно эта формула и
вводится для проверки точности вычисления производной методом центральных
разностей. Кроме того, хочется обратить внимание, как в данном случае удалось
избежать процесса вычисления производных непосредственно по параметру t
(хотя страшного в этом ничего и нет). Сначала для изменений параметра были
вычислены изменения аргумента функции, а уже по изменениям аргумента вы-
числяется производная. Это, пожалуй, одно из проявлений позитивных послед-
ствий использования Excel в численном счете.
Далее диапазон ячеек С6:С7 выделяется и расширяется с помощью маркера
заполнения до размеров С6:К7 (для граничных точек производную не считаем).
Результат представлен на рис. 4.129.
Совпадение, как видим, просто поразительное. Вообще же, чем более плавная
функция, тем точнее определяется производная (согласно приведенных разностных
формул). В случае линейной зависимости эти формулы дают точные значения для
производных (в пределах погрешности вычислений). Для быстро изменяющихся
функций следует выбирать по возможности меньший шаг приращения аргумента.
Это обычно не составляет проблемы, если известна аналитическая зависимость
функции от аргумента, когда пользователь табулирует функцию самостоятельно.

С7 'т •"'*• =-SIN(PIO*C3/2)/COS(PIO*C3/2)


А I В с D | Е \ G Н I К j L

1
F : J .:;.

Параметрит еская производная

3 Параметр t- 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9! 1!
л Ар|уиент X е о 0.15643 0.30902 0.45399: 0.58779 0.70711 0.80902 0.89101 0.95106 0.98769 1!
5 Функция у - 1 0.98769 095106 0 89101: 080902, 070711 0.58779 0.45399 0:3090?, 015643 61Е-1Л
:

Производная ~|
ь УМ- -0.1584 -0.3249! -0.5095: -0.7265 -1 -1.37Б4 -1 .9626 -3.0777 -6.31381 !
Точное
7 значение -0.1584 Л.3249 Л.5095 -0.7265 -1 -1.3764 -1.9626 -3.0777 .6.3138 \
В

Рис. 4.129- Вычисление параметрической производной

Замечание. Подобные ситуации довольно часто встречаются на практике. Обыч-


но это имеет место, когда, например, известна функция (т.е. аналитическая зави-
симость), но она слишком громоздка и вычислять производную сначала аналити-
чески, а потом подставлять нужные значения, представляется занятием утоми-

372 Часть II. Решение задач


тельным и малопродуктивным. В этом случае можно представить функцию в ви-
де таблицы значений и вычислить производные сразу в численном виде. Если
грамотно подобрать шаг изменения аргумента функции, можно добиться более
чем приемлемой точности вычислений.
Ситуация принципиально усложняется, когда приходится работать только со
значениями функции, не зная наперед, какова эта функция. В этом случае неполнота
данных может быть невосполнимой. Однако часто даже в подобных ситуациях мож-
но проводить эффективный анализ. А теперь перейдем к вопросам, связанным с
проблемой вычисления интегралов.

Вычисление интегралов
Большинство концепций вычисления интегралов (в численном виде) апеллиру-
ют, как правило, в том или ином виде, к геометрической его интерпретации. Так, ес-
ли нужно вычислить интеграл от функции fix) на интервале изменения аргумента
ь
функции от а до b (обозначается как \f(x)dx ), это все равно, что найти площадь под

графиком функции Дх) на данном интервале изменения аргумента. Имеется в виду


площадь фигуры, ограниченной сверху кривой f(x), а снизу — координатной осью
абсцисс (ось аргумента функции). Если график функции находится ниже коорди-
натной.оси абсцисс, площадь считается отрицательной. Эти нехитрые утверждения
и лежат в основе описываемых далее процедур вычисления интегралов от функций.
Стандартный подход к решению проблемы вычисления интеграла в общих чер-
тах состоит в следующем. Во-первых, диапазон изменения аргумента функции (или
переменной интегрирования) разбивается на достаточно большое число интервалов
(чем больше, тем лучше). Обычно эти интервалы имеют равную длину. Что касается
их количества, то оно выбирается из тех соображений, чтобы на каждом из таких
интервалов интегрируемая функция была бы достаточно плавной. Если диапазон
интегрирования (а, Ь) разбит на п равных интервалов, это значит, что указано п + 1
узлов х. (i = О..п) длины h = (Ь - а)/п, и эти узлы определяются, очевидно, равенством
дс, = а + ih. Само собой разумеется, что предполагаются известными значения интег-
рируемой функции в этих узлах Дл.) ~ft.

Замечание. Таким образом, фактически мы рассматриваем задачу, когда необхо-


димо проинтегрировать известную функцию, поскольку неявно предполагается,
что пользователь может сам выбрать количество интервалов, на которые разбива-
ется диапазон изменения переменной интегрирования, равно как и вычислить
значения функции в соответствующих узлах. Это существенный класс задач, по-
скольку далеко не для каждой функции можно вычислить неопределенный инте-
грал (найти первообразную). Ситуация, когда известны только значения функ-
ции в определенных узлах, а сама аналитическая зависимость неизвестна, авто-
матически исключает возможность выбора расстояний между узлами или
уменьшения длины таких интервалов. В этом слунае приходится довольствовать-
ся теми данными, которые имеются в распоряжении.

Глава 4. Методы вычислительной математики 373


Далее, интегрируемую функцию можно заменить интерполяционным полиномом
на всем диапазоне интегрирования или на конечном числе интервалов из этого диа-
пазона. Как выполняется интерполяция в общем случае, рассказывается в следую-
щей главе, здесь же мы только приведем соответствующие формулы и рассмотрим
частные случаи, ценные с практической точки зрения.
Наиболее простое и в большинстве случаев приемлемое приближение состоит в
том, что на каждом из интервалов, на которые разбит диапазон интегрирования, ин-
тегрируемая функция считается постоянной. В этом случае говорят о вычислении
интеграла по формуле прямоугольников. При этом можно в качестве значения функ-
ции на интервале брать либо значение на правой границе интервала (правосто-
роннее приближение), либо значение на левой границе интервала (левостороннее
приближение). Ситуация проиллюстрирована на рис. 4.130 - 4.131.
В общем случае для интервалов произвольной длины формула вычисления инте-
фала имеет вид / = xi -*M)/. для правостороннего приближения и

хм -x!)fi для левостороннего приближения. Если все интервалы имеют одина-

ковую длину h, формулы трансформируются соответственно в I = для право-

стороннего приближения и / ий]Г/. для левостороннего приближения. Однако обыч-


м
но для вычисления интегралов используется формула трапеций. Она несколько слож-
нее по сравнению с первыми двумя, но зато позволяет получать, как правило, более
точные результаты. Идея состоит в том, что соседние узловые точки функции соеди-
няются прямой, поэтому вся площадь под графиком функции состоит как бы из трапе-
ций. Соответственно, сама площадь равна сумме площадей этих трапеций (рис. 4.132).

f(x)
6 V

Ч
fi-1
fi
\
frfl \ ' 1""4*v4->-
fn "NS~^^-,
X

X
0 x
i-l xi Xn
Рис. 4.130. Правостороннее приближение

374 Часть II. Решение задач


f(x)
ft
1
V

fi-1
fi
\ N^
fi+1 X k>x
sVi
:, "^>-к^_
fn
X

Xn

Pwc. 4.131-Левостороннее приближение

f(x)
fo

fi-1
fi
frH

fn

X0 Xn

PMC. 4. У52. Приближение трапеций

Глава 4. Методы вычислительной математики 375


Формула вычисления интеграла для случая узлов, отстоящих на произвольных
расстояниях, имеет вид / = ]£](*,-*,_,) ——"=*•[. Данная формула для интервалов
/=i V 2 )

h-jh, Ь(Уа+У„) ,-ЧГ<


равной длины трансформируется в / =—2_,(у, + ум)=—^— +"£,У! •
2и 2 ы
Это три основные формулы, позволяющие вычислять интегралы от функций, за-
данных в виде таблицы. Однако на этом методы вычисления интегралов вовсе не ис-
черпываются. Желающие могут пополнить свой багаж знаний самостоятельно.
Тем не менее, для решения практических примеров бывает вполне достаточно прие-
мов, теоретические основы которых кратко изложены выше. Далее рассмотрим, как
описанные методы могут использоваться для вычисления интегралов на практике.

п
Пример 4.15. Вычислить интеграл \sin(x)dx

Этот интеграл может быть вычислен аналитически. В частности, очевидно, что


sin(x)dx = cos(O) - cos(n) = 2. Именно это значение и попытаемся получить в резуль-

тате интегрирования с использованием численных методов.


В таблице будет пять столбцов, в которых отображаются: значение переменной ин-
тегрирования (аргумента функции) в узловых точках (столбец Переменная х), значе-
ния функции в узловых точках (столбец Функция у), площадь базового прямоугольни-
ка в правостороннем приближении (столбец Правое приближение), площадь базового
прямоугольника в левостороннем приближении (столбец Левое приближение) и,
наконец, площадь базовой трапеции в методе трапеций (столбец Трапеции).
В ячейку А4 вводим число 0 как начальное значение для переменной интегриро-
вания. В ячейку В4 нужно ввести формулу =SIN(A4) для определения значения по-
дынтегральной функции в данном узле. Кроме этого, вводятся формулы для вычис-
ления площадей элементарных (базовых) прямоугольников или трапеций. Так, в
ячейку С4 вводим формулу =(А5-А4)*В5, в ячейку D4 вводим практически такую же
формулу =(А5-А4)*В4, и для метода трапеций в ячейку Е4 вводится формула =(А5-
А4)*(В5+В4)/2 (рис. 4.133).
После этого в ячейку А5 вводится формула =А4+Р1()/10, согласно которой значе-
ние последующего узла получается прибавлением к предыдущему узлу десятой час-
ти от длины диапазона интегрирования (команда PIQ/10). В ячейку В5 копируется
формула из ячейки В4 (хотя на данном этапе можно этого и не делать) (рис. 4.134).
С4 > :' f» =(А5-А4)-В5
А ! -В С SiEl^Si Е F
1 Вычисление интеграла
:
=2 ! __J i
^Переменная Функция -Правое Левое
Трапеции
3 х V приближение приближение
0 ! 0 1 0 0 0

I
Рис. 4.133. Ввод начальных данных в таблицу для вычисле-
ния интеграла

376 Часть II. Решение задач


л Ji =А4+Р10/10
В
Вычисление интеграла

Нерешенной функция ; Правое Левое


Трапеции
приближение приближение
О I О 0.097080552 ; 0.04854028
0-3141592651 0.309017

Рис. 4.134. Ввод данных в ячейки А5 и В5

Дальше остается скопировать формулу из ячейки А5 в каждую из ячеек диапазо-


на А6:А14 (полезен будет маркер заполнения). Для диапазона ячеек В4:В14 базовой
формулой является та, что ранее была введена в ячейку В4. Заполнять данные для
элементарных площадей следует вплоть до предпоследней строки (т.е. диапазон
С14:Е14 заполнять не следует — для этих ячеек введенные ранее формулы опреде-
ления элементарных площадей не работают). Так, достаточно выделить ячейки
С4:Е4 и маркером расширить диапазон до размеров С4:Е13 (рис. 4.135).

Е15 =SUM(E4:E13)

^Вычисление интеграла
• ' "I i
Правое Левое
Трапеции
приближение приближение
0.04854028
0.097080552 0.14086937
0.184658183 0.21940918
0.254160185 0.2764717
0^298783216 0.30647124
0.314159265 0.30647124
0.298783216 0.2764717
Ь"2541ЕШВ5 0.21940918
0.184658183 0.14086937
0.097080552 004854028

Рис. 4.135. Окончательный этап заполнения таблицы

Осталось только вычислить сумму значений в столбцах С, D и Е. Для этого выде-


ляем ячейку С15 и вводим туда формулу =SUM(C4:C13).
Совет. Чтобы не вводить формулу, можно щелкнуть на кнопке автоматического
суммирования на панели инструментов (кнопка с изображением знака суммы).
Автоматически в ячейку С15 будет вставлена формула =SUM(C4:C14). Посколь-
ку ячейка С14 пустая, то можно оставить эту формулу без изменений — значение
ячейки будет рассматриваться как равное нулю.
Кроме того, в ячейку D15 вводится формула =SUM(D4:D13), а в ячейку Е15 —
формула =SUM(E4:E13). Окончательный результат показан на рис. 4.135. Как види-
те, рассчитанные суммы для всех трех методов одинаковы (незначительное отличие
в ячейке Е15 связано с округлением значения по причине несколько меньшей шири-
ны этой ячейки по сравнению с соседними).

Глава 4. Методы вычислительной математики 377


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

Пример 4.16. Найти площадь фигуры (область О,), ограниченной прямой у(х) -х и
параболой^*) = х

Область, площадь которой следует определить, показана на рис. 4.136.

1.2т

у 0.6-

Рис. 4.136. Фигура, площадь которой следует определить

378 Часть II. Решение задач


I
Точное значение площади может быть получено, если записать двойной интеграл
I

через повторный, а именно [\dxdy = [ dx\dy = f (x - x2)dx •


Л
I
2 3 6
Подробности. Сведение двойного интеграла к повторному может быть проком-
ментировано следующим образом. Во-первых, очевидно, что обе кривые (т.е.
у(х) = хи у(х) = х2) пересекаются в точках х = 0 и х = 1. Эти точки определяются как
решение уравнения х = х2. Далее, переменная х изменяется в пределах от 0 до 1.
При этом переменная у для данного фиксированного х изменяется от значения х2
до х. Отсюда и выбор пределов интегрирования по переменной у.
Данный интеграл в Excel будем вычислять до предела простым и понятным спо-
собом: разбиваем единичный квадрат, внутри которого расположена фигура, на бо-
лее мелкие квадраты со стороной 0,05 каждый. В соответствии с этой разбивкой в
таблицу заносим данные для переменных интегрирования (теперь их две — это х и у)
в соответствующих узлах. Процесс ввода этих данных в таблицу проиллюстрирован
на рис. 4.137.

В4 • - £ =IF(AND(BJ3>=$A4«2,B$3<=$A4),1.0)
; !
i A ! 8 j C ; D i E i F ; G i H M J l k l L - M I N 0 P ' Q R : S Т U V
1 ; Вычисление площади фигуры
2 '

3 ix Х^ 00.05 0.10.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1
А \ Ц Ц 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0: 0: 0
: : :
~ 5 > ОЛ5 О* 1 0 0 0 0 0 0 0 01 0 0 0 0: 0 0 Oi 0 0 0 0
;
6 1 8.1 OI 1 1 0 01! 0 0 01 0 01 0 0: 0 0 0 0 Ol Q 0 0 0
7 | • 0.15 о i 1 1 o o o о; о o o 0 O: 0;
!
0;1 0 0 0 Oi 0 0'
ТГ 02 0 1 1 1 1 0 0 0 0: 0 0 o' o: b o а Ш o' ol о о
'9 i 0.25 0 0 1 11 1 1 0 0 Ol 0 0 o. o. oi1 o; 0' 0' Q oi 01 0:
10 1 0.3 0 0 1 1 11 1 1 0: Oi 0 0 о o! o' bl Oi oi о oi bi b;
Tl ' 035 0 0 0 1 11 i: 1 1 bi о о 0 0 0 0 0| 01 0
!
0 01 01
12 j 0.4 0 0 0 0 1 1 1 1; 1 Ol 0 bl 0; 01 0, bl Oi 0 bi 0! bi
13 j 8.45 0: 0 0 0 0 1 1 ii 1 11 0 0 0 1 01 01 O i 01 0 1 01 Oi 0:
14 i 0.5 о о о о 0: г 1 1 i ii j bl b' bi bi . b!" oi bi br "6! ~o\
Tsl 055 о о oi 0' oi о о 11 ii ii ii bi 0' oi o: oi oi bi bl b1
:
'ill 0.6 0 0 0; Oi Oi Ol 0 0 V 1 Ii 11 Oi Oi Oi 01 Oi 0 Oi Oi
Т?! '••' 8.65 0 0 0 0 Oi 0 0 Oi 0 1i 1 1 1 1 0 0 0 0 0 0 0 :
18] 0.7 0 0 0 0 0 0 0 0 ; b ! O l 1 V 1 1 0 O: 0 0' 0 Oj
19 1 . 0.75 о о о о oi о. о о bi bl b 0 1 1 1 1 0 0 0 Ol 01
Щ, ОЛ о о о oi oi о; а о' о! о о Ol 0 1 1 1 ^\ 0 O
1
Ol ~0
r

21 I 0.85 0 0 Ol Oi Ol 0 0 0! 0: Ol 0 bl oi: о' о! r i ii bl oi bl


22"' 0.9 о о о о o* 0; о o o bi b b' o d o b] bi ii ii "bi If
23 i 0.95 0 0 0 Q: Oi 0 0 Q 0 0 0 0 0 0 Oi Oi Q 0. Oi 11 Oi
24 1 0 0 0 0 0 0 0 Ol 0 0 0 b о о о b 6 bi b: b: 11
26 'Площадь 0.19

Рис. 4.137. Вычисление площади фигуры

В диапазон ячеек B3:V3 вводятся узловые точки для переменной у, в то время как
в диапазон ячеек А4:А24 внесены значения для узлов по оси х. Заполняются эти
ячейки так. Сначала, например, в ячейку ВЗ вводится значение 0, а затем в ячейку
СЗ — формула =ВЗ+0.05. Далее формула копируется в прочие ячейки диапазона
B3:V3. Так же заполняется и диапазон А4:А24.
На этом же рис. 4.137 видно, что диапазон ячеек B4:V24 заполняется нулями и
единицами. Единица вносится в том случае, если соответствующая узловая точка
попадает внутрь или на границу области, площадь которой вычисляется. В против-

Глава 4. Методы вычислительной математики 379


ном случае в ячейку заносится нуль. Поскольку диапазон достаточно большой, а вы-
числения для проверки условия попадания узла в область приходится выполнять
существенные, процесс необходимо автоматизировать. Для этого в ячейку В4 вво-
дится формула =IF(AND(B$3>=$A4A2,B$3<=$A4),1,0). Согласно этой формуле про-
веряется условие, которое состоит в том, что одновременно (это обеспечивается
функцией ANDQ) должны выполняться два условия: ордината точки (ячейка ВЗ) не.,
должна быть меньше квадрата абсциссы точки (ячейка А4), и в то же время не долж-
на превышать значение самой абсциссы. Тогда значение в ячейке равно 1, в против-
ном случае значение в ячейке нулевое. Ячейка В4 выделяется и с помощью маркера
заполнения захватывается диапазон В4:В24. Далее этот диапазон, посредством все
того же маркера заполнения, расширяется до пределов B4:V24. При этом в самой
формуле в ячейке В4 использованы смешанные ссылки, чтобы при копировании они
корректно указывали на узловые точки.
Последующий процесс вычисления площади достаточно тривиален. Она, очевидно,
может быть вычислена (приближенно) как сумма площадей тех квадратов, которые
попадают (хотя бы частично) в область фигуры. Это значит, что нужно найти сумму
всех единиц в диапазоне ячеек В4: V24. Это то же самое, что сумма значений ячеек дан-
ного диапазона. Площадь каждого квадрата равна 0.05Л2, поэтому в ячейку V25 вво-
дится формула =0.05A2*SUM(B4:V24), которой и возвращается приближенное выра-
жение для площади фигуры. Как видно из рис. 4.137, оно достаточно точное. Если все
же точность неприемлема, можно уменьшить шаг для узловых точек.
Замечание. К ячейкам диапазона B4:V24 на рис. 4.137 применено форматирова-
ние, при котором единицы выделены жирным шрифтом. Чтобы применить такой
формат, следует выделить указанный диапазон и выбрать команду Formats
Conditional Formatting (Формат1^Условное форматирование). В открывшемся
окне следует выбрать условие (равенство единице значения в ячейке) и тип фор-
матирования (выделение жирным шрифтом). Как это делается, уже описывалось
ранее и читатель должен быть знаком с данной процедурой.
Если внимательно посмотреть на область, занятую на рис. 4.137 единицами,
то можно заметить, что она повторяет силуэт фигуры, площадь которой вычисляется.
Предложенный метод вычисления двойного интеграла исключительно прост.
Существуют более адекватные методы вычисления интегралов подобного рода, по-
зволяющие получать и более точные результаты. Этот пример приведен исключи-
тельно в качестве иллюстрации возможностей Excel в данной области.

Дифференциальные и интегральные
уравнения
Еще одна важная тема, которая будет рассмотрена здесь, связана с решением
дифференциальных и интегральных уравнений. Разумеется, это сама по себе очень
обширная область, и все тонкости и ключевые моменты, связанные с ней, в рамках
одного раздела изложить нереально. Поэтому будут рассмотрены наиболее простые
методы, успешно реализуемые средствами Excel. Что касается прочих подходов, ко-
торые не найдут здесь отражения, то в большинстве случаев они также могут ис-
пользоваться при работе с электронными таблицами.

380 Часть II. Решение задач


В основу описываемых ниже подходов положен метод последовательных при-
ближений. Иначе говоря, последующее приближение для функции определяется по
предыдущему. Однако в зависимости от типа задачи метод имеет свои особенности.

Обыкновенные дифференциальные уравнения


В качестве примера рассмотрим процесс решения дифференциального уравнения
первого порядка. Речь идет об уравнении вида у '(х) =f(x, y(x)) с начальным условием
у(х0) = у0. Метод последовательных итераций реализуется для такой задачи согласно
формуле ум(х) = уа + \ f ( t , ya(t))dt. Здесь уп(х) определяет функцию на n-м итераци-

онном шаге. Сразу следует отметить, что для поиска значения функции в точке
согласно данной формуле нужно вычислять значения функции на всем диапазоне от
точки, где задано начальное значение, до точки, где вычисляется значение функции.

Щ£им£^^
Эта задача имеет точное решение, а именно у(х) = ехр(-дГ/2). Решение будем иссле-
довать на промежутке от 0 до 1. В диапазон B5:L5 на начальном этапе вводятся, с ин-
тервалом 0.1, значения для узлов, в которых будут вычисляться значения функции.
Далее, в следующей строке определяются значения функции в соответствии с точной
Л
формулой. В частности, в ячейку В6 можно ввести формулу =ЕХР(-1*В5 2/2), после
чего скопировать эту формулу в прочие ячейки диапазона B6:L6 (рис. 4.138).
После этого заполняются три строки, имеющие отношение к нулевому прибли-
жению в поиске решения. В частности, в диапазон В7:1_7 вводится одна и та же фор-
мула =$В$3, которая задает нулевое приближение для функции (это значение, на-
помним, определяется начальным условием). В диапазон ячеек В8:1_8 вносятся зна-
чения для произведения -ху(х). Эти данные нужны для вычисления интегралов,
которые отображаются в строке снизу. В ячейку В8 вводится и затем размножается
формула =-В$5*В7. В ячейку В9 вводим формулу =(С$5-В$5)*(С8+В8)/2. Эта фор-
мула соответствует вычислению интегралов по методу трапеций и определяет пло-
щадь одной такой трапеции. Формула копируется во все остальные ячейки из диапа-
зона С9:К9. В ячейку L9 введена формула =SUM(B9:K9) вычисления полного инте-
грала (чтобы не пустовала) — хотя это делать и необязательно (рис. 4.139).

ВВ -г :..: f, =ЕХР (-1*05*2/2)


••'• А • i'--: в I с Г... р ,| е.; L
1 Решение дифференциального уравнения

Начальное
значение уО- 1
ГТ1
1Инт«риап'х"-" i О Т 0 . 1 ; 0.2! 0.3! 0.4i 0.5! 0.6! 0.7: ' 0.8! " 0.9; 1
: :
|Решеннеу(х)-| 110.99501! 0,9В02 0.956^0.92312' 0,8825' 0.83527! 0.7827:0.72615 0.66698 0.60653

Рис. 4.138. Начальный этап ввода данных

Глава 4. Методы вычислительной математики 381


(C$5-B$5)*(C8+B8)/2
с .j3 о j E
• Решение дифференциального уравнения
" Начальное !
_! E .
l значение yO = ]

1Интервал х-.. 0,5: 0.6 о/1 р.а; р.э_! 1


j Решение у(х) - 0.8825' 0.83527 0.7827 6.72615: 0.66698Г 0.60653
, Функция у(х). 1 1 1 1
1
iФункция ху- 0; -0.1: -0.2: -О.З -0.4 -0.5' -O.S -07 -ОД -0.9
-0.0051"'-0.0151" -0.025: -0.035 -0.0451 -0.055. -0.065 -0.07S: -0,0851 .[| Q9S 0.5

Рис. 4.139. Данные для нулевой итерации

На следующем шаге (первая итерация) придется заполнить ячейки диапазона


B10:L10. Ячейки из диапазона В11:1_12 заполняются копированием диапазона B8:L9.
В ячейку В10, если конкретнее, вводится просто ссылка =В7 (или =$В$3), а в ячейку
СЮ нужно ввести формулу =$B$3+SUM($B9:B9). Причем последняя формула тре-
бует комментариев в части аргумента в функции вычисления суммы. Это означает,
что при копировании (по горизонтали) ссылка $В9:В9 меняется так, что левая гра-
ница диапазона не меняется, а правая меняется в соответствии с тем, куда копирует-
ся ячейка. В результате получаем сумму по диапазону, которая соответствует вы-
числению интеграла с нужными пределами. Формула копируется с помощью марке-
ра заполнения в ячейки диапазона D10:L10. Результат показан на рис. 4.140.
Последующие итерации получаются копированием диапазона A10:L12. На рис. 4.141
показаны первые четыре итерации (не считая нулевой).
Точность решения, как видим, не самая высокая. Для получения более коррект-
ного результата можно уменьшить шаг изменения переменной. Кроме того следует
учесть, что описанный метод не является верхом достижений в области численного
решения дифференциальных уравнений. Это просто иллюстрация к тому, что при
желании можно сделать в Excel.

сю T:>V*: =$B$3+SUM($S9:B9)
6 H I J К iSiZiJ
1 'Решение дифференциального уравнения
~щ; Начальное
. ' . : г т _: ~ r
|
3 J значение уО = 1 :
,,4J I !
JU Интервал А " 0 0.1 i 0.2 о.з: 0.4 0.5 0.6 0.7 0.8 as 1
6 ! Решение у(х) - i 0.99501' 0.9802 0.956 0.92312 0.8825 0.83527 0.7827 ;' 072615 0.66698 ~Q.60B53'~
7_j Функция у(х)- 1 1 1 1 1 1 1 1 1 1 1
3 J Функция осу- 0 -o.r -0.2 -0.3: -0.4 -0.5 -0.6 -0.7 -0.8 -0.9 -1
:

;
9 Интеграл -0.005 -0.015' -0.025 -0.035! -0.045 -0.055 -0.065 -0.075 -0.085 -0.095 -0.5
10 [Функция у(х) - 1 0.995Г 0.98 0.955 0.92 0.875 O.B2 0.755 0.68 0.595 0.5
11 Функция -ху - 0 -0.0995* -0.196 -0.2665; -0.368 -0.4375 -0.492 -0.5265 -0.544 -0.5355 05
12 Интеграл -0.00498 -0.01478 "'-0.02413 -0.03273* -0.04028 '-004648 -0.05103 •0.05363 -0.05398 -0.00178 "0.32375
!
u'i i ! | | f I I : j i !

Puc. 4.140. Первая итерация

382 Часть II. Решение задач


!
В21 f. =(С$5-В15Г(С20+В20)/2
А :• . . ; С F' L

1 'Решение дис icpepei иди алы«го уравнения

1
—I ;
1 Начальное j i I
! значение уО - 1
I

Интервал х = 0 си 'О' о.э' 0.4 as'i о!б 0.7 olr 'Ь.э1 it


& i Решение у(х) = i' 0.99501 0.9802 0.956: 092312 0.8825! 0 83527 0! 7827 0.72615: 0.66698: Ь.60653
;

7 Функция у(х) «* i 1 1 1 1 1 1 1 1 1 1
8 j Функция -ху - 0 -0.1 -0.2; -О.з: -0.4 -0.5 -0.6 -0.7 -0.8; -о.э! -1 1
Т : Интеграл -0.005 -0.015 -0.025: -0.035 -0.045 -0.055! -0.065 -0.075 -0.085! -0.5
10 \ Функция у(х) = i 0.995 0.9S 0.955 0.92 0.875 0.82 0.755 0.68 0.595 0.5
11 1 Функция -ху = 0 -0.0995
:
-0.196 -0.2865 -0.368 -0.4375 -0.492 -0.5285 -0.544 -0.5355 0.5
12 'Интеграл -000498 -0.01478 -0.02413' -0.03273' -004028 -0'04648 -005103 -0.05363 -0.05398 •0.00178" -0.32375
[3 j Функция у(х) - 1 0.99503 0.96025 0.95613 0.9234 0.88313 0.83665 0.78563 0.732 0.67803 0.67625
14 j Функция -ху = 0 -0.0995 -019605 -0.28684 : -0 36936 -0.44156 -050199 -0.54994 -05856; -0.61022: ;P.33613
!
!Ь : Интеграл -0.00498 -0.01478 -0 02414! -0!03281' -004055 -0.04718! "-00526 -0.05678 -0.05979" -0.04742 Д).38Ю1
16 ; Функция у(х) = 0.99502 0.98025 0.9561 0.92329 0.88275 0.83557 0.78297 0.7262 0.6664 0.61899
1
17 Функция -ху * 0 -0.0995 •0.19605! -0.28683: -036932 -0.44137 -0.50134 -0.54808 -0.58096 •0.59976 0.2093:
:
1В : Интеграл -0 00493 -0.01478 -0.02414-0.03281 -004053 -0.04714 -0.05247 -0.05645 -0.05904 -0.01952' ^351865
19 ' Функция у(х) - 1 0.99502 0.98025 0.9561 0,9233 0.88276 0.83563 0.78315 0.7267 0.66767 0.64814

и211 : Функция -ху •=

225
1Интеграл
:
-000498
0

.
-0.0995
-0.01478
:
-0.19605-0.28683! -036932
-0!0241 4 -0.03281 -004053
: ; :
-0.44138 -050138
-0.04714 -005248
: i
-0.54821
-0.05648
:
-0.58136! -0.6009! -0 135W
-0.05911 -0.03683' 4.36Э28
: ; ;

Рис. 4.141. Решение дифференциального уравнения

Системы дифференциальных уравнений


Тот же метод последовательных приближений, что был описан выше при реше-
нии дифференциального уравнения, может, с некоторыми изменениями, быть ис-
пользован и для решения системы дифференциальных уравнений. В случае системы
дифференциальных уравнений y'(x) = f(x,y(x)) с начальными условиями у(х0) = уа
X

итерационная формула имеет вид у^(х) = у„ + \f(t,yn(t))dt. В качестве примера рас-


•"о

смотрим дифференциальное уравнение второго порядка. Оно в процессе решения


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

.J^^ >'(0) ~
Это уравнение, как отмечалось, может быть представлено как система дифферен-
циальных уравнений первого порядка. В частности, вводим в рассмотрение функ-
цию z(x) = у'(х). Тогда уравнение будет эквивалентно системе z'(x) = у(х) и у'(х) - z(x)
с начальными условиями ,у(0) = 0 и г(0) = 1. Поэтому дальше задача практически сво-
дится к трансформации использованного в предыдущем примере метода на случай
векторной функции (имеющей в данном конкретном случае два компонента). Одна-
ко прежде следует заметить, что поставленная задача в качестве решения имеет
функцию у(х) = sh(x). Это значит, что z(x) = ch(jc). На рис. 4.142 показана таблица с на-
чальными данными — интервал исследования функции от 0 до 1 и точные решения
для функций у(х) и z(x).

Глава 4. Методы вычислительной математики 383


В7 •.* =COSH(B6)
А L_I_d 9... ; D .Е i F 1..^©^Л_:.,11_1^_1_,.1^.1_^ К L
1 j Решение системы дифференциальных уравнений
; :
2~ '" j ! \ ! j i
Начальное j • • \ I
3J значение уО = о ! :
! | i i
Начальное |
: : : : :
4
;
значение zfl - i ' ; ! !
5 'Интервал х = 0 0.1 0.2 0.3 0.4 0.5: 0.6 07 0.8 03 1
6 Решение y(xj - 0 0.10017 0.20134) 0.30452 0.41075 0.5211: 0.63665 0.75858; 0.88811 1.02652 1.1752
7 | Решение z(x) = I П 100502 1.02034 1.04673 ^ 1.08555' \. 13887 Г 1.2096' 1.30179' 1.42098' 1.57479 1 .77378
8 i I : ; ' . ' ! : : i

Puc. 4.142. Точное решение системы уравнений

Для нулевой итерации предстоит заполнить два диапазона ячеек B8:L8 и B9:L9
(ведь теперь имеем дело с вектор-функцией, а это, фактически, две функции).
Для первого из упомянутых диапазонов формула имеет вид =$В$3, в то время как для
второго диапазона следует использовать формулу =$В$4 (имеется в виду формула в
каждой отдельной ячейке). Следующие две строки содержат подынтегральные функ-
ции (определяются правой частью системы дифференциальных уравнений).
Это функции z(x) и у(х). Поэтому в ячейку В10 вводится формула =В9, а в ячейку В11
следует ввести формулу =В8. Далее эти формулы копируются в ячейки, расположен-
ные справа, вплоть до границ диапазона изменения аргумента функции. На основе
этих данных вычисляются интегралы. Интеграл (если точнее, то площади элементар-
ных трапеций) по данным в ячейках диапазона В10:1_10 вычисляется в ячейках
В12:К12, а площади элементарных трапеций в ячейках диапазона В13:К13 соответст-
вуют табулированной в диапазоне В11:1_11 подынтегральной функции. Основой для
заполнения диапазона В12:К12 служит формула =(С$5-В$5)*(С10+В10)/2, вводимая в
ячейку В12. Для диапазона В13:К13 это формула =(С$5-В$5)*(С11+В11)/2, введенная
в ячейку В13. В ячейках L12 и L13 отображен полный интеграл по значениям соответ-
ствующих ячеек - формулы =SUM(B12:K12) и =SUM(B13:K13) (рис. 4.143).
В13 - • £ =(CI5-BJ5)-(C11+B11)/2
А И8 I iС 0 i Е : F 1 G I Н , i ; J ; К ; L
1 1 Решение системы дифференциальных уравнений
2~
"ЁПИнтервал х - 0
"
0.1
j
02!
_ Г
0.3 0.4
Ш
0.6 0.6 0.9 !
г:::1 ' 0.8 ;
6 'Решение у(х) •= 0 0.10017 0.20134 0.30452 0.41075 0.5211 063665 0.75858 0.88811 1 .02652 1.1752
7 [Решение 7|х) = 1 1 00502 1.02034 1 .04673 1 08555 1 13887 1.2096 1 30179 1. 42098 1 57479 1.77378
: : :

Ш
8 I Функция у{х| - 0 0 0 0 0 : 0 0 0 0 0
*М- 1 1 1 1 1 1 1 1 1 1 1
I= 1 1 1 1 1 1 1 1 1;
°;
1:

У" 0
:
о о о" 0: Г 0 о! ЬТ 0
ь
(нтеграл1
нтеграл [_
0.1
о]
о.г
о'
01'
о"
0.1
0
0.1:
о
0.1
о
0.1
о* °о !
оМГ
о" 4)
; j
Рис. 4.143. Нулевая итерация

Следующий важный этап — определение первого приближения для функций


(рис. 4.144). В полной аналогии к предыдущему случаю в ячейку В14 вводится форму-
ла =$В$3, в ячейку В15 — формула =$В$4. Далее, в ячейку С14 нужно ввести формулу
=$B$3+SUM($B12:B12), а в ячейку С15- соответственно, =$B$4+SUM($B13:B13).
Принцип выполнения ссылок в последнем случае определяется теми же причинами,
что и в аналогичном случае из предыдущего примера. Эти формулы используются как

384 Часть II. Решение задач


базовые для заполнения прочих ячеек, которые остались свободными (имеется в виду
диапазон В14:1_15). Все остальные ячейки (диапазон В16:1_19) заполняются копирова-
нием диапазона В10:L13. Результат, как отмечалось, можно наблюдать на рис. 4.144.
Дальше все исключительно просто — нужно только выделить диапазон ячеек А14:1_19
и с помощью маркера заполнения расширить этот диапазон вниз до нужных пределов.
На рис. 4.145 показан результат для некоторого числа итераций. Внутренние ячейки при
этом свернуты, так что сразу можно сравнить начальное и конечное состояния.

С15 u =JBJ4+SUM(JB13:B13)
A t В ' •С 0 Е F I G Н 1 J : К L
1 Решение системы дифференциальных уравнений

3
Начальное
значение уО - 0 ! !
• i
I f

Начальное
4 значение zO = 1
;
5 Интервал х = 0 0.1 0.2 0.3 0.4 0.5 0.6 07 oej 0.9 1
6 Решение у(х) = : 0 0.10017 0.20134 0.30452 0.41075: 0.5211 0.63665 0.7585В 0.88811 1 .02652 1.1752:

7 Решение z(x| - 1 1 .00502 1.02034 1 .04673 1.08555 1.13887 1 .2096 1.301 79 1.42098 1.57479 1.77378
3 Функция у(х) = 0 0 0 0 0 0 0 0 0 0 0
9 Функция z(x) - 1 1 1 1 1 1 1 1 1 1 1
10 Функция z - 1 1 1 1 11 1 1 1 1; 1 1
11 : Функция у « о 0 0: 0 0: 0 0 0 D: 0! 0
12 Первый интеграл 01 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 1
13 Второй интеграл 0 0 0 0 0 0 0 0 0 0 0
14 : Функция у(х) » 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
15 j Функция z(x)"
16 Функция z •=
'СИР.
1 1
1
1
1
1
1
1:
1
1
1
1
1
1
1
1:
1
1
1
1;
17 Функция у = 0 0.1 0.2 0.3 0.4: 0.5 0.6 0.7: 0.8 0.9: 1
18 Первый интеграл 0.1 0.1 0.1: 0.1 O.ll 0.1 0.1 0.1 i 0.1! 01 1
19 Второй интеграл : 0.005 0.015 0025 0.035 0.045 0.055 0.065 0.075 0.085 0.095!
0.5
:
20; :

Рис. 4.144. Первая итерация

L50 *» ' .. '• £ =$B$3+SUM($B4B:K48)


A [ В j С i D ( E j F \: G; ] Н . : К I ' L j

1 Решение системы дифференциальных уравнений ' ;<



5 Интервал х- 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 08 0.9 1:
!
6 Решение у(х) - 0 0.10017 0.20134 0.30452 041075 0.5211 0.63665 075858 0.88811 1 .02552 1.1752
7 Решение z(x) = 1 1 .00502 1 .02034 1 .04673 1 08555 1.13887 1.2096 1.30179 1.42096 1 .57479 1 .77378
8 Функция у(х) = 0 0 0 0 0 0 0 0 0 0 0
;
9 Функция z(x) - 1 1 1 1 1 1 1 1 1 1 1
10 Функция z - 1 1 1 1. 1: 1. 1 1 1: 1 1!
11 : Функция у = 0 0 0 0 0 0 0: 0 0! 0 0
12 Первый интеграл 0.1 0.1 0.1 0.1 0.1: 0.1 0.1 0.1 0.1! 0.1
13 Второй интеграл 0 0 0 0 0: 0 0 0 0 0
14 Функция у(х) - 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
15 1 Функция z(x) " 1 1 1 1 1 1 1 1 1 1 1
16 Функция z = 1 1 1 1 1! 1 1 1 1! 1 1;
17 Функция у - 0 0.1 02 0.3 0.4: 0.5 0.6 0.7 0.8 0.9 1!
!
18 Первый интеграл 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 1
19 Второй интеграл 0.005 0.015 0.025 0.035 0.045 0.055 0.065 0.075 0.085 0095 0.5
60 1 Функция у(х(- 0 0.10025 0.20151 0.30478 0.41111 0.52157 0.63725 0.75932 0.889 1.027591 1.176491
51 Функция z(x(- 1 1.00501 1.0201 1.04541 1.08121 1.12784 1.18578 1.255Б1 1.33802 1.43384 1.54403
52 ' Функция z - 1 1 .00501 1.0201 1.04541 1.08121 1.12784 1.18578 1 .255Б1 1.33802! 1.43384 1.54403
53 Функция у - 0 010025 0.20151 0.30478 041111 052157 0.63725 0.75932 0.889 1 .02759 1.17649
54 Первый интеграл 0.10025 0.10126 0.10328 0.10633 0,11045 0.11568 0.12207 0.12968 0.13859 0.14889 1.17649
55 Второй интеграл 0.00501 0.01509 0.02531 0.03579 0.04663 0.05794 0.06983 008242 0.09583 0.1102 0.54406
561 • '

Рис. 4. /45. Решение системы уравнений

Глава 4. Методы вычислительной математики 385


Как видим, решение найдено совсем неплохо (в смысле точности).
Здесь рассматривалась система из двух уравнений (если точнее, то дифференци-
альное уравнение второго порядка, которое сводилось к системе). Если система содер-
жит большее число уравнений, поиск решения может осуществляться аналогично.
Правда, таблица будет более громоздкой. Что касается уравнений более высоких
порядков, то их, как и в данном случае, разумно сводить к системе уравнений первого
порядка. Порядок уравнения в этом случае определяет число уравнений в системе.

Интегральные уравнения
Помимо дифференциальных уравнений (т.е. таких, которые содержат неизвест-
ные функции и их производные), на практике достаточно часто приходится сталки-
ваться с интегральными уравнениями. В этих уравнениях присутствует как неиз-
вестная функция, так и интегралы от нее. Метод решения интегральных уравнений
существенно зависит от типа самого уравнения. Не вдаваясь в подробную классифи-
кацию таких уравнений, рассмотрим в качестве примера уравнение Фредгольма
*
второго рода, которое в общем случае имеет вид y(x) = f ( x ) + X\K(x,t)y(t)dt. Здесь

у(х) есть неизвестная функция, которую следует найти, А — численный параметр,


а К(х, t) — ядро уравнения. Это функция известная (так же, как и f(x)). Применение
метода последовательных приближений к этому уравнению позволяет получить ре-
куррентную формулу, связывающую последующее приближение для искомой
ь
функции с предыдущим, а именно у„^(х) = f ( x ) + X\K(x,t)yn(t)dt, в качестве нулевого

приближение принимается у0(х) =Д*). Именно такую итерационную процедуру и


реализуем в Excel.

Пример 4.19. Решить уравнение y(x) = l + jxt~y(t)dt

Таким образом, согласно условию задачи, имеем Ддг) = 1, Я, = 1 и К(х, t) =xf, а ре-
шение ищется на интервале изменения аргумента функции от 0 до 1. В данном слу-
чае воспользуемся средствами языка VBA. Для этого, прежде всего, запускаем ре-
дактор VBA (команда Tools^Macro^Visual Basic Editor или комбинация клавиш
<Alt+Fll>). В открывшемся окне редактора нужно создать модуль (команда
Insert 1 ^Module) и записать туда две функции (рис. 4.146). Программные коды этих
функций приведены ниже, в листингах 4.3 и 4.4.

1 Листинг 4.3. Код функции К()


Public Function K(x, t)
К = х * t "• 2
End Function

386 Часть II. Решение задач


Microsoft Visual Basic - lnt_Eq xls - (Module! (Code)l
gte ffSt Vtew Insert Format [jebgg Run Tods ftdd-Ins Wndow Нф - _ 'в X
i'il-B * v: © ** ''Л' • ' ' • ' > « т Ы.Ы •*?¥!?' © ШЗ.СЫИ
a
••:
п
И VBAProject (Int_Eq.xlj) Public Function K ( x , t)
л
£5 Si Microsoft Excel Objects К - x * t 2
[-• Я] Sheetl (Sheetl) End Function
в SheetZ (Sheec2)
:•• •] 5heet3 (SheeO) Public Function Integr(y, c, x)
Q ThisWorkbook Pirn 3 As Double
и -i±S Modules Dim N As Integer
- N - t. Count (|
S - 0
For i - 1 To N - 1
3 = 3 + (K(x, t ( i ) ) * y(i) + _
K ( x , t(i + 1» * y(i + 1)) • ( t ( i 4- 1) - t ( i » / 2
Next i
Integr «= 3
End Function

_
Рис. 4.146. Окно редактора VBA с кодом функций

Первая функция более чем проста. Она определяет ядро интегрального уравне-
ния. По двум аргументам этой функции (х и t) значение функции вычисляется
согласно формуле x * t Л 2.
Второй функцией Integr ( ) вычисляется интеграл. Она имеет три аргумента.
Первый ее аргумент у, как предполагается, является диапазоном ячеек с данными о
значении функции у(х) в узловых точках в пределах изменения ее аргумента. Значе-
ния этих узловых точек определяются вторым аргументом функции t, который так-
же должен быть диапазоном ячеек. Наконец, третий аргумент функции х задает пер-
вый аргумент для ядра интегрального уравнения.

\ Листинг 4.4. Код функции IntegrQ


Public Function Integr(у, t, x)
Dim S As Double
Dim N As Integer
N = t.Count О
S = 0
For i = 1 To N - 1
S = S + (K(x, t(i)) * y(i)
K(x, t(i + 1)) * y(i + D) ( t ( i + 1) - t ( i ) / 2
Next i
Integr = S
End Function

Глава 4. Методы вычислительной математики 387


В теле функции объявляется две переменные: S для записи результата вычисления
интеграла и N для определения числа ячеек в диапазоне t. Первая переменная объявлена
как число двойной точности, вторая — как тип целого числа. Количество элементов кол-
лекции (диапазон t) возвращается методом t. Count ( ) , и это число присваивается в ка-
честве значения переменной N. Начальное значение переменной S устанавливается рав-
ным нулю. Далее запускается цикл (начинается For i = 1.То N - 1 и заканчивается
конструкцией Next i), в рамках которого переменная-счетчик пробегает значения от 1
до числа, на единицу меньшего N (т.е. до N-1). На каждом шаге к переменной S прибав-
ляется площадь элементарной трапеции, соответствующей узлам t (i + 1) и t (i)
(здесь t ( i ) возвращает значение i-й ячейки диапазона t). Согласно формуле площади
трапеции и учитывая вид подынтегральной функции, такая добавка определяется выра-
жением К ( х , t ( i ) ) * y ( i ) + K ( x , t ( i + l ) ) * y(i + 1 ) ) * ( t ( i + 1) •
- t ( i ) ) / 2. При этом ссылкой у (i) возвращается значение i-й ячейки диапазона у.
Кроме того, следует подчеркнуть, что в данном случае неявно предполагается, что коли-
чество ячеек в диапазонах t и у одинаково. Наконец, по окончании цикла значение пере-
менной S возвращается как результат функции.
После того как функции созданы, их можно использовать. В частности,
на рис. 4.147 показан рабочий лист с данными о пяти итерациях, выполненных в
процессе поиска неизвестной функции из интегрального уравнения.

С8 /1 =С$4 •HntegrfJC 7 $M7,$CJ3:SM$3,C$3)


.t A.__j В ,, С 1 D i E i F G H i I J£L J '• j К ; • 1 .. 1 M
1 Решение интегрального уравнения i j

'У;
3 " "я- 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
~ц *м- 1 1 1 1 1 1 1 1 1 1 1

61 Итерация
0 у(х)= _ 1 1j 1! 1 1 1 1: 1: 1 1
1
1
1 у(х)- [ ' 1J 1Л335 1.067 ill 005 ilisi1 1.1675 '1.20!; 1 .2345 1.268 1.3015 il335l
За г -у(х)- 1* 1.04196 1.08392^ 1.12588 1.16784 1 .20979 1.25175 1.29371 1. 33567 : 1 37763 1.41959
Щ 3 :У(Х)- I Т; i 04409 1.08819 1.13228 1.176381 1.22047; 1 .26457 1.30866' 1.35276 1.39685' 1.44095
Щ * УМ- i г 1.04453: 1.08927 1.1339 1.17854 1.22317 1 .2678 1.31244 1.35707 1.4017: 1.44634
5 у(х)- 1 1 04477 1.08954: 1.13431 1.17908 1.22385. 1.25862: 1.31339 1.3581 6! 1 40293 ' 1.4477
13j Точно у(х)- 1 1.04444 1.08889 1.13333 1.17778 1.22222 126667 1.31111 1.35556 1.4 1.44444

Puc. 4.147. Решение интегрального уравнения

Начальные данные и значения искомой функции на нулевом шаге особых ком-


ментариев не требуют. Кроме того, в ячейках диапазона С13:М13 приведены данные
для точного решения этого уравнения (оно имеет вид у(х) = 1 + 4х/9). В ячейки
D13:M13 данные могут быть получены копированием (путем перетаскивания марке-
ра заполнения) в каждую из ячеек этого диапазона формулы =1+4/9*СЗ из ячейки
С13. Ячейки с данными для итераций заполняются так.
В ячейку С8 вводится формула =C$4+lntegr($C7:$M7,$C$3:$M$3,C$3). Затем эта
формула копируется вправо вплоть до ячейки М8. Дальше итерации выполняются
копированием диапазона С8:М8. Указанная выше формула является реализацией
рекуррентного соотношения для итерационной процедуры поиска последующего
приближения для искомой функции по предыдущему. В ней использована создан-
ная ранее функция пользователя Integr ( ) . Функция К ( ) явно в таблице не вызы-
вается, но она используется в программном коде функции Integr ( ) .

388 Часть II. Решение задач


В этой главе были описаны подходы, иллюстрирующие возможности Excel в час-
ти решения численных задач. В немалой степени данное замечание относится к по-
следнему разделу, где рассматривались дифференциальные и интегральные уравне-
ния. Более сложные задачи, безусловно, требуют и более серьезных решений. Одна-
ко базовые принципы при этом остаются неизменными.

Глава 4. Методы вычислительной математики 389


ГЛАВА 5

Теория вероятностей
и математическая
статистика
В этой главе...
• Основы теории вероятности
• Методы математической статистики
• Регрессия
• Надстройка анализа данных
• Интерполяция и аппроксимация

А Ари проведении исследований, как правило, приходится иметь дело с данными.


Обычно эти данные получены в результате экспериментального определения зави-
симости одной величины от другой (или других). Поскольку речь в этих случаях
идет об установлении статистических зависимостей, то для решения возникающих
вопросов используются и соответствующие методы. В первую очередь для этого
привлекается аппарат теории вероятностей и подходы, развиваемые в рамках мате-
матической статистики.
Предмет математической статистики непосредственно связан с определением глав-
ных характеристик распределения данных по фактическим их значениям, в отличие от
теории вероятностей, когда по известным характеристикам распределения случайных
величин делаются предположения, имеющие отношение к вероятностям тех или иных
событий (или реализации тех или иных значений при проведении эксперимента).
Понятно, что с точки зрения исследователя-практика математическая статистика для
него более близка и актуальна. Однако ее понятийный аппарат очень тесно взаимосвя-
зан с базовыми понятиями теории вероятностей, поэтому разумно в первую очередь
остановиться на концептуальных моментах именно теории вероятностей.
Что касается самой структуры данной главы, то она начинается с изложения ба-
зовых понятий теории вероятностей, рассматриваемых на конкретных примерах.
Для решения последних используется или может использоваться Excel. После этого
внимание уделяется методам математической статистики. Примеры из соответст-
вующего раздела рассматриваются через призму возможного применения развивае-
мых для их решения методов в дальнейшем при анализе различных ситуаций. Кроме
этого, в главе дается краткий обзор встроенных утилит Excel для анализа статисти-
ческих данных, в частности, описываются основные возможности, предоставляемые
пользователю в рамках надстройки анализа данных. В завершение главы представ-
лены методы выполнения интерполяции и аппроксимации, которые могут быть вы-
полнены в Excel с использованием стандартных подходов.

Основы теории вероятностей


В теории вероятностей изучаются общие закономерности для случайных собы-
тий. Для понимания предмета и методов теории вероятностей разумно будет озна-
комиться с некоторыми ее базовыми понятиями.

Базовые понятия теории вероятностей


Основополагающим является понятие случайного события (далее просто собы-
тие). Это такое событие, которое может произойти, а может и не произойти в ре-
зультате эксперимента или измерения. Другими словами, наперед, до проведения
опыта, нельзя однозначно сказать, случится это событие или нет. В теории вероятно-
стей каждое такое событие принято характеризовать численной мерой степени объ-
ективной возможности события. Эта численная мера называется вероятностью со-
бытия, или просто вероятностью. Вероятность — это число в диапазоне от 0 до 1.
Достоверным является событие с вероятностью 1 (т.е. это такое событие, которое
обязательно произойдет). Если вероятность события равна нулю, то такое событие
называется невозможным и оно никогда не произойдет. Кроме того, важным являет-
ся понятие полной группы событий — в результате проведения опыта обязательно
произойдет хотя бы одно событие из этого набора. Если в качестве опыта рассматри-
вать процесс подбрасывания шестигранного кубика с цифрами от одного до шести,
то в качестве примеров полных групп событий могут быть приведены группа из шес-
ти событий (выпадение числа 1, 2 и т.д. до 6) или группа из двух событий
(выпадение четного числа или выпадение нечетного числа).
С практической точки зрения больший интерес представляет понятие случайной
величины. Аналогично случайному событию, это такая величина, значение которой
до проведения опыта нельзя предсказать абсолютно достоверно. Случайные величи-
ны бывают дискретными и непрерывными. Возможными реализациями дискретной
случайной величины в процессе проведения опыта (измерения) являются отдельные
числа, в то время как непрерывная случайная величина может в процессе измерений
принимать непрерывный набор значений из какого-то интервала, который, в прин-
ципе, может быть и неограниченным. Рассматривая дискретную случайную величи-
ну, мы говорим о вероятности реализации того или иного ее значения. Сумма всех
вероятностей при этом должна равняться единице. Если случайная величина непре-
рывна, то ее характеризуют функцией распределения. Так, если ^ — случайная вели-
чина, то при дискретном распределении вероятность для этой величины быть рав-
ной £t (это одно из возможных значений реализации случайной величины) обычно
обозначают как />(£ = У- Для непрерывной величины функция распределения F(x)
определяет вероятность того, что реализуемое значение случайной величины ^ не

392 Часть II. Решение задач


превысит значения х. Если функция F(jc) имеет производную Дл), то последнюю на-
зывают плотностью распределения. По функции распределения (или полному набо-
ру вероятностей реализации дискретных значений) случайной величины можно оп-
ределить все ее основные числовые характеристики.
Важное место в наборе числовых характеристик случайных величин занимает
математическое ожидание, которое определяется для непрерывной случайной величи-
ны как М{£} = |.х/Сх)Л, а для дискретной M{£} = '£xkP(Z, = xk) соответственно. Диспер-
k
сией случайной величины называют ее числовую характеристику, которая определяет-
2
ся соотношением D{£} =M{(t,- M {£,})'} =Л/{^ } -М{£}2. Помимо этого, часто в анализе
используются моменты различного порядка. Так, моментом порядка k называется ве-
личина М{^}, а центральным моментом порядка k— величина А/{(!;-М{£})*}. Таким
образом, математическое ожидание является моментом первого порядка, а диспер-
сия — центральным моментом второго порядка. Практически так же ситуация обстоит,
когда речь заходит о некоторой функции от случайной величины ф(^). Например,
математическое ожидание определяется следующим образом: Л/{ф(^)}= \q>(x)f(x)dx
для непрерывной случайной величины и для дискретной.

Аналогично определяются моменты и в частности, дисперсия функции случайной ве-


личины. В качестве примера расчета некоторых из перечисленных выше характери-
стик рассмотрим следующую задачу.

Пример5.1. Ряд распределения (т.е. возможные значения и их вероятности) для


случайной величины х представлен в табл. 5.1. Найти математическое ожидание и >
дисперсию функции у(*)=ехр(л-) этой случайной величины^

Таблица 5.1. Ряд распределения случайной величины


Значение -2 1 0 1 2
Вероятность 0,1 0,2 0,4 ОД 0,2

В первую очередь, разумеется, следует внести данные о распределении случайной


величины в ячейки таблицы Excel (рис. 5.1).
На следующем этапе задаем возможные значения для функции случайной вели-
чины. Для этого, в соответствии с функциональной зависимостью, указанной в ус-
ловии задачи, вводим в ячейку ВЗ формулу =ЕХР(В1), а затем копируем ее во все ос-
тальные ячейки диапазона B3:F3 (можно воспользоваться маркером заполнения)
(рис. 5.2).

F2 •* ' g f* 0.2
A i В /1 С , 0 : E F ] G
1 Значение к -2 1 0 1 2
2 j Вероятность Р(х) 0.1 0.2: 0.4 0.1 0.21
3 : !
• i

Рис. 5.1. Ряд распределения случайной величины

Глава 5. Теория вероятностей и математическая статистика 393


ВЗ , =ЕХР(В1)
__ \j А 1 В- | С ,1 D j . E ' F: • !. • G
1 Значение х -2 -Г" < _J .
Г
2 ^Вероятность Р{я) Г ' 0.1 0.2 0.4 0.1 0.2
3 1 Функция у(х) 1 0 1353351 0.367679: 1, 2.718282 7.389056
4

Рис. 5.2. Ряд значений для функции случайной величины

Далее в соответствии с определением математического ожидания, вычисляем эту


характеристику для рассматриваемой функции.
На заметку. Поскольку рассматриваемая функция является функцией случайной
| величины, то она, в свою очередь, также является величиной случайной.

Действительно, математическое ожидание в этом случае равно, очевидно,


5

М{у(х)} = ^Р(х = х . ) у ( х : ) , где значения вероятности даются значениями ячеек в диа-


/=|
пазоне B2:F2, а значения функции (у(х)} записаны в ячейках диапазона B3:F3. При
этом через {*,.} обозначены реализуемые значения случайной величины х, которые
представлены, как известно, в ячейках диапазона В1 :F1.
Для вычисления математического ожидания в ячейку В4 вводим формулу
=SUMPRODUCT(B2:F2,B3:F3) (рис. 5.3).

В4 ••» / t =SUMPRODUCT(B2.F2,B3.F3)
i . . А , . в , | "с j О Е' ; . ; ; : ' . F ; G
1 Значение х •2 -1 б
2 {вероятность Р(х) 0.1 0.2 04 0.1 0.2
3_ Функция у(х) 0.135335 0.367879 1 2.718282 7.389056
jT]M.iT. ожидание 1 2 23S749I : '
4.!

Рис. 5.3. Вычисление математического ожидания

В соответствии с введенной формулой с помощью функции SUMPRODUCT()


сначала вычисляются попарные произведения значений ячеек из диапазонов B2:F2
и B3:F3 (т.е. множатся значения ячеек В2 и ВЗ, С2 и СЗ, и т.д.), а затем эти произве-
дения суммируются. Данная сумма возвращается в качестве результата введенной в
ячейку В4 формулы. Несложно понять, что этот результат определяет искомое ма-
тематическое ожидание (см. рис. 5.4).
Для вычисления дисперсии воспользуемся выражением D{y(x)} = М{у2} - М{у}2.
Первое слагаемое в этом выражении является математическим ожиданием квадрата
функции случайной величины и определяется как М{у-} = = х.)у(х.)2 . Это зна-

чение возвращается командой SUMPRODUCT(B2:F2,B3:F3,B3:F3), где диапазон


B3:F3 указан аргументом функции SUMPRODUCT() дважды, в результате чего у
этой функции три аргумента-диапазона, и результат вычисляется как сумма произ-
г
ведений соответственных ячеек каждого из диапазона. Далее, М{у} есть не что иное,
как квадрат математического ожидания функции у(х), которое было ранее вычислено
и записано в ячейку В4 таблицы. Поэтому для вычисления дисперсии в ячейку В5
A
вводим формулу =SUMPRODUCT(B2:F2,B3:F3,B3:F3)-B4 2. Результат можно ви-
деть на рис. 5.4.

394 Часть II. Решение задач


В5 - f* =SUMPRODUCT(B2:F2,B3;F3.B3;F3)-B4->2
\ A С . D E F : G
1^Значение х -2 -1 ( 2
~ Вероятность P(x)
;В Функция y(x)
0.1 ей'
0.135335 0.367879:
6.4 °.ii a?
1 : 2.718282 7.389056;

J
Mai. ожидание
1 Дисперсия
; 223S749_
1 7 084389 1
:
f.:::" = |

Рис. 5.4. Вычисление дисперсии


Следует отметить, что можно было и не выполнять в явном виде вычисление значе-
ний функции у(х) для возможных значений случайной величины х. Например, для вы-
числения математического ожидания достаточно сразу после ввода данных о распреде-
лении случайной величины (имеются в виду сведения о возможных значениях перемен-
ной и их вероятности) ввести в ячейку ВЗ формулу =SUMPRODUCT(B2:F2,EXP(B1 :F1)),
в результате чего получим значение для искомого математического ожидания (рис. 5.5).
Дело в том, что если в качестве аргумента функции ЕХР() указать не одну ячейку,
а диапазон, то результатом будет массив ячеек со значениями, которые получаются
действием функции (в данном случае экспоненциальной) на каждую из ячеек ис-
ходного диапазона. Точно так же можно реализовать и возведение в квадрат. Так,
Л
командой ЕХР(В1:Р1) 2 возвращается массив значений, которые получаются из ис-
ходного диапазона B1:F1 путем экспонирования (т.е. значения ячеек являются ар-
гументом показательной функции ЕХР()) с последующим возведением в квадрат.
Отсюда для вычисления дисперсии достаточно в ячейку В4 ввести формулу
Л Л
=SUMPRODUCT(B2:F2,EXP(B1 :F1 ) 2)-ВЗ 2 (рис. 5.6).
Для расчета среднего значения (математического ожидания) и дисперсии в Excel
есть специальные функции. Однако использовать их можно только для вычисления
характеристик равномерно распределенных случайных величин. Это означает, что
если случайная величина является дискретной, то каждое из своих возможных зна-
чений она принимает с равной вероятностью. Для непрерывно распределенной слу-
чайной величины на интервале (а, Ь) плотность распределения дается формулой
f(x) = \l(b - а). Обычно эти встроенные функции используются при анализе стати-
стических данных, поэтому они будут рассмотрены в следующем разделе, где обсуж-
даются методы математической статистики.

B3 - / , =SUMPRODUCT(B2:F2,EXP(B1:F1))
; A Q ! С I D i E F i.' .6 .....
1 Знамение х 2 i 0 i 2
2j Вероятность Р(х) 0.1 0.2; 0.4; 0.1 i 0.2.
3 JMaT. ожидание 1 2.236749Ц
i t г
Puc. 5.5. Вычисление математического ожидания без вычисле-
ния значений функции

;
В4 ' f , =ЗиМРРООиСТ(В2;Р2,ЕХР(В1;Р1)А2)-ВЗл2
!
' i I A В .' | С \ D ; Е [ F , .. . G
1 «Значение х 1 Ь 1 2
2 j Вероятность Р)х) 0.1 0.2 O'."4l 0.1 0.2
3 ;Мат. ожидание 2236749
4 ) Дисперсия 1 7 0843B9I 1
S! ' :
:
] ! ]

Рис. 5.6. Вычисление дисперсии без промежуточных расчетов

Глава 5. Теория вероятностей и математическая статистика 395


Корреляция данных
Хотя такие характеристики, как математическое ожидание или дисперсия, — доста-
точно важные и показательные с точки зрения прикладного анализа, часто их бывает не-
достаточно. Особенно это замечание справедливо для ситуации, когда устанавливается
взаимосвязь между несколькими случайными величинами. Другими словами, часто бы-
вает важно определить, есть ли между случайными величинами зависимость. Зависи-
мость может быть функциональной (как в рассмотренном выше примере), но кроме это-
го величины могут быть зависимы и не функциональным образом. Для того, чтобы опре-
делить степень такой зависимости (и существует ли она вообще), вычисляют
коэффициент корреляции. Коэффициентом корреляции двух случайных величин назы-
вается математическое ожидание произведения соответствующих этим случайным вели-
чинам нормированных величин. Если £ — случайная величина с ненулевой дисперсией, то
ей в соответствие можно поставить случайную величину £, =(£-Л/{!;})Д/О{£}, которая
и называется нормированной. Очевидно, что М{ £,} = 0 и D{ £,} = 1.
На заметку. Если следовать "букве закона", то определение нормированной слу-
чайной величины таково: нормированная случайная величина — это такая,
случайная величина, которая имеет нулевое математическое ожидание и единич-
ную дисперсию. Приведенные выше соотношения — это способ сведения произ-
вольной случайной величины (с ненулевой дисперсией!) к нормальной случай-
ной величине. Для нормирования величин по известному среднему и стандарт-
ному отклонению может использоваться функция STANDARDIZED
Таким образом, коэффициент корреляции р(£, Г|) случайных величин 4 и г\ по оп-
ределению равен р(£,г|) = Л/{£д} = м{(£-Л/{£})(т1-Л/(г|})/Л/£>{1;}£>{г1}}. Коэффициент
корреляции обладает рядом интересных свойств. Так, он (по модулю) не превышает
единицы и для независимых величин равен нулю.
Внимание! Из равенства нулю коэффициента корреляции в общем случае неза-
висимость случайных величин не следует. Однако очень часто, особенно в рамках
анализа статистических данных, приходится иметь дело с нормальным распреде-
лением (случайные величины распределены по нормальному закону). В этом
случае равенство нулю коэффициента корреляции является свидетельством не-
зависимости величин.
Случайные величины называются положительно скоррелированными, если их ко-
эффициент корреляции больше нуля, и отрицательно скоррелированными, если он
отрицателен.

Пример 5.2. Определить коэффициент корреляции сигналов на входе и выходе!


усилителя с коэффициентом усиления сигнала k - 5, если на вход подается сигнал
Ua = 5 В с нестабильностью п = 0,1 (т.е. 10%). В результате усиления сигнала появ-
ляются шумовые помехи со среднестатистическим стандартным значением откло-

Если U(f) — сигнал на входе (через / обозначено время), то его можно представить
в виде U(t) = f/o + 8U(t), где случайная функция 8U(t) определяет нестабильность сиг-

396 Часть II. Решение задач


нала на входе. В силу условия задачи для этой функции полагаем M{Sf/(f)} =0 и
= nU0 . Далее, если £/,(г) — сигнал на выходе усилителя, то по условию за-
дачи имеет место соотношение £/,(/) = &((/„ + 5£/(r)) + &V(i), где dV(t) обозначает шум.
Очевидно, что среднее значение (математическое ожидание) для этой случайной ве-
личины следует полагать нулевым, т.е. M{5V(t)} =0, а дисперсия (это квадрат сред-
нестатистического отклонения) определятся соотношением ^JD{8V(t)} = V0 . Таким
образом, нужно найти коэффициент корреляции р( £/,(?), U(t)). Причем воспользуем-
ся формулой для коэффициента корреляции p(£,,r\) = (M{£1r\}-M{£,}M{r\})/^D{£,}D{r\} ,
которая является прямым следствием формулы для коэффициента корреляции,
приведенной в самом начале. Кроме того, если а — константа, то М{а + ^} = а + Л/{^}
и D{a+ £}=£>{£}. Далее, если случайные величины £ и г) независимы, то
D{^, + t]} = D{^,} + D{r\]. В результате элементарных преобразований и учитывая
вышеупомянутые соотношения для дисперсии и математического ожидания, полу-
чаем следующие соотношения.
Математическое ожидание сигнала на входе М { U(i) } = [/„.
Математическое ожидание сигнала на выходе М{ £/,(')} = kU0.
Математическое ожидание M{U(t)U{(t)\ = k(\ + if)Ul .
Дисперсия для сигнала на входе D{U(t)} = n~Ul .
2 2 2
Дисперсия для сигнала на выходе D{Ul(t)] = k n Ul + V 0 .
Внимание! При выводе соотношений для дисперсии сигнала на выходе и матема-
тического ожидания произведения двух сигналов использовался тот факт, что шум
для сигнала на входе и шум, создаваемый усилителем на выходе, независимы.

Таким образом, коэффициент корреляции равен p = knU0/^k2n2U^ + V2 . Очевид-


но, что если усилитель не вносит помех (т.е. если V0 = 0), коэффициент корреляции
равен единице, что свидетельствует о полной скоррелированности входящего и вы-
ходящих сигналов (и это неудивительно). Реализация задачи в Excel представлена
на рис. 5.7.
В13 f, =(B10-B9*B8)/SQRT(B11*B12)
В
Определение коэффициента корреляции
^Коэффициент усиленияk 5
:
Сигнал на входе UO (В) 5
;;! Показатель нестабильности л 0.1
Отклонение сигнала (шум) VO (В)
:\ Нестабильность сигнала nUO 0.5
i Математическое ожидание MfiJO} 5
:{Математическое ожидание MfiJ1) 25
•Математическое ожидание MJUOU1} ^26.25
•Дисперсия DfiJty 0-25
Дисперсия £>$Л}
^Коэффициент корреляции \ 0.7071067811

Рис. 5.1. Реализация в Excel процесса вычисления


коэффициента корреляции

Глава 5. Теория вероятностей и математическая статистика 397


Вначале следует задать исходные параметры задачи. Так, в ячейку ВЗ вводим
значение 5 для коэффициента усиления, в ячейку В4 вводим значение 5 напряжения
£/„ сигнала на входе, значение 0.1 в ячейке В5 задает показатель п нестабильности
входящего сигнала, в то время как среднестатистическое отклонение шума V0, созда-
ваемого усилителем, указывается в ячейке В6 (значение 2.5). Остальные параметры
вычисляются на основе этих значений. В ячейку В7 вводится формула =В5*В4, по
которой определяется среднестатистическое отклонение для шума (нестабильности)
сигнала на входе. Следующие три ячейки содержат данные о математических ожи-
даниях. В ячейке В8 по формуле =В4 определяется математическое ожидание для
входящего сигнала. Для сигнала на выходе математическое ожидание дается форму-
лой =ВЗ*В4 и отображается в ячейке В9. В ячейке В10 можно видеть значение для
математического ожидания произведения двух сигналов (сигнала на входе и выхо-
де), которое вычисляется по формуле =ВЗ*(1 +В5Л2)*В4Л2.
Для вычисления коэффициента корреляции, помимо упомянутых математиче-
ских ожиданий, необходимо знать дисперсию сигнала на входе и выходе. Дисперсия
для входного сигнала отображена в ячейке В11. В эту ячейку введена формула
=В5Л2*В4Л2. Формула в ячейке В12 имеет вид =ВЗЛ2*В5Л2*В4Л2+В6Л2 и определяет
дисперсию для сигнала на выходе. Наконец, коэффициент корреляции вычисляется
по формуле =(В10-B9*B8)/SQRT(B11 *В12). Эта формула введена в ячейку В13.
Несложно убедиться, что если уменьшить значение для среднестатистического
отклонения шумового сигнала усилителя в ячейке В6, это приведет к увеличению
коэффициента корреляции. К такому же эффекту приводит увеличение коэффици-
ента усиления сигнала (ячейка ВЗ) или показателя его нестабильности (ячейка В5).
В рассмотренном примере коэффициент корреляции рассчитывался, фактически,
в аналитическом виде. Реализация решения в Excel имела своей целью в первую
очередь наглядно продемонстрировать связь исходных параметров задачи с конеч-
ным результатом. Однако часто применение Excel может оказаться практически без-
альтернативным методом решения задачи. Об этом речь идет в следующем примере.

Пример 5.3. В урне находится три черных и два белых шара. Из урны случайным
образом сначала вынимают один, а затем второй шар. Найти коэффициент корре-
ляции для числа белых шаров, вытянутых в первый и второй раз
Совершенно очевидно, что при выемке шара вероятность того, что шар будет бе-
лым, равна отношению числа белых шаров в урне к общему числу шаров. Поэтому
вероятность вытянуть в первый раз белый шар равна 0,4 (два к пяти). Вероятность
вытянуть во второй раз белый шар зависит от того, какого цвета шар был вытянут в
первый раз. Если в первый раз был вытянут черный шар, то в корзине из четырех ос-
тавшихся шаров будет два белых и два черных шара. Поэтому вытянуть во второй
раз белый шар можно с вероятностью 0,5 (два к четырем). Если же в первый раз был
вытянут белый шар, то вероятность вытянуть белый шар и во второй раз равна 0,25
(один из четырех).
Введем в рассмотрение две случайных величины х и у, которые определяют коли-
чество вытянутых белых шаров в первый и во второй раз соответственно. Очевидно,
что каждая из этих величин может принимать только два значения: 0 и 1, однако с
разной вероятностью. Для величины х ряд распределения очевиден (для нуля веро-
ятность 0,6 и для единицы, как отмечалось выше, вероятность равна 0,4). Ряд рас-

398 Часть II. Решение задач


пределения для величины у зависит от реализации величины х. Если х = 0, то у при-
нимает значения 0 и 1 с равными вероятностями (т.е. вероятность равна 0,5).
В том случае, если х=1, величина у принимает значение 0 с вероятностью 0,75 и зна-
чение 1 с вероятностью 0,25. При решении этой задачи в Excel в первую очередь за-
носим данные о распределении случайных величин в ячейки таблицы (рис. 5.8).

СВ Т £ =1/4
А 3 .- В . j '. С : С) |
1 х и 1
2 Рх 0.6 0.4
'
4 У РНх-0) Ру(х-1>С
6 0 0.5 075
Е- 1 0.5 0.25
7

Рис. 5.8. Данные о распределении


случайных величин

Однако в дальнейшем, для вычисления коэффициента корреляции, понадобятся


еще и данные о распределении величины ху. В частности, для этой величины необ-
ходимо будет вычислить математическое ожидание. Поэтому заполняем таблицу для
значений х и у с вероятностями реализации каждой пары значений (рис. 5.9).

сю £ =С2*С6
• А В С D
1 х 0 1
2 Рх 0.6 0.4
3|
4 ;у Pv(x=0) ?У(Х-1)
', 0 05 075
6 1 0.5 0.25
7
Г'х^ х
в9 |i£\,0 03
0 1
0.3
!Г.| 1 0.3 0.1
11

Рис. 5.9. Данные о совместном рас-


пределении случайных величин

Вероятности для реализации пары случайных величин Р(ху) могут быть вычис-
лены как произведение вероятности Р(х) реализации данного значения х на вероят-
ность Р(у\х) реализации конкретного значения у при данном фиксированном х, т.е.
Р(ху) = Р(х)Р(у\х). При этом Р(у\х) еще называют условной вероятностью, поскольку
это вероятность реализации значения у при условии, что задано значение х. Напри-
мер, вероятность того, что обе случайные величины х и у окажутся равными нулю,
определяется как произведение вероятности реализации значения Р(х = 0) (значение
0.6 в ячейке В2) на вероятность Р(у = 0\х = 0) реализации значения у = 0 при условии,
что х = 0 (значение 0.5 в ячейке В5). Поэтому в ячейку В9, где отображается значе-
ние для этой вероятности, вводится формула =В2*В5 (см. рис. 5.9). В полной анало-
гии к вышесказанному в ячейку С9 вводится формула =С2*С5, в ячейку В10 вводим
формулу =В2*В6, а в ячейку СЮ — формулу =С2*С6.

Глава 5. Теория вероятностей и математическая статистика 399


На следующем этапе разумно вычислить математическое ожидание для произве-
дения ху. Вычисляется оно суммированием произведений значений (возможных)
случайных величин х и у на вероятность реализации данной пары значений. Соот-
ветствующая сумма вычисляется по формуле =SUM(B9:C10*A9:A10*B8:C8), которая
вводится в ячейку F9 (рис. 5.10).
Внимание! При вводе этой формулы следует нажать комбинацию клавиш
<Ctrl+Shift+Enter>, так как это формула для диапазона ячеек. Дело в том, что в
качестве аргумента функции суммирования SUM() указано произведение трех
диапазонов (В9:С10*А9:А10*В8:С8). Если операция умножения (обычного ум-
ножения!) применяется к диапазонам одинаковой размерности, то перемножают-
ся соответствующие ячейки. Если, например, один диапазон является столбцом,
количество ячеек которого совпадает с количеством строк во втором диапазоне,
то результатом применения операции произведения является диапазон, полу-
чающийся из второго диапазона умножением каждой его строки на соответст-
вующую ячейку первого диапазона-столбца. То же относится и к умножению
диапазона на диапазон-строку. Именно эта особенность и использована для вы-
числения математического ожидания.
Помимо этого, следует вычислить математические ожидания для случайных ве-
личин хну. С величиной х дело обстоит достаточно просто. Математическое ожида-
ние для нее может быть вычислено как сумма возможных значений величины, ум-
ноженных на вероятность их реализации. Для вычисления математического ожида-
ния в ячейку F2 следует ввести формулу =SUMPRODUCT(B1 :C1 ,В2:С2) (рис. 5.11).

Рис. 5.10. Вычисление математического ожидания

Puc. 5.11. Математическое ожидание для первой слу-


чайной величины

400 Часть II. Решение задач


С величиной у ситуация обстоит несколько сложнее. Так, для вычисления
математического ожидания М{у] можно воспользоваться формулой
= yl \x = xk)P(xt) , где сумма вычисляется по всем возможным значени-

ям случайных величин х и у. Для реализации этой суммы в Excel в ячейку F5 вводим


формулу =SUM(B2:C2*B5:C6*A5:A6). Эта формула также вводится нажатием ком-
бинации клавиш <Ctrl+Shift+Enter>. Результат представлен на рис. 5.12.
Кроме этого, для вычисления коэффициента корреляции необходимо вычислить
дисперсию случайных величин х и у. Дисперсия D{x}, согласно определению послед-
A
ней, вычисляется в ячейке F3 по формуле =SUM((B1 :C1 -F2) 2*B2:C2) (рис. 5.13).
На заметку. Если от диапазона отнять значение (ячейку), то результатом будет
диапазон, элементы которого получаются отниманием от элементов исходного
диапазона данного значения. Другими словами, отнимаемое от диапазона значе-
ние будет отниматься от каждой ячейки этого диапазона.
Несколько сложнее вычисляется дисперсия D{y] для второй случайной величи-
ны. В частности, в этом случае в ячейку F6 вводится формула =SUM((A5:A6-
A
F5) 2*B5:C6*B2:C2) (рис. 5.14).
Внимание! В случае вычисления дисперсии как одной, так и другой случайных
величин, соответствующие формулы вводятся нажатием комбинации клавиш
<Ctrl+Shift+Enter>.

F5 •* jS(=SUM(B2:C2*B5.C6*A5:AB)}
(•• ' А : В с _D_ [ Ё F I G
?
Y' x _ о ~"' ^

2 Рх 0.6 0.4 чад-? 0.4 ;


3
4 * РЙХ*О) Л Pyfr-1)
5] 0 0.5 075
6 : t 0.5 0.25
7 :
Nv
':~ *x. X

в> 0 1
9 i 0 0.3 0.3 *Ч*У}- 0.1;
10 i 1 0.3 01
11
Рис. 5.12. Математическое ожидание для второй
случайной величины

F3 » jb(=SUM((B1:C1-F2)"2*B2:C2))
А ..,. В . ••: с D | Е ,. F | G
"1 ~х
2 'Рх
0
0.6
1
0.4 М{х}- 0.4
з! Mrt-..-J 024J
4 ;» . Ру(х-0) Р»(х-1)
S ; 0 0.5 0.75 «(УШЩ! о'-4;
Б } 1 0.5 0.25
7..'
* :

|Г х ; I I
' ^\
в iv _X., 0 1
9 0 0.3 0.3 М{ху}- 0.1
Ю, 1 0.3 0.1
;
11.' :

Рис. 5.13. Дисперсия первой случайной величины

Глава 5. Теория вероятностей и математическая статистика 401


Наконец, вычисляем коэффициент корреляции по формуле =(F9-F2*F5)/SQRT(F3*F6),
которую вводим в ячейку F10 (рис. 5.15).
Обратите внимание, что коэффициент корреляции отрицателен. Другими словами,
рассматриваемые случайные величины являются отрицательно скоррелированными.

F6

0.6 0.4 М{х}


0.24^
РУ(Х-В> Ру(х-11
0.5 075
0.5 0.25

и3 II j
0.3 о

Рис. 5.14. Дисперсия для второй случайной величины

A Jy Ptfx-0) Pyfx-1)
5 - 0 05 0.75
С 1 0.5 0.26
7 "I
• PN, X
8 !у" 0 1
9 • 0 0.3 0.3
10) 1 0.3 0.1

Pwc. 5.15. Вычисление коэффициента корреляции

Методы математической статистики


Как известно, главным источником знаний является опыт. Именно статистиче-
ские данные служат базой для оценки основных вероятностных характеристик слу-
чайных величин и процессов. Такие задачи относятся к предмету математической
статистики. Поскольку именно с подобного рода задачами и приходится иметь дело
при обработке экспериментальных данных, а приложение Excel ориентировано в
первую очередь на решение прикладных вопросов, пользователю предлагается дос-
таточно широкий набор утилит и встроенных функций. Они с успехом могут ис-
пользоваться при анализе больших массивов данных.
Как уже отмечалось, задачи математической статистики во многом обратны к за-
дачам непосредственно теории вероятностей: в последнем случае по известным па-
раметрам распределения случайной величины делаются предположения о возмож-
ной реализации этой величины в эксперименте, в то время как в рамках математиче-
ской статистики по конкретным экспериментальным реализациям случайной
величины или величин делается предположение о параметрах распределения.

402 Часть II. Решение задач


Здесь следует сделать одно замечание относительно случайности тех или иных
величин. Дело в том, что даже при наличии достаточно точных измерительных при-
боров результаты измерений разнятся от эксперимента к эксперименту, поскольку
невозможно учесть все факторы, влияющие на результат. Поэтому даже если речь
заходит об экспериментальном измерении и анализе данных для детерминирован-
ной величины, данные эти, при известных обстоятельствах, можно интерпретиро-
вать как реализацию случайной величины.

Основные понятия математической статистики


Прежде чем приступить непосредственно к рассмотрению примеров использова-
ния Excel для решения статистических задач, целесообразно остановиться на тех ба-
зовых понятиях, которые используются в математической статистике. Как правило,
они тесно связаны с характеристиками распределения случайной величины.
Для удобства условимся здесь и далее, если не оговорено противное, обозначать че-
рез {х:} набор значений случайной величины х (т.е. это набор значений, полученных
в результате измерений). Индекс i нумерует экспериментальные значения из набора
{д;,.} и пробегает значения от 1 до N, где N — количество измерений.
Достаточно важным является понятие среднего значения случайной величины,
1 "
которое определяется выражением х=—^х,. Такое среднее значение используется

в качестве оценки для математического ожидания случайной величины. При этом


возникает естественный вопрос: какую оценку можно считать приемлемой? В мате-
матической статистике при выполнении оценок характеристик случайных величин и
их распределений используется такой термин, как состоятельная оценка. Оценка
характеристики называется состоятельной, если при неограниченном увеличении
числа опытов она сходится по вероятности к этой характеристике (т.е. вероятность
отклонения оценки от статистической характеристики стремится к нулю). С прак-
тической точки зрения это означает, что для того, чтобы оценка была состоятельной,
математическое ожидание этой оценки должно стремиться к значению оцениваемой
характеристики, а дисперсия — к нулю. Возвращаясь к среднему значению случай-
ной величины (которое еще называют выборочным средним), можно утверждать, что
это состоятельная оценка математического ожидания.
Дисперсию случайной величины х по выборке можно определять по формуле
1 "
сг =—]£(*,.-Зс)2. Это смещенная состоятельная оценка для дисперсии, поскольку
/V (=1
математическое ожидание от этой оценки равно дисперсии случайной величины с
точностью до множителя (N - l)/N. Понятно, что для того, чтобы математическое
ожидание оценки дисперсии равнялось дисперсии, в качестве оценки последней сле-
N

дует использовать формулу s~ = ^(jc(~je)2. Это несмещенная состоятельная

оценка для дисперсии. При достаточно большом числе испытаний N обе оценки
(смещенная и несмещенная) практически различаются мало.

Глава 5. Теория вероятностей и математическая статистика 403


Встроенные функции Excel
В Excel для вычисления оценок случайных величин предлагаются специальные
функции. В первую очередь это относится к функции вычисления среднего значения
AVERAGEQ. Функцией вычисляется среднее значение для набора данных, которые
указываются в качестве аргументов функции и которых может быть достаточно мно-
го (до тридцати). В качестве аргументов могут указываться не только числа и ссыл-
ки на отдельные ячейки, но и, например, диапазоны ячеек или названия. Если в ка-
честве аргументов указаны логические значения, текст или пустые ячейки, то при
вычислении среднего значения они игнорируются.

На заметку. В отличие от функции AVERAGEQ, при использовании функции


AVERAGEAQ также вычисляется среднее значение, однако_при этом учитывают-
ся аргументы с текстовыми или логическими значениями. В частности, аргумен-
ты с текстовыми значениями интерпретируются как имеющие значение 0. Логи-
ческое значение TRUE интерпретируется как 1, а логическое значение FALSE при
этом интерпретируется как 0.
Кроме этого, сразу стоит обратить внимание на тот факт, что у многих функций
Excel есть двойники, заканчивающиеся литерой А. Разница между базовой функци-
ей и ее двойником с литерой А состоит, как правило, именно в интерпретации тек-
стовых и логических значений, а также пустых ячеек. Для рассматриваемых в этом
подразделе функций обработка таких значений их А-двойниками осуществляется
так же, как и в случае функции AVERAGEA(), т.е. текстовые значения интерпрети-
руются как нулевые, логические преобразуются в единицу (логическое значение
TRUE) или нуль (логическое значение FALSE), а пустые ячейки игнорируются.

Для вычисления выборочной дисперсии (несмещенной) может использоваться


функция VAR(). Смещенная дисперсия вычисляется функцией VARPQ. Как уже от-
мечалось, при достаточно большом количестве значений случайной величины, по
которым вычисляется дисперсия, разница между смещенной и несмещенной оцен-
ками незначительна. Непосредственно с выборочной дисперсией связано такое по-
нятие, как стандартное отклонение. Это есть не что иное, как квадратный корень из
выборочной дисперсии. Если стандартное отклонение вычисляется по несмещенной
дисперсии, используется функция STDEV(). Функция STDEVPQ позволяет вычис-
лить стандартное отклонение на основе смещенной дисперсии.
На заметку. Если в качестве аргумента одной из перечисленных выше функций
указан текст, логическое значение или пустая ячейка, они игнорируются. Как уже
отмечалось, если к названию одной из этих функций добавить в конце литеру А,
получим функцию (если точнее, то это функции VARAQ, VARPAQ, STDEVA() и
STDEVPAQ), которая обрабатывает текстовые и логические значения согласно
правил, описанных ранее для функции AVERAGEAQ.
Однако на вычислении среднего значения или выборочной дисперсии процесс
анализа статистических данных не ограничивается. Мало того, обычно вычисление
среднего значения или дисперсии — это только промежуточный этап анализа. Неко-
торые достаточно важные аспекты оценки статистических характеристик обсужда-
ются в следующем подразделе.

404 Часть II. Решение задач


Методы оценок
Достаточно распространенной является такая постановка задачи. Задана функ-
ция распределения случайной величины Дх, {А,,}), которая помимо непосредственно
аргумента зависит еще и от набора неизвестных параметров {Я..} (индекс i = 1.Jt ну-
мерует параметры распределения). Именно для этих параметров следует выполнить
оценку, основываясь на статистических данных о распределении случайной величи-
ны. Такие оценки можно выполнять несколькими способами.
Один из самых распространенных методов называется методом моментов и состо-
ит в следующем. Сначала теоретически вычисляются первые моменты распределения
в количестве, равном числу неизвестных параметров распределения. Эти моменты, в
силу зависимости функции распределения случайной величины от параметров {Я,},
также зависят от искомых параметров (напоминаем, эта зависимость устанавливается
аналитически). Далее, по статистическим данным для распределения случайной вели-
чины вычисляются эмпирические моменты. Путем приравнивания эмпирических оце-
нок для моментов и аналитических выражений для них, полученных на основе функ-
ции распределения случайной величины, получают систему уравнений. Решая эту
систему уравнений, находят оценки для параметров распределения {A.J.
На заметку. Эмпирическим моментом порядка k, вычисленным на основе набора
1 "
{*,}, называется величина p,t =—]Гх* . Очевидно, что первый эмпирический мо-

мент совпадает со средним значением случайной величины, а смещенная оценка


для дисперсии связана с первыми двумя эмпирическими моментами соотноше-
нием сг = ц, - ^ .

Другой популярный метод — метод наибольшего правдоподобия — основывается


на таком подборе параметров распределения, чтобы функция правдоподобия имела
наибольшее (максимальное) значение. Функция правдоподобия задается на основе
функции распределения (для непрерывной случайной величины) или вероятности
реализации отдельных значений (для дискретной случайной величины) следующим
образом. Для непрерывно распределенной случайной величины с плотностью рас-
пределения f(x, {А,,}), зависящей от неизвестных параметров {Л;}, функция правдопо-
добия выбирается в виде L({X,},{x}) = J~[/(x,,{X,.}). Для дискретной случайной вели-
s=l

чины с заданными вероятностями реализации ее значений Р(х, {А.,}), функция прав-


доподобия имеет вид L({A.J,{*.}) = J~[P(jc j ,{A i }). Как известно, условием наличия
л=|

максимума функции (строго говоря, необходимым, но не достаточным) является ра-


венство нулю частных производных. В данном случае приравнивая к нулю частные
производные от функции правдоподобия по каждому из неизвестных параметров,
получаем систему уравнений вида ЭД{Х,},{х;})/ЭА; =0 (/ = !••&); решаем систему и на-
ходим параметры распределения.
Использование того или иного метода оценки параметров распределения сущест-
венно зависит от конкретной постановки задачи. Заранее, в силу объективных причин,
бывает достаточно сложно определить, какая из оценок лучше. На практике обычно

Глава 5. Теория вероятностей и математическая статистика 405


исходят из того, какую оценку легче получить. Однако если используется какой-то
вспомогательный пакет (вроде Excel), многие, так сказать, технические вопросы, свя-
занные с процессом вычислений для получения оценок, отходят на второй план. Ниже
рассматривается пример, в котором оценка для параметров распределения выполняет-
ся двумя методами: методом моментов и методом наибольшего правдоподобия.

Пример 5.4. В табл. 5.2 представлены данные о распределении случайной величи-


ны х, равномерно распределенной в диапазоне значений [а, Ь]. Параметры а и Ь, от
которых существенно зависит функция распределения, неизвестны. Необходимо
2
определить среднее значение J случайной величины х, выборочную дисперсию s ,
а также выполнить оценку для границ диапазона а и Ь, на котором распределена
случайная величина

Таблица 5.2. Данные о распределении случайной величины

Опыт Значение
1 0,716
•• 0,894
3 0,899
4 0,009
5 0,207
6 0,255
', 0,422
8 0,350
9 0,697
10 0,445

Решение будем искать в несколько этапов. Сначала определим выборочное сред-


нее значение и дисперсию для случайной величины. Далее оценка для границ диапа-
зона распределения выполняется методом моментов, а затем методом наибольшего
правдоподобия. Однако перед разрешением вопросов, связанных с оценкой границ
диапазона распределения непосредственно в Excel, будут приведены основные эта-
пы аналитического решения данной задачи. Это позволит размежевать проблему
поиска решения и реализации его в Excel.
Прежде всего вносим в ячейки электронной таблицы данные о распределении
случайной величины (рис. 5.16).
В11 А 0.445
После этого вычисляем среднее значение. Это можно ! А В | С
сделать по-разному. В частности, разумно воспользовать- 1 ОПЫ! Значение
2 1 0.716
ся кнопкой автоматического суммирования на стандарт- 3 2 0694
ной панели инструментов. Для этого следует выделить 4 3 0.899
5 4 0009
ячейку В12 и щелкнуть на стрелке справа у кнопки авто- 6 Б 0.207:
матического суммирования. В открывшемся списке необ- 7 Б 0.255:
S 7 0.422:
ходимо выбрать элемент Average (Среднее) (рис. 5.17). Э В 0.35:
:
10 9 0.697
10 IOJ 0.4451
Рис. 5.16. Исходные данные о распределении случайной величины ,12 i

406 Часть II. Решение задач


В* Bew Insert Fo Window tielp •>.«!•&:(.><»;'> _ S x

B12

1
2;
Значение :

г
0.71Б"
0.894
;
-
З 0.899
4; 0.009
5! 0.207'
б!" 0.255;
7J 0.422
3; 0.35:
! :
10! " 9' 0.697
11 10 0.445
ЯСреднее
121значение
13:

м \Sheptl / Sheet2 / ЗЬмЙ /


Ready

PMC. 5.17. Использование кнопки автоматического суммирования

По умолчанию для вычисления среднего значения, т.е. в качестве аргумента


функции AVERAGEQ, предлагается диапазон ячеек В2:В11. Таким образом, в ячейку
В12 будет введена формула =AVERAGE(B2:B11). Результат приведен на рис. 5.18.
Далее вычисляем выборочную дисперсию. Для этого в ячейку В13 вводим формулу
=VAR(B2:B11). Следует обратить внимание, что в данном случае разумнее использо-
вать именно функцию VARQ, а не VARP(), поскольку дисперсия вычисляется по вы-
борке. Если бы, например, исходные данные в условии задачи определяли не реализа-
цию в эксперименте случайной величины, а полный набор ее возможных значений, то
для определения дисперсии следовало бы использовать функцию VARPQ, поскольку в
этом случае речь бы шла не о выборке, а о генеральной совокупности.

:
В2 f, =AVERAGE(B2:B11)

Опыт
0.716^
0.894-
0.899:
0.009:
0.207
0.255
0.422'
0.35
0.697

Рис. 5.18. Результат вычисления среднего


значения

Глава 5. Теория вероятностей и математическая статистика 407


На заметку. Если речь идет о полном множестве исследуемых объектов, говорят о
генеральной совокупности. Обычно свойства генеральной совокупности изучаются
на основе некоторого подмножества объектов. Такой набор объектов называется
выборкой. Для того чтобы данные, полученные на основе исследования выборки,
адекватно отражали свойства всей генеральной совокупности, выборка должна
быть представительной. Обычно для получения представительной выборки ис-
пользуют метод случайного выбора элементов из генеральной совокупности.
Например, если проводится опрос о том, есть ли жизнь на Марсе, и в качестве рес-
пондентов в опросе участвуют граждане, оказавшиеся в районе станции метро
"Университет", то такая выборка представительной, пожалуй, не будет, поскольку
процент опрошенных среди респондентов научных сотрудников, очевидно, окажет-
ся несколько выше, чем в среднем по городу. Если результаты такого опроса рас-
пространить на всех горожан, то можно прийти к неправильному выводу о нездо-
ровом влечении граждан к красной планете. По той же причине не имеет смысла
проводить опрос в местном военном гарнизоне. Можно, например, проводить оп-
рос, выбирая респондентов случайным образом из телефонной книги. Если предпо-
ложить, что наличие или отсутствие телефона на мнение граждан о существовании
марсиан не сказывается, такую выборку приемлемо считать представительной.
Идеальный вариант — это выбор опрашиваемых случайным образом из базы дан-
ных жителей города (разумеется, если такая база данных существует).
Результат вычисления выборочной дисперсии представлен на рис. 5.19.

В13 =VAR(B2:B11)

Значение
0.716
0/894:
0899
0.009
0.207;
0.255"
0.422'
0.35!'
О.Б97
10 0.445;
: Среднее
12 iзначение 0.4894
'\3\Дисперсия I 0090815821
u;
Рис. 5.19. Вычисление выборочной
дисперсии

После определения среднего значения и выборочной дисперсии приступаем к


оценке параметров распределения, т.е. границ диапазона, на котором распределена
случайная величина. Сначала оценку выполняем методом моментов. Перед реализа-
цией решения в Excel, остановимся на базовых положениях, связанных с поиском
решения этим методом.
Поскольку (согласно условию задачи) случайная величина распределена равно-
мерно в диапазоне значений от а до Ь, то функция плотности распределения случай-
ной величины имеет вид f(x) = \l(b - а). В рассматриваемом случае нужно оценить
два неизвестных параметра, поэтому при использовании метода моментов следует
определить первый и второй моменты. Первый момент, совпадающий с математиче-

408 Часть II. Решение задач


г xdx b + a _.
ским ожиданием, очевидно, равен т, = \ x f ( x ) d x = \ - = - . Второй момент вы-
, ,Ь~а 2
2 2
г x'dx b + ab + а „
числяется как m, = \x~f(x)dx=\ - а = - . Далее нужно выполнить оценки
„ „b~ 3
для этих же моментов, исходя из статистических данных {*,}. В частности, первый
1 '°
выборочный момент (среднее значение) равен ц., = — ^х. . Второй эмпирический

(или выборочный) момент вычисляется как ц, = — ^xf . Приравнивая эмпириче-


10 „1
ские и аналитически рассчитанные моменты, получаем систему уравнений для опре-
деления параметров а и Ь:

b+a 1A

Решая эту систему аналитически, можем найти, что а - х - V3o2 и b = х + л/Зсг ,

где x=mt[xl} =—}£*,, а о2 есть смещенная оценка для дисперсии, равная

I 10 / I 10 \2
•> •> 1 v -, 1 V"1
О" = U-, ~ИГ = — / х~ -\ — > х .
iotr ' Uotr 'J
Чтобы решить эту задачу в Excel, в ячейку Е2 вводим формулу =SUM(B2:B11 )/10
для вычисления первого момента (результат должен совпадать со средним значени-
ем, рассчитанным ранее), а в ячейку ЕЗ для вычисления второго эмпирического мо-
мента вводим формулу =SUM(B2:B11Л2)/10 (рис. 5.20).

ЕЗ ft{=SUM(B2:B11A2)/10)
А j _; В !
1 Oin.ii Значение

Я4 ,
;:
\
0.716
ош
0899;
Первый момент
Второй момент
0.4894
1 0.321247)

5 '• |: 0.009;
i; 0.207:
Ч8 | ,'
if" 0.255
0.422
1
3 0.697
11 10 0.445:
Среднее
12 0.4894
13 "'Дисперсия 009081582
14'

Рис. 5.20. Вычисление эмпирических моментов

Глава 5. Теория вероятностей и математическая статистика 409


Внимание! При вводе формулы =SUM(B2:B11A2)/10 для вычисления второго
эмпирического момента в ячейку ЕЗ следует воспользоваться комбинацией кла-
виш <Ctrl+Shift+Enter>, поскольку в качестве аргумента функции суммирова-
ния указано выражение В2:В11Л2. Результатом его вычисления является массив
значений, которые получаются возведением в квадрат значений ячеек из диапа-
зона В2:В11. Чтобы функцией SUM() вычислялась сумма всех значений этого
массива, формула должна вводиться нажатием упомянутой выше комбинации
клавиш. Читателям, кстати, предлагается подумать над тем, насколько возможно
в данной ситуации использовать функцию SUMSQQ и что бы при этом изменилось.

Далее нужно составить и решить систему уравнений. Для этого в диапазон ячеек
Е6:Е7 заносим данные (предварительная оценка) для границ диапазона. В частно-
сти, в ячейку Е6 вводим значение -1 для левой границы диапазона, а в ячейку Е7
вводим в качестве оценки правой границы диапазона значение 2. После этого в
ячейку Е8 вводим формулу =(Е6+Е7)/2-Е2, согласно которой задается первое урав-
нение (это разность теоретического и эмпирического первых моментов). Разность
второго теоретического и эмпирического моментов определяется формулой
=(Е6Л2+Е6*Е7+Е7Л2)/3-ЕЗ, которая вводится в ячейку Е9 (рис. 5.21).
Таким образом, следует подобрать значения в ячейках Е6 и Е7 (искомые пара-
метры распределения), чтобы значения ячеек Е8 и Е9 были нулевыми (в этом случае
теоретические моменты равны экспериментальным).
Однако поскольку точное (т.е. аналитическое) решение известно, сразу отобра-
жаем те значения для границ диапазона, которые нужно будет найти в процессе ре-
шения. Для этого в ячейку F6 вводится формула =E2-SQRT(3*(E3-E2A2)), а в ячейку
F7 — формула =E2+SQRT(3*(E3-E2A2)). Это значения для границ диапазона, кото-
рые, как отмечалось, должны быть получены с помощью встроенных утилит Excel.

( Внимание! Значения в ячейках F6 и F7 нужны исключительно для проверки


результата.
На рис. 5.22 представлена таблица с данными для проверки результата после-
дующих вычислений.

Е9 .» & =(Е6«2+Е6*Е7+Е7«2)/3-ЕЗ
i А : ; В ~ ! С I ; _ D ~ I E :.. I .F '

1 .Опыт Значение
2 1 0.7161 .Первый момент [ 0.4894
"3" 2Т 0.894* Второймомент ; 6.321247.
4 ЭГ~ 0.899
5 4'! 0.009 Метод моментов
6 5 0.207 Леезя граница а -1
7 61 0.255- Правая граница Ь 2
"в". " 71 0.422; Первое уравнение 0.0106
9 | "81 0.35! Второе (/равнение 0.678753
10 9: 0.697
• ~ i -; -
11 "\а\ 0.445;
i Среднее
12 '[значение l 0.4894;
13 Дисперсия ' 009081582 :
14

Рис. 521. Ввод уравнений и начальных оценок

410 Часть II. Решение задач


F7 f. =E2+SQRT(3-(E3-E2*2))

Первый момент 0.4894


Второй момент 0.321247

Метод момент Проверка'


Левая граница а -1
Правая граница b 2
Первое уравнение 0.0106
Второе уравнение 0.678753
9
10
! Среднее
I 12 • значение 0.48941
113 Дисперсия 0.09081582
14 •;
Рис. 5.22. Аналитическая оценка для параметров распределения

Другими словами, значения в ячейках Е6 (левая граница диапазона) и Е7 (правая


граница диапазона), полученные в результате решения, должны совпадать со значе-
ниями в ячейках F6 и F7 соответственно.
Для поиска решения непосредственно с помощью Excel, воспользуемся возмож-
ностями, предоставляемыми надстройкой Solver. Выберите команду Tools<=>Solver
(Сервис^Решение), в результате чего откроется диалоговое окно Solver Parameters
(Настройки решения), показанное на рис. 5.23.

Puc. 5.23. Диалоговое окно Solver Parameters

I Внимание! Команда Tools^Solver (Сервис^Решение) доступна только в том


случае, если активизирована соответствующая надстройка (см. главу 4).

В поле Set Target Cell (Целевая ячейка) можно указать только одну ячейку, зна-
чение которой подгоняется для достижения экстремума или значения, заданного в
поле Value Of. В данном случае решается система уравнений, поэтому к нулю при-
равниваются значения в двух ячейках (Е8 и Е9). Из затруднения выходим следую-
щим образом. В поле Set Target Cell (Целевая ячейка) указываем целевую ячейку
Е8, в поле Value of (Значение) указываем нулевое значение для целевой ячейки. Для
того чтобы значение в ячейке Е9 в процессе решения также равнялось нулю, в поле
дополнительных условий Subject to the Constraints (Ограничения) указываем усло-
вие Е9=0. Изменяемыми ячейками, которые указываются в поле By Changing Cells
(Изменять ячейки), является диапазон ячеек Е6:Е7.

Глава 5. Теория вероятностей и математическая статистика 411


На заметку. В полях диалогового окна Solver Parameters на рис. 5.23 ссылки на
ячейки являются абсолютными. Это следствие того, что все упомянутые ссылки
вводились посредством выбора соответствующих ячеек с помощью мыши сразу в
рабочем листе.

После выполнения всех настроек и щелчка на кнопке Solve (Решить), получаем


результат, который представлен на рис. 5.24.

Е8 - & =(Е6+Е7)/2-Е2
i ~ А ! _ В ;L С 1 _ D ' • Е | F J. _ 6
1 Опыт Значение

t
il 0.716: Первый момент 0.4894
2 0.894: Второй момент 0.321 247
Г
3 0.899
4. 0.009 Метод *1о«ентов проверка
5 0.207 Левая граница а -0.00578 -0.00578
6' 0.255 Правая граница b 0.984578 0.984579
7 0.422 Первое уравнение 0 •
В 0.35: Второе уравнение -5.7Е-07
9 0.697:
;
10 0.445.
I Среднее
12 [значение 0.4894
ШДисперсия' 0.09081582
)
и"!
Рис. 5.24. Оценка параметров распределения методом моментов

Как несложно заметить, оценка для левой и правой границ диапазона, на котором
распределена случайная величина, найдена, по сравнению с аналитически получен-
ным результатом, более чем неплохо.

На заметку. Приоткрывая завесу секретности, можно отметить, что рассматри-


ваемый в этой задаче набор данных является результатом генерирования случай-
ного числа в диапазоне значений от 0 до 1. Другими словами, оцениваемые пара-
метры распределения — это 0 и 1 для левой и правой границы соответственно.
Учитывая, что оценка производится всего по 10 значениям (а это для статистиче-
ского исследования очень маленькое число), получен совсем неплохой результат.
Осталось проверить надежность метода наибольшего правдоподобия, выполнив
оценку параметров распределения этим методом. Как и прежде, сначала приведем
некоторые соображения, касающиеся поиска решения в аналитическом виде.
Ранее отмечалось, что функция плотности распределения случайной величины
имеет вид/{^) = !/(£ - а), однако это только для значений аргумента, которые прихо-
дятся на диапазон [а, Ь]. В противном случае функция плотности распределения то-
ждественно равна нулю. Это неявно подразумевалось и ранее, однако в данном слу-
чае сделанное замечание весьма важно. Следовательно, если быть предельно точ-
ным, то функция для плотности распределения должна быть представлена в виде
a<x<b
b-a . Отсюда вычисляем функцию правдоподобия — она, очевид-
0, х<а, х>Ь
но, может быть записана следующим образом:

412 Часть I I . Решение задач


, VJ:jc.6[o,b]
Ца,Ь,{х1})= "
О, 3; :х, g [a,L

Запись выше означает, что в случае, если все значения из набора {х:} находятся в
диапазоне [а, Ь}, функция правдоподобия равна l/(b - а)ю. Если хотя бы одно из значе-
ний из набора {jc;} находится вне диапазона [а, Ь], функция правдоподобия равна нулю.

На заметку. Функция правдоподобия, согласно ее определению, есть произведе-


ние функции плотности распределения с аргументами из набора реализованных
в эксперименте значений случайной величины. В данном случае функция плот-
ности распределения зависит от аргумента только в отношении того, попадает ли
данное экспериментальное значение в диапазон значений [а, Ь] или нет. Если хо-
тя бы одно значение находится вне данного диапазона, соответствующий множи-
тель равен нулю, а вместе с ним и сама функция правдоподобия. Если все экспе-
риментальные значения случайной величины попадают в диапазон, то функция
правдоподобия равна произведению одинаковых множителей, каждый из кото-
рых равен \/(Ь - а). Количество этих множителей, очевидно, равно числу экспе-
риментальных значений случайной величины из набора {*,.}.

Как отмечалось ранее, параметры распределения выбираются так, чтобы функ-


ция правдоподобия была максимальной. Метод вычисления частных производных с
дальнейшим приравниванием их к нулю в данном случае не подходит, поскольку по-
строенная выше функция правдоподобия не является непрерывной. Поэтому мак-
симум функции в данном случае будем искать из следующих соображений.
Очевидно, что максимальное значение функции правдоподобия должно быть не-
нулевым. Мало того, максимум этой функции достигается тогда, когда минималь-
ным будет знаменатель в выражении 1/(Ь - а)10. Если предполагать, что значение для
левой границы диапазона а не превышает значения для правой границы Ь, то понят-
но, что левая граница должна быть как можно больше, а правая — как можно мень-
ше. Сделать их равными, обратив тем самым функцию правдоподобия в бесконеч-
ность, невозможно, поскольку диапазон должен быть таким, чтобы все значения из
набора {х.} попадали в данный диапазон [а, Ь]. Поэтому понятно, что значение а не
может превышать минимального значения из набора значений случайной величины
{х.}, а значение Ь не может быть меньше максимального значения из набора {*,}.
Отсюда получаем, что а = mini*.} и Ь = тах{х,}. Это и есть решение. Осталось реали-
зовать его в Excel.
Функция правдоподобия будет вычисляться в ячейке Е12. Для этого в данную
ячейку вводим формулу =1/POWER(E14-E13,10).
На заметку. Функцией POWER() в качестве результата возвращается первый ее
аргумент, возведенный в степень, определяемую вторым аргументом этой функции.

В этой формуле есть ссылки на ячейки Е13 и Е14, в которых вводится начальное
значение для левой (значение -1) и правой (значение 2) границ диапазона соответ-
ственно (рис. 5.25).

Глава 5. Теория вероятностей и математическая статистика 413


В ячейках F13 и F14 отображаем значения для оценок левой и правой границ
диапазона соответственно. Если точнее, то в ячейку F13 вводится формула
=MIN(B2:B11), с помощью которой находится минимальное значение для ячеек диа-
пазона В2:В11, а в ячейку F14— формула =МАХ(В2:В11) для определения макси-
мального значения среди ячеек этого диапазона (рис. 5.26).

Е12 ft =1/POWER(E14-E13,10)

Первый момент '. 0.4894


Второй момент \ 0.3212466:

Метод моментов Проверка I


Левая граница а •0.005777748 -0.00578
Правая граница Ь 0.984577748 0.984579;
: Первое уравнение О
Второе уравнение •5.72652Ё-07

Метод наибольшего правдоподобия


Функция
. правдоподобия 1.69351Ё-05
Левая граница а
Правая граница Ь

Рис. 5.25. Отображение значения функции правдоподобия

F14 =МАХ(В2:В11)
: А ) , В'-: J
1 Юпыт Значение
1 0.7161 Первый момент -. 0.4894;
0.894 Второй момент ; ~ 0.321246бТ
0.899
0.009 Метод моментов Проверка
0.207 Левая граница а -0.005777748 -000578
0.255' Правая граница Ь 0.984577748 0.984579:
0.4221 Первое уравнение О
0.35
!
Второе уравнение -5.72652Е-07
0.697!
Метод наибольшего правдоподобия
{Среднее Функция
\ 12} значение 0.4894! правдоподобия 1.69351Е-05 Проверка :
Дисперсия 0.09081582; Левая граница а -1 "QIC '
Правая граница Ь 2 0899!

Рис. 5.26. Оценки для границ диапазона

Как и в случае метода моментов, упомянутые выше оценочные значения нужны


исключительно для контроля результата, получаемого путем использования над-
стройки оптимизации и поиска решений Solver. Диалоговое окно Solver Parameters
(Настройки решения) с настройками для решения задачи по максимизации функ-
ции правдоподобия показано на рис. 5.27. (Напомним, что это окно открывается по-
сле выбора команды Tools'^Solver.)
В частности, целевой ячейкой указана ячейка Е12, где отображается значение
функции правдоподобия. Поиск максимума этой функции осуществляется путем
изменения значений ячеек Е13:Е14, как это видно из рис. 5.27. Однако следует пом-
нить, что в процессе поиска все значения ячеек из диапазона В2:В11 не должны вы-
ходить за пределы границ области распределения случайной величины. Для этого

414 Часть II. Решение задач


добавляются два условия, при выполнении которых ищется максимум функции
правдоподобия. Это неравенства В2:В11>=Е13 (каждое из экспериментальных зна-
чений случайной величины лежит правее 'левой границы диапазона распределения)
и В2:В11<=Е14 (каждое из экспериментальных значений случайной величины ле-
жит левее правой границы диапазона распределения). После щелчка на кнопке Solve
(Решить) получаем результат, представленный на рис. 5.28.

Sst Target С* ... ; |$Е$12


EqualTo: <? Мах " Г Мп f ialusof;
gy Changing Cafe: " •
' |$Etl3i$E$14

: Sgbject lo the Constraints:

$B$2:$B$11 >- $E$13

Puc. 5.27. Поиск максимума функции правдоподобия

F13 » •••V1'jb =MIN(B2:B11)


j _._в 3i~
1 ;6пыт
__j Значение
1 : 0.716! Первый момент . 0.4894
"Sj 27 0.894: Второй момент ! 0.3212466!
T"i 3- 0.899
5 i 4 L Lll/i Метод моментов Проверка
6 : 5' 0.207: Левая граница а -0.005777748 -0.00578
*7 i 6! 0.255: Правая граница Ь 0.984577748 0.984579!
В ; 7] 0.422 Первое уравнение 0
9'" 8J 0.35* Второе уравнение -5.72652Е-07
Ж] ' ' ""I 9 0697 ;; IZIL_IIIIZt~~
Метод наиболыи его правдоподобия
.' !1 Среднее Функция
12 значение 0.4894: правдоподобия 3.20700719 [Проверка •,
я '. 0.09081582' Левая граница а 0.0091 0009{
J4 ; Правая граница Ь

Рмс. 5.25. Результат оценки параметров распределения методом


наибольшего правдоподобия

Как несложно видеть, результат полностью совпадает с тем, что был получен пу-
тем аналитического исследования проблемы. Что касается соответствия полученно-
го результата точным значениям 0 (для левой границы) и 1 (для правой границы), то
оно во многом оставляет желать лучшего, хотя окончательный вывод зависит от той
точности, которой полученный результат должен соответствовать. Как и для резуль-
тата, полученного методом моментов, здесь остается справедливым следующее заме-
чание: для получения надежных оценок выборка, по которой эти оценки получены,
должна быть объемной (т.е. содержать достаточно большое число элементов).

Глава 5. Теория вероятностей и математическая статистика 415


Регрессия
С практической точки зрения часто возникает необходимость установить зависи-
мость между несколькими факторами, основываясь на анализе статистических дан-
ных. Другими словами, по значениям одной величины нужно определить значения
другой. В самом простом случае речь идет об оценке для некоторой случайной величи-
ны у, зависящей от другой величины х, которая, в свою очередь, может быть как слу-
чайной, так и детерминированной. Для этой зависимости строится оценка у(х), и стро-
ится она на основе набора значений независимого параметра {х-} (это либо наблюдае-
мые, т.е. экспериментальные значения случайной величины, либо просто фикси-
рованные значения независимого параметра) и набора экспериментальных значений
{>>,.} случайной величины у, соответствующих значениям независимого параметра из
набора {.г.}, причем индекс /= 1..я. Задача, таким образом, состоит в том, чтобы по из-
вестным экспериментальным значениям {у:}, которые соответствуют значениям неза-
висимого параметра {*,.}, выполнить оценку для зависимости у(х). Разница между оце-
ночным значением, вычисленным по зависимости у(х) для данного значения параметра
х, строго говоря, отличается от измеряемого в эксперименте (для этого же значения не-
зависимого параметра), она представляет из себя случайную величину и называется
ошибкой оценки. Точность оценки обычно характеризуют средним квадратом ошибки
оценки при данном значении независимого параметра.
При проведении регрессионного анализа важно знать тип функциональной зави-
симости между случайной величиной и независимым параметром. Если общий вид
такой закономерности известен, то речь, как правило, идет о вычислении на основе
экспериментальных данных неизвестных параметров, фигурирующих в этой функ-
циональной зависимости. Однако такая идеальная ситуация на практике встречает-
ся крайне редко. Кроме того, часто реальные функциональные зависимости слиш-
ком сложны, что существенно затрудняет возможность их практического использо-
вания. Поэтому регрессионные зависимости очень часто строят в каком-то классе
функций. Для наиболее распространенных случаев в Excel есть специальные встро-
енные утилиты и функции.

Линейная регрессия
В случае линейной регрессии зависимость между параметром х и случайной вели-
чиной у ищется в виде у = ах + Ь. Задача, фактически, в этом случае формулируется как
поиск параметров а и b по известным значениям {у,} при значениях параметра {*,.}. Па-
раметры а и Ь, как правило, вычисляются на основе метода наименьших квадратов,
суть которого сводится к тому, что упомянутые параметры выбираются так, чтобы вы-
ражение F(a,b) = ^(fi-yif было минимальным. При этом / = ох,. + Ь есть оценочное

значение для величины у при значении параметра х = х.. Как уже отмечалось ранее, это
оценочное значение в общем случае отличается от экспериментального у,.. Для того
чтобы функция F(a, b) имела при некоторых значениях а и Ь минимум, необходимо,
чтобы выполнялось (при этих значениях параметров а и Ь) равенство нулю частных
производных dF(a,b)/da = 0 и dF(a,b)/db = Q. В результате получаем систему из двух

416 Часть II. Решение задач


уравнений a^xf + b^jxi = У\х1у1 и а]Г л;, + nb = ^у.. Решая эту систему относительно
;=i ы ы i=i i=i
2 2 2
параметров а и Ь, получаем а = (ху-х-у)/(х -х") и Ь = (у-х -х-ху)/(х -х~), где
1 л 1 п 1 п 1 п
2 2
обозначено: * =—]/£.*,, У = — ^Х , * =— ^дг, и лгу =—^дс.у,..
Ч ;=1 1 м 1 /=1 И /=1
Практически так же выполняется регрессионный анализ на основе линейной мо-
дели, если рассматривается несколько независимых параметров. В этом случае
удобно рассматривать один векторный параметр х, а сама зависимость ищется в ви-
де у(х) = ах + b . Задача состоит в том, что необходимо, опираясь на статистические
данные, определить вектор а угловых коэффициентов и свободный член Ь.
Формально поиск этих параметров осуществляется так же, как и в случае однофак-
торной зависимости (т.е. когда независимый параметр всего один), правда, теперь
решаемая система уравнений более громоздка.
Для выполнения линейной регрессии в Excel есть несколько полезных функций,
которые концептуально весьма похожи, однако имеют свои особенности. Использо-
вание той или иной из них зависит от конкретной формулировки решаемой задачи.
В частности, основными функциями, используемыми при выполнении регрессион-
ного анализа, являются LINESTQ, TRENDQ, FORECASTQ и STEXYQ. Ниже обсуж-
даются их характерные особенности.
Функция LINESTO может иметь до четырех аргументов. В качестве результата
возвращается вектор угловых коэффициентов и свободного слагаемого. Первым ар-
гументом функции указывается набор {у.} (диапазон ячеек) экспериментальных
значений случайной величины. Второй аргумент — диапазон ячеек с данными о зна-
чениях фактора (или факторов), для которых заданы (измерены в результате опыта)
указанные первым аргументом значения случайной величины. Третий и четвертый
аргументы можно не указывать (второй, в принципе, тоже). Эти аргументы имеют
логический тип, в силу чего могут принимать значение TRUE или FALSE.

На заметку. Вместо значения TRUE можно указывать 1, и 0 вместо FALSE.

Если указать в качестве значения третьего аргумента FALSE, то в процессе вы-


полнения регрессии свободное слагаемое в линейной модели (т.е. Ь) будет положено
равным нулю. Значением по умолчанию для третьего аргумента является TRUE, по-
этому если третий аргумент не указан, то соответствующий параметр предполагает-
ся ненулевым.
Четвертый аргумент функции, значение по умолчанию которого равно FALSE,
позволяет отображать дополнительную информацию о регрессионной модели: стан-
дартные ошибки для каждого из угловых коэффициентов, стандартную ошибку для
свободного члена, коэффициент детерминации, стандартную ошибку для случайной
(зависимой) величины, F-статистику, степени свободы, регрессионную и остаточ-
ную сумму квадратов. Для этого следует указать в качестве значения четвертого па-
раметра TRUE (или, как отмечалось, единицу).

Глава 5. Теория вероятностей и математическая статистика 417


Обратите внимание на следующие правила установки соответствия между ячей-
ками из диапазонов, указанных первым и вторым аргументами (в зависимости от
размерности первого диапазона).
1. Если первый диапазон (т.е. первый аргумент функции) является строкой яче-
ек, то каждая строка второго диапазона интерпретируется как набор данных
для одного фактора модели.
2. Если первый диапазон — столбец ячеек, то предполагается, что данные для
разных факторов сгруппированы во втором диапазоне также по столбцам.
3. Если первый диапазон состоит из нескольких строк (столбцов), то второй
диапазон должен иметь точно такую же размерность. В этом случае рассмат-
ривается однофакторная модель.
4. Если второй аргумент не указан, то вместо него используется последователь-
ность натуральных чисел.
На заметку. Для вывода результата функции LINEST() следует выделить достаточ-
но большой диапазон ячеек в рабочем листе, после чего ввести для этого диапазона
формулу с нужными параметрами. Ввод формулы осуществляется нажатием ком-
бинации клавиш <Ctrl+Shift+Enter>. Что касается очередности вывода и располо-
жения данных о статистике в рабочем листе, то следует иметь в виду, что угловые
коэффициенты отображаются, по отношению к факторам модели, в обратном по-
рядке. Иначе говоря, при выводе результата в первой строке сначала отображается
угловой коэффициент для последнего фактора, затем для предпоследнего, и т.д. до
углового коэффициента для первого фактора. После этого отображается свободный
член. Во второй строке отображаются стандартные ошибки для соответствующих
коэффициентов из первой строки. В третьей сроке отображается коэффициент де-
терминации и стандартная ошибка для случайной (зависимой) величины. В чет-
вертой строке можно найти сведения по F-статистике и степеням свободы, а в пя-
той — регрессионную и остаточную суммы квадратов.

Функция TRENDQ позволяет находить оценочные значения для случайной вели-


чины. Первым аргументом этой функции, как и для функции LINEST(), указывается
диапазон ячеек с данными для зависимой переменной. Вторым аргументом указывает-
ся диапазон значений фактора или факторов, к которым эти значения относятся. При
этом остаются справедливыми те же замечания относительно установки соответствия
между значениями фактора и зависимой переменной. Далее можно указать (а можно
не указывать) третий и четвертый аргументы. Третьим аргументом указывается диапа-
зон ячеек со значениями фактора, для которых следует вычислить оценочное значение
зависимой переменной. Четвертый параметр, логического типа, может принимать зна-
чения TRUE или FALSE (1 и О соответственно). Если этот аргумент равен TRUE, то
свободный член при выполнении регрессии полагается равным нулю.
В отличие от функции TREND(), функцией FORECASTQ возвращается оценоч-
ное значение зависимой переменной не для нескольких значений фактора, а всего в
одной точке. В связи с этим отличается и способ указания аргументов FORECASTQ
по сравнению с рассмотренными ранее функциями: первым аргументом передается
значение фактора (независимой переменной), для которого следует вычислить оце-
ночное значение зависимой переменной; вторым аргументом указывается диапазон

418 Часть I I . Решение задач


ячеек со значениями зависимой переменной, третий аргумент — диапазон ячеек с
данными о значениях независимой переменной. Именно на основе второго и третье-
го аргумента строится регрессионная зависимость.
Очень часто возникает необходимость вычислить значение углового коэффици-
ента регрессионной зависимости. В этом случае полезной может быть функция
SLOPE(). Она имеет всего два аргумента (диапазоны ячеек со значениями зависимой
и независимой переменных соответственно), и в качестве результата возвращает уг-
ловой коэффициент линейной регрессии, выполненной на основе указанных ее аргу-
ментами данных.
Помимо данных, связанных непосредственно с характеристиками функциональ-
ной зависимости, важно знать, насколько объективно выбранная регрессионная за-
висимость (линейная в данном случае) описывает связь между зависимой и незави-
симой переменными. Такие сведения могут быть получены по величине стандарт-
ной ошибки регрессии (хотя это не единственный объективный показатель точности
регрессии). Такая стандартная ошибка вычисляется функцией STEYX(). Аргументы
у этой функции такие же, как и в предыдущем случае, — т.е. два диапазона с данны-
ми о значениях зависимой и независимой переменных.
Что касается самой стандартной ошибки, то вычисляется она по формуле
f_ ~i

S = Л^(у, - /)" /(и-2) и характеризует степень отклонения оценочных значений sa-


il ;=i /
висимой переменной от экспериментальных. Очевидно, что чем меньше стандартная
ошибка, тем объективнее линейная (в данном случае) регрессионная зависимость
отображает реальное соотношение между параметрами модели.

Нелинейная регрессия
Совершенно очевидно, что линейная регрессия является далеко не единственным
типом регрессии. В частности, в Excel есть функция LOGEST0, позволяющая выпол-
нять экспоненциальную регрессию. Речь идет о том, что регрессионная зависимость
ищется в виде у(х) = b-а для однофакторной модели. Если в модели больше одного
фактора, то зависимость представляет из себя произведение показательных функций.
Например, для двух факторов XHZ зависимость имеет вид у(х, z) = b • а" • а*, и т.д.

На заметку. Показательную зависимость формально можно свести к линейной.


Например, для однофакторной модели показательная регрессия у = b-d может
быть записана (для положительных значений) в виде ln(y) = ln(b) + jtln(a). Послед-
няя зависимость является линейной. Так же можно поступить и в случае много-
факторной модели. Часто подобным образом к линейной модели можно свести и
другие задачи, в которых предполагается нелинейная связь между параметрами.
Функция LOGEST() очень напоминает функцию линейной регрессии LINEST(),
по крайней мере в плане аргументов. Так, у функции LOGESTQ их может быть до
четырех. Первым указывается диапазон ячеек с данными о зависимой переменной,
второй аргумент — ячейки (диапазон) со значениями фактора (или факторов). Та-
кие же, как у функции LINESTQ, третий и четвертый аргументы являются необяза-
тельными. В полной аналогии к функции LINESTQ выводится и конечный резуль-
тат. Принципиальная разница между функциями LOGESTQ и LINEST() состоит в

Глава 5. Теория вероятностей и математическая статистика 419


том, что для построения регрессии используются разные типы функциональной за-
висимости: в первом случае это показательная функция, а во втором — линейная.
Для выполнения показательной регрессии в Excel есть аналог функции TRENDQ,
используемой при построении линейной регрессии. Это функция GROWTHQ. Она
используется для вычисления и отображения значений зависимой переменной для
новых, указанных третьим аргументом функции, значений фактора или факторов.
Вообще, что касается аргументов, то они у функции GROWTHQ точно такие же, как
и у функции TREND(), равно как и их назначение. Разница лишь в том, зависимость
какого типа используется.
Выбор типа регрессионной модели следует осуществлять в связи с характером
решаемой задачи. Часто вывод о том, какого типа регрессионная модель наилучшим
образом будет описывать исследуемую зависимость, делается исходя не столько из
самих статистических данных, сколько основываясь на соображениях общего харак-
тера относительно свойств исследуемой системы или явления.

Использование функций регрессии


В качестве примера выполнения линейной регрессии рассмотрим двухфактор-
ную модель. Данные о зависимости случайной величины у от факторов х и z пред-
ставлены в табл. 5.3.

Таблица 5.3. Данные для построения регрессии

Зависимая величина у Фактор х Фактор z


0,13 1 100
0,51 3 120
0,95 5 140
1,34 7 160
1,77 9 180
2,05 11 200
2,58 13 220
2,87 15 240
3,32 17 260
3,81 19 280
Прежде всего внесем эти данные в электронную таблицу (рис. 5.29).

С11 280

Фактор х Фактор 2
величина у
О 13 100
0.51 120
0.95 140
1.34 Ж
177 '180
2.05 200
2.58 220
2.87 240
3.32 260,
Э81 280
12

Рис. 5.29. Ввод данных в таблицу

420 Часть II. Решение задач


После этого в диапазон ячеек B14:D14 вводим формулу =LINEST(A2:A11,B2:C11)
(после ввода формулы следует нажать комбинацию клавиш <Ctrl+Shift+Enter>), в ре-
зультате чего в данном диапазоне ячеек отображаются два угловых коэффициента ли-
нейной зависимости, равно как и свободный член регрессии (рис. 5.30).

В14 i=LINEST(A2:A11 ,B2:C11


В
Фактор х Фактор г
0.13 100
....._
0.51
0.95 140
134 ИХ)
"1,77 180
2.05 200
2.58 220
287 240
3"32 260
3.81 280

параметры
:сии
'14 [регресс | -00351563 O.SS274432 3.0852441

Рис. 5.30. Определение параметров регрессии

Аргументами упомянутой выше функции указан диапазон ячеек А2:А11 со зна-


чениями зависимой (случайной переменной). Второй аргумент — диапазон ячеек
В2:С11. Поскольку первый аргумент является столбцом ячеек, то во втором аргу-
менте каждый столбец интерпретируется как набор значений отдельного фактора.
В частности, в диапазоне ячеек В2:В11 отображаются данные для первого фактора, а
в диапазоне ячеек С2:С11 — для второго. Обратите внимание на тот факт, что угло-
вые коэффициенты для линейной зависимости (которая, кстати, в данном случае
имеет вид а,* + а2г + Ь) отображаются в обратном порядке. Другими словами, для
фактора, значения которого отображены в ячейках В2:В11, угловой коэффициент
отображается в ячейке С14, в то время как для фактора, значения которого пред-
ставлены в ячейках С2:С11, угловой коэффициент размещен в ячейке В14. Наконец,
свободный член регрессионной зависимости можно обнаружить в ячейке D14
(см. рис. 5.30).
Если нужно выполнить оценку значений для новых (или базовых) значений фак-
тора (или факторов), используют, как отмечалось, функцию TREND(). Однако сна-
чала необходимо ввести в таблицу значения для факторов модели, для которых за-
тем будет выполняться оценка значения зависимой переменной. Значения вводятся
согласно следующего принципа: для каждого из двух факторов новое значение, для
которого будет выполняться оценка зависимой величины, выбирается как средняя
точка между соседними базовыми значениями, по которым выполнялась регрессия.
Например, для первого нового узла первого фактора (ячейка D2) это значение вы-
числяется по формуле =(В2+ВЗ)/2. Далее формулу следует скопировать в прочие
ячейки диапазона D2:E10. Ячейки же D11 и Е11 придется, в силу очевидных причин,
заполнять отдельно (рис. 5.31).

Глава 5. Теория вероятностей и математическая статистика 421


После привлечения функции TRENDQ, а точнее, присвоив диапазону F2:F11 в
качестве значения формулу =TREND(A2:A11,B2:C11,D2:E11), получаем оценочные
значения для зависимой переменной (рис. 5.32).
Осталось только проверить, что эти оценочные значения вычислены по формуле
для линейной регрессии. Для этого в ячейку G2 вводим формулу =$C$14*D2+
+$B$14*E2+$D$14, после чего копируем ее во все ячейки диапазона G3:G11. Абсо-
лютные и относительные ссылки в этой формуле подобраны так, чтобы при копиро-
вании менялись только ссылки на ячейки с данными о значениях факторов модели,
а ссылки на коэффициенты регрессионной зависимости оставались неизменными —
т.е. это абсолютные ссылки (рис. 5.33).

D2 -• ' S =(В2+ВЗ)/2
__j _..А__ -„kJL-ii. С D Е F
И Зависимая Новые Новые
Фактор эг Фактор z
величина у V [ЛЬ! уаль( 2

0.13 1 100 2 110


3 ' 0.51 3 120 4 130
Т : 0.95 5 140 ___бГ 150
5 1.34 7 160 8 170
Ш 177 9 180 10; 190
1
11 200 12 210
13 220 14 230
15 240 16: 250
17 260 1в! 270
19 280 2Q: 290

л2 а1 b
Ш Параметры '
[tjpeepeccuu ] :р.р351563! 0.55274432_ 3.08524432-

Рис. 5.31. Ввод новых значений для факторов модели

ft {=TREND(A2:A11 ,В2:С11 Д2:Е11)

Параметры
регрессии \ -0.0351563:0.55274432:3.08524432

Рис. 5.32. Оценочные значения для зависимой переменной

422 Часть II. Решение задач


G2 .-•:,, ft =JCJ14*D2-(-JBl14*E2+$Dl14
ИЗ^-ГЖ Ь С__ D;_; ! Е 1-
Значения
G _ н.
'.Зависимая Новые Новые
Фактор к Фактор 2 Проверю
1 > величина у узлы эг узлы z для у
I 100 2 110 0.32354545 0.32354545
3 "~ 120 4 130 0.72590909 0.72590909
5 140 Б 150 1.12827273 1.12827273
7 160 8 , 170 t 53063636 1.53063636
9 180 10 190 1.933 1.933
2.05 11 200 12": 210 2.33536364 2,33536364
тЯ _ 2.58 13 220 14
;
230 2.73772727 2.73772727
15 240 1б! 250 3.14009091 3J4009091
17 260 18 270 3.54245455 3^54245455
Tlj 3.81 19 280 " 20 290 3.94481818 3.94481818

!3 а2 л1 Ь
Япэрэметры | •
14 регрессии -0.03515630.55274432:3.08524432.

Рис. 5.33. Проверка результатов регрессии

Однако, как уже отмечалось ранее, совсем не обязательно, что статистические дан-
ные эффективно описываются именно линейной регрессионной моделью. В частности,
можно использовать для оценки случайной величины показательную регрессионную
модель. В этом случае, по сравнению с рассмотренным выше примером линейной рег-
рессии, в рабочий лист следует внести такие изменения (или ввести данные в новом
листе с учетом следующих поправок): везде, где они встречаются в рабочем листе,
функцию LINESTQ заменить на LOGEST(), а функцию TREND() заменить на функцию
GROWTH(). Если точнее, то нужно диапазону ячеек B14:D14 в качестве значения при-
своить формулу =LOGEST(A2:A11 ,В2:С11), а для диапазона ячеек F2:F11 задать в ка-
честве значения =GROWTH(A2:A11 ,В2:С11 ,D2:E11). Кроме того, чтобы проверить ре-
зультат выполнения регрессии, необходимо заменить данные в ячейках G2:G11 (ведь
теперь регрессия показательная, а не линейная). В ячейку G2 вводится формула
=POWER($C$14,D2)*POWER($B$14,E2)*$D$14, после чего она копируется в прочие
ячейки этого диапазона. Результат представлен на рис. 5.34.

G2 '•» •'•* =POWER($C$14,D2)*POWER($BJ14,E2r$D$14


_j А В С 0 Е - t Н
\ Зависимая Новые Новые Значения
Фактор х Фактор z Проверка
1 величина у /алых уллы z для у
Ш ... °13 1 100 2 110 0.40475801 040475801
3 120 4 130 055187082 0.55187082
5 140 6 isd 0.75245306 0.75245306
7 160 8 170 1.02593865 1.02593865
9 180 10 190 1.39882496 1 .39882496
11 200 12 210 1.90724003 1.90724003
13 220 14 230 2.60044296 2:60044296
15 240 16 250 3.54559652 3.54559652
17 260 18 270 4.83427435 4^83427435
11' 381 19 "280 20 290 6.59133331 659133331
12
13 а2 J al Ь ! ;

Я Параметры
14 регрессии 0.99Б10137 1.21418711 ! 0.42192487
"15" '•' ' ' :

Рис. 5.34. Нелинейная регрессия

Глава 5. Теория вероятностей и математическая статистика 423


Совершенно очевидно, и приведенный выше пример это подтверждает, что a priori
бывает сложно определить, какая именно регрессионная модель более предпочтитель-
на. Поэтому использование встроенных функций Excel, описанных в этом разделе, оп-
равдывает себя обычно в тех случаях, когда характер исследуемых зависимостей мо-
жет быть с высокой степенью определенности отнесен к какому-то конкретному типу.
В противном случае лучше привлекать для статистического анализа более мощные
утилиты, которыми Excel также располагает. Именно о них речь и пойдет далее.

Надстройка анализа данных


Мощным инструментом проведения статистического анализа является пакет для
анализа данных Data Analysis ToolPak. Для того чтобы воспользоваться предостав-
ляемыми в рамках этого пакета возможностями, следует выбрать команду
Tools^Data Analysis (Сервис^ Анализ данных), после чего открывается диалоговое
окно Data Analysis (Анализ данных), представленное на рис. 5.35.

Рис. 5.35. Диалоговое окно Data Analysis

Внимание! Для того чтобы в списке команд меню Tools присутствовала команда
Data Analysis, необходимо активизировать соответствующую надстройку
(если это не было сделано раньше). Для этого нужно установить флажок опции
элемента Analysis ToolPak в окне Add-lns (Надстройки), которое открывается
после выбора команды Tools<=>Add-lns.

Дальнейшие действия определяются типом и характером решаемой задачи. Ниже


приведена краткая справочная информация относительно наиболее существенных ас-
пектов работы с пакетом анализа данных, имеющих прямое или косвенное отношение
к проблеме регрессионного анализа. Однако сначала речь пойдет о методах генериро-
вания случайных чисел. Эта задача с успехом может быть решена благодаря использо-
ванию пакета Data Analysis ToolPak. Несмотря на свою кажущуюся оторванность от
практики, данная проблема (имеется в виду генерирование случайного числа) часто
возникает как основная или побочная, причем в самых неожиданных случаях.

Генерирование случайных чисел


Для того чтобы активизировать утилиту генерирования случайных чисел, следу-
ет в диалоговом окне Data Analysis (Анализ данных) в списке Analysis Tools
(Средства анализа) выбрать значение Random Number Generation (Генерирование
случайного числа). В результате открывается окно с таким же названием, которое
показано на рис. 5.36.

424 Часть II. Решение задач


Number of Sariabtes:

Number of Random Numbers!

CJstrtoubon:

Parameters ™-

Puc. 5.36. Диалоговое окно Random Number Generation

Выполняя настройки в этом диалоговом окне, можно, используя различные


схемы, генерировать случайные числа (которые на самом деле далеко не случайны).
Диалоговое окно содержит несколько полей и переключателей, назначение которых
описывается ниже.
В поле Number of Variables (Число переменных) указывается количество столб-
цов, в которых отображаются генерируемые случайные числа. Количество случай-
ных чисел в каждом из таких столбцов указывается в поле Number of Random
Numbers (Количество случайных чисел). Если значения для обоих или одного из
этих полей не указаны, соответственно заполняются все столбцы или строки диапа-
зона ячеек, который указан в качестве области вывода данных в поле справа от пере-
ключателя Output Range (Диапазон вывода) из группы переключателей Output
options (Параметры вывода). Помимо упомянутого, группа содержит еще два пере-
ключателя: New Worksheet Ply (Новый лист) и New Workbook (Новая книга).
Переключатель устанавливают в положение New Worksheet Ply (Новый лист) тогда,
когда случайные числа должны быть сгенерированы и отображены в новом рабочем
листе. Справа от этого переключателя, в поле, можно указать название для созда-
ваемого рабочего листа. Если числа нужно отобразить в новой рабочей книге, пере-
ключатель устанавливают в положение New Workbook (Новая книга). В новом ра-
бочем листе или книге случайные числа отображаются в диапазоне ячеек, начиная с
А1, на основе данных, введенных в поля Number of Variables (Число переменных)
и Number of Random Numbers (Количество случайных чисел) (число столбцов и
строк соответственно).
Достаточно важное значение имеет раскрывающийся список Distribution
(Распределение), поскольку выбрав тот или иной элемент этого списка, можно задать
способ генерирования случайного числа. В зависимости от сделанного выбора в списке
Distribution (Распределение) меняется и вид раздела Parameters (Параметры), где за-
даются характерные параметры для генерирования случайного числа согласно вы-
бранной процедуре (например, параметры функции распределения). В табл. 5.4 пере-
числены доступные элементы списка Distribution (Распределение), равно как и пара-
метры, которые следует задать при этом в поле Parameters (Параметры).

Глава 5. Теория вероятностей и математическая статистика 425


Таблица 5.4. Элементы списка Distribution

Элемент списка Описание Параметры


Bernoulli Распределение Бернулли. Характеризуется вероятностью
(Бернулли) Генерируется случайным обра- успеха (генерирования числа 1),
зом число 0 или 1 (с разной ве- которую и следует указать в поле
роятностью) р Value (Значение р)
Binomial Биномиальное распределение. Следует указать вероятность успе-
(Биномиальное) Возвращается количество успе- ха в одном испытании (поле
хов в нескольких испытаниях. р Value (Значение р)) и количест-
Если в поле Number of of trials во независимых испытаний (поле
(Количество испытаний) указа- Number of trials)
но одно испытание, распределе-
ние совпадает с распределением
Бернулли (для данного значения
вероятности успеха в одном
испытании)
Discrete Генерирование чисел из предо- Параметром в поле Value and
(Дискретное) пределенного набора значений Probability Input Range (Диапазон
значений и вероятностей) указыва-
ется диапазон ячеек, первая колон-
ка которого задает набор возмож-
ных значений случайного числа,
а вторая — вероятность реализации
этого значения. Сумма вероятно-
стей должна равняться единице
Normal Генерирование случайного чис- В поле Mean (Среднее) указывает-
(Нормальное) ла с нормальным распределени- ся среднее значение для распреде-
ем. Распределение характеризу- ления, а в поле Standard deviation
ется средним значением и стан- (Стандартное отклонение) — стан-
дартным отклонением дартное отклонение
Patterned Генерирование последователь- В поле From...to...in steps of
( Последователь- ности чисел. Указывается диа- (От...до...с шагом) последовательно
ность) пазон изменения чисел, шаг из- указывается нижняя и верхняя
менения, количество повторе- границы изменения генерируемых
ний каждого числа, а также чисел, а также шаг дискретности
количество повторений после- (т.е. шаг изменения следующего
довательности чисел числа по сравнению с предыду-
щим). Кроме этого, в поле
repeating each number (Повторяя
каждое число) нужно указать ко-
личество повторов каждого числа,
а в поле repeating the sequence
(Повторяя последовательность) —
количество повторов последова-
тельности чисел
Poisson Генерирование случайных чи- Параметром в поле Lambda указыва-
(Пуассон) сел с распределением Пуассона ется число, обратное к среднему зна-
чению для данного распределения

426 Часть I I . Решение задач


Окончание табл. 5.4

Элемент списка Описание Параметры


Uniform Генерирование случайного чис- В поле Between...and (Между...и)
( Равномерное) ла из указанного диапазона. нужно указать нижнюю и верхнюю
Случайная величина распреде- границы диапазона, на котором
лена равномерно между грани- равномерно распределена случай-
цами диапазона ная величина

Часто бывает необходимо генерировать случайные числа, но такие, чтобы затем


эту же последовательность можно было сгенерировать снова. Другими словами,
важно иметь возможность генерировать одну и ту же последовательность случайных
чисел. Для этого достаточно в поле Random Seed (Инициализация) указать число,
которое будет использоваться для инициализации генератора случайных чисел.
Это сделать можно всегда, за исключением случаев генерирования чисел из предо-
пределенного в электронной таблице набора (когда выбран вариант Discrete) или
когда генерируется последовательность чисел (выбран вариант Patterned).
Как пример рассмотрим задачу генерирования случайных чисел в диапазоне
от 0 до 1. Полученные данные будут затем использованы в следующем подразделе,
где описываются утилиты регрессионного анализа, доступные при работе с над-
стройкой анализа данных.
Для генерирования чисел с нужными характеристиками в поле Number of
Variables (Число переменных) диалогового окна Random Number Generation
(Генерирование случайного числа) следует ввести число 1, а в поле Number of
Random Numbers (Количество случайных чисел) — число 10 (рис. 5.37).

Random Number Generation

Number of Variables:

Number of Random Numbers:

(uniform
Parameters --

Between jo ftnd [T

aandomSeed;
Output options
^ UJtput Range: , ' 1j*A$l:$A$10
; Г New Worksheet 9y:
Г Hew gorkbook

Puc. 5.37. Выполнение настроек для генериро-


вания случайных чисел

Далее следует указать, что случайная величина распределена с равной вероятно-


стью на интервале значений от 0 до 1. Поэтому в списке Distribution (Распределение)
следует выбрать значение Uniform (Равномерное), а в качестве границ диапазона, на
котором должна быть распределена случайная величина, в разделе Parameters ука-
зать 0 и 1. Сгенерированные случайные числа следует поместить в ячейки А1 :А10 —

Глава 5. Теория вероятностей и математическая статистика 427


этот диапазон указывается в поле, расположенном справа от кнопки Output Range
переключателя. Кроме того, явно укажем число для инициализации генератора слу-
чайных чисел (это число 13, см. рис. 5.37). После щелчка на кнопке ОК будет полу-
чен результат, представленный на рис. 5.38.

.. f, 0.00247199926755577
А В С • D I E
1 0.002472
2 0.499771
3 0,735374 i '• '
4
5
0.62099J
0.362316 ••I -
6 0.917875 :
7 0.490097
8 :Q.S23969 : i |
9 0.869564 I !
Г14951П?
f

Puc.5.38. Последовательность случай-


ных чисел

Как отмечалось выше, полученный набор случайных чисел будет использован


далее для внесения элемента случайности в детерминированную функциональную
зависимость, которая затем подвергается регрессионному анализу.

Регрессионный анализ
С помощью надстройки анализа данных можно выполнять и регрессионный ана-
лиз. Причем возможности, предоставляемые в рамках этой надстройки, как правило,
существенно шире по сравнению с использованием встроенных функций Excel.
Однако прежде чем приступить к описанию возможностей надстройки в этой облас-
ти, создадим, используя сгенерированные ранее случайные числа, набор "экспери-
ментальных" данных для обработки их методами математической статистики, и, в
частности, методами регрессионного анализа.
С этой целью в столбец В введем последовательность из десяти целых чисел на-
чиная с 0 с шагом 2. Далее, в ячейку С1 вводим формулу =1 +0.5*В1 +А1, которую за-
тем копируем во все оставшиеся ячейки диапазона С1:С10. Результат представлен
на рис. 5.39.

i
L
C1 * 5: =1-»0.5' B1+A1
A j ....В С D
0.002472: !l| 1 002472
2 0.499771 2499771
3 0.735374: 4 3735374
<f 0.620991 6 4.620991
5~ 0.362316 8 5.362316
6_ 0.917875 fb 6,917875
7" 0.490097: 12 7.490097
6 0.623969 14 6.823969
9 : 0.869564 1Б 9.869564
10 0.495102 Irt 10.4951
11

Рис. 5.39. Формирование данных


для дальнейшего анализа

428 Часть II. Решение задач


Таким образом, получен ряд данных, который можно интерпретировать как экс-
периментальную реализацию случайной величины в зависимости вида у(х) = 1 +
+ х/2 + 5, где 8 и есть случайная величина в диапазоне значений от 0 до 1. Данная
зависимость, фактически, представлена ячейками в диапазоне В1:С10, который ко-
пируем в буфер обмена. В новом рабочем листе выделяем ячейку А2, куда вставляем
данные из буфера обмена. При вставке данных следует в раскрывающемся списке
справа от диапазона ячеек, куда данные вставлены, выбрать вариант Values Only
(Только значения), в результате чего будут скопированы только численные значе-
ния, без формул (рис. 5.40).
В результате получаем рабочий лист со "статистическими" данными в диапазоне
ячеек А2:В11 для дальнейшего анализа (рис. 5.41).

G H

Ш ^Р S°tjrce Formatting
EJatch Destination Formatting I

Values and Mumber f

Valyes and Source Formatting

Keep Source Column &kftns

Formatting Only

Link eels

Puc. 5.40. Процесс копирования данных

Point! X Function У ;
"Ш Ш2472:
2 2.49977111!
4: 3735374
6 4.62099063:
8 5.36231574
10: 6.91787469;
12: 7.49р09674:
14: 8.В2396924
16 9.8Б956389'
1BI 104951018J

Рис. 5.41. Данные для дальнейшего


анализа

Глава 5. Теория вероятностей и математическая статистика 429


Теперь данные для статистического анализа готовы. Преимущества предложен-
ного подхода (имеется в виду способ создания анализируемого в дальнейшем набора
чисел) состоит в том, что, во-первых, известна зависимость, оценка которой будет
выполняться, а, во-вторых, данные все же содержат элемент случайности, т.е. зави-
симость не является строго детерминированной.
Для выполнения регрессионного анализа необходимо запустить надстройку ана-
лиза данных и в открывшемся диалоговом окне Data Analysis (Анализ данных) вы-
брать в списке значение Regression (Регрессия). В результате открывается окно с
таким же названием, показанное на рис. 5.42.

Output options
1
<~ Output R«ige:
i <? New Worksheet Ely:
i: fNewffiarkbook

; Г~ Standartteed Residuals PuneHt Plots

rNormalProbebity —
Г йогами ProbaMty Plots

Puc. 5.42. Диалоговое окно Regression

В этом диалоговом окне следует выполнить нужные настройки. Ниже кратко


описывается назначение элементов диалогового окна Regression (Регрессия).
В разделе Input (Ввод) выполняются настройки, непосредственно касающиеся про-
цесса ввода данных. В частности, в поле Input Y Range (Диапазон ввода Y) указывает-
ся диапазон ячеек со значениями зависимой переменной, а в поле Input X Range
(Диапазон ввода X) — диапазон ячеек со значениями факторов модели, которых может
быть до шестнадцати. Кроме этих двух полей в разделе Input присутствует еще не-
сколько флажков опций. В частности, если начальные ячейки диапазонов с данными о
зависимой переменной и независимых факторах модели содержат метки названий,
следует установить флажок опции Labels (Метки). Если в процессе построения рег-
рессионной зависимости необходимо положить свободный член равным нулю, уста-
навливается флажок опции Constant is Zero (Нулевая константа). Наконец, можно
дополнительно задать доверительный уровень. Для этого следует установить флажок
опции Confidence Level (Доверительный уровень), после чего в поле правее указать
требуемый доверительный уровень (по умолчанию он равен 95 %).

На заметку. Поскольку любые статистические оценки выполняются на основе


экспериментальных данных, которые, по большому счету, случайны, то в силу
объективных причин выполнить абсолютно точную оценку невозможно. Мало
того, с полной достоверностью нельзя установить и ошибку оценки (т.е. отклоне-
ние оценки от реального оцениваемого значения). Поэтому говорят о том, что

430 Часть II. Решение задач


ошибка не выходит за определенные пределы с какой-то вероятностью. Интервал
значений, который с заданной вероятностью накрывает исследуемую характери-
стику (для которой строится оценка) называется доверительным интервалом.
Соответствующая вероятность называется доверительным уровнем, или уровнем
достоверности. Величина, дополняющая уровень достоверности до единицы
(т.е. единица минус уровень достоверности), называется уровнем значимости.
На практике часто выполняются оценки для уровня достоверности в 95 %. По-
нятно, что чем выше доверительный уровень, тем шире доверительный интервал.

Переключатель Output Options (Параметры вывода) позволяет определить то ме-


сто, где будут размещены статистические данные о результатах анализа (а их объем
достаточно велик). Если переключатель установлен в положение Output Range
(Диапазон вывода), то в поле справа следует указать верхнюю левую ячейку для
области, в которой будут отображены таблицы с отчетом об анализе и диаграммы.
В положение New Worksheet Ply (Новый лист) переключатель устанавливается в
том случае, если отчет нужно вывести в новый рабочий лист (в поле справа можно
задать его название). Наконец, если установить переключатель в положение
New Workbook (Новая книга), то отчет будет помещен в новую рабочую книгу.
Раздел Residuals (Остатки) содержит четыре флажка опции, краткое описание
которых приведено в табл. 5.5.

Таблица 5.5. Опции группы Residuals

Опция Описание
Residuals (Остатки) Отображение в отчете данных об остатках регрессии
Standardized Residuals Отображение сведений о стандартизированных остат-
( Стандартизированные ках регрессии
остатки)
Residual Plots (Диаграммы Отображение диаграмм остатков регрессии для каждого
остатков) из факторов (т.е. независимых параметров) модели
Line Fit Plots (Диаграммы Отображение диаграммы со сведениями об оценочном и
значений) экспериментальном значении зависимой переменной

В нижней части диалогового окна размещена группа Normal Probability (Нормальная


вероятность), включающая всего один флажок опции Normal Probability Plots
(Диаграмма нормальной вероятности). Если установить этот флажок, то в отчет будет
включена диаграмма для нормальной вероятности.
Выполним необходимые настройки в окне Regression (Регрессия), после чего
можно будет проанализировать данные, полученные в начале этого подраздела.
Настройки выполняются следующим образом.
1. В поле Input Y Range указывается диапазон В1 :В11, содержащий данные о за-
висимой переменной.
2. Данные для независимой переменной (фактор модели) представлены в ячей-
ках из диапазона А1 :А11, который и указывается в поле Input X Range.
3. Поскольку начальные ячейки с данными содержат метки названий, то следует
установить флажок опции Labels.

Глава 5. Теория вероятностей и математическая статистика 431


4. Зададим требуемый уровень достоверности, для чего в поле справа от опции
Confidence Level вводится значение 99 (%). Предварительно следует устано-
вить флажок данной опции.
5. Отчет будем создавать в новом рабочем листе, поэтому переключатель Output
Options установим в положение New Worksheet Ply, а в качестве названия
этого листа введем в поле справа значение Regression Report.
6. Кроме этого, установим флажки опций Residuals, Standardized Residuals,
Residual Plots и Line Fit Plots.
Вид диалогового окна Regression с выполненными настройками показан на рис. 5.43.
После щелчка на кнопке ОК получаем новый рабочий лист с данными отчета по
проведенному регрессионному анализу. Данных достаточно много, поэтому анали-
зироваться они будут по частям. Так, в верхней части отчета представлено несколько
таблиц (имеется в виду таблица в обычном понимании, т.е. структурированный на-
бор данных), в которых отображаются характеристики модели (рис. 5.44).

jlnput
: JnputJRange: 1 ним \\\тт J

Uf? Labels Г" Constant is Zero


F Confidence Level: [ 9 9 %

•. Output options ^^
! Г" Output Range: I . il
> f New Worksheet gy: (Regression Report
<~ NewKorkbook
< Residuab
;;pReslduels P 1
;,;P Standardized Residuals

j; Normal ProbaMty
^ ! P Normal Probably Plots

Puc. 5.43. Диалоговое окно Regression с выпол-


ненными настройками

Поскольку данных в отчете исключительно много, и далеко не все они имеют, с


практической точки зрения, первостепенное значение, остановимся на наиболее су-
щественных. Так, в ячейке В5 в таблице Regression Statistics (Статистика регрес-
сии) — это первая таблица в отчете — отображается коэффициент детерминации.
На заметку. Коэффициент детерминации R2 определяется как отношение
-> /\Oi_j co»j ^ -''ч ___
R- = - = 1 -- , где введены такие обозначения: RSS = 2^(/ ~ У)~ —регрессной-
/ »JtJ

нал сумма квадратов (сокращение от regression sum of squares), ESS = У (у; -/)2
/=i
сумма квадратов ошибок регрессии (сокращение от error sum of squares) и

TSS = RSS + ESS = ^(y, - y)~ — общая сумма квадратов (сокращение от total sum of

432 Часть II. Решение задач


squares). Кроме коэффициента детерминации, часто используют скорректирован-
ESS п-\
ныи коэффициент, который определяется как Я^=1 , где через т
TSS п-т-1
обозначено количество факторов модели.

Внимание! Поскольку в данном случае рассматривается однофакторная модель,


то и формулы для вычисления статистических характеристик приводятся для
случая однофакторной модели. Когда факторов несколько, некоторые формулы
могут видоизмениться с учетом поправок на количество факторов модели. Обыч-
но такие поправки не очень существенны, однако это все же следует иметь в виду.

П£ 0.569735497285286
О
SUMMARY OUTPUT

ffegression Statistics
jMultiple R ; 0.99719007
|R Square [§99438804
rtedR Square 0.99368655
^Standard E r r o r ; 0.2523996
8 Observations U)

90.30439658 90.304397; 1417,52772 2.71827E-10:


6^509644476 0.0637056'
90.81404106'

Coefficients Standard Error t Siai •: P-value Lower96% ! Upper 95% Lower 99.0% Upper 99.0%
1,37371469: 0.148348829 9.2600305 1.5023E-05 1.031621451 i 1.7158079; 0.8759479' 1.87148147;'
'D.52311537 D.01389414Г 37650069: 2.7183E-1Q! 0491075399 0.55S15531 0.476495241 056973551

Puc. 5.44. Верхняя часть отчета

В ячейке В4 отображается корень квадратный из коэффициента детерминации.


Далее, в ячейке В6 отображается скорректированный коэффициент детерминации, а
в ячейке В7 — стандартная ошибка, которая определяется, как уже упоминалось ра-
нее, выражением 5 = ^ESS/(n - 2) . Наконец, в ячейке В8 указывается число наблю-
дений, т.е. экспериментальных значений, по которым строятся оценки.
Следующими в листе идут две таблицы под общим названием ANOVA (сокращение
от analysis of variance, что в переводе значит дисперсионный анализ). Наиболее сущест-
венные параметры, отображаемые в этих таблицах, представлены в табл. 5.6.

Таблица 5.6. Основные параметры в таблицах ANOVA

Ячейка Отображаемый параметр


С1 2 Регрессионная сумма квадратов. Величина определяется по формуле

С1 3 Сумма квадратов ошибок регрессии. Величина определяется по формуле

Глава 5. Теория вероятностей и математическая статистика 433


Окончание табл. 5.6

Ячейка Отображаемый параметр


С14 Общая сумма квадратов. Величина определяется по формуле

TSS = RSS + ESS = £(;у,. - у)-

817 Угловой коэффициент а в линейной зависимости


818 Свободный член b регрессии
С17 Стандартная ошибка для углового коэффициента. Определяется по формуле

ESS %*'
Г—^ -где

1 "
{xj есть набор значений фактора модели, а х =—^ х. — его среднее значение

С18 Стандартная ошибка для свободного члена. Определяется по формуле


щ-

F17 Левая граница доверительного интервала для углового коэффициента при уров-
не достоверности 95 %
F18 Левая граница доверительного интервала для свободного члена при уровне дос-
товерности 95 %
G17 Правая граница доверительного интервала для углового коэффициента при
уровне достоверности 95 %
G18 Правая граница доверительного интервала для свободного члена при уровне
достоверности 95 %
Н17 Левая граница доверительного интервала для углового коэффициента при уров-
не достоверности 99 %
Н18 Левая граница доверительного интервала для свободного члена при уровне дос-
товерности 99 %
117 Правая граница доверительного интервала для углового коэффициента при
уровне достоверности 99 %
118 Правая граница доверительного интервала для свободного члена при уровне
достоверности 99 %

Прочие параметры, отображаемые в таблицах, имеют в основном отношение к


методам оценки гипотез.
Как несложно заметить, коэффициенты регрессионной зависимости определены
достаточно неплохо. Кроме того, как уже отмечалось, доверительный интервал для
меньшего уровня достоверности уже, что вполне понятно.
В нижней части отчета можно видеть таблицу RESIDUAL OUTPUT (Данные об
остатках) с данными о точности оценки экспериментальных значений зависимой пе-
ременной (рис. 5.45).

434 Часть II. Решение задач


21
RESIDUAL OUTPUT - |
"!
Observation Predicted Function Y Residuals Standard Residuals ;
1 1.373714685 -0.371242686 -1.560075082'
2 2.419945418 ОЛ79825693 0.33545192B;
3; 3.466176151 0.269197853 1.131251548
4' 4.512406884' 0108583747 0.456362048
5; 5.558637Б17: -0.196321872 -0.825004431 '
If 6160486835; "0313006341 1.315348187
7! 7.651099083 -0.1Б1002339 -0.67658097V

I
8! 8.697329815; 0.126639422 0.532177506:
gl 9.743560548; o"i26003342 0.529504505
10; 10.78979128; -0^294689502 -1.238375236
35
36 __'[ '_
и < i HN'ShMH. \Re5reHion Report /Sheet2. /Sheets /

Рис. 5.45. Нижняя часть отчета

В частности, помимо нумерации проведенных опытов (диапазон ячеек А25:А34),


в диапазоне ячеек В25:В34 отображаются оценочные значения для зависимой пере-
менной, а в диапазоне ячеек С25:С34 — разности оценочных и экспериментальных
значений зависимой переменной. Кроме этого, в диапазоне ячеек D25:D34 приведе-
ны сведения о стандартизированных разностях, которые получаются из обычных
разностей делением на величину
Помимо таблиц, отчет содержит еще и диаграммы. Так, на рис. 5.46 представлена
исследуемая экспериментальная зависимость, а также оценочные значения, полу-
ченные в результате построения регрессионной модели.
На другой диаграмме, представленной на рис. 5.47, можно видеть зависимость
разностей регрессии от значения фактора модели (т.е. независимой переменной).

Points X Line Fit Plot

5 10 15
Points X

Рис. 5.46. Экспериментальная зависимость и оценочные значения

Глава 5, Теория вероятностей и математическая статистика 435


Points X Residual Plot

0.4 т
0.3 -•
0.2 -
0.1 -
О-
-0.1 U 10 15
-0.2 -
-0.3 -•
::
-0.4
-0.5 -£
Points X

Рис. 5.47. Зависимость разностей регрессии от значения фактора

Фактически, создаваемый таким образом отчет содержит всю необходимую для


качественного анализа информацию. Однако это далеко не все возможности, кото-
рые предоставлены пользователю надстройкой анализа данных. В следующих под-
разделах дается краткая характеристика прочих утилит.

Утилита Descriptive Statistics


Очень часто нужную информацию о статистических данных можно получить,
прибегнув к утилите Descriptive Statistics (Описательная статистика). Для этого в
окне Data Analysis нужно выбрать одноименный элемент списка. В результате от-
крывается диалоговое окно, представленное на рис. 5.48.

Descriptive Statistics

; Jnput Ransei

Grouped By:
<~ R

^Output options

<? New Worksheet gy:

;
Г Smwnoy staSstfcs
i Г" Cc^dwiceLevd for Mean:

Рис. 5.48. Диалоговое окно Descriptive Statistics

436 Часть II. Решение задач


В этом окне следует указать данные для анализа, область вывода результата и
выполнить некоторые дополнительные настройки. В качестве примера рассмотрим
данные, использованные ранее для регрессионного анализа. В частности, в поле
Input Range (Диапазон ввода) указываем диапазон ячеек А1:В11, а поскольку дан-
ные сгруппированы в столбцах, переключатель Grouped By (Группировать) уста-
навливаем в положение Columns (Столбцы). Также следует установить флажок оп-
ции Labels in first row (Метки в первой строке), поскольку в начальных ячейках по-
мещены метки для именования колонок с данными.
На заметку. Если переключатель Grouped By установлен в положение Rows
(Строки), то название метки меняется на Labels in first column (Метки в первом
столбце).
Переключатель группы Output options (Параметры вывода) предназначен для
определения области вывода данных и уже описывался выше. Кроме этого переклю-
чателя в группе представлено четыре флажка опций. Рассмотрим их назначение.
Опция Summary statistics (Общая статистика) позволяет отображать отчет с на-
бором весьма полезных характеристик, вроде среднего значения, ошибок и т.п.
Кроме этого, установив флажок опции Confidence Level for Mean (Уровень досто-
верности для среднего), можно задать требуемый доверительный интервал для
среднего значения. Справа в поле указывается доверительный уровень. Кроме того,
установив флажки опций Kth Largest (Большее /t-e) и Kth Smallest (Меньшее k-e),
а также указав в полях справа порядок наибольшего и наименьшего значения в рас-
пределении, эти значения также можно будет отобразить в отчете. Результаты
расчетов представлены на рис. 5.49.
Каждый из наборов данных анализируется по определенной схеме, т.е. для него
вычисляется определенное количество статистических характеристик. Эти характе-
ристики представлены в табл. 5.7.

А : В I F
Points X Function Y Points X Function Y
0; Т.СЮ2471999!
1 2.49977111V 9 i Mean 6.0B1753:
4 : 3.735374004: ; Standard Error ; 1.914854'Standard Error 1.004512
r
8 4.620990631* Median 9 Median '6 140095'
:
8. 5.362315744 Mpde ' «M/A Mode ЯМ/А
10 6.917874691:' .Standard Deviation 6.055301 Standard Deviation 3.176547
12 7.490096744: Sample Variance 36.66667 Sample Variance 10.09045:
14' 8^823969237 Kurtosis i -1.2 Kurtosis -1.09915:
16 '"9.86956389 Skewness 0} Skewness -0.1261':

18! 10.49510178' Range 18 Range 9.49263


Minimum 0 Minimum 1502472
Maximum 18 Maximum 10.4951
Sum 90'Sum 60.817531
} Count 10 Count 10.
:
Largest(1) 18 Largest(1) 10.4951 [
Smallest(1) 0 Smallest(1) 1 002472
:
Confidence LevelQ5.0%) 4.331704 Confidence Level(9S.O%) 2.272366

Puc. 5.49. Результат статистического анализа

Глава 5. Теория вероятностей и математическая статистика 437


Таблица 5.7. Статистические характеристики отчета

Параметр Описание
Mean (Среднее) Среднее значение. Эквивалент вызова функции AVERAGE()
Standard Error Стандартная ошибка, вычисляемая для набора данных {yt}, опре-
(Стандартная ошибка) I I
2
деляется по формуле SE = ^"^(у, ~ У) /л(я-1)

Median (Срединное Срединное значение. Указывается центральное значение, если


значение) количество чисел в наборе нечетно, или полусумма двух сосед-
них центральных чисел, если количество чисел четное. Эквива-
лент команды MEDIANO
Mode (Наиболее частое) Наиболее часто встречающееся значение. Аналог функции MODE()
Standard Deviation Стандартное отклонение. Аналог функции STDEV()
(Стандартное откло-
нение)
Sample Variance Выборочная дисперсия. Может быть вычислена с помощью
(Выборочная диспер- функции VARQ
сия)
Kurtosis Коэффициент плавности распределения (по сравнению с нор-
(Коэффициент плав- мальным). Аналог вызова функции KURT()
ности)
Skewness Показатель степени асимметрии распределения по отношению к
(Асимметрия) среднему значению. Может быть также вычислен с помощью
функции SKEW()
Range (Диапазон) Диапазон изменения данных. Вычисляется как разница между
максимальным и минимальным значениями
Minimum (Минимум) Минимальное значение чисел из исследуемого набора значений.
Может быть вычислено с помощью функции MIN()
Maximum (Максимум) Максимальное значение чисел из набора значений. Определяет-
ся также функцией MAXQ
Sum (Сумма) Сумма значений. Аналог вызова функции SUM()
Count (Количество) Количество значений в наборе данных, т.е. количество опытов.
Может быть вычислено также с помощью вызова функции
COUNTO
Largest(k) Наибольшее по счету k число из набора значений. Может быть
(Наибольшее £-е) найдено с помощью функции LARGEQ
Smallest(k) Наименьшее по счету k число из набора значений. Может быть
(Наименьшее £-е) найдено с помощью функции SMALLQ
Confidence Level Доверительный интервал для данного доверительного уровня
(Доверительный
интервал)

Как несложно заметить, в рассмотренном случае на рис. 5.49 значение в поле


Median не определено, поскольку все значения в указанных ячейках встречаются по
одному разу.

438 Часть II. Решение задач


Создание гистограмм
Анализ данных удобно выполнять, когда они представлены в графическом виде.
Полезной в этом случае является утилита создания гистограмм. Для ее вызова сле-
дует в списке команд диалогового окна Data Analysis (Анализ данных) выбрать эле-
мент Histogram (Гистограмма), в результате чего открывается диалоговое окно с та-
ким же названием. Это окно представлено на рис. 5.50.

; OutputОрЙЭП5;-

Г Output Range:
<* New Worksheet 0y:
; f NewSorkbook

Г" Ра/eto (sorted Nstogr am)


' Г" CuffiMiaove Percentage

Puc. 5.50. Диалоговое окно Histogram

В поле Input Range (Диапазон ввода) указывается диапазон данных, на основе


которых строится гистограмма. В поле Bin Range (Диапазон интервалов) нужно
указать диапазон ячеек, которые задают интервалы значений, по которым группи-
руются данные.
На заметку. Гистограмма строится по следующему принципу. Для каждого из
базовых интервалов подсчитывается количество ячеек со значениями, попадаю-
щими в данный интервал. Результатом является именно это распределение дан-
ных по базовым интервалам. Если диапазон ячеек, задающих границы базовых
интервалов, в поле Bin Range не указывать, то такие базовые интервалы будут
иметь равную длину и перекрывать диапазон значений от минимального значе-
ния среди ячеек с данными до максимального. При этом количество интервалов
определяется примерно как квадратный корень из количества ячеек с данными.

Если начальная ячейка диапазона с данными содержит метку, следует установить


флажок опции Labels. Кроме этого необходимо указать область вывода данных. Де-
лается это так же, как и в предыдущих случаях, с помощью переключателя в начале
группы Output options.

I На заметку. Если отчет выводится в диапазон ячеек, достаточно указать верх-


нюю левую ячейку диапазона.
Кроме этого, диалоговое окно Histogram (Гистограмма) содержит три флажка
опций в нижней части окна. Так, для того чтобы данные в гистограмме отображались
по убыванию частоты (число значений в данном интервале значений), устанавлива-
ется флажок опции Pareto (sorted histogram) (Упорядоченная гистограмма). При
этом отображается как обычный отчет, так и отчет с группировкой по частотам.

Глава 5. Теория вероятностей и математическая статистика 439


Кроме этого, если установить флажок опции Cumulative Percentage (Суммарный
процент), в результате будут отображены еще и сведения о процентном распределе-
нии данных по интервалам. Точнее, для каждого интервала указывается суммарный
процент данных в этом интервале и предыдущих интервалах. Соответствующая за-
висимость отображается и на гистограмме. Чтобы отобразить саму гистограмму,
необходимо установить флажок опции Chart Output (Показать диаграмму).
В качестве примера построим гистограмму для данных, которые являются табу-
ляцией функции синуса на длине ее полупериода, начиная с нуля, по двадцати ин-
тервалам равной длины. В частности, в диалоговом окне Histogram выполним сле-
дующие настройки. Диапазоном ячеек с данными является В1 :В22. Именно этот
диапазон указывается в поле Input Range. Поскольку синус на рассматриваемом ин-
тервале может изменяться от нуля до единицы, то этот интервал разобьем на десять
подынтервалов, каждый длиной 0,1. Узловые точки для этих подынтервалов пред-
ставлены в диапазоне ячеек С1:С12. Этот диапазон указывается в поле Bin Range.
Кроме того, в поле правее положения Output Range переключателя указывается
ячейка Е1 (это верхняя левая ячейка для вывода отчета) и устанавливается флажок
опции Chart Output (рис. 5.51).
В результате получаем отчет, представленный (вместе с исходными данными) на
рис. 5.52. Кроме этого отчета создается также и гистограмма, она имеет вид, пока-
занный на рис. 5.53.
По этой гистограмме достаточно сложно определить, что в качестве исходных
данных использовались значения синуса. Причина состоит, в основном, в выборе ба-
зовых интервалов. Как правило, неразумно выбирать их слишком узкими. Неплохой
оценкой для количества таких интервалов может быть число, близкое к корню квад-
ратному из количества ячеек с данными, по которым строится гистограмма (по
умолчанию, когда базовые интервалы явно не указаны, используется именно такой
подход). Причем интервалы могут быть разной длины. Например, на рис. 5.54 пред-
ставлена гистограмма для четырех базовых точек (интервалы разной длины).

Рис. 5.51. Создание гистограммы

440 Часть II. Решение задач


A ... EL i С D : E . F .,.;Lj::G ;;.
1
SIN(X) ! Intervals ! Intervals Frequency
* 0! 0! 0 0! 1;
0.15708 0.156434 0.1 ; "¥B Tf
4 0.314159 0.309017! 0.2; IffilZ 2!
5 0.471239' 0.45399: "о.з 0.3 0
6 0.628319. 0.587785
;
0.4 0.4! 2
7 i 0785398; 0707107* 0.5 0.5; 2i
"в". 0.942478! 0.809017 0.6: o.6; 2
9 1099557; 0.891007: 0.7 0.7: 0
1.256637: 0.951 057 ;
0.8 0.8 2!
1.413717 0.9B7688, ; 0.9 4:
0^9
1.57D79B if 1[_ Ц il
1727376: 0.987688! :More б!
1.884956 0.951057';
:
IS] 2.042035 ^ OB91007
16 2.199115! 0.809017:
1' 2.356194 0.707107!
18 2.513274 0^587785*
2.670354: 0.45399
~ \ ч
2.827433: 6.309017
2.984513" "0.156434 j —I
3.141593 1.23E-16I

Рис. 5.52. Исходные данные и отчет

Histogram

6
5

I ш Frequency I

1 -•
1" I'M—t t-H f i
^-t

Intervals

Рис. 5.53. Гистограмма

Histogram

12
10 -

3
СГ
[•Frequency!
4 -•
2 •
0 (
0 0.3 0.6 1 More
Intervals

Рис. 5.54. Альтернативный вариант гистограммы

Глава 5. Теория вероятностей и математическая статистика 441


На заметку. В Excel есть функция FREQUENCYQ, которую можно использовать
для получения данных, подобных тем, что приведены в отчете по созданию гисто-
граммы. Аргументами функции указывается диапазон ячеек со значениями, для ко-
торых выполняется анализ, а также диапазон ячеек, которые задают базовые значе-
ния для группировки данных. В качестве результата функцией возвращается набор
значений с частотами распределения данных по базовым интервалам. Функция
вводится в диапазон ячеек с помощью комбинации клавиш <Ctrl+Shift+Enter>.

Преимущество гистограммы состоит в том, что она достаточно наглядно пред-


ставляет распределение данных. Однако встречаются такие ситуации, когда данные
нужно не только анализировать, но и слегка подкорректировать. Обычно речь идет
об устранении случайных помех или искажений, которые появляются в процессе
измерений. На этот случай в Excel также есть полезные утилиты.

Утилита Moving Average


Если в списке надстроек диалогового окна Data Analysis выбрать значение
Moving Average (Скользящее среднее), отроется диалоговое окно, которое можно
видеть на рис. 5.55.
I Moving A vet age
Input -
Input Пятое; iJ:
j f~ Wbefeftfirst Row

; Interval:

I Output options-
i Qjtput Rangej

Г Chart Output

Рис. 5.55. Диалоговое окно Moving Average

В этом окне в поле Input Range указывается диапазон данных, для которых вы-
полняется сглаживание. Если начальная ячейка диапазона содержит метку, устанав-
ливается флажок опции Labels in First Row (Метки в первой строке).
Сглаживание выполняется по следующему принципу. Уточненное значение вы-
числяется как среднее значение по нескольким предыдущим значениям. В поле
Interval (Интервал) указывается количество узлов (включая и тот, значение которо-
го уточняется), по которым это усреднение выполняется (значение по умолчанию 3).
Кроме того, в поле Output Range следует определить область вывода таблицы отчета
(достаточно указать верхнюю левую ячейку).
На заметку. В данном диалоговом окне из всех переключателей, имеющих отно-
шение к определению области вывода, доступен только Output Range (Диапазон
вывода). Поэтому отчет с диаграммами отображается в том же рабочем листе,
где размещены исходные данные.

442 Часть II. Решение задач


Кроме этого, в диалоговом окне Moving Average имеется также два флажка оп-
ций. Флажок опции Chart Output (Показать диаграмму) устанавливается в том слу-
чае, если нужно отобразить диаграмму с исходными и сглаженными данными.
Чтобы отобразить сведения о стандартных ошибках, устанавливают флажок опции
Standard Errors (Стандартные ошибки).
На рис. 5.56 представлена часть рабочего листа с данными для сглаживания и
диалоговым окном Moving Average (Скользящее среднее) с выполненными в нем
настройками.

A : В С ; D • E : F | G H - 1 i J
1 X Y Ysm
2 : 0 ]
i l
\
0^
3 0.15 0.16 \ ' i 1 I f J
4 p.31 : 0.33.
1 Moving Average
6 0.61 1 0.59; -Input-
;
-.- 1 '• — 1
! ' : JripUt Range; |$B$1:$B$12 ^J ; '• ' •• I
092 0.75
9 1.01 O.B8; •! PtabefchF»stRo« — — 1
iq 1.16 0.95:
11 . 1 32 0.96 ' j Irjtwvat:
.. .- ... . . . .
|? -— 1
12 1.47; 0.99:
- Output options-
arm i . . fijjtpi* Range: |$c$2 ilk
1 :
'

' & Chart Output Г" gandard Errors


i |. ,

|20;

Puc. 5.56. Диалоговое окно Moving Average с настройками


В частности, данные содержатся в диапазоне ячеек В1 :В12 (в ячейке В1 находит-
ся метка). Усреднение выполняется по пяти значениям, отчет отображается в диапа-
зоне ячеек с левой верхней ячейкой диапазона С2. Кроме этого, строится диаграмма.
Результат можно видеть на рис. 5.57 (после создания диаграмма несколько увеличе-
на в размерах).

к А ; в ..• i с i о E F G H •i -J ,.,'•' , . .К
1 X Y Ysni
2 '•; 0 0 ИМ/А
о.15; 0.16: ЯМ/А ; Moving Average
4 0.31 0.33' *WA |
046: ОЛ2 • *№А • 1.2 -
0.61: 0.59. 0.3 ;
077 0.72Г 0.444 1•
x*~"'J^Jit ***
0 92 0 75 ' 0 562 08 •
О)
101 0.88' 0.672 —•—Actual
1 0.6 J 'jF v'"

\^, : . Л
1.16 0.95" 0.778 >n . -»— Forecast
Г 0.4 - ' S * '"
1.32 0.96 0.852;
- -
1.47 0.99У 0.906' 0.2 -
и
14
3 5 7 9 11 - -
15'
т ~t
17
\ i Data Point

18 ; ! :

•ifl

Рис. 5.57. Результат сглаживания

Глава 5. Теория вероятностей и математическая статистика 443


В диапазоне ячеек С1 :С12 представлены сглаженные значения для анализируемых
данных (не считая метки в ячейке С1). Сразу следует отметить, что первые четыре
ячейки данных не содержат (только сообщение об ошибке). Причина в том, что для со-
ответствующих узлов сглаживание невозможно, поскольку нет достаточного количе-
ства предыдущих значений. Таким образом, сглаживание выполняется не для всех
ячеек, а за исключением первых четырех. В общем случае количество таких ячеек, для
которых сглаживание невозможно, на единицу меньше числа узлов усреднения, ука-
занных в настройках диалогового окна Moving Average (Скользящее среднее).
Этот же факт отчетливо виден на диаграмме, которая размещена на том же
рис. 5.57. Кривая для сглаженных данных на четыре точки короче, чем исходная
кривая. Кроме того, очевидно, что сглаженная кривая, по сравнению с эксперимен-
тальной зависимостью, достаточно плавная, как и должно быть, и поэтому больше
соответствует аналитической зависимости. Однако не следует забывать, что подоб-
ного рода сглаживание может привести к существенному искажению данных. Глав-
ным фактором при этом часто выступает количество углов сглаживания. Эта про-
блема решается в каждом конкретном случае по-разному. Еще один подход состоит в
выборе альтернативного способа сглаживания данных.

Экспоненциальное сглаживание
Для сглаживания данных можно воспользоваться другой утилитой — прибегнуть
к команде Exponential Smoothing (Экспоненциальное сглаживание) из диалогового
окна Data Analysis (Анализ данных). Окно, открывающееся при этом, представлено
на рис. 5.58.
Exponential Smoothing
.Input
Input Range:
Qarnping factor:

Output options
Output Range:

f~ Chart Output Г gandat) Errors

Puc. 5.58. Диалоговое окно Exponential Smoothing

Существенное отличие в данном случае, по сравнению с рассмотренным выше


линейным сглаживанием, состоит в том, что задается не количество узлов для сгла-
живания, а коэффициент ослабления в поле Damping factor.
На заметку. В случае экспоненциального сглаживания оценочное значение/ вы-
числяется согласно соотношению f . = (1 - k)y. + &£_,, где k — это коэффициент ос-
лабления, yt — экспериментальное значение в оцениваемой точке, а/_, — оценоч-
ное значение в предыдущей точке.
Процесс экспоненциального сглаживания логично применить к тому набору дан-
ных, который рассматривался в предыдущем подразделе. Настройки, выполняемые
при этом в диалоговом окне Exponential Smoothing, показаны на рис. 5.59.

444 Часть II. Решение задач


PMC. 5.55*. Настройка параметров сглаживания и исходные данные

Следует отметить, что сглаживание выполняется для коэффициента ослабления,


равного 0.25. Результат экспоненциального сглаживания представлен на рис. 5.60.

Рис. 5.60. Экспоненциальное сглаживание

Как несложно видеть, сглаживание получилось не такое плавное, как в случае ис-
пользования метода плавающего среднего. Можно, разумеется, изменить коэффици-
ент ослабления, однако это не всегда помогает. Что касается экспоненциального
сглаживания вообще, то может иметь место эффект начальной точки, когда значение
в этой точке существенным образом сказывается на всей сглаженной кривой. Кроме
того, можно заметить, что сглаженная кривая как бы сдвинута по отношению к экс-
периментальной. Это же имеет место, кстати, и в случае линейного сглаживания.
В последнем случае для достаточно плавных зависимостей и при большом числе
узлов сглаживания такой эффективный сдвиг составляет, по порядку величины,
примерно половину от числа узлов сглаживания. Иногда это приводит к проблемам.
Во всяком случае указанные особенности процедуры сглаживания следует иметь в виду.

Глава 5. Теория вероятностей и математическая статистика 445


Интерполяция и аппроксимация
Широкий класс задач, причем в самых разных областях естествознания, связан с вос-
становлением по набору значений функции {у*} в узловых точках {*,.} аналитической за-
висимости у(х). Обычно функция у(х) ищется как такая, что проходит через все узловые
точки (т.е. у(х) =>>,.). Для однозначного решения этой задачи нужно определиться с клас-
сом функций, на котором ищется решение, а сама задача называется задачей интерполя-
ции. При этом функцию называют интерполяционной. Для построения интерполяцион-
ной функции выбирают набор базисных функций и интерполяционную функцию ищут в
виде линейной комбинации этих базисных функций. Достаточно популярным и эффек-
тивным с практической точки зрения является набор степенных функций. В таком слу-
чае говорят о полиномиальной интерполяции. Интерполяционная функция ищется в ви-
де полинома степени, на единицу меньшей, чем количество узловых точек.
По большому счету проблема сводится к тому, что имеется функция предопреде-
ленного типа, содержащая какое-то количество неизвестных параметров, которые
следует определить исходя из накладываемых на эту функцию условий. Часто слу-
чается, что свободных параметров бывает недостаточно для того, чтобы удовлетво-
рить все условия. Например, в общем случае чтобы функция проходила через все уз-
ловые точки, нужно, чтобы функция содержала такое же количество параметров, как
и число узлов. Если возможности (или необходимости) в том, чтобы функция про-
ходила через узловые точки, нет, на функцию накладываются другие ограничения.
Обычно это условие минимальности отклонений от экспериментальных значений.
Практическим критерием, как правило, является метод наименьших квадратов, опи-
санный ранее. В этом случае будем говорить о задаче аппроксимации. Хотя фор-
мально данная задача сходна с проблемой построения регрессии, с математической
точки зрения это не одно и то же, поскольку в случае регрессии речь идет об оценке
неизвестных закономерностей, а в данном случае — о вычислении параметров ап-
проксимирующей зависимости (выбор которой выходит за рамки данной задачи).
В Excel есть ряд встроенных утилит, которые можно использовать как для реше-
ния задач по интерполяции, так и по аппроксимации зависимостей.
На заметку. К таким задачам, кстати, прибегают не только в случае, если зависи-
мость функции от аргумента неизвестна, но и когда эта зависимость слишком
сложна для практического использования. В данной ситуации выбирают базовые
узловые точки (это отдельная задача), после чего вычисляют значения функции в
этих точках, а уже затем, по вычисленным значениям, выполняют интерполяцию
или аппроксимацию.
Анализ возможностей Excel в данной области начнем с графических утилит.
В частности, исследуем вопрос о добавлении линии тренда, которая строится на ос-
нове экспериментальных данных, и, по большому счету, является аппроксимирую-
щей или интерполяционной зависимостью, в зависимости от выбора типа кривой.

Линия тренда
Для решения поставленной задачи (имеется в виду интерполяция или аппрокси-
мация) прежде всего следует отобразить анализируемые данные в графическом ви-
де. В качестве примера будем рассматривать те же данные, что и в предыдущих слу-
чаях. На их основе может быть построена диаграмма, представленная на рис. 5.61.

446 Часть II. Решение задач


А в
it Y
1_оГ
0,16';"
0.31; "аза"
0.46: 0.42
1.2
0.61 i 0.5Э!
077! 0.72" 1
0.75
0.88 0.8
LIB. 0.95 Т Y0.6
1.32' О.ЭБ;
"'1,47' 0.99 0.4

........... Г 0.2

I! 1 0.9 1.4

Рис. 5.61. Данные и их графическое представление

Данные, как видно из рис. 5.61, представлены на диаграмме в виде отдельных то-
чек, т.е. кривая для рассматриваемой зависимости не проведена. Эти данные в об-
ласти диаграммы нужно выделить и затем щелкнуть правой кнопкой мыши. В рас-
крывшемся контекстном меню следует выбрать команду Add Trendline (Добавить
линию тренда) (рис. 5.62).

Рис. 5.62. Добавление линии тренда

После выбора команды открывается диалоговое окно Add Trendline (Добавить


линию тренда), в котором есть две вкладки. На вкладке -Туре (Тип) можно выбрать
тип линии тренда. В принципе это может быть линейная зависимость (Linear), лога-
рифмическая (Logarithmic), полиномиальная (Polynomial), степенная (Power), экс-
поненциальная (Exponential) и линейное сглаживание (Moving Average). He все они,
скорее всего, будут доступны, как в данном случае (рис. 5.63).

Глава 5. Теория вероятностей и математическая статистика 447


Type I Options j
Trend/Regression type

Coving Average

Based on series:

PMC. 5.63. Выбор типа линии тренда

Рассмотрим, как добавляется полиномиальная линия тренда. Линии прочих ти-


пов добавляются аналогично, хотя и имеют свои особенности. Полиномиальная за-
висимость имеет то преимущество, что на практике полиномиальная интерполяция
или аппроксимация используется достаточно часто. Поэтому в нашем примере вы-
бираем полиномиальную линию тренда. В этом случае необходимо указать справа в
поле Order (Порядок) степень полинома. На рис. 5.63 эта степень выбрана равной 5.
Далее переходим ко вкладке Options (Параметры). Вид вкладки показан на рис. 5.64.

Add Tiendline

Type Options
"Trentfinename .....
j (^ automatic P
<" Custom: j

: Forecast '
Eorward:

Г Setjntercwt»
P Display equation on chart

Рис. 5.64. Вкладка Options диалогового окна Add Trendline

На этой вкладке следует поставить флажки опций Display equation on chart


(Отображать уравнение) для вывода на диаграмме уравнения линии тренда, а также
Display R-squared value on chart (Отображать коэффициент корреляции) для выво-
да значения коэффициента корреляции. После щелчка на кнопке ОК получаем ре-
зультат, представленный на рис. 5.65.

448 Часть II. Решение задач


Trend Line

1.2 л
i -

0.8 -

0.6 -

0.4 - у = 0.2108X5 - 0.9388X4 + 1.327X3 - 0.962X2 •


1.2164x- 0.0007
02 -
R2 = 0.9951
9
0.4 0.9 1 -1

Рис. 5.65. Аппроксимирующая кривая


На рисунке видно, что имеется некоторое количество экспериментальных точек,
которые лежат вне построенной кривой (линии тренда). Дело в том, что, как уже от-
мечалось, для построения интерполяционного полинома, проходящего через все
экспериментальные точки, необходимо, чтобы степень полинома была на единицу
меньше количества точек. В данном случае степень полинома (это 5) существенно
меньше количества точек (их 11), в силу чего речь идет не об интерполяции, а об
аппроксимации. Очевидно, что чем выше степень полинома, тем больше аппрокси-
мирующая кривая приближается к интерполяционному полиному. Это особенно за-
метно, если те же данные аппроксимировать линейной зависимостью. Как видно из
рис. 5.66, разброс точек относительно линии тренда в этом случае более существенен
по сравнению с предыдущим.
Казалось бы, если указать достаточную степень для полинома, можно выполнить
интерполяцию. Однако проблема состоит в том, что максимальная степень полино-
ма в Excel ограничена числом шесть. Поэтому в общем случае для выполнения ин-
терполяции приходится прибегать к военной хитрости.

Trend Line

i?
!

0.8 -
Y0.6 -
J
0.4

0.2 -
н
-0.1 0.4 0.9 I -I

Рис. 5.66. Линейная аппроксимация данных

Глава 5. Теория вероятностей и математическая статистика 449


По большому счету, построение интерполяционного полинома сводится к вычис-
лению коэффициентов полинома известной степени. Эти коэффициенты вычисляются
из тех соображений, что полином должен проходить через все экспериментальные точ-
ки. Однако если степень полинома выбрана правильно (число точек минус один), то
применение метода наименьших квадратов в этом случае приведет к такому же ре-
зультату. Действительно, поскольку этот метод подразумевает минимальное отклоне-
ние кривой от экспериментальных значений, то коэффициентов в полиноме достаточ-
но для того, чтобы это отклонение было нулевым в каждой экспериментальной точке.
Следовательно, если каждую степень переменной рассматривать как независимый
фактор, то задача сводится к линейной регрессии для многофакторной модели (число
факторов равно степени полинома и равно количеству экспериментальных точек ми-
нус единица). Отсюда практически очевиден план дальнейших действий. В частности,
помимо данных о значениях функции и ее аргумента, заносим в таблицу также сведе-
ния о степенях аргумента вплоть1 до десятой (рис. 5.67).
Дальше вызываем утилиту выполнения регрессии. В диалоговом окне Regression
(Регрессия) на рис. 5.68 показаны настройки, которые следует выполнить.

Рис. 5.67. Значения функции, аргумента и его степеней

input
: InputJRange:

i InputuRange: 53

P Constant is £ero

/Output options
' <~ QutptA Range:
! <? New Worksheet £jy:

rResiduais, .......
Г~ Restduafe Г Residual Pbts
: Г Standardized Residual! F ЦК «Plots

: Normal Probability

! Г tjormatProbabifty Plots

Puc. 5.68. Настройки в диалоговом окне Regression

450 Часть II. Решение задач


Диапазон А1 :А12 содержит значения функции, а в диапазоне ячеек В1 :К12 пред-
ставлены значения для факторов модели. Поскольку начальные ячейки содержат
метки, устанавливаем флажок опции Labels (Метки). Также устанавливаем флажок
опции Line Fit Plots (Диаграммы значений) — чтобы отображались графики с оце-
ночными значениями функции. Графиков будет много (по числу факторов), однако
интерес в данном случае представляет только тот из них, где представлена зависи-
мость оценочного значения от аргумента, а не его степеней (начиная со второй).
В результате выполнения регрессионного анализа получаем отчет, в котором са-
мой важной является та часть, где указаны коэффициенты регрессионной зависимо-
сти (они же коэффициенты интерполяционного полинома). На рис. 5.69 эта область
выделена цветом.

; A i В с D
6 jAdjusted R Square 65535
7 ; Standard Error о:
8 iObservations JT]
9
10 !ANOVA :
11 eff ss MS
12 Regression 10 1.17643862 0.117644
13 Residual 0- 1.59259E-05 65535
14 Total 10 1.176454545
15
16 Coefficients Standard Error tStat
17 Intercept -B.62174E-06 0 65535
30.92124916 0 65535
19 XQ -560.9306711 0 65535
4235.922683 0 65535
.?1 "4 -17151.4773 0 65535
22 ,"••; 4149140051 0 65535
71 <«6 -62768.07895 0 65535
24lX»7 5Э843.58401 0 65535
янХ'ё -34901.93178 0 65535
?o '<•'-<• : 113Б183803 0 65535
27 :X"10 -1580.383907 0 65535
28; \

Puc. 5.69. Вычисление коэффициентов регрессии

Если обратить внимание на следующий после коэффициентов столбец, а это стол-


бец со стандартными ошибками, можно заметить, что они в данном случае равны ну-
лю. Это значит, что в узловых точках отклонение оценочного (интерполяционного)
значения от экспериментального равно нулю. В этом же можно убедиться, если при-
бегнуть к помощи диаграммы с оценочными и экспериментальными значениями, ко-
торая показана на рис. 5.70.
Легко видеть, что интерполяционные значения функции совпадают с экспери-
ментальными. Отсюда следует, что интерполяция выполнена корректно.
Полученные коэффициенты можно далее использовать по-разному, в зависимости
от того, для каких целей строится интерполяционная зависимость. Самый простой
способ — это задать функцию. В этом случае можно вычислять интерполяционное
значение в точке (а точка, например, вводится как значение в ячейке). Это достаточно
распространенная задача. Однако решена она может быть и несколько иначе.

Глава 5. Теория вероятностей и математическая статистика 451


X Line Fit Plot

.0.2 41*

Рис. 5.70. Интерполяционные и экспериментальные значения

Интерполяция Лагранжа
Интерполяционную формулу в Excel можно построить достаточно простым спо-
собом. Причем речь о непосредственном программировании на языке VBA здесь не
идет (хотя это еще один эффективный способ решения задачи). В качестве примера
рассмотрим задачу о построении интерполяционного полинома Лагранжа.
Можно показать, что функция Ц*) = Л >,<?,(*), где базисные функции

ф.(л;)= Y[ (x-xt) (*,. - xt ) , как раз и является искомым интерполяционным по-


kfi

линомом. Записанный в таком виде интерполяционный полином называется поли-


номом Лагранжа. С практической точки зрения главная проблема заключается в вы-
числении значения базисных функций (в произвольной точке).
На рис. 5.71 представлены исходные данные, по которым будет выполняться ин-
терполяция. На этом же рисунке проиллюстрирован процесс определения первой
базисной функции.

С6 » )&{=PRODUCT(A2-A7:A16)/PRODUCT(A6-A7:A16)}
А В - С | D . , Е ; F
1 Аргумент ж Функция Лаеранжа Цх)
2 0.25
3
4 :
5 ' Узловая точкаХ Значение У
".:::::!:;:::: :J:::.::::::tiiii.L: '.::..:
Базисная функция PhM
6 0 ОПГООБ789В51
7 0.15 0.16
8 0.31 0.33:
9 0.46 0^42:
10 0.61 0.59
:
11' 0.77 072
12 092 0.75
13 1.01 О.В8
14 U6 0.95;
15 1.32 0.96!
16 1.47 0.99i
г;

Рис. 5.71, Начальные данные

452 Часть II. Решение задач


В диапазоне ячеек А6:А16 представлены значения для функции, а в диапазоне яче-
ек В6:В16 можно видеть значения для узловых точек аргумента. В ячейку А2 вводится
точка, в которой необходимо вычислить значение интерполяционного полинома.
Значение полинома будет выводиться в ячейке В2. Важным моментом является за-
полнение ячеек в диапазоне С6:С16, где будут отображаться значения базисных функ-
ций в точке, указанной в ячейке А2. Именно по этим значениям и значениям ячеек из
диапазона А6:А16 определяется значение интерполяционного полинома (ячейка В2).
Диапазон С6:С16 заполняется так: отдельно первая и последняя ячейки диапазо-
на, а все остальные ячейки — копированием одной формулы. В частности, в ячейку
С6 вводится формула =PRODUCT(A2-A7:A16)/PRODUCT(A6-A7:A16), согласно ко-
торой определяется первая базисная функция. Сразу следует отметить, что и эта
формула, и все прочие формулы из диапазона С6:С16, вводятся как формулы для
диапазонов, т.е. с помощью нажатия комбинации клавиш <Ctrl+Shift+Enter>. При-
чина состоит в том, что аргументами функции PRODUCT() указываются результаты
арифметических операций с диапазонами.
Далее заполняются ячейки из диапазона С7:С15. Для этого в ячейку С7 вводится
формула =PRODUCT($A$2-$A$6:A6,$A$2-A8:$A$16)/PRODUCT(A7-$A$6:A6,A7-
А8:$А$16)(рис. 5.72).
Абсолютные и относительные ссылки в формуле подобраны так, чтобы при ее
копировании в следующие ячейки, ссылки на начальную С6 и конечную С16 ячейки
диапазона, равно как и на ячейку А2 со значением переменной, для которой вычис-
ляется базисная функция (и весь полином), оставались неизменными. Это абсолют-
ные ссылки. Вместе с тем, в процессе копирования формулы произведения в ней вы-
числяются без учета значения аргумента в той строке, где размещена формула.
После ввода формулы в ячейку С7 данная формула с помощью маркера заполне-
ния копируется во все ячейки, вплоть до С15 (рис. 5.73).

A(=PRODUCT(iA$2-tAtE:AE,tAt2-AB:tA$16)/PRODUCT(A7:SA$e:/^,A7-AB:$At16))
:
В_ _ С | О | Е i F i G- I .Ж
Функция Пагранжа Цх)

5 Узловая точках Значение Y Базисная функция РАОД


О -O.OD6789B5

Рис. 5.72. Ввод формулы в ячейку С7

Глава 5. Теория вероятностей и математическая статистика 453


С7 •j4=PRODUCT($A$2-tA»A6^AS2-AS:$A$16)/PRODUCT(A7-$A$6:AS.A7-A8:$A$16>)
J 2 _А ^
В , С •о ; Е : F j G , ;•_. H; j-JiJLTIi
1 ' Аргумент х Функция Лэгранна Цх)
"f 025
JL
4
I
:
:
:
i
:
J
\
\ ;:,:.::
6 Узловая точках Значение Y Базисная функция РЩх)
s a 0-0.00678985
0.15 0.1бГо 16274101
аз!
9 0.46 0.42 -1,1 1011803
10 0.61 059 117767635
11 0.77 0.721 -Г.16Ш2888
12 0.92 ' 0.751 „1.21204879
13 1.01 0.88 ЙКЙШН2
~Щ lie 0.95 Шдбесиш ] i
151 132 0.96 -0.02138319
0.99! [g|
ЕЁЁ=
Рмс. 5.73. Копирование формулы

Наконец, в ячейку С16 необходимо ввести формулу =PRODUCT(A2-A6:A15)/


PRODUCT(A16-A6:A15). Результат можно видеть на рис. 5.74.
На заметку. Поскольку формулы из начальной С6 и конечной С16 ячеек диапазона
| С6:С16 никуда копировать не предполагается, то и ссылки там относительные.
После этого осталось только вычислить интерполяционный полином. Для этого
достаточно в ячейку В2 ввести формулу =SUMPRODUCT(B6:B16,C6:C16).
Эта формула вводится как обычная, т.е. нужно нажать клавишу <Enter>. Результат
представлен на рис. 5.75.
Чтобы посчитать значение полинома в какой-то точке, соответствующее значение
следует ввести в ячейку А2. В ячейке В2 практически сразу появится результат.
На рис. 5.76 проиллюстрирована ситуация, когда в качестве аргумента указано узло-
вое значение.

Рис. 5.74. Таблица со значением базисных функций

454 Часть II. Решение задач


В2 & =SUMPRODUCT(B6'B16,C6:C16)
;'- 8 | С D < Е
1 Аргумент х Функция Лагранжа Цх)
2 0.25J 0.2266340991 i
3,
.'.
5 Узловая точках Значение Y Базисная функция Pfii(x)
Б 0 0. -0.00678985
i 0.15 0.16 0.16274101
а 0.31 0.33: 1.36163391
;•( 0.46 0.42: -1.11011603
!0 0.61 0.59 1.17767635:
И 0.77 0.72. -1.16502888:
12 ' 0:92
.__. 0.75: 'V212CM679;'
13 0:88-0.75940092
14 1.16 0.95 0.14680492.
15 1.32 0.96 -0.02138319
If 1 47 0.99, 0.00181589:
! 1'

Рис. 5.75. Вычисление значения интерполяционного


полинома

• А I В \ ;. .С...,,
Аргумент х' Функция Лагранжа Цх}
:
. 0.59:

Узловая точкаХ Значение Y (Базисная функция Phi(x)


о; PJ
0.15 О.~16 "
озГ 0.33
0.46 О 42;
о.б1; °-5?;
077 0.727
0.92 0.75;
1.01; 0.88:
1.16 0.95
1.32 Q -я,
1.47] 099

Рис. 5.76. Значение полинома в узловой точке

Как и следовало ожидать, в узловой точке значение интерполяционного полино-


ма равно экспериментальному значению функции в этой точке, а все базисные
функции, кроме той, что соответствует указанному узлу, равны нулю. Отличная от
нуля базисная функция равна единице.
Предложенный способ построения интерполяционного полинома, безусловно, не
единственный. Кроме того, полином совсем не обязательно должен искаться именно
в форме Лагранжа. Поэтому выбор метода, типа интерполяционного полинома и
решение прочих подобных вопросов осуществляется, как правило, в контексте кон-
кретной решаемой задачи.
Подытоживая все, что было сказано в этой главе, еще раз хочется отметить, что
задачи математической статистики — это как раз одна из важных с практической
точки зрения областей, для которой приложение Excel подходит как, пожалуй, ни
одно другое программное средство (ну разве что какой-то уж очень специальный па-
кет). Поэтому использование Excel для решения задач этого класса является доста-
точно эффективным и раскрывает широкие горизонты перед каждым серьезным
исследователем.

Глава 5. Теория вероятностей и математическая статистика 455


ГЛАВА 6

Совместное использование
Excel и Maple
В этой главе...
Ш Подключение надстройки Maple Excel Add-In
• Основы командного языка Maple
• Использование функций Maple в рабочих листах Excel
• Настройка параметров Maple при работе с Excel
• Совместное использование данных в Maple и Excel
• Примеры решения задач

11 риложение Excel достаточно эффективно не только с точки зрения анализа


данных, но и при оформлении документации, однако серьезное научное исследование
редко ограничивается использованием лишь одного программного продукта. И Excel
в этом смысле исключением не является. Поэтому совместное использование
Excel с другими приложениями представляется актуальной задачей. Как уже отмеча-
лось ранее, у Excel есть один недостаток, и состоит он в невозможности выполнять
аналитические преобразования. Если речь идет о вычислениях, Excel справляется дос-
таточно эффективно с задачами практически любой сложности. Но вот в том случае,
если нужно получить аналитический результат, возникают трудности. С другой сто-
роны, для выполнения символьных вычислений разработан целый ряд достаточно
мощных программных продуктов. В качестве примера можно привести MathCAD или
Mathematica, хотя несомненным лидером на рынке математических программных
продуктов подобного рода является, пожалуй, Maple (но это во многом вопрос личных
предпочтений). Все, кому хоть раз приходилось сталкиваться с Maple, наверняка со-
гласятся с тем, что возможности этой системы поистине впечатляющи.
Очевидно, в случае, когда решаемая задача достаточно сложна, а решение должно
быть получено именно в аналитическом виде, разумно обратиться сразу к Maple или
другому аналогичному приложению. Однако следует иметь в виду, что как Maple,
так и другие продукты подобного рода, имеют свою систему команд, т.е. командный
язык. Чтобы эффективно работать с таким приложением, необходимо всерьез за-
няться его изучением. Причем простого ознакомления с командами бывает недоста-
точно. Другими словами, ситуация как в известном мультфильме: чтобы за пять ми-
нут долететь, нужно целый день убить на тренировку. С другой стороны, многие за-
дачи, представляющие серьезный практический интерес, подразумевают
выполнение символьных вычислений и преобразований на достаточно элементар-
ном уровне. В этом случае решение задачи, например, в Maple если и не равносиль-
но, то очень напоминает стрельбу из пушки по воробьям. Более того, основная часть
анализа наиболее эффективно может быть проведена именно в Excel. Здесь также
следует учесть, что приложение Excel все же более популярно, чем Maple, поскольку
Excel входит в пакет Microsoft Office, который, в свою очередь, установлен практиче-
ски на каждом компьютере с операционной системой Windows (чего не скажешь о
Maple, которым пользуются в основном профессионалы). Да и данные, полученные
в Excel, достаточно легко конвертируются в прочие приложения пакета Micro-
soft Office, вроде Word или PowerPoint. Последние обычно используются для со-
ставления отчетов и презентаций, а это далеко не последний момент в научном ис-
следовании. Поэтому совершенно очевидно, что идеальным представляется исполь-
зование возможностей Maple в области символьных (и не только) вычислений при
работе с листами Excel. Самое удивительное, что это вполне осуществимо.
Дело в том, что разработчики Maple, приняв во внимание, скорее всего, актуаль-
ность и популярность приложения Excel, создали специальную надстройку, под-
ключение которой позволяет использовать в рабочих листах Excel команды Maple,
равно как и выполнять ряд других полезных действий. Именно об этих уникальных
возможностях ниже и пойдет речь.
Совершенно ясно, что для того, чтобы в Excel использовать команды Maple, нуж-
но иметь хотя бы общее представление об этих командах. У тех, кто работал с Maple,
в этом смысле проблем возникать не должно. Однако не все, кто работает с Excel,
сталкивались с Maple. Поэтому при изложении материала будем исходить из того,
что читатель о Maple практически ничего не слышал и не имеет ни малейшего поня-
тия об этом программном продукте. Это, тем не менее, не значит, что данная глава
может рассматриваться как путеводитель по Maple. Просто в тех местах, где для по-
нимания изложения материала нужно знать особенности командного языка Maple,
будет приводиться соответствующая справка. Кроме того, общему описанию систе-
мы Maple (очень краткому и поверхностному, надо отметить) посвящен специаль-
ный подраздел. Однако прежде рассмотрим процедуру подключения настройки
Maple Excel Add-In.

Подключение надстройки
Maple Excel Add-In
Само собой разумеется, что для использования Maple в рабочих листах Excel
(для этого, собственно, соответствующая надстройка и подключается) приложение
Maple должно быть установлено. Эта вполне посильная задача целиком и полностью
ложится на плечи читателя.
Внимание! Приложение Maple должно быть установлено после того, как уста-
новлен пакет Microsoft Office (или отдельно приложение Excel). В противном
случае работа с надстройкой будет невозможна.

458 Часть II. Решение задач


Как уже неоднократно отмечалось, в Maple есть специальная надстройка
(которая называется Maple Excel Add-In), позволяющая прямо из рабочих листов
Excel выполнять команды Maple. Однако сразу следует отметить немаловажное об-
стоятельство, имеющее отношение к совместимости различных версий продуктов.
Дело в том, что надстройка рассчитана на работу с Excel 2000. С более ранними вер-
сиями она работать не будет. Однако если используется Excel 2002 (пакет Micro-
soft Office XP), проблем не возникает (во всяком случае с восьмой версией Maple —
именно эта версия Maple описывается далее).
Подключается надстройка так же, как и любая другая надстройка Excel: в окне при-
ложения Excel следует выбрать команду Tools^Add-lns (Сервис^Надстройки). Од-
нако поскольку маловероятно, что файл соответствующей надстройки (а это файл
WMIMPLEX.xla) окажется в каталоге надстроек Excel, то в открывающемся в резуль-
тате выполнения команды списке доступных надстроек Add-lns available диалогового
окна Add-lns нужная надстройка скорее всего отображена не будет. Ее придется ис-
кать. Проблемы это, как правило, не составляет, поскольку по умолчанию упомянутый
файл хранится в подкаталоге Excel базового каталога Maple. Поэтому следует вос-
пользоваться кнопкой Browse (Просмотр) и найти данный каталог. После того как на-
звание надстройки Maple Excel Add-in будет добавлено в список надстроек, возле него
следует установить флажок опции и щелкнуть на кнопке ОК (рис. 6.1).

Рис. 6.1. Диалоговое окно Add-lns с


Add-lfsavabble: выбранной надстройкой
^Analysis ToolPak
~ Analysis ToolPak - VBA
~~" Conditional Sum Wizard
Euro Currency Tools
' Internet Assistant VBA
'lookup Wizard
' ^ШЯЦ1:йШ1^»Г
Automation.,.
' Solver Add-in

Maple Excel Add-in


Add Mapte functionary to Еже) 2000

После подключения надстройки в рабочем окне приложения Excel отображается


новая панель инструментов, вид которой показан на рис. 6.2 (если эта панель не ото-
бражается, следует выбрать команду View^Toolbars^Maple). Кнопки этой панели
описаны в табл. 6.1.
Рис. 6.2. Панель инструментов Maple

Глава 6. Совместное использование Excel и Maple 459


Таблица 6.1. Кнопки панели инструментов Maple

Кнопка Описание
Кнопка копирования содержимого ячейки или диапазона ячеек в рабочем листе
Excel в буфер обмена для последующей вставки в рабочий лист Maple в виде
матрицы
Кнопка копирования данных из таблиц Maple (в рабочих документах Maple
можно использовать собственные электронные таблицы) в рабочий лист Excel.
Данные в приложении Maple копируются в буфер обмена, после чего вставляют-
ся в рабочий лист Excel с помощью данной кнопки
Кнопка настройки параметров приложения Maple при работе с Excel. После
щелчка на кнопке открывается диалоговое окно Maple Excel Options
(Параметры Maple), в котором и выполняются соответствующие настройки
После щелчка на кнопке открывается диалоговое окно Maple Function Browser
(Вставка функции Maple), с помощью которого можно получить доступ к функ-
циям Maple
Кнопка доступа к справке Maple (того ее раздела, который имеет непосредствен-
Ш ное отношение к математическим вопросам) прямо из рабочего листа Excel

Методы работы как непосредственно с панелью Maple, так и принципы исполь-


зования в рабочих листах Excel соответствующих команд, достаточно детально объ-
ясняются несколько позже. Поскольку, тем не менее, совершенно очевидно, что эф-
фективно использовать возможности, предоставляемые в рамках Maple, весьма
трудно без знания основ командного языка и принципов работы этого приложения,
логично уделить отдельное внимание данным вопросам.

Основы командного языка Maple


Что касается самого приложения Maple, то это отдельный программный продукт, ко-
торый может с успехом использоваться без привлечения других дополнительных при-
ложений. Рабочее окно приложения Maple с новым рабочим документом (который будем
еще называть рабочим листом — так же, как и в случае Excel) показано на рис. 6.3.

Fte £d* View insert Format ; , , : : - : , • • . .-: Whdow Нф :

| I": I •-• J |

0.4s : Bites Э.06М ] Av«Ubte789M

Рис. 6.З. Рабочее окно Maple

460 Часть II. Решение задач


Описание назначения меню и кнопок панели инструментов приложения Maple
выходит за рамки тематики книги. Кроме того, большая их часть практически иден-
тична кнопкам и меню популярных приложений пакета Microsoft Office, за исклю-
чением, разве что, тех, которые имеют непосредственное отношение к выполнению
математических операций. Поэтому первоочередной интерес представляет именно
командный язык Maple.
Работа с приложением Maple осуществляется в следующем режиме. Пользова-
тель вводит в рабочей области (большое белое поле на рис. 6.3) команду (после
значка стрелки). После нажатия клавиши <Enter> эта команда выполняется, а ре-
зультат ее выполнения, по умолчанию, отображается ниже, под соответствующей
командой. Каждая команда заканчивается точкой с запятой или двоеточием. В пер-
вом случае результат выполнения команды отображается, во втором — нет. Двоето-
чие используют обычно в тех случаях, когда необходимо выполнить последователь-
ность команд, а интерес представляет, скажем, только результат выполнения
последней команды. В такой ситуации промежуточные результаты можно не отобра-
жать, чтобы не загромождать лишними данными рабочий документ.

Выражения в Maple
Команда Maple, как правило, представляет собой некоторое математическое вы-
ражение, которое либо просто вычисляется, либо присваивается в качестве значения
переменной. В этом случае используются всевозможные операторы, в основном ма-
тематические. В табл. 6.2 приведены основные математические операторы, которые
допускается применять в Maple.

Таблица 6.2. Математические операторы Maple

Оператор Описание
+ Оператор сложения. Пример использования: а+Ь
Оператор вычитания. Пример использования: а-Ь
Оператор умножения. Пример использования: а*Ь
Оператор деления. Пример использования: а/Ь
Оператор возведения в степень. Помимо этого оператора, в ранних версиях
Maple можно также использовать двойной оператор умножения (т.е. * *).
Пример использования: а^Ь

Это бинарные операторы (т.е. они используются с двумя операндами). Кроме них в
Maple много других, весьма полезных операторов, однако описываться они будут по
мере необходимости. Здесь же следует отметить, что в Maple в качестве оператора при-
сваивания используется, как и в некоторых языках программирования, двоеточие со
знаком равенства (оператор : =). Переменной, указанной слева от оператора присваи-
вания, присваивается в качестве значения выражение, указанное справа от оператора.
Как пример можно рассмотреть команду присваивания переменной Р в качестве
значения полиномиального выражения ах3 + xlb - 2x + n. Команда, вводимая при
Л Л
этом в рабочем листе Maple, имеет вид Р:=а*х 3+х 2/Ь-2*х+Р1, а результат ее
выполнения приведен на рис. 6.4.

Глава 6. Совместное использование Excel и Maple 461


О Maple 8 [Untilled(l) |Seiver1)|

j
Tine; 1.7s i Bytes: 3.06M Available; 806M

Puc. 6.4. Ввод выражения в рабочем листе Maple

Как видно из рис 6.4, для вызова числа л использовано выражение Pi. Это предо-
пределенная константа, причем не единственная из предопределенных констант в
Maple. В табл. 6.3 приведен список основных констант.

Таблица 6.3. Константы Maple

Константа Описание

Catalan Сумма ряда V_LJ1_ , приближенно равная 0,9159655942

false Логическая константа "ложь"


FAIL Используется в логических вычислениях как "неизвестная правда" в
трехзначной логике

gamma Константа Эйлера у = 0,5772156649 (определяется как ит V | 1 _ \п(п) |)

I Комплексная (мнимая) единица, квадрат которой равен -1


infinity Бесконечность оо

Pi Число я = 3,141592654
true Логическая константа "правда"

Для того чтобы узнать значение переменной, как правило, достаточно ввести эту
переменную (ее название) в качестве команды, поставить точку с запятой и нажать
клавишу <Enter>. Например, на рис. 6.5 показано, как определить значение пере-
менной Р, которой на предыдущем этапе было присвоено значение.

462 Часть II. Решение задач


О Maple 8 - [Untilled (1) - (Seivei 11]
Fte Edit View Insert Fame! :;.• ;-A ..,:• Window

2/b-2*x+Pi;

> P;

lime: 1.7s ; Bytes: З.ШМ i Available: 803M

PMC. 6.5. Определение значения переменной

Если переменной значение не присвоено, то ее значением является название пе-


ременной. Так, до тех пор, пока переменной х значение не присвоено, значение этой
переменной есть х. Но если выполнить команду х: =1, значение переменной равно 1,
в соответствии с чем меняется и значение переменной Р (рис. 6.6).

D Maple 8 -lUntitledllJ-[Se>v« 1]]

> P;

ar. + — - 2 JT +л

> P;

-2+л

[>|
• Time: 17» Bytes. 3.06M

Pwc. 6.6. Изменение значения переменной

Примерно по такому же принципу осуществляется работа и с прочими выраже-


ниями. Это совсем не обязательно должны быть полиномы. В Maple существует дос-
таточно большое число встроенных математических функций, которые с успехом
можно использовать для решения прикладных задач. Более того, с точки зрения со-
вместного использования Excel и Maple актуальным прежде всего является вопрос
применения именно математических функций Maple. Однако функций этих очень

Глава 6. Совместное использование Excel и Maple 463


много (в общей сложности более трех тысяч, большинство из которых имеют непо-
средственное отношение к математическим операциям), поэтому разумно выделить
основные, которые используются наиболее часто.

Математические функции Maple


В Maple есть базовые математические функции, которые система узнает и'успеш-
но вычисляет их значения. В табл. 6.4 приведены основные из них (в скобках указа-
ны аргументы функции).

Таблица 6.4. Основные математические функции Maple

Функция Описание
arccos (x) Арккосинус от х
arcsin(x) Арксинус от х
arc tan (х) Арктангенс от х
arcsec(x) Арксеканс от х
arccsc (х) Арккосеканс от х
arccot(x) Арккотангенс от х
arcsinh (х) Арксинус гиперболический от х
arccosh (х) Арккосинус гиперболический от х
агс tanh (х) Арктангенс гиперболический от х
arcsech (х) Арксеканс гиперболический от х
arccsch (х) Арккосеканс гиперболический от х
arccoth (х) Арккотангенс гиперболический от х
arctan ( У / х ) Для комплексного числа z=x+I*y (I — комплексная единица) функци-
ей вычисляется главное значение аргумента согласно формуле
arctan(у,x)=-I*ln(z/|z|)
sin(x) Синус отх
cos х
( ) Косинус от х
tan(x) Тангенс от х
sec(x) Секанс от х
с s с (х) Косеканс от х
cot (х) Котангенс от х
s inh (х) Синус гиперболический от х
cosh (х) Косинус гиперболический от х
tanh (х) Тангенс гиперболический от х
sech (х) Секанс гиперболический от х
csch (х) Косеканс гиперболический от х
coth (х) Котангенс гиперболический от х

464 Часть II. Решение задач


Окончание табл. 6.4

Функция Описание
In (х) Логарифм натуральный от х. В качестве аргумента может быть исполь-
зовано и комплексное число z=x+l *у. Тогда по определению полагают
In ( z ) =ln (abs ( г ) ) +1 *argument ( z ) , где функция abs ( z ) опреде-
ляет модуль числа z, a argument ( z ) — главное значение его аргумента
log[b] (х) Логарифм х по основанию Ь. Для комплексных чисел
log[b](x)=ln(x)/ln(b)
loglO(x) Десятичный логарифм loglO (х) = log [10] (х)
ехр (х) Экспоненциальная функция (возведение экспоненты в степень х)
sqrt(x) Корень квадратный из х

Приведенные в табл. 6.4 функции относятся к элементарным. В Maple можно исполь-


зовать и более сложные функции (в случае необходимости они будут описаны). Заинте-
ресованный читатель может обратиться к специальной литературе по этому вопросу.
Принимая во внимание практическую сторону вопроса, т.е. возможность использова-
ния Excel и Maple для решения инженерных и инженерно-физических задач, следует
выделить класс функций, относящихся к дифференцированию и интегрированию выра-
жений. Часто также используются функции поиска решений уравнений как алгебраиче-
ских, так и дифференциальных. Именно эти вопросы будут рассмотрены далее.

Дифференцирование выражений
В Maple для дифференцирования выражений используется функция d i f f ().
В качестве аргументов этой функции указываются дифференцируемое выражение и
переменная, по которой это выражение следует дифференцировать. Например, для
вычисления производной от выражения а? + sin(bt) по переменной t достаточно вве-
сти и выполнить команду dif f (a*t' 4 2 + sin(b*t) , t ) . Результат представлен на
рис. 6.7 (команда выполнялась в новом документе).

П МаР'е 8 • [Untilled (1 ) [eivec 1 j

:
Time-. 1 7s ! Bytes: 3.06M AvAibte'. 7Э9М

Puc. 6.7. Дифференцирование выражения

Глава 6. Совместное использование Excel и Maple 465


В качестве дифференцируемого выражения можно указывать как переменную,
так и функцию. Причем дифференцировать можно по любой переменной, например,
по а. В этом случае команда выглядит как d i f f ( a * t " 2 + sin(b*t) , a ) , a результат
представлен на рис. 6.8.

П Maple 8 - [Unlitled (11 - [Seivei I ]]


& f.fc

A
diff(a*t 2+sinCb*t>,

diff(a*t*2+sin(b*t),

Time: 17« ; Bj*tes; З.ОВИ > AvaWAr. ?S9M

PMC. 6.5. Вычисление производной по другой переменной

Функцией d i f f () возможности Maple, разумеется, не ограничиваются, да и осо-


бенности самой этой функции описаны далеко не в полной мере. Однако даже пред-
ставленных выше сведений будет вполне достаточно для решения большинства воз-
никающих на практике задач.

Интегрирование функций и выражений


Для вычисления интегралов в Maple обычно используют функцию int ( ) .
Эта функция может быть задействована для вычисления как неопределенных, так и
определенных интегралов. Первым аргументом функции указывается выражение, от
которого вычисляется интеграл. Второй аргумент функции — переменная, по кото-
рой этот интеграл вычисляется. Если указать диапазон изменения переменной ин-
тегрирования, то интеграл вычисляется как определенный (в данных пределах).
Если указана только переменная интегрирования, без диапазона изменения, то инте-
грал вычисляется как неопределенный. Диапазон изменения переменой указывается
следующим образом: переменная, знак, равенства, нижняя граница диапазона, две
точки, верхняя граница диапазона. Например, чтобы вычислить интеграл от выра-
жения at2 + sin(bt), можно ввести команду int (a*t' 4 2+sin(b*t) , t ) . Это неопре-
деленный интеграл. Чтобы вычислить определенный интеграл в пределах от 0 до 1,
разумно воспользоваться командой d i f f ( a * t / 4 2 + s i n ( b * t ) , t = 0 . .1). Результат
выполнения обеих команд можно видеть на рис. 6.9.

466 Часть II. Решение задач


ID Maple 8 [Unlilleddl |Serverl|]
Fte E* View insert Fqmal

> int(a*t'2+sln(b*t),t);

at cos(bt)
3
> i n t ( a * t ' 2 + s i n ( b * t ) , t = 0 , .1) ,
1 ab- 3cos(c) + 3
b

'Time: 1.7s <Byte:3.06M ! A

Puc. 6.9. Вычисление определенного и неопределенного интегралов

Диапазон применения функции интегрирования, пожалуй, еще более широк, чем


функции дифференцирования. Однако методы применения функции int ( ) лучше
рассматривать на примере конкретных, решаемых в Excel (с привлечением команд
Maple) задач.

Решение уравнений
Помимо интегрирования и дифференцирования, часто приходится решать как
алгебраические, так и дифференциальные уравнения. Причем если для решения ал-
гебраических уравнений в Excel есть специальные утилиты, то для аналитического
решения дифференциальных уравнений без помощи Maple вряд ли можно будет
обойтись. Но даже и в случае алгебраических уравнений использование Maple мо-
жет быть куда более эффективным по сравнению с возможностями Excel, особенно в
тех случаях, когда решение нужно искать в символьном виде.
Для решения алгебраических уравнений используют функцию solve ( ) . Первым
аргументом функции указывается решаемое уравнение (т.е. равенство), вторым —
переменная, относительно которой уравнение решается. Это самый простой способ
вызова функции.
Если первым аргументом указать выражение, то будет искаться такой корень,
при котором выражение обращается в нуль. По умолчанию ищутся все корни урав-
нения. Результат в этом случае возвращается в виде последовательности (это набор
значений, разделенных запятой). Например, решения квадратного уравнения ах2 +
+ Ьх+ с = 0 могут быть найдены с помощью команды solve (а*х Л 2+Ь*х+с=0, х ) .
Результат представлен на рис. 6.10.
Эта функция исключительно полезна при поиске решения в символьном виде. Одна-
ко часто уравнение просто не имеет аналитического решения (точнее, оно не может быть
представлено через элементарные функции). В этом случае логично воспользоваться
функцией f solve ( ) . В результате вызова данной функции решается, в численном виде,
уравнение, указанное первым ее аргументом, относительно переменной, указанной вто-
рым аргументом. Можно вторым аргументом указать не только переменную, но и на-
чальное ее значение для поиска решения. Например, корректной является команда

Глава 6. Совместное использование Excel и Maple 467


f solve (x=tan(x) ,x=7) (рис. 6.11). В этом случае решается уравнениех - tg(x) в окре-
стности точки х = 1. Иногда нужно найти решение на каком-то интервале значений. Эта
проблема актуальна для уравнений, имеющих несколько (а иногда и бесконечное число)
решений. Так, уравнение 0,0bt = sin(;c) имеет несколько решений. Предположим, нужно
найти корень, попадающий на третий период синуса. В этом случае можно воспользо-
ваться командой fsolve(0 . 01*x=sin(x) ,x=4*Pi. .б*Pi), т.е. для переменной ука-
зывается диапазон значений, на котором следует искать решение. Результат выполнения
этой команды можно видеть на том же рис. 6.11.

QMaple 8 - [Unfitted (1) - [Seivet 1]]


Window

solve(a*x

2a
> 1

{ Time: 1.3s S8jt«:3.ffiM i AvaSabte 79»!

Рис. 6.10. Решение квадратного уравнения

№ £* View |m«t Fqmat

> solve (a*x''2+b*x+c=0 , x) ;

-Й + л/i - 4 a c -4-л b -Aac

,x-7>,
7.725251837
> f solve ( 0 , 0 1 * x = s i n ( x ) ,x-4*Pi. . 6 * P i ) ,•
15.55181134

Puc. 6.11. Решение уравнений в символьном и численном виде

468 Часть II. Решение задач


Несравненно более сложный класс задач представляют из себя дифференциаль-
ные уравнения. Здесь и далее будем рассматривать только обыкновенные диффе-
ренциальные уравнения (в уравнении одна неизвестная функция, зависящая от од-
ной переменной). Уравнения в частных производных затрагивать не будем, хотя они
в Maple также решаются.
Для решения дифференциальных уравнений прибегают к функции dsolve { ) .
Как и при решении алгебраических уравнений, в данном случае первым аргументом
функции указывается решаемое уравнение (теперь уже дифференциальное), второй
аргумент — функция, относительно которой уравнение решается. В качестве приме-
ра использования функции dsolve ( ) рассмотрим процесс решения уравнения
у"(х) + у(х) = 0. Как известно, общим решением этого уравнения является линейная
комбинация синуса и косинуса. Линейные коэффициенты определяются из началь-
ных или граничных условий. Само уравнение в Maple может быть задано выражени-
ем dif f (у (х) , х$2) +у (х) =0, которое и указывается первым аргументом функции
dsolveO. Вторым аргументом указываем функцию у ( х ) , относительно которой
решается уравнение.
Замечание. Выражение dif f (у (х) , х$2) задает вторую производную от функ-
ции у (х) по переменной х. Здесь использован оператор $ создания последова-
тельности. В частности, х$2 является эквивалентом последовательности х,х.
Если у функции dif f ( ) после дифференцируемого выражения через запятую
указано несколько переменных, то будет вычислена производная по каждой из
этих переменных (т.е. сначала по одной переменной, затем полученное выраже-
ние будет продифференцировано по второй переменной и т.д.). В данном случае
это, как отмечалось, вторая производная по переменной х.

Результат решения дифференциального уравнения, представленный в общем ви-


де, можно наблюдать на рис. 6.12 (верхняя часть рабочей области).

IО Maple 8 - lUnhtlcd (I) - [Seivei 1]]


S № t* V*« t"«rt Fqmat
№l^|a|ai ГПЗДЭД f^
> dsolve(dlff(y(x),x$2)+y(x)-Q,у(x));

y(x) = _CV an(jO + _C2cos(;0


dsolve((diff ( y ( x ) , x $ 2 > + y ( x ) = 0 , y ( 0 ) - 2 , D ( y )

I Time: 1.3s ! Bytes: Э.06М j Avatabte 786M

PMC. 6.12. Решение дифференциального уравнения

Глава 6. Совместное использование Excel и Maple 469


Следующая команда (см. рис. 6.12) позволяет не просто решить дифференциальное
уравнение, но и учесть начальные условия. Дифференциальное уравнение с начальными
условиями, как известно, называется задачей Коши. В этом случае в качестве первого ар-
гумента функции dsolve () указывается не только дифференциальное уравнение, но и
начальные условия (это равенства). Уравнение и начальные условия заключаются в фи-
гурные скобки (такая конструкция в Maple называется множеством). В частности, если
начальные условия такие, что у(0) = 2 и У(0) = 1, то соответствующая команда имеет вид
dsolve ({diff (у (х) ,х$2) +у(х) =0,у (0) =2,D(y) (0)=!} ,у(х) ). Сама команда
вместе с результатом ее выполнения представлена на рис. 6.12.
Замечание. Начальное условие для производной функции задано в виде D (у) ( 0 ) =1.
Здесь использован дифференциальный оператор D. Он, наряду с функцией dif f ( ) ,
используется для вычисления производных, но только от функциональных зависи-
мостей. В этом случае название функции указывается аргументом данного оператора.
После этого можно указать в скобках еще и аргумент для полученной в результате
вызова оператора производной. Этот оператор использован выше по той причине, что
нужно определить производную в точке (фиксированное значение, т.е. О в данном
случае), а вторым аргументом функции дифференцирования dif f ( ) можно указы-
вать только переменные, но никак не константы.

В завершение этого раздела хочется отметить одну особенность Maple. Дело в том,
что если, скажем, переменной в каком-то документе Maple присвоено значение, то в
другом рабочем листе переменная с этим же названием будет иметь такое же значение.
Во многих случаях это удобно, но иногда может приводить к неприятностям
(например, если последовательно решается несколько задач, в которых используются
переменные, разные по сути, но с одинаковыми названиями). Чтобы не перезагружать
приложение каждый раз при решении новой задачи, достаточно выполнить команду
restart. В этом случае эффект такой же, как если бы Maple был перезагружен. Начи-
ная с седьмой версии продукта на панели инструментов есть специальная кнопка
(первая справа кнопка панели инструментов, с замкнутой кривой со стрелкой). В ран-
них версиях Maple команду следует выполнять из рабочего документа. Каждую новую
задачу рекомендуется начинать с выполнения именно этой команды.

Использование функций Maple


в рабочих листах Excel
Разумеется, первоочередной интерес представляет возможность использования
команд Maple в рабочих листах Excel. Именно об этом пойдет речь в данном разделе.

Ввод формул
Итак, главное правило при вводе формул состоит в следующем: для использования
функции Maple при вводе формулы в ячейку электронной таблицы следует эту функ-
цию со всеми ее аргументами заключить в двойные кавычки и указать в качестве аргу-
мента функции =Мар1е(). Например, для того, чтобы в ячейке А2 отобразить значение

470 Часть II. Решение задач


производной выражения Ъх - acos(jc), эту ячейку следует сделать активной и ввести в
A
нее формулу =Maple("diff(b*x 2-a*cos(x),x)"). Результат представлен на рис. 6.13.
Стоит обратить внимание на тот немаловажный факт, что при работе с функция-
ми Maple нет необходимости запускать само это приложение.
A
А2 V 1 . • fr =Maple("diff(b*x 2-a*cos(x) .x)-)
A I B C D E
1
2 2*b*x+a'sinfx) 1 '
3
_ ; |
Рис. 6.13. Использование функции диффе-
ренцирования в рабочем листе Excel

A
=Maple( diffb x 2-a*cos(x).x);int(%.b=0..1) I
В i C D ; Е
I
2/|2*b*x+a*sin(x)ax+3*sin(xl I

Рис. 6.14. Ввод в ячейку нескольких команд

В ячейке, как видно из рис. 6.14, отображается результат выполнения обеих ко-
манд, а в качестве разделителя при выводе результатов отображается квадрат.
Замечание. В качестве подынтегрального выражения в функции int ( ) указана
переменная среды %. Этой переменной в качестве значения возвращается результат
выполнения последней команды. Поскольку последней является команда вычисле-
ния производной, то интегрируется именно то выражение, которое и надо интегри-
ровать. Использование этой переменной обычно позволяет существенно упрощать
вид команд и экономить время при их наборе. Однако злоупотреблять ею не стоит,
поскольку очень легко запутаться в логической схеме выполнения операций.

Если вместо точки с запятой поставить в качестве разделителя команд двоеточие,


то результат выполнения первой команды в ячейке отображаться не будет (рис. 6.15).

Рис. 6.15. Использование в качестве разделителя


команд двоеточия

Если все же нужно отображать результат выполнения всех команд (или некото-
рых), а отображение результатов их выполнения в одну строчку кажется малопри-
ятным, можно выполнить форматирование ячейки (или ячеек), где эти результаты
отображаются. Для этого соответствующая ячейка выделяется, а затем выбирается
команда Format^Cells (Формат^Ячейки). В открывшемся диалоговом окне
Format Cells (Формат ячеек) на вкладке Alignment (Выравнивание) нужно устано-

Глава 6. Совместное использование Excel и Maple 471


вить флажок опции Wrap text (Переносить по словам). В итоге содержимое ячейки
будет отформатировано, а разделитель (квадрат) интерпретируется как символ пе-
рехода к новой строке. Результат применения описанной процедуры к данным в
ячейке А2 (см. рис. 6.14) показан на рис. 6.16.
*х'2-а-соз(к),х):1п1(%.Ь=0,.1)")
Е
...P. I .Р . L

Рис. 6.16. Результат форматирования ячейки

Безусловно, в этом случае результат выполнения команд Maple выглядит доста-


точно элегантно.

Выполнение ссылок на ячейки


Хотя возможность вычислять в ячейках электронной таблицы различные сим-
вольные или численные выражения достаточно впечатляюща сама по себе, важно
уметь использовать в этих вычислениях данные, размещенные в ячейках электрон-
ной таблицы. Другими словами, в выражениях Maple практически всегда бывает не-
обходимо использовать ссылки на ячейки электронной таблицы. В этом случае фор-
мат вводимой в ячейку команды, содержащей ссылки на ячейки электронной табли-
цы, практически такой же, как и в предыдущем случае. Однако вместо переменных,
значения которых определяются в ячейках таблицы, указываются конструкции вида
&#, где символ & является обязательным, а вместо символа # указывается порядко-
вый номер в списке ячеек, перечисленных непосредственно после команды Maple
как такие, значения которых следует использовать при выполнении этой команды.
Команда, как и ранее, заключается в двойные кавычки. Ячейки в списке разделяются
запятой. Причем ссылаться можно не только на отдельные ячейки, но также и на
диапазоны, даже из других рабочих листов. Ссылки на диапазоны аналогичны тем,
что обычно выполняются в Excel.

[ Внимание! Запятая — это разделитель в англоязычной версии Excel. В зависимо-


сти от настроек системы разделитель может быть иным.
Ситуацию лучше все-таки изучить на конкретном примере. В качестве такого
рассмотрим реализацию в электронной таблице поиска решения квадратного урав-
нения (которое уже рассматривалось ранее). Решаться оно будет в символьном виде.
Для этого в ячейку А4 вводим формулу =Мар!е("а*хЛ2+Ь*х+с"), определяя, тем са-
мым, решаемое уравнение (рис. 6.17).
f. =Мэр1е("а*хд2-|-Ь*х+с")
.1
!_j Пример решения уравнения
2 :
.,; .
3 Уравнение Переиенная Решение
4 |a'x"2+b*x+c I

Рис. 6.17. Ввод формулы, определяющей квад-


ратное уравнение

472 Часть II. Решение задач


Замечание. Обратите внимание, что введенная выше формула задает, строго го-
воря, квадратный многочлен, а не уравнение. Это сделано специально, хотя необ-
ходимости в этом и нет (т.е. можно было ввести равенство). Дело в том, что для
решения уравнения будет использоваться функция solve ( ) . Как уже отмеча-
лось выше при описании функции, если ее первый аргумент не является уравне-
нием, то корень ищется из того условия, чтобы данное выражение обращалось в
нуль. Эта особенность и будет проиллюстрирована далее.

В ячейке В4 определим переменную, относительно которой уравнение будет


решаться. Поэтому в упомянутую ячейку вводится формула =Мар1е("х") (рис. 6.18).

=Maple("x")
J
1 | Пример решения уравнения

| 3 [Уравнение Переменная Решение


"1а*х"2+Ь*х+с Jx .1

Рис. 6.18. Переменная, относительно кото-


рой решается уравнение

Наконец, настал черед ввода формулы со ссылками на ячейки таблицы. Потребует-


ся вызвать функцию Maple solve ( ) , первым аргументом которой должно быть зна-
чение ячейки А4 (решаемое уравнение), а вторым — значение ячейки В4 (переменная,
относительно которой уравнение решается). Поэтому в ячейку С4, где и будет отобра-
жаться результат решения уравнения, вводим формулу =Maple("solve(&1 ,&2)",A4,B4).
В этой формуле после выполняемой команды Maple (это solve(&1 ,&2)) указаны две
ячейки: А4 и В4. Ячейка А4 является первой в списке, а ячейка В4 — второй. Отсюда
первым аргументом (ссылка на ячейку А4) функции solve ( ) указано &1, а второй ее
аргумент (ссылка на ячейку В4) — выражение &2. Результат выполнения этой коман-
ды представлен на рис. 6.19 (ширина ячейки С4 в целях наглядности увеличена).
Как видно, в символьном виде найдены оба решения уравнения. Причем удобство
использования Maple в Excel этим не ограничивается. Так, если изменить переменную
в ячейке В4, относительно которой уравнение решается, автоматически изменится и
решение. В последнем несложно убедиться, если в ячейку В4 ввести формулу
=Maple("b") (относительно параметра Ь уравнение линейно). Результат — на рис. 6.20.

Рис. 6.19. Результат решения уравнения

Глава 6. Совместное использование Excel и Maple 473


84 -г £ =Maple("b")
| j A ~i В j ..С : О
И j Пример решения уравнения

3 Уравнение ^Переменная :Решенне


^Иа*х«2+Ь*х+с |b |-(а*х"2+с)/х
HI .
Рис. 6.20. Изменение переменной, относи-
тельно которой решается уравнение

Однако это не единственно возможный способ использования ссылок на ячейки.


Можно, например, в ячейках электронной таблицы еще определять значения параметров
уравнения. Пускай эти параметры определяются последовательно в ячейках D4, Е4 и F4.
A
В этом случае в ячейку А4 вводится формула =Maple("&1*x 2+&2*x+&3",D4,E4,F4).
Результат показан на рис. 6.21 (предварительно в ячейку В4 введена старая формула
=Мар1е("х")).

А4 Н /Ь =Мар1е("&1*х*2+&2*x+83",D4,E4,F4)
/- J В ••:•.:-- Ч
с
:,. P. ! Е j F ; G
1 I Пример решения уравнения
J2J : ! _J
3 Уравнение Переменная Решение a b с
4 |»"?45'х+6 Jx -2.-3 1 5 6
5 ' I •

Puc. 6.21. Определение параметров уравнения через


ссылку

Меняя значения в ячейках из диапазона D4:F4, получаем решения для всевозмож-


ных квадратных уравнений. При этом могут возникнуть проблемы при вводе отрица-
тельных чисел. В частности, при попытке ввести отрицательное число в любую из
ячеек Е4 или F4, возникает ошибка, связанная с интерпретацией данных. При вводе
отрицательного числа в ячейку D4 этого не происходит. Причина в том, что в полино-
миальном выражении, куда подставляются данные из ячеек, второму и третьему
коэффициентам предшествует знак "плюс". Если в ячейки вводится отрицательное
число, то после подстановки в формулу два знака ("плюс" и "минус") следуют друг за
другом, и Maple такую ситуацию интерпретирует как ошибку. Поскольку перед пер-
вым коэффициентом знака нет, то для него эта проблема не актуальна.
Решение может быть разным. Например, можно заключать отрицательное число
в ячейке в скобки (рис. 6.22). В этом случае в Excel оно как число уже не интерпре-
тируется, но Maple совершенно корректно преобразует значение ячейки в то число,
которое нужно.

Е4 (-5)
i A .: _B L::,: \c... I J;
1 l Пример решения уравнения
Уравнение Переценили Решение
'х'«2-5*хч6 IX ~:3,2

Рис. 6.22. Использование отрицательных чисел

474 Часть II. Решение задач


Другой подход состоит в том, что изменения вносятся в формулу для вычисления
полинома. Можно воспользоваться скобками, в результате чего формула в ячейке А4
A
будет иметь вид =Maple("&1*x 2+(&2*x)+(&3)",D4,E4,F4). Наличие скобок гаранти-
рует корректную обработку ситуации, когда коэффициенты — отрицательные числа.
Принципиальным является тот факт, что решение ищется в аналитическом виде, да-
же если параметры уравнения являются числами. В этом можно легко убедиться, если
подобрать соответствующим образом значения для параметров уравнения (рис. 6.23).

; =Maple("solve(&1,&2)".A4.B4)
В о
1 ; Пример решения уравнения
Т: ' ' ; "'... ' III II I...L.ir.[I
3 .Уравнение Переменная Решение а _ Ь с
jfj*"244*x+1 J*I. 1-2+3*41/21. -2-3-П/211 Ti 4! ТГ
!
5

Рис. 6.23. Решение, содержащее радикалы

Коэффициенты на рис. 6.23 подобраны так, что решение содержит радикалы


(квадратный корень из целого числа). Если нужно получить численный результат,
следует функцию solve ( ) заменить на f solve ( ) . В этом случае формула в ячейке
С4 имеет вид =Maple("fsolve(&1,&2)",A4,B4), а решения представлены в виде деся-
тичных чисел (рис. 6.24).

С4
_J:.:P:J. I...!. F • G
1 Пример решений уравнения
_aj . : ....................... \ ..... 1 1 .
3 Уравнение Переменная Решение
3732050808. - 2Б7949192Д1

Рис. 6.24. Решение уравнения в численном виде

Однако теперь, т.е. при использовании функции f solve ( ) , получить аналитиче-


ское решение уже не удастся.

Создание графиков
Приложение Maple обладает уникальными возможностями в плане построения
двухмерных и трехмерных графиков. Эти возможности с успехом могут быть ис-
пользованы и при работе с Excel.
Что касается непосредственно Maple, то графики функциональных зависимостей,
заданных в явном виде, строятся с помощью функции plot ( ) . Аргументами этой
функции указываются выражение или функция, для которой строится график,
а также переменная, зависимость от которой отображается графически (лучше с ди-
апазоном ее изменения, однако если он не указан, то по умолчанию принимается
диапазон изменения переменной от -10 до 10). Самый простой случай подразуме-
вает вызов функции plot ( ) стандартными методами из рабочего листа Excel.
В качестве иллюстрации построим график функции Бесселя нулевого индекса.
С этой целью в ячейку ВЗ вводим формулу =Maple("plot(BesselJ(0,x),x=0..20)"). В ре-
зультате в рабочем листе Excel создается график упомянутой функции (рис. 6.25).

Глава 6. Совместное использование Excel и Maple 475


вз =Maple("plot(BesseU(0,x).x=0..20)")
е г о e
1 j График для функции Бесселя
[Maple Plot

Рис. 6.25- График функции Бесселя

Замечание. Фактически, команда, посредством которой график строится, имеет


вид plot (BesselJ(0, х) ,х=0 . . 2 0 ) . Здесь первым аргументом функции
plot ( ) указана функция Бесселя BesselJ (0, х) (первый ее аргумент — индекс
функции, второй — непосредственно переменная, от которой функция зависит).
Второй аргумент функции plot ( ) — это переменная с указанным диапазоном ее
изменения, т.е. х=0 . .20.
Построенный график можно масштабировать, перемещать и т.п. Для этого доста-
точно его выделить в рабочем листе. Все упомянутые манипуляции выполняются
так же, как и с прочими графическими объектами в рабочем документе.
Часто бывает недостаточно просто построить график. Важно иметь возможность еще
и задавать некоторые его параметры, вроде заголовка, типа и цвета линии и пр. Большую
часть этих параметров можно реализовать с помощью опций функции plot ( ) . Напри-
мер, если в ячейку ВЗ ввести формулу =Maple("plot(BesselJ(0,x),x=0..20,title=""Bessel
Function"",titlefont=[TIMESIBOLD,15],labels=[""x"",""JO(x)""])"), получим результат, как на
рис. 6.26.
В этом случае использована опция title, с помощью которой можно задать за-
головок для создаваемого графика. Заголовок указывается после знака равенства.
Непосредственно в Maple это должна быть текстовая строка, а текстовые строки в
Maple заключаются в двойные кавычки. Однако поскольку в Excel двойные кавычки
используются для выделения команд Maple, текстовые параметры следует заклю-
чать в удвоенные двойные кавычки (т.е. в кавычки, а потом еще раз в кавычки).
Кроме этого, в явном виде задан шрифт для отображения названия (опция
titlefont). Значением этой опции является список (заключенные в квадратные
скобки и разделенные запятыми элементы), определяющий тип (TIMES), стиль
(BOLD) и размер (15) шрифта. Последней указана опция labels, значение которой
также является списком, а его элементы (это текстовые параметры) задают надписи
у координатных осей.

476 Часть II. Решение задач


вз • =Maple("plot(BesselJ(0.x),x=0..20,title=""Bessel Function"
_B ; titlefont=[TIMES.BOLD,15],labels=["-x"","-JQ(x)""])")
1 _ i График для функции Бесселя
' iMaple Plot"]

Bencl Fenction

/, а

20

Puc. 6.26. Использование опций функции pi ot ()

Замечание. Для того чтобы в строке формул длинное выражение разбивалось на


несколько строк, используют комбинацию клавиш <Alt+Enter>, что и было сде-
лано при вводе формулы (см. рис. 6.26).

Это только некоторые из опций функции plot ( ) . В табл. 6.5 можно найти краткое
описание прочих опций этой функции. Для получения более полной справки читателю
следует обратиться к специальной литературе или справочной системе Maple.

Таблица 6.5. Опции функции plotQ

Опция Описание
adaptive Переход в режим (значение true, используемое по умолчанию)
эвристической разбивки интервала, на котором строится график
функции, на подынтервалы. Если опции adaptive присвоить зна-
чение false, режим будет отключен
axes Тип координатных осей: FRAME (рамка — точка пересечения осей в
левом нижнем углу рисунка), BOXED (обрамление — график отобра-
жается в рамке со шкалами по левой вертикальной и нижней гра-
ням), NORMAL (обычные — обычные, пересекающиеся в начале коор-
динат, оси) и NONE (никакие — координатные оси не отображаются)
axes font Шрифт для отображения надписей координатной шкалы. Значени-
ем является список с указанием типа шрифта (TIMES, COURIER,
HELVETICA и SYMBOL), стиля шрифта (например, BOLD
(полужирный), ITALIC (курсив) или BOLDITALIC (полужирный
курсив)), а также размера
color Цвет линии для отображения графика функции. Предопределенные
цвета: aquamarine (зеленовато-голубой), black (черный), blue
(синий), navy (темно-синий), coral (светло-красный), cyan
(голубой), brown (коричневый), gold (ярко-желтый), green
(зеленый), grey (серый), khaki (хаки), magenta (красный фуксин),

Глава 6. Совместное использование Excel и Maple 477


Продолжение табл. 6.5
Опция Описание
color maroon (красно-коричневый), orange (оранжевый), pink (розовый),
plum (темно-фиолетовый), red (красный), sienna (охра), tan
(желто-коричневый), turquoise (бирюзовый), violet (фиолетовый),
wheat (бледно-желтый), white (белый) и yellow (желтый)
coords Система координат, в которой отображается график, по умолчанию —
декартова система координат (cartesian). Кроме декартовой, попу-
лярными координатными системами являются эллиптическая
(elliptic), гиперболическая (hyperbolic), логарифмическая
(logarithmic), параболическая (parabolic) и полярная (polar)
discont Переход в режим (значение опции равно true) предварительной
проверки на предмет наличия точек разрыва. По умолчанию значе-
ние опции равно f a l s e — т.е. режим отключен
filled При значении true заполнение цветом области между графиком
функции и осью абсцисс. Значение по умолчанию — f a l s e
font Шрифт для отображения текстовых надписей. Значение — список с
типом, стилем и размером шрифта
labels Опция определения надписей для осей координат. В качестве значе-
ния опции указывается список из двух строк — первая является
надписью для оси абсцисс, вторая — для оси ординат
labeldirections Значением опции является список с двумя элементами, каждый из
которых может принимать значение HORIZONTAL (надписи у коор-
динатных осей выполняются по горизонтали — по умолчанию для
обеих осей) или VERTICAL (надписи выполняются по вертикали)
labelfont Шрифт надписей у координатных осей
legend Легенда графика. Если графиков несколько, значением опции явля-
ется список, элементы которого — строки, являющиеся легендами
этих графиков
linestyle Стиль линии. Значение может быть указано в виде числа в диапазо-
не от 1 до 4 или, что одно и то же, названием: SOLID (сплошная),
DOT (пунктирная), DASH (штрихованная) и DASHDOT
( штрихпунктирная )
numpoints Минимальное число базовых точек для построения графика (по
умолчанию 50)
resolution Разрешение устройства отображения графики по горизонтали в
пикселях (по умолчанию равно 200)
sample Список параметров, которые используются для предварительного
определения вида кривой
scaling Масштаб отображения графика. Возможны два значения:
CONSTRAINED (единый) и UNCONSTRAINED (различный). Значением
по умолчанию является UNCONSTRAINED
style Стиль линии. Допускаются значения LINE (линия), POINT (точка),
PATCH (заливка) или PATCHNOGRID (заливка без отображения гра-
ниц). По умолчанию используется значение LINE

478 Часть II. Решение задач


Окончание табл. 6.5

Опция Описание
symbol Тип символов для отображения базовых точек. Возможные значе-
ния таковы: BOX (квадрат), CROSS (крест), CIRCLE (круг), POINT
(точка) или DIAMOND (ромб)
symbolsize Размер символов базовых точек. По умолчанию размер символов
равен 10 пунктам
thickness Опция задает толщину линии отображения графика. Возможные
значения — число от 0 до 15. Значением по умолчанию является О
tickmarks Значение опции — список, элементы которого (целые неотрица-
тельные числа) определяют минимальное число отображаемых на
графике отметок на шкалах. Первый параметр — для оси абсцисс,
второй — для оси ординат
title Заголовок рисунка. Значением опции является строка символов.
По умолчанию заголовок не отображается. Если нужно вывести
многострочный заголовок, для перехода на новую строку использу-
ют директиву \п
titlefont Шрифт заголовка рисунка
view Значение опции — список, элементами списка являются два диапа-
зона, в пределах которых по оси абсцисс и ординат отображается
график функции. По умолчанию отображается весь график
xtickmarks Опция определяет минимальное число отображаемых меток по оси
абсцисс
у tickmarks Опция определяет минимальное число отображаемых меток по оси
ординат

Как и в ситуации с рассмотренными ранее математическими функциями, при по-


строении графиков можно с успехом использовать данные из электронных таблиц.
Метод выполнения ссылок на ячейки таблицы в командах Maple уже описывался, он
остается справедливым также и при работе с графическими объектами, т.е. при по-
строении графиков.
Предположим, что нужно построить график функции f(x) = exp(a;c)cos(fcc) на ин-
тервале от с до d. Параметры a,b,cKd определяются в ячейках таблицы.
Для решения задачи заносим в ячейки диапазона В4:В7 значения для параметров
(рис. 6.27): После этого в ячейку D3 вводится формула =Maple("plot(exp(&1*x)*
cos(&2*x),x=&3..&4)",B4,B5,B6,B7). Результат ее выполнения (т.е. график зависимо-
сти) представлен на рис. 6.27 (график предварительно несколько изменен в размерах).
Если теперь изменить один из параметров, соответствующие изменения автома-
тически будут внесены и в график зависимости. Например, на рис. 6.28 видно, как
будет выглядеть график функции, если изменить значение коэффициента в аргу-
менте косинуса.
Важная особенность построения графиков функций с помощью Maple состоит в
том, что нет необходимости функцию табулировать, а это позволяет существенно
экономить время, силы и, самое главное, не приводит к загромождению рабочего до-
кумента второстепенными данными.

Глава 6. Совместное использование Excel и Maple 479


ft =Мар1е("р1о1(ехр(&ГхГсо5(&2*х),х=&3..8,4)",В4,В5.В6,В7)

Рис. 6.27. График функции строится по значениям параметров в ячейках таблицы


Excel

...А ......... I : ..... в :•:..• Н I


1 \ Создание графика

Значение Maple Plot


i -Г

А ,-.

Рис. 6.28. Внесение изменений в исходные данные

Практически так же, как двухмерные графики, строятся трехмерные поверхно-


сти. Для этого используется функция p l o t 3 d ( ) . Первым аргументом функции ука-
зывают отображаемую зависимость (это может быть функция или выражение), по-
сле чего следуют две переменных, для которых задается диапазон изменения.
Пример использования функции plotSd ( ) приведен на рис. 6.29.

480 Часть II. Решение задач


вз =Maple("plot3d(sin(x)*sin(y).x=O..Pi.y=O..Pi)")
D

Рис. 6.29. Отображение поверхности

Строится поверхность для зависимости fix, у) = sin а переменные изменя-


ются в пределах от нуля до л.
Как видно из рис. 6.29, если ограничиться только указанием отображаемой зави-
симости и области изменения переменных, то поверхность выглядит, мягко говоря,
не совсем приглядно — ни координатных осей, ни надписей. Поэтому обычно, кроме
упомянутых аргументов, задают еще некоторые опции. Пример — на рис. 6.30.
Формула, введенная в ячейку ВЗ, имеет вид:
=Maple("plot3d(sin(x)*sin(y),x=O..Pi,y=O..Pi,axes=FRAME,title=""3D Plot"",titlefont=|TIMES,
BOLD,20],font=[TIMES, ROMAN, 15])"). Практически все из использованных здесь
опций такие же, как и у функции создания двухмерной графики, и особых коммен-
тариев не требуют. Безусловно, это далеко не все опции функции p l o t 3 d ( ) .
Более полно они представлены в табл. 6.6.

вз =Maple("plol3d(sin(x)*sin(y),x=O..Pi,y=O..Pi,ai<es=FRAME.
Ц] title="3D Plot"",titlefont=[TIMES,BOLD,20|,font=[TIMES.ROMAN,15])")

3D Plot
i ...

4-

Puc. 6.30. Использование опций функцииplot3d()

Глава 6. Совместное использование Excel и Maple 481


Таблица 6.6. Опции функции plotSdQ

Опция Описание
ambient light Список [r,g,b], элементы которого (числа в диапазоне от 0 до 1)
задают интенсивность красного (г), зеленого (д) и синего (Ь) цветов
axes Тип координатных осей. Возможными значениями являются
BOXED, NORMAL, FRAME И NONE
axes font Шрифт для меток вдоль координатных осей
color Опция установки цвета
contours Опция задает количество контуров, которое по умолчанию равно 10
coords Тип координатной системы
filled Опция заполнения области под поверхностью (если значение равно
true). Значением по умолчанию является f a l s e
font Опция установки шрифта
grid Список из двух элементов, которые определяют число базовых то-
чек по каждой из горизонтальных координатных осей
gridstyle Опция может принимать значение rectangular (сетка поверхно-
сти состоит из прямоугольных ячеек) или triangular (сетка по-
верхности состоит из треугольных ячеек)
labeldirections Направление выполнения надписей у координатных осей. Значени-
ем опции является список из трех элементов. Каждый элемент, со-
ответствующий координатной оси, может принимать значение
HORIZONTAL (ориентация по горизонтали, используется по умолча-
нию) или VERTICAL (ориентация по вертикали)
label font Шрифт для меток у координатных осей
labels Список из трех элементов, задающий отображаемые вдоль коорди-
натных осей надписи
light Эффект подсвечивания. Значением опции является список из пяти
параметров. Первые два параметра задают полярный и азимуталь-
ный углы направления подсветки. Три других параметра — числа в
диапазоне от 0 до 1, задающие долю красного, зеленого и синего
компонентов, соответственно, для цвета подсветки
lightmodel Опцией задается одна из стандартных моделей подсветки поверхно-
сти. Допускаются такие значения: попе (не используется ни одна из
моделей), lightl, Iight2, lights и Iight4
lines tyle Тип линии. Возможны такие значения: SOLID (сплошная), DOT
(пунктирная), DASH (штрихованная), DASHDOT (штрихпунктирная).
Можно также указать число в диапазоне от 1 до 4
numpoints Минимальное число точек (по умолчанию 625), на основе которых
вычисляется вид поверхности
orientation Опцией задается направление просмотра трехмерного графика.
Значением является список из двух элементов — азимутального и
полярного углов, определяющих направление

482 Часть II. Решение задач


Окончание табл. 6.6

Опция Описание
projection Значением опции является число в диапазоне от 0 до 1, определяющее
ракурс, в котором просматривается поверхность. Значением могут быть
также FISHEYE (выгнутый), NORMAL (нормальный) и ORTHOGONAL
(ортогональный), что соответствует значениям 0, 0. 5 и 1
scaling Способ масштабирования. Значения такие же, как и в случае двух-
мерных графиков: UNCONSTRAINED ИЛИ CONSTRAINED
shading Способ раскраски поверхности. Возможные значения таковы: X Y Z ,
XY, Z, ZGRAYSCALE, ZHUE ИЛИ NONE
style Способ отображения поверхности. Значениями опции могут быть:
POINT (точка), HIDDEN (скрытый), PATCH (фрагментарный,
используется по умолчанию), WIREFRAME (сетка), CONTOUR
(профиль), PATCHNOGRID (фрагментарный без базовых линий),
PATCHCONTOUR (фрагментарный с профильными линиями) или
LINE (линия)
symbol Тип символов для отображения поверхности: BOX (квадрат), CROSS
(крест), CIRCLE (окружность), POINT (точка) и DIAMOND (ромб)
symbolsize Размер символа (по умолчанию 10)
thickness Толщина линий. Значение — целое число от 0 (значение по умолча-
нию) до 3
tickmarks Список из трех элементов, определяющих минимальное необходи-
мое число отметок вдоль координатных осей
title Заголовок графика
titlefont Шрифт для отображения заголовка
view Опцией определяется область отображения графика. Значением
может указываться либо диапазон, либо список из трех диапазонов.
В первом случае диапазон определяет минимальное и максимальное
значения вдоль вертикальной оси, во втором — для каждой из осей
соответственно

Таким же точно образом, как для двухмерных графиков, можно выполнять ссыл-
ки на ячейки таблицы и при вызове функции plot3d ( ) .

Настройка параметров Maple


при работе с Excel
Подключив надстройку Maple Excel Add-in, в рабочих листах Excel можно не только
использовать функции Maple, но и контролировать ряд важных параметров, имеющих
отношение к глобальным настройкам. Кроме этого, к услугам пользователя предлагается
ряд весьма полезных утилит, с помощью которых легко выполнять вставку функций
Maple или получать справку по надстройке. Обо всем этом будет сказано далее.

Глава б. Совместное использование Excel и Maple 483


Выполнение настроек
Прежде всего проясним ситуацию с тем, какие настройки (и как) может выпол-
нять пользователь при работе с надстройкой Maple Excel Add-in. Для этого следует
открыть диалоговое окно Maple Excel Options (Параметры Maple) на вкладке
Maple Options (Параметры Maple), которое показано на рис. 6.31.

Maple Е»сЫ Option»

Packages j injiafization aid User Packages Meqafe

• Cancel CalaHafen Dialog


* Enabled

Calculation Tme Lim»


Г Enabled

•or Message Options -


f~ Message ^ None

e Output Format
Mapde f^eciston: I 10 cB^s of comput«itai

f"1 Mapte F orm at ^Excelformat


Restart Maple

Accept

Puc. 6.31. Вкладка Maple Options диалогового окна Maple Excel Options

Окно открывается после щелчка на центральной кнопке панели Maple с изобра-


жением кленового листа и трех галочек. Назначение флажков опций и переключате-
лей в окне Maple Excel Options описано ниже.
В разделе Cancel Calculation Dialog (Окно отмены вычислений) есть флажок оп-
ции Enabled (Активизировать). Установив данный флажок, можно перейти в режим,
при котором в процессе выполнения вычислений, если на это уходит определенное
время, выводится диалоговое окно с предложением прекратить процесс вычисления.
Диапазон времени (в секундах), по истечении которого выводится диалоговое окно,
указывается в поле Displayed After (Отображать после).
Можно также установить верхний предел по времени, отводимый для вычисле-
ний. В этом случае в разделе Calculation Time Limit (Предел времени вычислений)
устанавливается флажок опции Enabled (Активизировать), а в поле справа следует
указать интервал в минутах.
На случай возникновения ошибок (а они, скорее всего, возникнут, особенно если
опыта работы с Maple недостаточно) есть возможность предопределить способ выве-
дения соответствующего сообщения. Так, в разделе Warning/Error Message Options
(Параметры сообщений) можно установить переключатель в одно из следующих по-
ложений: Sound (Звук) — звуковой сигнал, Message (Сообщение) — выводится диало-
говое окно с сообщением об ошибке и None (Нет) — сообщение появляется в самой ячейке.
Однако самыми эффективными, с точки зрения непосредственно вычислений,
являются настройки, выполняемые в разделе Numeric Output Format (Формат выво-
да). Здесь можно в поле Maple Precision (Точность Maple) задать количество знача-
щих цифр, используемых в процессе вычислений (по умолчанию 10). Кроме этого, в

484 Часть II. Решение задач


данном разделе определяется формат вывода численного результата. Если устано-
вить переключатель в положение Maple Format, данные будут выводиться в формате
Maple. С точки зрения Excel такие значения интерпретируются как текст. С другой
стороны, в этом случае отображаемые данные не округляются. По умолчанию пере-
ключатель установлен в положение Excel Format, в силу чего данные преобразуются
к численному формату Excel.
Для того чтобы изменения вступили в силу, следует щелкнуть на кнопке Accept
(Принять). Для отмены изменений достаточно щелкнуть на кнопке Cancel
(Отмена). Перезагрузка вычислительного устройства Maple осуществляется с по-
мощью кнопки Restart Maple (Перезагрузить Maple).
Многие функции Maple, как уже отмечалось ранее, становятся доступны только
при подключении специальных пакетов. В рабочем листе Maple это делается с по-
мощью функции w i t h ( ) , аргументом которой указывается подключаемый пакет.
При работе с Excel подключение пакетов осуществляется на вкладке Packages
(Пакеты) диалогового окна Maple Excel Options (Параметры Maple). Вид этой
вкладки представлен на рис. 6.32.

Maple Excel Options

Packages ] MMiation and User Packages | MapteC

Integral Transforms

addtable
fourier
fouriercos 1
fouriersin
hankel
hilbert d
: Packages Included:

AcWSetected Package To List...

Reimve Setecied Package From List...

Accept

Puc. 632. Вкладка Packages диалогового окна Maple Excel Options

В верхнем раскрывающемся списке на этой вкладке выбирается нужный пакет.


В поле под списком при этом отображаются функции выбранного пакета. Для того
чтобы подключить выбранный пакет, следует щелкнуть на кнопке Add Selected
Package To List (Добавить пакет в список). Подключенные пакеты отображаются в
поле Packages Included (Подключенные пакеты). Для отключения пакета его нужно
выделить среди элементов в упомянутом поле и щелкнуть на кнопке Remove Selected
Package From List (Удалить пакет из списка). Для подтверждения изменений допол-
нительно потребуется щелкнуть на кнопке Accept (Принять).
Наконец, на вкладке Initialization and User Packages (Пакеты инициализации и
пользовательские) определяется размещение файла инициализации и библиотек
пользователя. Вкладка показана на рис. 6.33.

Глава 6. Совместное использование Excel и Maple 485


Maple Excel Options

Packages InBafeattan and User Packages Maple Options I

Mapie Initialization Fie:

Packages Included (Maple» directories)

Add Package ToШ...

Remove Selected Package From List..

Accept

Puc. 6.33. Вкладка Initialization and User Packages диалогового


окна Maple Excel Options

Файл инициализации указывается в поле Maple Initialization File (Файл инициа-


лизации), а для поиска файла в системе можно использовать кнопку Browse
(Просмотр). Подключенные библиотеки отображаются в поле Packages Included
(Maple .lib directories) (Подключенные пакеты), а подключаются они с помощью
щелчка на кнопке Add Package To List (Добавить пакет в список) — при этом появ-
ляется системное диалоговое окно открытия файла. Удалить библиотеку из списка
можно с помощью кнопки Remove Selected Package From List (Удалить пакет
из списка).

Вставка функций
Даже опытные пользователи далеко не всегда помнят название функций Maple,
да это, пожалуй, и не нужно. Достаточно знать некоторые, наиболее часто исполь-
зуемые. Тем не менее, иногда приходится обращаться и к довольно редко испо-
льзуемым функциям или искать такую, которая лучше всего соответствовала бы ре-
шаемой задаче. В надстройке Maple Excel Add-in есть специальная утилита, позво-
ляющая выполнять вставку функций в формулы в удобном и наглядном режиме.
Запускается она щелчком на кнопке панели Maple (четвертая слева кнопка с изо-
бражением кленового листа и волшебной палочки). В результате открывается диа-
логовое окно Maple Function Browser (Вставка функции Maple). Там содержится не-
сколько полей. Функции разбиты по типам и подтипам. Выбирая последовательно
тип функции, можно получить доступ практически ко всем основным функциям
Maple. Например, на рис. 6.34 выбрана функция выполнения преобразования Фурье
f ourier ( ) . Добраться до нее можно, последовательно выбирая элементы в списках
(слева направо). При выборе очередного элемента в расположенном справа поле
отображается список подтипов функций или сами функции на последнем уровне
структуризации.
После щелчка на кнопке Next (Далее) открывается еще одно диалоговое окно,
в котором можно задать параметры функции (рис. 6.35).

486 Часть II. Решение задач


В этом окне представлена краткая справка по функции и поля для ввода аргумен-
тов. Для каждой конкретной функции эти параметры, очевидно, разные. Однако об-
щий принцип остается неизменным. В частности, в рассматриваемом случае в поле
Л
ехрг указывается преобразуемое выражение (ехр ( - х 2 ) ), в поле t — параметр, по
которому преобразование выполняется (х), а в поле W — переменная для Фурье-
образа (q) (рис. 6.36).

I Maple Function Biawset

Algebra Differential Calculus


Basic Mathematics"" icitdiff invfoutiet
Programming invlaplace
Differential Equatic|| laplace
Evaluation
Finding Roots, FacJT
Number Theory
Numbers j-J

Puc. 634. Выбор функции Maple

M aple Function Wizard: inttiamllawier]

СаШпд Sequence; 1 inrtrans['fourier'K expr, t, w. option )


d
'•••'Function Description -
. « ' the Fourier transform

••' Parameter Descriptions


•, 1 '; expr : 'an algebraic expression
\. t : the variedethett ех|зг is befrig transformed wihcespeci to
1 w .: .fhft rMtrmvifsr. nf tnwwirnn . ..,•.... ;. . . . ' . ......
Required Parameters: Optional Parameter
exp.' J г J

Puc. 6.35. Окно ввода функции

Maple Function Wizard mttianiHaunetl

Cefiing Sequence, j inttrans['fourier'K expr, t, w, option)


'
: Function Description
; the Fourier transform

i: v Par aroeter Descriptions


i expr; an algebraic expression
> t : the variable thai expr is bemg transformed svfth respect io

' Required Parameters: C^jtionat Parameter

W |q~
J

Puc. 6.36. Ввод аргументов функции

Глава б. Совместное использование Excel и Maple 487


После щелчка на кнопке ОК получаем результат (рис. 6.37).
Замечание. В строке формул можно видеть точку с запятой в конце команды.
Ее наличие не является обязательным. Кроме того, сама команда заключена в
квадратные скобки и одинарные кавычки, а перед ней указан пакет, в котором эта
функция определена.

А1 p =Maple( inttrans(Tourier']( ехр(-хл2). х. q );")


A - B^i : С , D I E ' •• i' F
•i |"rti; )*exp(-1/4V2)
2 , j i
H ;

Рис. 6.37. Результат выполнения преобразования Фурье

Следует отметить, что функции из пакетов в Maple можно использовать, и не вы-


полняя непосредственного подключения пакета. В этом случае необходимо в яв-
ном виде указывать пакет для вызываемой функции. Если пакет подключен, то
достаточно указать только название функции, т.е. обращаться к ним, как в случае
использования встроенных функций Maple.

Использование справочной системы


Много полезной информации можно почерпнуть из справочной системы, предостав-
ляемой к услугам пользователя в рамках использования надстройки Maple Excel Add-in.
Для получения доступа к справке следует щелкнуть на самой правой кнопке панели
Maple (кнопка со знаком вопроса). В результате открывается диалоговое окно, показан-
ное на рис. 6.38.
При первом отображении окно практически не содержит полезной информации.
Для того чтобы такая полезная информация в нем появилась, нужно в поле
Help Topic (Тематическая справка) ввести ключевое слово или фразу, для которого
следует отобразить справку. Однако лучше все же воспользоваться кнопкой Browse
(Просмотр). После щелчка на ней открывается диалоговое окно Maple Help Browser
(Просмотр справки Maple), в котором можно выбрать тот элемент, по которому тре-
буется справка (рис. 6.39).
После того как' нужный элемент выбран, достаточно щелкнуть на кнопке
Display Topic (Показать справку). Результат можно наблюдать на рис. 6.40.
Таким образом, в диалоговом окне Maple Help (Справка Maple) будет отображена
нужная информация. В рассматриваемом случае это данные об уже упоминавшейся
функции f ourier ( ) . В частности, в разделе Description (Описание) содержится
описание функции (как она определяется математически), а в разделе Usage
(Использование) приведены правила ее вызова.
Щелчок на кнопке ОК диалогового окна Maple Help (Справка Maple) приводит к
его закрытию. Если же щелкнуть на кнопке Using Maple in Excel (Использование
Maple в Excel), то появится стандартная системная справка относительно методов
использования надстройки.

488 Часть II. Решение задач


Help Topic:

f Description

Usage

Using Mapte in Exce)

Puc. 6.38. Диалоговое окно справки

Рис. 6.39. Диалоговое окно Maple Help Browser

Hefc Topic; 1 trrttr ans ,foui

r - Desci^Flion
; inttcans[CouE.ier3 " Fourier transform
1 description
I - The fourier function applies the Fourier transformation to expc vith
f'j.'"respect to t, using the definition
infinity

j - Usage •-- - —,-"


i Calling Sequence
fourier(expr, t,

Parameters
expr - expression, equation, or set of ecpaations and/or expressions to
I be transformed

Usmg Mapte in Excel

c. 6.40. Вывод справочной информации

ЛОЛ
Глава 6. Совместное использование Excel и Maple 4оУ
Совместное использование данных
в Maple и Excel
Несмотря на достаточно высокий уровень интегрируемости Maple в Excel, позво-
ляющий с успехом использовать командные возможности Maple прямо в рабочих
листах электронных таблиц, иногда возникает необходимость пересылать данные из
одного приложения в другое. Здесь остановимся на самом простом способе такого
обмена данными — фактически, через буфер обмена. Единственным принципиаль-
ным моментом при этом является то, что такие данные будут копироваться не с по-
мощью стандартных команд Excel, а посредством утилит подключенной надстройки
Maple Excel Add-in. В этом случае данные специальным образом форматируются,
что существенно упрощает всю процедуру.

Копирование данных из Excel


Если нужно скопировать данные из рабочего листа Excel, то, скорее всего, эти
данные нужно копировать именно как таблицу. С другой стороны, в Maple можно
использовать таблицу как математический элемент. Использование для копирова-
ния данных возможностей надстройки позволяет автоматически производить нуж-
ные преобразования. Например, предположим, необходимо скопировать данные из
диапазона ячеек А1 :В2. Для этого указанный диапазон в рабочем листе выделяется,
после чего следует щелкнуть на первой из кнопок панели Maple (рис. 6.41).

Рис. 6.41. Копирование данных из рабочего листа


А1

После этого в рабочем документе приложения Maple нужно выполнить вставку


из буфера (делается это с помощью выбора команды Edit^Paste, например). Резуль-
тат можно видеть на рис. 6.42.
В рабочем документе Maple, как видим, после копирования появляется команда,
определяющая матрицу. Убедиться в последнем легко, если эту команду выполнить
(навести на нее курсор и нажать клавишу <Enter>). В результате, как и следовало
ожидать, в области вывода внизу под командой появится матрица (рис. 6.43).
Кроме этого, аналог электронной таблицы может использоваться прямо в рабочем
документе Maple. Чтобы вставить такой объект в рабочую область, в приложении
Maple следует выбрать команду Insert^Spreadsheet (Вставка<=> Таблица) (рис. 6.44).
Результат выполнения этой команды можно видеть на рис. 6.45.
С подобной таблицей можно работать практически так же, как и с электронной таб-
лицей Excel, хотя, конечно, особенности имеются. Например, при вводе формул не ис-
пользуется начальный знак равенства, и ссылке на ячейку предшествует знак тильды.
Кроме того, в эту таблицу можно скопировать данные из таблицы Excel. В частности,
если выделить какую-то ячейку в таблице Maple (пускай это будет В2) и затем выпол-
нить вставку из буфера, данные будут скопированы в таблицу (рис. 6.46).

490 Часть II. Решение задач


О Maple В - (Unfilled (1)-fS
f £Ь £d» View Insert Foimal

ЗШШШ.Ш]
[> Matrix (1 . 2 , 1 2, { , (1,2) -2, (2,1)=3, ( 2 , 2 ) - 4 } > ,-

Time: 1.2s . Bytes: 3.08M ; AvaSabte: 6ЭОМ

Puc. 6.42. Результат копирования данных в документ Maple

ID Maple 8 |Unlilled(l) |Seiver1|]


£fc Ed» Vjew Insert Fojmal Window

Matrix (1. , 2 , 1 . . 2 , ( (:t, 1) = 1, ( 1 , 2 ) «2, ( 2 , 1 ) = 3 , ( 2 , 2) = 4 ) )

3 4j

: !
i Time: 1.2s ' Bytes: 3.06M Avalabte: 6Э1М

PMC. 6.43. Результат выполнения скопированной команды

О Maple 8 - [Unfilled (1 ] - [Seive, 1 Ц p-|a|x;


; ре £<Й Уюп , Imeil Fottnai u.:lalx;

Standard Math OikR


t^l •/ \i Mente Input Ш»М
Matrix (I Standard Math Input СШЗ 2)=2,(2,1)=3,(2,
r Execution Stoup
' "
I

Insert a new spreadsheet

Puc. 6.44. Вставка в документ Maple таблицы

Глава 6. Совместное использование Excel и Maple 491


О Maple H - (Unfilled (l)-ISeivet 1Ц •UDlxl
File £d« View Insert FomMt Spreadsheet Wndow Hdp

[Hi ил
Matrix (1 . 2 , 1 , 2 , { (1,1)-1, (1,2) =2, ( 2 , 1 ) =3 , ( 2 , 2 ) =4» ,

3 4

•Г I »П

Tine: 1.2s ; Bytes: 3.0SM i Avaiable:634M

. 6.45. Таблица в документе Maple

ID Maple 8 - Illntilled (1) - ISeivet 111


; £Je £<« Vie«i {ntert FotiMt Sf»eatteheet БФ
"
ЩЩ
Matrix (1. . 2 , 1 , . 2 , { <1,1)-1, (1,2) =2, (2,1)=3, ( 2 , 2) = 4 1 ) ,-
1 2] U

,. 3 A
I
A B C D
I I 1 1
''.f

j .. ..1 +
4

5 ,
<l о
; Tin»: 1.2s • Bytes: 3.06M ; Available: 694M

Puc. 6.46. Копирование данных в таблицу

При этом следует иметь в виду, что копируются только значения ячеек исходной
таблицы Excel. Другими словами, если копируемые ячейки содержат формулы, то
при копировании эти формулы не запоминаются, копируется только текущее значе-
ние ячейки.

Копирование данных из Maple


Несмотря на то, что в Maple есть свои таблицы, функционально с приложением
Excel — в плане возможностей обработки данных в таблицах — это приложение вряд
ли может конкурировать. Поэтому актуальной является и задача переноса данных из
документа Maple в рабочий лист Excel. Для этого соответствующие данные в табли-
це выделяются и копируются в буфер обмена (рис. 6.47).
После этого нужно в рабочем листе Excel выделить ту ячейку или диапазон, куда дан-
ные будут копироваться, и щелкнуть на второй слева кнопке панели Maple (рис. 6.48).
После щелчка на этой кнопке данные копируются в таблицу Excel (рис. 6.49).

492 Часть II. Решение задач


£te £tft View Insert Fnmat

il ШШаМ£] 1-1Т1И ИЩ] H±lт К№У Ш Ш Е


,1)=1,(1,2)=2,<2,l)-3,(2,2)=4}),

'
3 4

1.2s IBtfes-.З.ОбМ l Available: 634M

Рис. 6.47. Копирование данных из рабочего документа Maple

Рис. 6.48. Копирование данных в рабочий лист

Рис. 6.49. Данные из Maple скопированы в рабочий


лист Excel
И
э '

Хотя выше описаны достаточно простые (в плане получаемого результата) опе-


рации, однако, несмотря на всю их кажущуюся простоту, обычным копированием в
буфер обмена такого эффекта добиться весьма проблематично. Использование над-
стройки существенно упростит процесс взаимодействия приложений.

Примеры решения задач


Ниже предлагаются некоторые задачи, которые могут быть решены в Excel с ис-
пользованием возможностей надстройки Maple Excel Add-in. Задачи эти достаточно
просты и имеют своей целью проиллюстрировать те аспекты работы с Maple вообще
(и надстройкой в частности), которые излагались в этой главе.

Разложение функции в ряд Тейлора


Очень часто при решении практических задач приходится иметь дело с разложе-
нием функций в ряды и, в первую очередь, в ряд Тейлора.

Глава 6. Совместное использование Excel и Maple 493


Замечание. Разложением функции fix) в ряд Тейлора в окрестности точки х = х„
называется представление этой функции в виде бесконечной суммы
- ^ C—л; 0 )". Если этот ряд ограничить конечным числом слагаемых,
п\
можно получить приближенное выражение для функции.
В Maple предусмотрены достаточно широкие возможности для выполнения по-
добного рода разложений, и, подключив надстройку Maple Excel Add-in, этими воз-
можностями можно воспользоваться. Рассмотрим следующий пример на эту тему.

Задача 6.1. Разложить в ряд Тейлора функцию fix) = х/(2+х ) в окрестности точки
х0 = 0 до третьей степени включительно

Реализация этой задачи в электронной таблице представлена на рис. 6.50.

С6 =Maple("laylof(&1,x=&2,&3)",C3.C4.C5)
В
I
1 ; Разложение функции"'в ряд Тейлора
......

3 [Функция f(x)= (х+1)/(2+хй2)


£ [ ] Точка хО- | О
Степень остатка
Ряд Тейлора N- • 4^
L(x)- lseries(1/2+1/2*x-1/4'x«2-1/4*x«3+0(xM).x.4H'

Рис. 6.50. Разложение функции в ряд Тейлора

Решение основывается на использовании функции Maple taylor ( ) , первым


аргументом которой указывается функция или выражение, раскладываемое в ряд.
Второй аргумент — переменная, по которой выполняется разложение с указанием
точки (значения), в окрестности которой функция раскладывается в ряд. Наконец,
третий аргумент — это степень остатка ряда (порядок отбрасываемого слагаемого
ряда), которая на единицу больше степени последнего члена ряда. В табл. 6.7 приве-
дена информация о том, какие данные вводятся в ячейки электронной таблицы.
Эта информация относится только к тем ячейкам, которые непосредственно исполь-
зуются в процессе вычислений.

Таблица 6.7. Разложение функции в ряд Тейлора

Ячейка Назначение Вводимое значение или формула


СЗ Раскладываемое в ряд Тейлора =Мар1е("(1+х)/(2+хЛ2)")
выражение
С4 Точка, в окрестности которой вы-
полняется разложение в ряд Тейлора
С5 Степень отбрасываемого слагаемого
(степень остатка ряда)
С6 Ряд Тейлора для функции =Maple("taylor(&1,x=&2,&3)",C3,C4,C5)

494 Часть II. Решение задач


Как видно из рис. 6.50, ряд Тейлора отображается как аргумент в выражении
series. Большая литера О является индикатором остатка ряда. Кроме этого, указы-
вается точка, в окрестности которой разложение выполнено (для нулевого значе-
ния — просто переменная разложения), и степень остатка.
Если нужно поменять точку разложения или степень остатка, достаточно внести
соответствующие изменения в ячейки С4 и С5. Результат в ячейке С6 изменится ав-
томатически.

Параметрическая производная
Приложение Maple незаменимо и в тех случаях, когда нужно вычислить производ-
ную, особенно если функция задана в параметрическом виде, в силу чего в параметри-
ческом виде вычисляется и производная. О параметрических производных речь уже
шла в четвертой главе. Однако с использованием надстройки Maple Excel Add-in такие
производные вычисляются не только численно, но и в символьном виде. Рассмотрим
следующий пример.

Задача 6.2. Вычислить параметрическую производную для функции, заданной]


системой уравнений x(t) - 1/(1 + г) и y(t) = ~t/(l + t)2, параметр t изменяется от нуля
________ . _^

Для решения этой задачи следует в первую очередь определить функциональные


зависимости абсциссы дг(г) и ординаты y(t) графика от параметра. Затем, в соответствии
с определением параметрической производной, вычисляется отношение f(i) = y '(t)/x'(t).
Реализация задачи в таблице Excel представлена на рис. 6.51.

=Мар1е("х(1)")

1 Параметрическая производная
"
_ .......
3_jПервое уравнение !х ;= proc (t) options operator, arrow; 1/(1 +t) end proc ;
_4_j Второе уравнение у :~ proc (t) options operator, arrow; -t/(1+t)A2 end proc
5 ! Уравнение производной f :- proc (t) options operator, arrow; simpljfy(diff(y(t),tydiff(x(t),t)) end proc
ц „
^Проверил
_J Первое уравнение x(t) L/il+tL
IjH Второе уравнение yf() -t/(1 +t)"2
I И {Уравнение производной dy/dx -(-1 +t)/(1 +t)
IS, •Maple Plot

<

Puc. 6.51. Вычисление параметрической производной

Глава 6. Совместное использование Excel и Maple 495


Для большей наглядности в этом же листе построены графические зависимости
для исследуемой функции, заданной в параметрическом виде, а также ее производ-
ной, определенной, как и функция, в параметрическом виде.
Формулы и значения, которые вводятся в ячейки электронной таблицы, важные
с точки зрения выполняемых в таблице вычислений, описаны в табл. 6.8.
Таблица 6.8. Вычисление параметрической производной
Ячейка Назначение Вводимое значение или формула
83 Функциональная зависимость от =Maple("x:=t->1/(1+t)")
параметра абсциссы
A
84 Функциональная зависимость от =Maple("y:=t->-t/(1+t) 2")
параметра ординаты функции
85 Функциональная зависимость от =Maple("f:=t-
параметра производной (точнее, >simplify(diff(y(t),t)/diff(x(t),t))")
ее ординаты)
88 Отображение функциональной =Мар1е("х(1)")
зависимости от параметра для
абсциссы
89 Отображение функциональной =Maple("y(t)")
зависимости от параметра для
ординаты функции
В10 Отображение функциональной =Maple("f(t)")
зависимости от параметра для
ординаты производной
В12 Команда для отображения графи- =Maple("plot([[x(t),y(t),t=0..infinity],[x(t),f(t),t
ка функции и производной, задан- =0..infinity]],linestyle=[1,2],legend=[""y(x)"",
ных в параметрическом виде '"УМ""])")

В данном случае используется определение функциональной зависимости. Так,


команда x : = t - > l / ( l + t ) в Maple означает, что х есть функция, действие которой
на аргумент (это t) состоит в том, что вычисляется выражение, указанное после
стрелки (т.е. 1/ (1 + t) ).
При определении параметрической производной (точнее, зависимости f ( t ) ,
а для определения производной нужно, кроме этого, принять во внимание и зависи-
мость х ( t ) ) использована функция simplify ( ) . В результате ее вызова упрощает-
ся выражение, указанное аргументом функции. Поскольку вычисляемое выражение
для производной есть результат нескольких операций и поэтому может быть до-
вольно громоздким, его разумно упрощать.
После определения функциональной зависимости, для того, чтобы увидеть, како-
ва она из себя, достаточно ввести команду вроде х ( t ) (аргумент может быть любым,
например, р).
Замечание. Определяемые в ячейках ВЗ:В5 функциональные зависимости ото-
бражаются несколько отличным от способа ввода образом. Это, фактически, про-
граммный код процедур, создаваемых в результате выполнения соответствующих
команд. Более детально читатель может ознакомиться с этим вопросом, обратив-
шись к специальной литературе по Maple.

496 Часть II. Решение задач


Наконец, имеет свои особенности и вызов функции plot ( ) , которая в рассматри-
ваемом примере используется для построения сразу двух кривых, заданных в парамет-
рическом виде. В частности, ее первый аргумент — это список, состоящий из двух эле-
ментов. Каждый из этих элементов также является списком и определяет параметри-
ческую кривую. Например, список [ [ x ( t ) , y ( t ) ,t=0. .infinity] задает параме-
трическую кривую функции. Первым элементом в этом списке указана зависимость
абсцисс точек на кривой от параметра (это х (t) ), вторым — зависимость ординат то-
чек на кривой (у ( t ) соответственно). Наконец, третий элемент списка — сам параметр
и диапазон его изменения (т.е. t=0. .infinity). Практически так же задается и
параметрическая зависимость для производной. Назначение прочих опций функции
plot ( ) отписывалось ранее и особых комментариев, пожалуй, не требует.

Вычисление криволинейного интеграла


Непосредственное отношение к параметризации кривых имеет и задача вычисления
криволинейных интегралов. Рассмотрим достаточно простой пример на эту тему, для
решения которого могут использоваться имеющиеся в Maple специальные функции.

Задача 6.3. Вычислить длину дуги кривой, заданной в параметрическом виде)


вn
, .Pe?eJia:L
Как несложно догадаться, данная параметрическая зависимость определяет чет-
верть дуги круга единичного радиуса. Поэтому, строго говоря, ее длину можно ука-
зать не прибегая к сложным расчетам. Тем не менее этот пример рассмотрим в каче-
стве общей иллюстрации использования утилит Maple для решения задач подобного
рода. С математической точки зрения задача сводится, как известно, к вычислению
криволинейного интеграла первого рода по отрезку указанной в условии кривой
(с единичной подынтегральной функцией). Решение представлено на рис. 6.52.

ВЁ ft =Maple("value(Lineint(1,8.1 ,&2,1=&3))",ВЗ,В4,В5)
В
I Криволинейный интеграл
Уравнение x(t) sin
Уравнение у(1) cos
Диапазон изменения
параметра t 0.. 1/2*Pi
]лина дуги |1/2*Pi

Рис. 6.52. Вычисление криволинейного интеграла

Комментарии к заполнению ячеек таблицы можно найти в табл. 6.9. Следует сра-
зу заметить, что решение этой задачи предлагаемым методом подразумевает под-
ключение пакета Student Calculus. Методы подключения пакетов обсуждались выше
в этой главе.
Замечание. Пакет можно, в принципе, и не подключать, однако в этом случае для
используемой из упомянутого пакета функции Lineint ( ) придется указывать
пакет отдельно.

Глава 6. Совместное использование Excel и Maple 497


Таблица 6.9. Вычисление криволинейного интеграла

Ячейка Назначение Вводимое значение или формула


83 Функциональная зависимость от =Maple("t->sin(t)")
параметра абсциссы
84 Функциональная зависимость от =Maple("t->cos(t)")
параметра ординаты
85 Диапазон изменения параметра =Maple("O..Pi/2")
86 Вычисление криволинейного ин- =Maple("value(Lineint(1 ,&1 ,&2,t=&3))",
теграла (дуги окружности) ВЗ,В4,В5)

Основу вычисления составляет команда, введенная в ячейку В6. В частности, там


использована функция Lineint { ) из пакета Student Calculus. Первым ее аргумен-
том указывается подынтегральная функция, которая в данном случае равна 1 (ведь
вычисляется длина дуги). Второй и третий аргументы — это параметрические зави-
симости для абсцисс и ординат точек на кривой, по которой вычисляется интеграл.
Причем для этих параметрических зависимостей указывается только название
функции, без аргумента (например, х или у, но никак не х ( t ) или у ( t ) ). В данном
случае в качестве соответствующих аргументов указаны ссылки на ячейки, где такие
функциональные зависимости определены.
Замечание. В ячейках ВЗ и В4 заданы действия. Это характерная для Maple си-
туация. Например, запись t->sin(t) означает, что аргументу t в соответствие
ставится выражение s i n ( t ) . В этом действие (или оператор — это вопрос тер-
минологии) и состоит. Если функция указана без аргумента (т.е. только назва-
ние), то это, по сути, тоже действие. Поэтому в рассматриваемом случае доста-
точно аргументами функции Lineint ( ) , определяющими функциональные за-
висимости координат точек на кривой от параметра, указать ссылки на те ячейки,
где определены соответствующие операторы.
Наконец, четвертым, последним аргументом функции Lineint ( ) , указывается
переменная-параметр и диапазон ее изменения (после знака равенства). В качестве
последнего также использована ссылка на ячейку. Это удобно делать в тех случаях,
когда велика вероятность, что в последующем придется вычислять длину кривой
для иного диапазона изменения параметра. Менять эти значения в ячейке гораздо
проще и удобнее, чем непосредственно в формуле.
Однако функция Lineint ( ) является неактивной, поэтому если ее просто вы-
звать с указанными аргументами, интеграл вычислен не будет, а будет только пред-
ставлен в символьном виде. В Excel и Maple, кстати, это представление разное.

Замечание. В Maple у многих функций есть неактивные формы. Они, как прави-
ло, имеют такой же синтаксис, но начинаются с большой буквы. Неактивные
формы, в частности, имеются у функции дифференцирования (Dif f () ) и интег-
рирования (Int ( ) ). Неактивные формы функций используются в основном для
символьного представления вычисляемых выражений. Однако проблема в том,
что для неактивной функции Lineint ( ) активной формы не существует.

498 Часть II. Решение задач


Значение функции в неактивной форме может быть вычислено с помощью функ-
ции value ( ) . Вычисляемое выражение указывается ее аргументом. Именно это и
было сделано выше.
Из рис. 6.52 видно, что длина дуги вычислена совершенно правильно, причем в
символьном виде. Разумеется, для вычисления дуги этой кривой можно было при-
бегнуть к стандартным методам, используемым в Excel. Однако в таком случае был
бы получен численный результат. А это приемлемо не для каждого случая.

Интерполяция
Задача интерполяции обсуждалась в пятой главе. Там она выполнялась разными
способами, однако использование надстройки Maple Excel Add-in в некотором от-
ношении открывает новые горизонты при решении этой проблемы. Здесь рассмот-
рим (очень кратко, надо отметить) методы получения интерполяционного полинома
Лагранжа, а также выполнение интерполяции сплайнами.

Задача 6.4. По данному набору значений построить интерполяционный полином

Данные, по которым строится интерполяционный полином, приведены ниже, в


табл. 6.10; здесь же приведены сведения о тех значениях, которые заносятся в ячейки
электронной таблицы.
В качестве результата в таблице приводится интерполяционная формула, а также
строится, согласно этой формуле, график. Результат можно видеть на рис. 6.53.

Рис. 6.53. Интерполяция Лагранжа

Глава 6. Совместное использование Excel и Maple 499


Таблица 6.10. Интерполяция Лагранжа

Ячейка Назначение Вводимое значение или формула


83 Узловая точка 1
84 Значение функции в узловой точке О
СЗ Узловая точка 2
С4 Значение функции в узловой точке 3
D3 Узловая точка -1
D4 Значение функции в узловой точке 5
ЕЗ Узловая точка 6
Е4 Значение функции в узловой точке 7
F3 Узловая точка 9
F4 Значение функции в узловой точке 4
85 Название интерполяционной X

переменной
11:J6 Транспонированный диапазон с дан- =TRANSPOSE(A3:F4) (формула
ными для узловых точек и значений вводится нажатием комбинации клавиш
функции в этих точках <Ctrl+Shift+Enter>)
86 Команда вычисления интерполяци- =Maple("interp(&1,&2,&3)",B3:F3,B4:F4,B5)
онного полинома
В8 Команда отображения графика ин- =Maple("plot([&1,&2],&3=&4..&5,style=[p
терполяционного полинома и узло- oint,line],symbol=box,symbolsize=18)",l2:
вых точек J6,B6,B5,B3,F3)

Для вычисления интерполяционного полинома Лагранжа использована функция


interp().

I Замечание. Это, кстати, далеко не единственный способ построить в Maple ин-


терполяционный полином. Полезными в этом отношении являются функции из
пакета Curve Fitting.
Первым аргументом функции указывается набор (список с точки зрения Maple и
диапазон в Excel) узловых точек. Этим аргументом указана ссылка на диапазон ячеек
B3:F3. Второй аргумент — значения функции в этих узловых точках (это диапазон
ячеек B4:F4). Наконец, третьим аргументом указывается название для интерполяци-
онной переменной — через эту переменную будет записан полином (значение ячейки
В5). В принципе, на этом построение интерполяционного полинома и заканчивается
(результат отображается в ячейке В6). Однако дополнительно мы построим для этого
полинома график. Причем не просто график, а с указанием на нем узловых точек.
И вот для этого придется проделать еще одну процедуру — транспонировать диапазон
ячеек с исходными данными о значениях функции в узловых точках (диапазону ячеек
I2:J6 присваивается в качестве значения =TRANSPOSE(A3:F4)). Поэтому формально
диапазоны ячеек A3:F4 и I1:J6 содержат одинаковые данные. Однако при построении
графика ссылаться будем на диапазон I2:J6. Причина в том, что для отображения точек
функции plot ( ) в качестве аргумента нужно указать список, элементами которого

500 Часть II. Решение задач


являются списки из двух элементов — узловой точки и значения функции в этой точке.
Диапазон ячеек при передаче его аргументом в функцию Maple интерпретируется как
матрица (многомерный массив), при этом каждая строка диапазона формирует список,
и такие списки объединяются в общий список. Поэтому для того, чтобы не создавать
себе дополнительные трудности с указанием большого числа аргументов, а вместо это-
го для определения базовых точек на графике ограничиться указанием одного диапа-
зона, и выполняется транспонирование.
Замечание. При работе с упоминавшимся уже пакетом Curve Fitting таких проблем
не возникает. Функции этого пакета достаточно толерантны в отношении способа
указания аргументов, если так можно выразиться о функциях. Это же относится и к
интерполяции сплайнами, которая рассматривается несколько позже.
Хочется также обратить внимание на одну особенность вызова функции plot ( ) .
Так, ее первый аргумент — список. Первым элементом этого списка является ссылка
на диапазон I2:J6, назначение которого обсуждалось выше. Это набор точек. Второй
элемент списка — ссылка на ячейку В6, в которой представлено интерполяционное
выражение (полином). Таким образом, набор точек играет как бы роль первой
функции, а вторая функция, отображаемая на графике, — это как раз полином Ла-
гранжа. Чтобы при отображении узловые точки на графике не соединялись линией,
следует явно указать, что для первой функции (а это набор точек!) линия не исполь-
зуется (это соответствует значению point для опции style). Однако поскольку
для второй функции линию проводить все же следует, значение опции задается как
style= [point, line] (т.е. для каждой функции свое значение).
Кроме этого, диапазон изменения переменной указан как &3=&4 . . &5, что значит
буквально следующее: переменная определяется по ячейке В5 (т.е. это однозначно
интерполяционная переменная), а изменяется она в пределах от значения в ячейке
ВЗ (предполагается, что это минимальное значение) до значения в ячейке F3
(максимальное значение).
Кроме интерполяции Лагранжа достаточно популярна интерполяция сплайнами.
В этом случае соседние точки соединяются полиномом, причем для каждого интер-
вала полином свой. Полиномы выбираются такими, чтобы была непрерывной как
функция, так и ее старшие производные. Для того чтобы реализовать такую интер-
поляцию в Maple, формально следует заменить функцию interp ( ) на spline ( ) .
Аргументы у них практически одинаковые, за исключением того, что функция
spline () имеет один дополнительный— показатель степени базовых полиномов
(обычно это 3). Поэтому по сравнению с предыдущим случаем следует внести такие
изменения: в ячейку В6 вводится значение 3 для степени базовых полиномов, а сам
интерполяционный полином вычисляется в ячейке В7 по формуле
=Maple("spline(&1,&2,&3,&4)",B3:F3,B4:F4,B5,B6). В связи с этим также несколько
видоизменяется и команда в ячейке В9 для построения графика интерполяционного
полинома. Теперь она имеет вид:
=Maple("plot([&1,&2],&3=&4..&5,style=[point,line],symbol=box,symbolsize=18)",l2:J6,B
7,B5,B3,F3). Результат можно видеть на рис. 6.54.
Интерполяционный полином в этом случае является кусочно-гладким, т.е. он за-
дан отдельной формулой на каждом из базовых интервалов. В рабочем листе это
проявляется в наличии выражения PIECEWISEQ, а аргументом указывается список,

Глава б. Совместное использование Excel и Maple 501


элементы которого, в свою очередь, есть списки с формулой и интервалом, на кото-
ром она применима.
Замечание. На рис. 6.54 в силу того, что конечное выражение для интерполяцион-
ного полинома (точнее, полиномов) слишком длинно, нет возможности отобразить
его полностью в видимой области экрана. Однако если приведенное в книге реше-
ние реализовать в Excel, его можно будет проанализировать более детально.

Puc. 6.54. Интерполяция сплайнами

Если сравнивать два типа интерполяции, то каждый из них имеет свои преиму-
щества и недостатки. Так, полиномиальная интерполяция по методу Лагранжа дос-
таточно просто выполняется, однако часто на краях интервала интерполирования
полином демонстрирует очень сильные отклонения. При интерполяции сплайнами
этого, как правило, не случается. Однако такая интерполяция не очень удобна, когда
нужно вычислять производные высоких порядков. Вообще же выбор типа интерпо-
ляции во многом зависит от типа данных и характера решаемых посредством интер-
поляции вопросов.

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

502 Часть II. Решение задач


Задача 6.5. Два груза массами ш = 4 к г и Л / = 5кг связаны невесомой нерастяжимой
нитью. К грузу т приложена по горизонтали сила F = 25 Н, под действием которой
система из двух грузов движется равноускоренно по горизонтальной плоскости, на
которой оба груза находятся. Определить ускорение а грузов и силу натяжения ни-

Задача эта достаточно проста, поэтому особых комментариев само ее решение не


требует. Очевидно, что на всю систему из двух грузов действуют такие силы: внеш-
няя сила, приложенная к первому грузу, сила трения, действующая на каждый из
грузов (для каждого своя), а также сила натяжения нити, действующая на каждый
из грузов с одинаковой величиной, но в противоположных направлениях (поэтому
равнодействующая для системы грузов равна нулю). Две упомянутые силы трения
равны произведению массы соответствующего груза на коэффициент трения и уско-
рение свободного падения g, и направлены в сторону, противоположную движению
грузов. Суммарная масса системы равна сумме масс грузов. Отсюда по второму за-
кону Ньютона можно записать (т + М)а = F - g(km + sM). Следовательно, ускорение
F-g(km + sM)
а
° . Достаточно легко вычисляется и сила натяжения нити. Так, если
т+М
рассмотреть отдельно второй груз, то на него действует две силы: натяжения нити и
сопротивления. Именно эти силы сообщают ему ускорение, которое определено вы-
ше. Это значит, что Ma = T-gsM. Тогда сила натяжения нити равна T=M(a+gs).
В последнем выражении следует вместо ускорения а подставить полученное для не-
го выражение. Однако сделать это проще с помощью Maple.
Именно приведенные выше формулы и будут приняты за основу при реализации
решения в Excel. Соответствующая таблица показана на рис. 6.55.
Сначала в ячейки диапазона В4:С9 вводятся исходные параметры задачи. Какие
именно данные следует вводить в ячейки рабочего листа, можно узнать из табл. 6.11.
Там же приведена информация о том, как заполняются ячейки из диапазона
В11:С12, где отображается решение в символьном и численном виде. Отдельные
комментарии приведены сразу после таблицы.

В11 --г :: ' f, =Мар1еда-8У(&3*&4+И*&6)У(Ь4+&6)",В8.В9,В6.В4,В7,85)


•. . - , • .в, ; ; . , С. I р, J~~J
1 ! Перемещение грузов
.._,
3 Длно Обозначение Значение Ра»и«]>н«сть
4 : Масса первого груза 4 кг
м
QJ!; .
5 I Масса второго груза
>' •; ] Коэффициент трения Зля
6 первого груза
*'" Коэффициент трения для
7 второго груза 0.2
I
8 Сипа
,"' ^ Ускорение свободного
..:== ±= 25 Н

9 'падения g 9.8 и/с"2 !


10 Найти ,, Формула Значение^ Размерность '.,
1 Т | Ускорение а - (F-q'(k*m*s'M)).'(m*M) 0.382222222 м/с» 2
Ч 2 '• Сипу натяжения нити Т = M'lF-g'k'm^s'g'mytm+M) 11.71111111 Н !
Ш •• ; :

Рис. 6.55. Вычисление ускорения и силы натяжения нити

Глава 6. Совместное использование Excel и Maple 503


Таблица 6.11. Задача о перемещении грузов

Ячейка Назначение Вводимое значение или формула


В4 Масса первого груза (обозначение) m
С4 Масса первого груза (значение) 4
В5 Масса второго груза (обозначение) М
С5 Масса второго груза (значение) 5
В6 Коэффициент трения для первого k
груза(обозначение)
С6 Коэффициент трения для первого 0.3
груза (значение)
В7 Коэффициент трения для второго
груза (обозначение)
С7 Коэффициент трения для второго 0.2
груза (значение)
В8 Внешняя сила (обозначение) F
8 Внешняя сила (значение) 25
В9 Ускорение свободного падения g
(обозначение) .

С9 Ускорение свободного падения 9.8


(значение)
В11 Ускорение грузов (формула) =Maple("(&1-
&2*(&3*&4+&5*&6))/(&4+&6)",В8,В9,
В6,В4,В7,В5)
С11 Ускорение грузов (значение) =Maple("(&1-
&2*(&3*&4+&5*&6))/(&4+&6)",С8,С9,
С6,С4,С7,С5)
В12 Сила натяжения нити (формула) =Maple("simplify(&1*(&2+&3*&4))",B5,
В11,В7,В9)
С12 Сила натяжения нити (значение) =Maple("simplify(&1*(&2+&3*&4))",C5,
С11,С7,С9)

Разумно сделать несколько замечаний относительно ячеек с формулами. Так,


ячейка В11 содержит формулу =Мар1е("(&1-&2*(&3*&4+&5*&6))/(&4+&6)",В8>В9,В6,
В4,В7,В5). Это, фактически, команда, которая отображает выражение для ускорения
системы грузов. Эта формула была получена в самом начале. Здесь, данной коман-
дой, она просто отображается. Однако в команде используются ссылки на ячейки,
содержащие обозначения для величин, входящих в формулу. Преимущество этого
подхода, по сравнению с простым отображением формулы, состоит в том, что если в
дальнейшем поменять обозначения для физических величин (в ячейках таблицы!),
изменения автоматически будут отображены в формуле.

504 Часть II. Решение задач


Внимание! Если команда Maple содержит ссылку на ячейку таблицы и значение в
этой ячейке меняется, тогда обновляется содержимое ячейки, содержащей ссыл-
ку. Эта особенность характерна для Excel. Однако если команда Maple содержит
переменную, значение которой меняется в другой ячейке Excel, автоматического
обновления не происходит. В этом случае обновляемую ячейку следует выделить,
перейти к строке формул и нажать <Enter>. Дело в том, что Excel отслеживает
изменения в значениях ячеек, но не переменных Maple. Это нужно иметь в виду.

Другое немаловажное обстоятельство связано с тем, что благодаря наличию ссы-


лок в формуле в ячейке В11, формулу в ячейку С11 для вычисления численного
значения ускорения можно не вводить с клавиатуры, а просто скопировать из ячей-
ки В11. В этом случае Excel поменяет ссылки так, что они будут указывать уже не на
ячейки с обозначениями физических величин, а на ячейки с их значениями (так по-
добрано их взаимное размещение).
Практически те же замечания относятся к формуле =Maple("simplify(&1*(&2+
&3*&4))",В5,В11,В7,В9), которая вводится в ячейку В12. В данном случае в формуле
для силы натяжения нити есть ссылка на выражение для ускорения (ячейка В11).
Если просто подставить это выражение в формулу, последняя получится достаточно
громоздкой. Чтобы ее упростить, используется функция s i m p l i f y ! ) . Формула в
ячейку С12 вводится копированием формулы из ячейки В12.
В заключение хочется добавить, что рассмотренные здесь вопросы, связанные с ис-
пользованием Maple при работе с Excel, не претендуют на полноту изложения. Сам по
себе Maple — достаточно сложный, но, вместе с тем, и эффективный инструмент ис-
следования. В рамках этого продукта пользователю предоставляются уникальные воз-
можности. С другой стороны, не меньшими возможностями обладает и Excel. Причем
упомянутые программные пакеты нельзя назвать конкурирующими, поскольку они
ориентированы на решение разных задач (не всегда, конечно). Есть общие точки со-
прикосновения, и от этого Maple и Excel только выигрывают, поэтому совместное ис-
пользование этих приложений представляется достаточно перспективным.

Глава 6. Совместное использование Excel и Maple 505


ПРИЛОЖЕНИЕ

Соответствие названий встроенных


функций Excel в русской и английской
версиях
Английская версия Русская версия Английская версия Русская версия
ABS ABS CODE кодсимв
ABSREF АБССЫЛ COLUMNS ЧИСЛСТОЛБ
ACCRINT НАКОПДОХОД COMBIN ЧИСЛКОМБ
ACCRINTM НАКОПДОХОДПОГАШ COMBINATION КОМБИНАЦИЯ
ACOS ACOS COMPLEX КОМПЛЕКСН
ACOSH ACOSH CONCATENATE СЦЕПИТЬ
ALERT ПРЕДУПРЕЖДЕНИЕ CONFIDENCE ДОВЕРИТ
AMORDEGRC АМОРУМ CONVERT ПРЕОБР
AMORLINC АМОРУВ CORREL КОРРЕЛ
AND И COS COS
ASC ASC COSH COSH
ASIN ASIN COUNT СЧЁТ
ASINH ASINH COUNTA СЧЁТЗ
ATAN ATAN COUNTBLANK СЧИТАТЬПУСТОТЫ
ATAN2 ATAN2 COUNTIF СЧЕТЕСЛИ
ATANH ATANH COUPDAYBS ДНЕЙКУПОНДО
AUTO.OUTLINE АВТО.СТРУКТУРА COUPDAYS ДНЕЙКУПОН
AVEDEV СРОТКЛ COUPDAYSNC ДНЕЙКУПОНПОСЛЕ
AVERAGE СРЗНАЧ COUPNCD ДАТАКУПОНПОСЛЕ
AVERAGEA СРЗНАЧА COUPNUM ЧИСЛКУПОН
BESSELI БЕССЕЛЫ COUPPCD ДАТАКУПОНДО
BESSELJ БЕССЕЛЬ.и COVAR КОВАР
BESSELK БЕССЕЛЬ. К CRITBINOM КРИТБИНОМ
BESSELY БЕССЕЛЬ.У CUMIPMT ОБЩПЛАТ
BETADIST БЕТАРАСП CUMPRINC ОБЩДОХОД
BETAINV БЕТАОБР DATA.SER1ES ПРОГРЕССИЯ
BIN2DEC ДВ.В.ДЕС DATE ДАТА
BIN2HEX ДВ.В. ШЕСТИ DATEDIF РАЗНДАТ
BIN2OCT ДВ.В.ВОСЬМ DATESTRING СТРОКАДАННЫХ
BINOMDIST БИНОМРАСП DATEVALUE ДАТАЗНАЧ
BREAK ПРЕКР DAVERAGE ДСРЗНАЧ
CALCULATE.NOW ВЫЧИСЛИТЬ.СЕЙЧАС DAY ДЕНЬ
CALCULATION ВЫЧИСЛЕНИЕ DAYS360 ДНЕЙ360
CAtL ВЫЗВАТЬ DCOUNT БСЧЁТ
CEILING ОКРВВЕРХ DCOUNTA БСЧЁТА
CHAR СИМВОЛ DDB ДДОБ
CHIDIST ХИ2РАСП DEC2BIN ДЕС.В.ДВ
CHIINV ХИ2ОБР DEC2HEX ДЕС.В.ШЕСТН
CHITEST ХИ2ТЕСТ DEC2OCT ДЕС.В.ВОСЬМ
CLEAN ПЕЧСИМВ DEGREES ГРАДУСЫ
Продолжение таблицы

Английская версия Русская версия Английская версия Русская версия


DELTA ДЕЛЬТА FTEST ФТЕСТ
DEREF ССЫЛЗНАЧ FV БЗ
DEVSQ КВАДРОТКЛ FVSCHEDULE БЗРАСПИС
DGET БИЗВЛЕЧЬ FWRITE ФЗАП
DIRECT ПРЯМО FWRITELN ФЗАПКС
DISC СКИДКА GAMMADIST ГАММАРАСП
DMAX ДМАКС GAMMAINV ГАММАОБР
DMIN ДМИН GAMMALN ГАММАНЛОГ
DOLLAR РУБЛЬ GCD нод
DOLLARDE РУБЛЬ.ДЕС GEOMEAN СРГЕОМ
DOLLARFR РУБЛЬДРОБЬ GESTEP ПОРОГ
DPRODUCT БДПРОИЗВЕД GOAL.SEEK ПОДБОР.ПАРАМЕТРА
DSTDEV ДСТАНДОТКЛ GROWTH РОСТ
DSTDEVP ДСТАНДОТКЛП HARMEAN СРГАРМ
DSUM БДСУММ HEX2BIN ШЕСТИ. В.ДВ
DURATION ДЛИТ HEX2DEC ШЕСТН.В.ДЕС
DVAR БДДИСП НЕХ2ОСТ ШЕСТН.В.ВОСЬМ
DVARP БДДИСПП HLOOKUP ГПР
ECHO ЭХО HOUR ЧАС
EDATE ДАТАМЕС HYPGEOMDIST ГИПЕРГЕОМЕТ
EFFECT ЭФФЕКТ IF ЕСЛИ
ELSE . ИНАЧЕ IMABS МНИМ.АВ5
ELSE.IF ИНАЧЕ.ЕСЛИ IMAGINARY МНИМ.ЧАСТЬ
END.IF КОН. ЕСЛИ IMARGUMENT МНИМ.АРГУМЕНТ
EOMONTH КОНМЕСЯЦА IMCONJUGATE МНИМ.СОПРЯЖ
ERF ФОШ IMCOS мним.соз
ERFC ДФОШ IMDIV МНИМДЕЛ
EVALUATE ВЫЧИСЛИТЬ IMEXP МНИМ.ЕХР
EVEN ЧЁТН IMLN MHHM.LN
EXACT СОВПАД IMLOG10 MHHM.LOG10
EXP ЕХР IMLOG2 MHHM.LOG2
EXPONDIST ЭКСПРАСП IMPOWER МНИМ.СТЕПЕНЬ
FACT ФАКТР IMPRODUCT МНИМ. ПРОИЗВЕД
FACTDOUBLE ДВФАКТР IMREAL МНИМ. ВЕЩ
FALSE ЛОЖЬ IMSIN МНИМ SIN
FCLOSE ФЗАКР IMSQRT МНИМ. КОРЕНЬ
FDIST РРАСП IMSUB МНИМ.РАЗН
FINDS НАЙТИ Б IMSUM МНИМ.СУММ
FINV РРАСПОБР INDEX ИНДЕКС
FISHER ФИШЕР INDIRECT двссыл
FISHERINV ФИШЕРОБР INFO ИНФОРМ
FIXED ФИКСИРОВАННЫЙ INITIATE НАЧАТЬ
FLOOR ОКРВНИЗ INT ЦЕЛОЕ
FOPEN ФОТКР INTERCEPT ОТРЕЗОК
FORECAST ПРЕДСКАЗ INTRATE ИНОРМА
FORMAT.AUTO АВТО.ФОРМАТ IPMT ПЛПРОЦ
FPOS ФПОЗ IRR ВНДОХ
FREAD ФЧИТ ISBLANK ЕПУСТО
FREADLN ФЧИТКС ISERR ЕОШ
FREQUENCY ЧАСТОТА ISERROR ЕОШИБКА
FSIZE ФРАЗМЕР ISEVEN ЕЧЁТН

Приложение 507
Продолжение таблицы

Английская версия Русская версия Английская версия Русская версия


1SLOGICAL ЕЛОГИЧ NORMSDIST НОРМСТРАСП
ISNA ЕНД NORMSINV НОРМСТОБР
ISNONTEXT ЕНЕТЕКСТ NOT НЕ
ISNUMBER ЕЧИСЛО NOW ТДАТА
ISODD ЕНЕЧЁТ NPER КПЕР
ISPMT ЛРОЦПЛАТ NPV НПЗ
ISREF ЕССЫЛКА NUMBERSTRING СТРОКАЧИСЕЛ
ISTEXT ЕТЕКСТ OCT2BIN ВОСВМ.В.ДВ
KURT ЭКСЦЕСС OCT2DEC ВОСЬМ.В.ДЕС
LARGE НАИБОЛЬШИЙ OCT2HEX ВОСЬМ.В.ШЕСТН
LCM НОК ODD НЕЧЕТ
LEFT ЛЕВСИМВ ODDFPRICE ЦЕНАПЕРВНЕРЕГ
LEFTB ЛЕВЕ ODDFYIELD ДОХОДПЕРВНЕРЕГ
LEN ДПСТР ODDLPRICE ЦЕНАПОСЛНЕРЕГ
LENB ДЛИНЕ ODDLYIELD ДОХОДПОСЛНЕРЕГ
LINEST ЛИНЕЙН OFFSET СМЕЩ
LN LN OR ИЛИ
LOG LOG PARSE РАЗБОР
LOG 10 LOG 10 PEARSON ПИРСОН
LOGEST ЛГРФПРИБЛ PERCENTILE ПЕРСЕНТИЛЬ
LOGINV ЛОГНОРМОБР PERCENTRANK ПРОЦЕНТРАНГ
LOGNORMDIST ЛОГНОРМРАСП PERMUT ПЕРЕСТ
LOWER СТРОЧН PI ПИ
MATCH ПОИСКПОЗ PMT ППЛАТ
MAX МАКС POISSON ПУАССОН
МАХА МАХА POWER СТЕПЕНЬ
MDETERM МОПРЕД PPMT ОСНПЛАТ
MDURATION МДЛИТ PRECISION ТОЧНОСТЬ
MEDIAN МЕДИАНА PRICE ЦЕНА
MID ПСТР PRICEDISC ЦЕНАСКИДКА
MIDB ПСТРБ PRICEMAT ЦЕНАПОГАШ
MIN МИН PROB ВЕРОЯТНОСТЬ
MINA MINA PRODUCT ПРОИЗВЕЛ
MINUTE МИНУТЫ PROPER ПРОПНАЧ
MINVERSE МОБР PV ПЗ
MIPR МВСД QUARTILE КВАРТИЛЬ
MMULT МУМНОЖ QUOTIENT ЧАСТНОЕ
MOD ОСТАТ RADIANS РАДИАНЫ
MODE МОДА RAND СЛЧИС
MONTH МЕСЯЦ RANDBETWEEN СЛУЧМЕЖДУ
MROUND ОКРУГЛТ RANK РАНГ
MULTINOMIAL МУЛЬТИНОМ RATE НОРМА
N ч REFTEXT ССЫЛТЕКСТ
NA нд RELREF ОТНССЫЛ
NAMES ИМЕНА REPLACEB ЗАМЕНИТЬБ
NEGBINOMDIST ОТРБИНОМРАСП RESTART НАЧСНОВА
NETWORKDAYS ЧИСТРАБДНИ RIGHT ПРАВСИМВ
NEXT СЛЕД RIGHTS ПРАВБ
NOMINAL НОМИНАЛ ROMAN РИМСКОЕ
NORM 0 1ST НОРМРАСП ROUND ОКРУГЛ
NORMINV НОРМОБР ROUNDDOWN ОКРУГЛВНИЗ

508 Приложение
Окончание таблицы

Английская версия Русская версия Английская версия Русская версия


ROUNDUP ОКРУГЛВВЕРХ TAN TAN
ROWS ЧСТРОК TANH TANH
RSQ КВПИРСОН TBILLEQ РАВНОКЧЕК
SEARCH поиск TBILLPRICE ЦЕНАКЧЕК
SEARCHB ПОИСКЕ TBILLYIELD ДОХОДКЧЕК
SECOND СЕКУНДЫ TDIST СТЬЮДРАСП
SIGN ЗНАК TEXTREF ТЕКСТССЫЛ
SIN SIN TIME ВРЕМЯ
SINH SINH TIME VALUE ВРЕМЗНАЧ
SLN AMP TINV СТЬЮДРАСПОБР
SLOPE НАКЛОН TODAY СЕГОДНЯ
SMALL НАИМЕНЬШИЙ TRANSPOSE ТРАНСП
SOLVER.ADD ПОИСК.РЕШЕНИЯ. TREND ТЕНДЕНЦИЯ
ДОБАВИТЬ
SOLVER.CHANGE ПОИСК.РЕШЕНИЯ. TRIM СЖПРОБЕЛЫ
ИЗМЕНИТЬ
SOLVER.DELETE ПОИСК.РЕШЕНИЯ. TRIMMEAN УРЕЗСРЕДНЕЕ
УДАЛИТЬ
SOLVER.FINISH ПОИСК.РЕШЕНИЯ. КОНЕЦ TRUE ИСТИНА
SOLVER.GET ПОИСК.РЕШЕНИЯ. ПОЛУЧИТЬ TRUNC ОТБР
SOLVER.LOAD ПОИСКРЕШЕНИЯ. ЗАГРУЗИТЬ TTEST ТТЕСТ
SOLVER.OK ПОИСК.РЕШЕНИЯ.ОК TYPE ТИП
SOLVER.OPTIONS ПОИСК.РЕШЕНИЯ. UPPER ПРОПИСН
ПАРАМЕТРЫ
SOLVER.RESET ПОИСК.РЕШЕНИЯ. USDOLLAR ДОЛЛСША
ВОССТАНОВИТЬ
SOLVER.SAVE ПОИСКРЕШЕНИЯ. СОХРАНИТЬ VALUE ЗНАЧЕН
SOLVER.SOLVE ПОИСК.РЕШЕНИЯ. VAR ДИСП
ВЫПОЛНИТЬ
SPLIT РАЗБИТЬ VARA ДИСПА
SORT КОРЕНЬ VARP ДИСПР
SQRTPI КОРЕНЬПИ VARPA ДИСПРА
STANDARDIZE НОРМАЛИЗАЦИЯ VDB ПДОБ
STDEV СТАНДОТКЛОН VLINE ВСТРОКА
STDEVA СТАНДОТКЛОНА VLOOKUP ВПР
STDEVP СТАНДОТКПОНП VPAGE ВСТРАНИЦА
STDEVPA СТАНДОТКЛОНПА VSCROLL ВПРОКРУТКА
STEP ШАГ WAIT ЖДАТЬ
STEYX СТОШУХ WEEKDAY ДЕНЬНЕД
SUBSTITUTE ПОДСТАВИТЬ WEEKNUM НОМНЕДЕЛИ
SUBTOTAL ПРОМЕЖУТОЧНЫЕ.ИТОГИ WEIBULL ВЕЙБУЛЛ
SUM СУММ WORKDAY РАБДЕНЬ
SUMIF СУММЕСЛИ XIRR ЧИСТВНДОХ
SUMPRODUCT СУММПРОИЗВ XNPV ЧИСТНЗ
SUMSQ СУММКВ YEAR ГОД
SUMX2MY2 СУММРАЗНКВ YEARFRAC ДОЛЯ ГО ДА
SUMX2PY2 СУММСУММКВ YIELD ДОХОД
SUMXMY2 СУММКВРАЗН YIELDDISC ДОХОДСКИДКА
SYD АМГД YIELDMAT ДОХОДПОГАШ
Т т ZTEST ZTECT
TABLE ТАБЛИЦА

Приложение 509
Заключение
В этой книге было рассказано о тех подходах, которые могут применяться в Excel
как при обработке результатов эксперимента (для чего, очевидно, привлекаются
методы математической статистики), так и при решении различных прикладных за-
дач, в том числе из курсов математического анализа, дифференциальных уравнений,
вычислительной математики, физики и т.п. В последней главе, помимо этого, было
продемонстрировано, как в рабочих листах Excel с помощью соответствующей над-
стройки Maple можно выполнять символьные преобразования. Если учесть возмож-
ность составления программных кодов пользователя, то все это практически выво-
дит приложение Excel за рамки конкуренции с другими программными продуктами
подобного рода. Тем не менее, выбор у пользователя всегда есть. Например, взять
хотя бы то же приложение Maple. Ведь, фактически, рассмотренные в книге задачи,
для решения которых использовалось приложение Excel, в большинстве своем
не менее успешно могут быть решены и в Maple. Вопрос в этом случае, как правило,
находится в плоскости интерпретации и представления данных. Совсем не обяза-
тельно, что выбор по этим критериям будет сделан в пользу Excel. Хотя, конечно,
многое зависит от того, какая задача решается, в каком виде представлены началь-
ные (входные) данные и где затем будет использоваться результат решения задачи.
И для того, чтобы принимать взвешенные решения, необходимо иметь представле-
ние, хотя бы общее, о сильных и слабых сторонах того или иного приложения.
Если данная книга поспособствует пользователю в принятии такого взвешенного
решения, можно считать, что задачу свою она выполнила.

Список литературы
1. Бермант А.Ф., Араманович И.Г. Краткий курс математического анализа. М.:
Наука, 1973.
2. Эльсгольц Л.Э. Дифференциальные уравнения и вариационное исчисление.
Учеб. для физич. спец. ун-тов. М.: Наука, 1969.
3. Пугачев В.С Теория вероятностей и математическая статистика. М.:
Наука, 1979.
4. Ландау Л.Д., Лившиц Е.М. Механика / Под ред. Л.П. Питаевского. 5-е изд., стер.
М.: Физматлит, 2001.
5. Березин И.С, Жидков Н.П. Методы вычислений. В 2т. М.: Физматлит, 1962.
6. Ларсен Р.У. Инженерные расчеты в Excel. M.: Издательский дом "Вильяме", 2002.
7. Матросов A. Maple 6: Решение задач высшей математики имеханики. BHV, 2001.
8. Васильев A. Maple 8. Самоучитель. Диалектика, 2003.
Предметный указатель
Ошибка Функция
Адрес ячейки, 18; 23; 24; 111 оценки, 476 CODE(), 246
регрессии, 419 COMPLEXQ, 745
Активная область, 26
Активная ячейка, 22; 49 п CONVERTQ, 143
diff(), 465
В Панель dsolve(), 469
инструментов, 20; 44; 97 EXP(), 229; 381; 393
Вероятность, 392
Debug, 275 FORECAST0.47S
Выборка, 408; 415
Edit, 274 fourierO, 4S6
жизнь на Марсе, 408
Formatting, 27; 46 FREQUENCYO. 442
г Standard, 2 7; 44; 2 72 fsolve(), 467; 475
Генеральная совокупность, 408 UserForm, 276 GROWTHQ, 420; 423

д меню, 20; 26; 102 Щ), 294; 380


IMABSQ, 746
P IMDIVQ, 745
Диапазон ячеек, 24; 136
Дисперсия, 393 Рабочий лист, 23 IMPRODUCTQ, 745
IMSUMQ, 746
выборочная, 403 С int(), 466
Доверительный интервал, 431
Свойство, 219:247 interp(),500
К Среднее значение, 4ft? LineintQ, 497
Комментарий, 219 Ссылка LINEST(),477;427
Коэффициент детерминации, 432 абсолютная, 772 LOGESTO,479;423
Коэффициент корреляции, 396 внешняя, 720 MAX(),474
естественная, 75? MDETERM0.320
м неявная, 755 MIN(), 756; 474
Макрос, 187 относительная, 94; 112 MINVERSEO,37S;355
Математическое ожидание, 393 смешанная, 776 MMULTO,379;355;359
Матрица, 317 циклическая, 314; 346 Pi(),247
обратная, 319 Стандартное отклонение, 404 plot(), 475; 497; 500
определитель, 319 Строка plot3d(), 450
Меню заголовка, 20 POWER0.473
Add-Ins, 270 состоя! шя, 20; 24 PRODUCTO, 453
Chart, 21 формул, 20; 50 simplifyQ, 496; 505
Data, 21; 40 SIN(),247
У SLOPE(),479
Debug, 206
Edit, 27; 30; 797 Уровень solve(), 467; 47?
File, 2 7; 2S; 195 достоверности, 431 splineO, 507
Format, 21; 36; 88; 203 значимости, 437 SQRTQ, 747
Help, 27; 42; 272 Ф STANDARDIZE0.396
Insert, 21; 35; 202 STDEVQ, 404
Формат STDEVP(),404
Run, 208 Accounting, 58
Tools, 21; 38; 209 STEYX(),479
Currency, 58 SUM(), 136; 752; 377; 400
View, 21; 33; 200 Custom, 63
Window, 21; 41; 211 SUMPRODUCT(),394; 454
Date, 59 taylor(), 494
Метод, 219 Fraction, 67
моментов, 405; 408 TRANSPOSE(),359
General, 56 TREND(),47S;422
наибольшего правдоподобия, Number, 57
405; 412 value(), 499
Percentage, 60 VAR(),404;407
наименьших квадратов, 476 Scientific, 62
Момент, 393 VARP(), 404
Special, 62 withO, 4S5
центральный, 393 Text, 62
эмпирический, 405 правдоподобия, 405; 473
Time, 60 распределения, 392
О строка-столбец, 718
э
Формула, 52; 86; 109
Область задач, 20; 44; 47
Функция, 727 Экстремум, 330
Объект, 2 79
AND0.3SO неявной функции, 334
Оценка,403 AVEDEVQ, 747 условный, 332
несмещенная, 403
AVERAGEQ, 747;244; 404; 407
смещенная, 403
AVERAGEAQ, 404
BESSELJO, 774
Научно-популярное издание

Алексей Николаевич Васильев

Научные вычисления
в Microsoft Excel

Литературный редактор П.Н. Мачуга


Верстка А.В. Плаксюк
Художественный редактор Е.П. Дынник
Корректоры Л.А. Гордиенко,
О.В. Мишутина

Издательский дом "Вильяме"


101509, г. Москва, ул. Лесная, д. 43, стр. 1
Изд. лиц. ЛР № 090230 от 23.06.99
Госкомитета РФ по печати

Подписано в печать с готовых диапозитивов 26.02.2004.


Формат 70 х 100'/ 16 - Гарнитура Times. Печать офсетная.
Усл. печ. л. 41,28. Уч.-изд. л. 31,50.
Тираж 3 000 экз. Заказ № 69.

ОАО «Санкт-Петербургская типография № 6».


191144, Санкт-Петербург, ул. Моисеенко, 10.
Телефон отдела маркетинга 271-35-42.
РЕШЕНИЕ ПРАКТИЧЕСКИХ ЗАДАЧ

Научные
вычисления А.Н. Васильев
в Microsoft Excel
В этой книге описываются В завершение описываются Об авторе
методы использования способы совместного
Васильев Алексей Николаевич —
приложения Excel для использования Excel кандидат физико-математических
анализа эксперименталь - и Maple для выполнения наук, преподаватель кафедры
ных данных и решения символьных теоретической физики Киевского
прикладных инженерно- преобразований. университета имени Тараса
Шевченко.
физических Читателю предлагается В 1997 году закончил физический
и математических задач. большое количество факультет, а в 1999 году —
Книга состоит из двух практических примеров, экономический факультет Киевского
частей. В первой части с решением и развернутым университета имени Тараса
Шевченко.
представлены сведения обсуждением. Автор книги "Maple 8. Самоучитель"
непосредственно по Затрагиваются вопросы, (изд-во Диалектика, 2003), а также
приложению Excel, имеющие прямое ряда научных публикаций по
способам работы с ним, отношение физике, биофизике и экономике.
Сфера интересов: физика
а также приведена краткая к дифференцированию жидкостей и жидких кристаллов,
справка по методам и интегрированию синергетика, биофизика,
составления программных функций, решению математические методы
модулей с помощью языка уравнений, в том числе в экономике, программирование
и математическое моделирование.
VBA. Рассказывается дифференциальных
о методах использования и интегральных, поиску
встроенных функций экстремумов функций,
и построения диаграмм. выполнению интерполяции
Вторая часть всецело и аппроксимации.
посвящена методам Анализируются методы
прикладного анализа. использования Excel для
В ней излагаются базовые решения задач теории
подходы к решению вероятностей
алгебраических, и математической
дифференциаль ных статистики.
и интегральных уравнений, Эта книга поможет вам
построению углубить накопленные
интерполяционных знания и обрести еще
зависимостей, решению большую уверенность
задач теории вероятностей при работе с ПК.
и математической
статистики.

ISBN 5-8459-0573-7
0401

9 "785845"905734"
www.dialektika.com

Вам также может понравиться