Академический Документы
Профессиональный Документы
Культура Документы
Научные
вычисления
в Microsoft
Работа с формулами Excel, построение диаграмм и графиков,
написание собственных программ на языке VBA
Решение уравнений, в том числе дифференциальных и
интегральных, вычисление производных и интегралов
Выполнение интерполяции, нахождение экстремумов функций,
в том числе условных, статистическая обработка данных
Использование в Excel надстройки символьных
преобразований
А.Н. Васильев
Джон Уокенбах
"Мистер Электронная таблица
представляет
http://www.williamspublishing.com http://www.diaiektika.com
Решение практических задач
Научные
вычисления
в Microsoft
Excel
Решение практических задач
Научные
вычисления
в Microsoft
Excel
А.Н. Васильев
Васильев, А.Н.
В19 Научные вычисления в Microsoft Excel. -- M. : Издательский дом
"Вильяме", 2004. - 512 с.: ил.
ISBN 5-8459-0573-7 (рус.)
Вступление 11
Немного об Excel и не только 11
Структура книги 12
Обратная связь 14
Благодарности 15
Ждем ваших отзывов! 16
Содержание
Меню Help
Стандартная панель инструментов 212
Панель редактирования 214
Панель отладки 215
Панель инструментов User Form 216
Создание и редактирование кода 217
Функции пользователя 224
Создание функции 224
Сохранение и доступность функций 230
Переменные и типы данных 232
Рекурсия и необязательные аргументы 237
Использование функций приложения 243
Создание и работа с формами 246
Создание формы 247
Переопределение элементов формы 260
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 в целом. Глава 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
Знакомство с Excel
В этой главе...
• Основные понятия
• Команды панели меню
• Панели инструментов
• Методы работы с документами
• Форматирование данных
• Настройка графического интерфейса
Основные понятия
В этом разделе речь пойдет о том, что такое электронные таблицы, где, когда и как они
используются. Здесь также будут описаны некоторые базовые понятия и элементы,
имеющие отношение к вопросам организации электронных таблиц и графического ин-
терфейса, с помощью которого осуществляется взаимодействие пользователя с системой.
Электронные таблицы
Не секрет, что компьютеры очень часто используются для обработки больших
массивов данных. Эта задача не менее важна, чем выполнение непосредственно вы-
числений. При этом возникает вопрос: как такие данные систематизировать?
Наиболее распространен способ представления данных в виде таблиц. В этом случае
доступ к информации можно получить, указав адрес ячейки, в которой эта инфор-
мация хранится. Адрес состоит из номера или названия строки и столбца, на пересе-
чении которых размещена ячейка. Этот принцип остается в силе, когда речь заходит
об электронных таблицах. Собственно, таблицами они называются по аналогии с тем
способом, согласно которому систематизируются данные.
Замечание. Тот, кто в школьные годы на уроках литературы играл с соседом по
парте в морской бой, наверняка уже понял, о чем идет речь. Чтобы утопить ко-
рабль противника, нужно указать номер столбца и номер строки, где этот кораб-
лик может находиться. Это аналог ячейки в таблице. Информацией в, данном
случае будет наличие или отсутствие в клетке корабля.
Среди электронных таблиц наиболее популярно приложение Microsoft Excel —
составная часть пакета Microsoft Office. Приложение позволяет не только эффек-
тивно систематизировать данные, но и проводить автоматическую их обработку.
Вместе с приложением предлагается широкий набор весьма полезных встроенных
утилит, благодаря чему у пользователя есть возможность не только быстро и эффек-
тивно анализировать и структурировать данные, но и представлять результат в на-
глядном виде. Тем не менее, важно знать, в каких случаях электронные таблицы мо-
гут быть полезны, а в каких — нет.
Что касается области применения электронных таблиц, то они могут стать неза-
менимым помощником при выполнении статистического, финансового и экономи-
ческого анализа, решении прикладных инженерно-физических задач, выполнении
численных расчетов. Чего однозначно не удастся сделать с помощью электронных
таблиц — это выполнить аналитические вычисления (к примеру отыскать производ-
ные или вычислить интегралы в символьном виде). Хотя, надо отметить, численно
эти задачи в Excel решаются. Кроме того, приложение Excel может использоваться
вместе с другими программными продуктами, такими, например, как Maple или
MathCAD, благодаря чему эффективность работы существенно повышается.
Немаловажен и тот факт, что существуют достаточно широкие возможности по
оформлению рабочих книг Excel (именно так называются документы, создаваемые
этим приложением). Поэтому нет ничего удивительного в том, что наряду с редакто-
ром Word, электронные таблицы Excel являются одним из наиболее популярных
приложений для ведения электронной документации.
В самых общих чертах принцип работы с электронными таблицами Excel состоит
в следующем. В рабочей области, которая разбита на ячейки, пользователь вводит
данные (как правило, численные). Преобразование этих данных осуществляется по-
средством встроенных утилит Excel и результат такого преобразования отображает-
ся в ячейках электронной таблицы. Какие данные и как именно их преобразовывать,
равно как и те ячейки, где должен выводиться результат, определяет пользователь.
Удобство такого подхода состоит в том, что впоследствии, если входные, анализи-
руемые данные изменяются, результат автоматически обновляется и отображается в
соответствующей ячейке. Эта исключительно полезная концепция находит все более
широкое признание в умах инженеров-практиков, поскольку достаточно всего-
навсего внести изменения в начальные параметры, и можно сразу увидеть практиче-
ский эффект — нет необходимости часами повторять однотипные вычисления.
т -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
- 10 @, .
В самом левом углу панели размещена пиктограмма меню управления. Сразу после
нее следует девять меню: File (Файл), Edit (Правка), View (Вид), Insert (Вставка), Format
(Формат), Tools (Сервис), Data (Данные), Window (Окно) и Help (Справка). Справа
размещено поле, в которое можно ввести ключевое слово или фразу и получить справку.
Описание команд панели меню можно найти в одном из следующих разделов.
EArW
___ - ,
'
-
- ш - в I н : К » at g! ; Щ> % ,
: - . - , - , - _ - _.
А1 . л ' '•• *
По умолчанию рабочая книга Excel состоит из трех рабочих листов, которые, опять же
по умолчанию, имеют названия Sheetl (Лист1), Sheet2 (Лист2) и Sheets (ЛистЗ).
В нижней части рабочей области можно видеть корешки вкладок этих листов (рис. 1.8).
Для перехода к листу следует щелкнуть на соответствующей вкладке (ее корешке).
Слева от корешков вкладок расположена полоса их прокрутки (рис. 1.9). Она со-
стоит из четырех кнопок и полезна только в том случае, если количество листов в
книге таково, что корешки их вкладок не могут быть отображены сразу все в нижней
части рабочего окна. Назначение этих кнопок описано в табл. 1.1.
Кнопка Назначение
Прокрутка до тех пор, пока не будет отображен корешок вкладки первого
рабочего листа
] Прокрутка на один корешок назад
j Прокрутка на один корешок вперед
3 Прокрутка до тех пор, пока не будет отображен корешок вкладки последнего
листа книги
С : D i E : F
11
А
~~Т]НШИ
в
Z
шщя^^^я J
N \Sheet l/ShMt2.^9wet3/ |«] * I л!
Ready Sum-10 CAPS MUM
Кроме того, в данном случае в рабочем листе выделен диапазон ячеек, содержа-
щих числа от 1 до 4. Сумма этих чисел равна 10, и этот факт нашел свое отражение в
строке состояния (сообщение Sum=10).
Замечание. Диапазоном в Excel обычно называется группа ячеек, занимающая
прямоугольную область в рабочем документе. Диапазон задается так: сначала
указывается верхняя левая ячейка диапазона, затем, через двоеточие, нижняя
правая ячейка. О методах работы с диапазонами ячеек подробно рассказывается в
следующей главе. Иногда под диапазоном понимают область ячеек с данными,
окруженную пустыми ячейками.
( Совет. Чтобы скрыть строку состояния, достаточно выбрать команду View^ Status Bar.
Чтобы снова отобразить строку состояния, используют ту же команду.
Полезные советы
Ниже приведена некоторая полезная информация, касающаяся всевозможных
аспектов работы с рабочими листами и книгами. Эти советы помогут сэкономить
Color
Vtew Calculation
Distance!
6 jDistance2
rjOretanceS
i%i*tance4
Speed!
Speed2
Spe«d3
Speed4
Speeds
Чтобы перейти к первой ячейке в текущей строке, следует нажать клавишу <Ноте>.
Для перехода к ячейке А1 нужно нажать комбинацию клавиш <Ctrl+Home>.
При нажатой клавише <Scroll Lock> последующее нажатие клавиши <Ноте>
приводит к активизации первой (левой верхней) ячейки видимой области рабо-
чего окна, а нажатие клавиши <End> — к активизации последней (правой ниж-
ней) ячейки видимой области рабочего окна.
При нажатых клавишах <Ctrl+End> активной будет последняя ячейка в послед-
нем столбце активной области.
Замечание. Активной областью называется диапазон, который включает в себя
все ячейки рабочего листа, где есть данные. Определяется эта область левой
верхней и правой нижней ячейками диапазона с данными.
Ш Crjart... Worksheet
Ш
Symbol...
Bcture Pagegreak
Corjiment
Bcture
Diagram...
fibject...
Hyperlpk...
* my usage data
1. Знакомство с Excel 27
Очень часто справа от команды в списке меню указывается комбинация клавиш,
при помощи которой данная команда может быть выполнена. Например, справа от ко-
манды Hyperlink (Гиперссылка) на рис. 1.14 указана комбинация <Ctrl+K>. Это зна-
чит, что команду можно выполнить, если одновременно нажать указанные клавиши.
Многие команды дублируются кнопками на панели инструментов. Если на панели
инструментов для данной команды имеется кнопка, щелчок на которой приводит к ее
выполнению, пиктограмма кнопки, как правило, отображается в списке команд меню
слева от команды. Ниже в сжатом виде приведены характеристики команд панели ме-
ню. Там же представлены комбинации клавиш, с помощью которых эти команды вы-
зываются, а равно и кнопки панели инструментов, соответствующие этим командам.
Меню File
В меню File (Файл) собраны команды, полезные при работе с документами в
целом. Открытое меню представлено на рис. 1.16. Описание команд меню File можно
найти в табл. 1.2.
Следует отметить, что не для всех команд из перечисленных в этой и последующих
таблицах на панелях инструментов отображаются кнопки. В частности, кнопка для
команды Save as Web Page no умолчанию не отображается. Ее следует (если в этом
есть необходимость) самостоятельно добавить на панель инструментов. О том, как это
делается, рассказано в разделе, посвященном настройке графического интерфейса.
Кроме того, подменю содержат команды, для которых также могут быть предусмотре-
ны специальные кнопки. В соответствующих таблицах эти кнопки не представлены,
так что читатель имеет возможность изучить данный вопрос самостоятельно.
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)
Меню 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.17 можно заметить, что первые две команды рассматриваемого меню
(это Undo и Repeat, соответственно) отображены несколько необычно — команды
выделены серым цветом (это означает, что они недоступны), к тому же перед этими
командами появилось слово Can't, что в переводе означает невозможно. Объясняется
все просто — поскольку в документе никакие операции с данными не производились
(на рис. 1.17 изображен чистый документ), то и отменять нечего.
Меню View
В меню View (Вид) представлены команды и подменю, позволяющие настраивать
внешний вид рабочего окна приложения Excel. Содержимое меню можно видеть на
рис. 1.18, а в табл. 1.4 представлена основная информация о командах этого меню.
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
is
If
J
! У
, 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
Меню 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
Команды этого меню, как уже отмечалось выше, имеют непосредственное отно-
шение к работе со всевозможными объектами в документах и достаточно часто
используются на практике.
Меню Format
В меню Format (Формат) можно найти полезные при форматировании элементов
рабочего документа команды (рис. 1.20). Информация о командах этого меню соб-
рана в табл. 1.6.
В этом меню совсем немного команд, однако они важны, поскольку с их помощью
задается формат таблицы. В первую очередь это относится к команде форматирова-
ния ячеек Cells (Ячейки).
!
SJ Be £* Bew .Insert Format j loob t'Qata grtow ЦеЬ _
Некоторые из команд меню Tools можно назвать достаточно общими для прило-
жений из пакета Microsoft Office, поэтому здесь особых комментариев не требуется.
Те же команды, что часто используются в работе и специфичны именно для Excel, по
мере необходимости будут упоминаться и относительно их использования будут да-
ваться разъяснения. В частности, это относится к работе с макросами (глава 3), рав-
но как и к использованию формул в рабочих листах (главы 2 и 4).
Следует иметь в виду, что в случае подключения надстроек (а эти вопросы также
найдут отражение в книге) содержимое меню может меняться — там появляются но-
вые команды. Поэтому в зависимости от настроек системы пользователь, раскрыв
это меню (или какое-то другое), может увидеть список команд, несколько отличаю-
щийся от того, что описывается в книге.
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,
Меню Window
В меню Window (Окно) команд совсем немного (рис. 1.23) и предназначены они в
основном для управления окнами открытых на данный момент документов. Назна-
чение команд меню Window описано в табл. 1.9.
:
А В '[•- С ! 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 : ИМ
Меню Help
Команды меню Help (Справка) можно видеть на рис. 1.24. Они также перечисле-
ны в табл. 1.10, где дано их краткое описание.
Краткий обзор панели меню на этом заканчивается. Более подробно о командах па-
нели меню можно будет узнать по ходу изложения материала, в тех разделах, где опи-
сываются методы работы с соответствующими объектами. Кроме того, полезную ин-
формацию можно найти в разделе о настройке панели меню и панелей инструментов.
I Внимание! Еще раз хочется напомнить, что это кнопки, размещенные на стан-
дартной панели инструментов по умолчанию.
Открытие документа
Ш
Сохранение документа
Ш
Отправка содержимого рабочего листа в качестве электронного
сообщения
Поиск документов согласно заданного критерия
Проверка орфографии
Ш
Удаление выделенного фрагмента, диапазона или содержимого ячей-
ки в буфер обмена
Выделение курсивом
Выделение подчеркиванием
Выравнивание по центру
D Blank Workbook
New From exiting workbook
;§5 Choose workbook.,.
Щ General Templates...
'3ju Templates on my Web Sites...
& ] Templates on Microsoft.com
Рис. 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...
I Options -1
Кроме того, с помощью области задач можно выполнять поиск данных, для чего
выбирается команда Search (Поиск). В результате в области задач выводится окно,
изображенное на рис. 1.28.
Для выполнения непосредственно поиска следует указать в соответствующем
поле искомый текст и задать прочие параметры.
Выбором команды Insert Clip Art (Вставка объекта ClipArt) можно перейти к об-
ласти задач, посредством которой выполняется поиск и вставка объектов типа
Clip Art. Соответствующая область задач представлена на рис. 1.29.
i Selected locations
j All collections
Results should be:
-
Results should be:
5dectedffletvpes_ I All media file types [Vj
Ввод данных
Область рабочего листа, как отмечалось, состоит из ячеек, в которые непосредст-
венно и вводятся данные. Прежде чем ввести данные в ячейку, ее следует выделить,
или сделать активной. Для этого достаточно щелкнуть на ячейке левой кнопкой
мыши. Активная ячейка выделяется толстой рамкой. На рис. 1.30 активной является
ячейка А2.
А2
Elaces: p"
Совет. Следует иметь в виду, что привычные для большинства текстовых редак-
торов методы работы с клавиатурой в случае использования Excel имеют некото-
рые особенности. Так, если нажать на клавишу <Enter>, по умолчанию выполня-
ется переход к ячейке, расположенной под активной ячейкой. Если нажать ком-
бинацию клавиш <Shift+Enter>, можно перейти к ячейке, расположенной над
активной на текущий момент ячейкой. Такие действия можно переопределить.
Для этого достаточно выбрать команду Tools^Options, после чего откроется од-
ноименное диалоговое окно Options, в котором следует выбрать вкладку Edit
(Правка) (см. рис. 1.31). Внизу под командой Move selection after Enter (Перейти
Типы данных
Все данные, вводимые в ячейки таблицы, условно можно разделить на констан-
ты и формулы. Константы, в свою очередь, подразделяются на численные, текстовые
и такие, что задают даты. Все, что содержит только числа или специальные символы
(+, —, Е, е, $, %, I, а также скобки, точки и запятые), интерпретируется как число.
Прочие данные интерпретируются как текст.
При вводе численных значений в ячейки следует иметь в виду некоторые особен-
ности обработки и интерпретации специальных символов. А именно:
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 используются специальные форматы для процентов (знак процента %
после числа) и валюты (для разных валют — разные символы). Соответст-
вующие данные воспринимаются как численные, т.е. их можно складывать,
отнимать, умножать и делить.
Совет. Для того чтобы текст в ячейке не перекрывал соседнюю, можно изменить
ширину ячейки, содержащей текст, так, чтобы текст помещался полностью. Для
этого достаточно навести курсор мыши на границу столбца в полосе названий
столбцов и перетащить эту границу на нужное расстояние. Другой способ — дваж-
ды щелкнуть на границе. В результате граница переместится на расстояние, доста-
точное для отображения текста. Если в столбце несколько ячеек содержат длинные
текстовые строки, то ширина столбца (после двойного щелчка на границе) будет
установлена такой, чтобы текст полностью отображался во всех ячейках столбца.
Форматирование данных
Очень часто приходится не просто обрабатывать информацию, но и представлять
результат такой обработки, равно как и сами исходные данные, в наглядном виде.
На этот случай в Excel предусмотрен целый ряд средств, позволяющих приводить
как отдельные фрагменты рабочих листов, так и целые рабочие книги к нужному
формату, или, иначе, форматировать данные. Ниже рассматриваются основные мо-
менты, характеризующие особенности этого процесса в приложении Excel.
Patterns Protection
Category:
Nurrbei
Currency
Accounting General format cefls have no
Date specific number format.
Time
Percentage
Fraction
Scentific
Text
Special
Custom
Number handhg —
gedmal separator!]!
f~ t£a* system separators
PrMhg
; p ASow M/tetter paper rejsfcdng
Accounting
Date
Time
Percentage
Wegetive numbers:
Fraction
Scientific
Text
Special
ustom
Decimal places;
jj
Sne Mp the currency symbols and decimal panes n a
! 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.
13:30
1:30 РМ
13:30:55
1:30:55 РМ
30:55.2
37:30:55
locate (location):
Percentage formats rnufeply the cd value by 100 and (Jsplays the result wtth
e percent symbd.
Special
Custorr
.Number J Alignment
CeteW:
IVPe:
J
_l| locate (location):
(English (United States) ~3
Special formats are useful for tracking fist and database values.
Type the number format code, using one of the existing codes as a starting
point.
Cancel
Символ Описание
О Структурный ноль. При определении формата числа он используется для оп-
ределения минимального количества цифр, отображаемых в целой и десятич-
ной части (целая и десятичная части числа отделяются точкой (.))• Например,
если применить к числу 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)
Символ Описание
% Символ преобразования к процентному формату. В этом случае число
умножается на 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
Символ Описание
Директива повторения. Символ, указанный после звездочки, повторяется до
тех пор, пока ячейка не будет заполнена полностью. Например, если к числу 12
применить формат 0*х, то в ячейке будет отображено 12хххххх (количество
символов X зависит от ширины ячейки)
Знак Описание
Знак меньше. Выражение А<В истинно, если А меньше В
Знак больше. Выражение А>В истинно, если А больше В
Знак равно. Выражение А=В истинно, если А равно В
Знак меньше или равно. Выражение А<=В истинно, если А не больше В
Знак больше или равно. Выражение А>=В истинно, если А не меньше В
Знак неравно. Выражение АоВ истинно, если А не равно В
ИГ"
Number I Afignmentj
Textalgnment
j General
iertical:
Г;
Text control
[o ]|3
RigM-tofcft
lext direction:
Замечание. При выборе отступа (поле Indent) следует учесть, что если величина
отступа превышает ширину ячейки (в символах), она (равно как и ширина всех
прочих ячеек данного столбца) соответствующим образом увеличивается. Если
после этого настройки выравнивания вернуть в исходное состояние; (использу-
емое по умолчанию), ширина ячеек не изменится.
Элемент Описание
Тор (По верху) Выравнивание по верхней границе ячейки
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 (Градусы).
Если выбрать кнопку с текстом, размещенным по вертикали, и щелкнуть затем на
кнопке ОК, то в результате текст в ячейке будет отображаться сверху вниз, т.е. над-
This is a TrueType font. The same font wi be used on both your printer
and your screen.
На этой вкладке можно видеть стандартные для приложений Microsoft Office на-
боры полей и команд, посредством которых выполняется настройка параметров
шрифта. Соответствующие элементы кратко описаны в табл. 1.20.
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.
;
Ш : Si. В в a « :
•Иa«iтт•
Number | АЙдпгпе
P (petted
• В В ••• 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
10 - В /
New Workbook
; Open я workbook
Solar_System.xls
Notes.xls
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
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 (Полужирный).
Oom «workbook
Solar_5ystem.xls
Notes.xls
HyData.xb
р й* У И. и* Си 5* X '
:
06 -'' '•' ft '
- 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.
7. Ячейка С5 будет иметь особый вид, что найдет свое отражение и в формате
этой ячейки. Так, во-первых, проведем в этой ячейке диагональную черту.
Для этого на вкладке Border выберем в качестве линии тонкую одинарную
(нижний элемент первого столбца поля Style), после чего эта линия будет ис-
пользована для отображения диагонали ячейки (кнопка с косой чертой на
рис. 1.59, где размещен курсор).
8. В качестве типа выравнивания текста в ячейке С5 устанавливается выравни-
вание по высоте (команда Justify в списке Vertical на вкладке Alignment).
Флажок опции Wrap text можно не устанавливать, поскольку при таком типе
выравнивания текст на строки разбивается независимо от того, выбран или
нет режим разбивки на строки. На рис. 1.60 флажок все же установлен.
9. После этого в ячейку С5 вводится значение Характеристика Планета. Перед
первым словом следует оставить какое-то количество пробелов, равно как и
между первым словом и вторым (в данном примере было оставлено семь про-
белов перед словом Характеристика и четырнадцать пробелов между ним и
словом Планета — хотя количество пробелов в данном случае не столь важ-
но). Когда значение введено в ячейку, следует изменить ширину последней
(а вместе с ней и ширину всех ячеек столбца С) так, чтобы слова оказались в
разных строках в двух углах ячейки С5, как это показано на рис. 1.61.
:
fi
!
5
i
л
-
ЕЗ Microsoft Excel - Bookl
£je gdft Ив» S«ert Fs-mat loob Eata SJridow "*. X
10. Чтобы придать таблице некоторую свежесть, выполним заливку ячеек назва-
ний полей и ячеек, содержащих непосредственно данные, — но только разны-
ми цветами. Сделаем это в два этапа. Сначала выполним заливку всех ячеек
таблицы цветом, который будет использоваться для заливки ячеек с назва-
ниями полей, а затем закрасим ячейки, которые будут содержать данные.
Для закраски ячеек диапазона C5:G14 применим бирюзовый цвет (рис. 1.62),
который можно выбрать на вкладке Patterns.
11. Практически ту же процедуру повторяем по отношению к диапазону D6:G14,
но только цвет в этом случае светло-желтый (рис. 1.63). При этом новое фор-
матирование переопределяет то, что было применено на предыдущем этапе.
12. Теперь целесообразно ввести в таблицу названия планет (диапазон С6:С14) и
данные, характеризующие эти планеты (диапазон D6:G14). После того как это
сделано, выделяем диапазон C8:G8 (это строка с данными для Земли) и при-
меняем к этому диапазону полужирный шрифт (рис. 1.64).
PMC. 162. Выбор цвета закраски ячеек с названиями полей (закрашивается вся таблица)
\ Ш У! ', ; Ю - В J Г
Puc. 1.63. Изменение цвета для ячеек, в которые будут заноситься данные
Рис. 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). В результате все ячейки диа-
пазона объединяются в одну, а ее адрес определяется адресом левой верхней
ячейки диапазона слияния — в данном случае это СЗ.
И
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
.
s s. **
4880
12104 091tj
12756
Text control
6794 •
Г Shrtttoflt ±)Bee«»s 142985
v
M < > и \ Chartl
'9
' 51к*2 / Sheets / •
"J »ir
Результат после нажатия клавиши <Enter> таков, как показано на рис. 1.70.
Чтобы данные выглядели так, как показано в рассмотренном выше примере, сле-
дует к ячейке А1 применить формат Scientific (Экспоненциальный), для чего выби-
рают команду Format^Cells и затем соответствующий элемент из списка Category
на вкладке Number. Результат представлен на рис. 1.71.
н
i
Команда Описание
Height (Высота) При выборе этой команды открывается диалоговое окно, в ко-
торое можно ввести параметры высоты ячейки. По умолчанию
это значение равно 12.75. Однако особой необходимости в этой
команде нет, так как высота ячеек подбирается в соответствии
с размерами шрифта. Данная команда полезна, когда высоту
ячейки (а равно и высоту всех ячеек строки) необходимо уста-
новить безотносительно к размеру шрифта
AutoFit (Автоподбор) Команда автоматического выбора высоты ячейки в соответст-
вии с данными в строке (в зависимости от размеров шрифта)
Hide (Скрыть) Команда позволяет скрыть строку. При этом строка не удаляет-
ся, а просто не отображается в документе
Unhide (Отобразить) Отображение скрытой строки
I Совет. Чтобы скрыть строку, можно навести курсор мыши на нижнюю границу
этой строки в полосе названия строк и перетащить ее к верхней границе этой
строки. Если продолжить перетаскивание, можно скрыть сразу несколько строк.
Команда Описание
Width (Ширина) Командой задается ширина выделенных ячеек (если точ-
нее, то столбцов, содержащих эти ячейки). По умолчанию
ширина ячеек рабочего листа устанавливается равной
8.43 ширины символов
AutoFit Selection (Автоподбор Команда позволяет установить ширину ячеек столбца в
для выделения) соответствии с данными в этих ячейках так, чтобы данные
полностью помещались по ширине
Hide (Скрыть) Команда полезна в том случае, если нужно скрыть столбец
Unhide (Отобразить) Команда отображения скрытого столбца
Standard Width (Стандартная Команда позволяет изменять заданную по умолчанию ши- •
ширина) рину ячеек. После применения этой команды ширина тех
ячеек, для которых она не была выставлена "персонально",
будет изменена на ту, что пользователь вводит в диалого-
вом окне в процессе выполнения данной команды
Команда Описание
Rename (Переименовать) Команда переименования рабочего листа. После выбора
этой команды название рабочего листа внизу на корешке
будет выделено и его можно редактировать. Следует ввести
новое название и нажать клавишу <Enter>
Hide (Скрыть) Команда позволяет скрыть активный рабочий лист
Unhide (Отобразить) Команда отображения скрытых рабочих листов. После ее
выбора открывается диалоговое окно со списком скрытых
рабочих листов. Следует выбрать нужный и щелкнуть на
Кнопке ОК
Background (Фон) Команда выбора фонового рисунка для рабочего листа.
Открывается диалоговое окно, посредством которого выби-
рается графический файл, служащий фоном для рабочего
листа. После того, как фон выбран, команда заменяется на
Delete Background (Убрать фон). С помощью последней
фон можно убрать
Tab Color (Цвет корешка) Команда установки цвета для корешка рабочего листа.
Если лист неактивен, вкладка будет иметь соответствующий
цвет. Если лист активен, внизу у корешка будет отображена
толстая цветная линия
I Замечание. Для того чтобы в нижней части диалогового окна AutoFormat ото-
бражался раздел Formats to apply (Применить форматы), следует щелкнуть на
кнопке Options (Параметры) в правой части диалогового окна.
ill"
(ОЩ1Г 5
East 7 5 19
W«t 6 4 7 17
South 8 7 9 24
Total 21 18 21 60
Classic 2
AorajntingJ
P fex-tfer
г Condition].
fidd» I Qeiet»... |
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... [
t= I ! Ц
< > «\Sh«» /Sh Ы.. | ИГ
als
Preview of format to use
true:
Видно, что специальный формат (тот, что определялся выше) применяется толь-
ко к ячейке В2, поскольку число в ячейке А2 больше 2, в то время как к ячейке В1
формат не применяется, поскольку значение в ячейке А1 меньше 2.
Последней в меню Format является команда Style. В результате ее выполнения
открывается диалоговое окно, показанное на рис. 1.80. В этом диалоговом окне мож-
но изменять параметры уже существующих стилей, а также создавать собственные.
В качестве примера рассмотрим процесс создания стиля пользователя. Делать это
можно несколькими способами, поэтому остановимся только на основных.
Stykname: .. ]FirstStyle
Puc. 1.80. Диалоговое окно Style Рис. 1.81. Создание стиля пользователя
a MiiSliFles_1.xls
_.А __В _ С___
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
'3 i '')(f j : ••
Рис. 1.85. Процесс размещения кнопки на панель инструментов
Default Styte
!
Tea Cyily (ii Menus)
ч Image and Text
Begin a Group
Assign Hyperlink
. Assign Macro...
Picture Cotofs
±1
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
Toobar name:
МуТооЬаН
Toolbars in workbook:
EuroPlaceholder 2000 "3
Caned
Чтобы открепить панель от документа, следует снова открыть окно 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
i£
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
В новом созданном меню нет команд, поэтому если на нем щелкнуть мышью,
будет отображен небольшого размера серый квадрат. Однако команды в меню мож-
но добавить. Делается это точно так же, как и в случае добавления команд к уже су-
ществующим меню.
Для удаления меню следует:
1. Открыть диалоговое окно Customize.
2. Выделить удаляемое меню.
3. Перейти ко вкладке Commands (окно Customize).
4. Щелкнуть на кнопке Modify Selection.
5. В открывшемся списке выбрать команду Delete (рис. 1.93).
Ready
аазЧТаш в a © ПШЕ^-
PMC. f ..95. Удаление меню
Расширение Описание
Файл рабочей книги Excel
• xlw Файл рабочей области. В этом файле сохраняются не только рабочие
документы, но и их взаимное размещение, т.е. вся рабочая область
Файл шаблона
Резервная копия файла
_ Файлы надстроек _
Следует отметить, что в этой главе были освещены далеко не все вопросы, свя-
занные с работой приложения 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. Приведенный пример является иллю-
страцией еще одного правила: в строке формул отображается формула, а в соот-
ветствующей ячейке — результат ее вычисления.
Выше уже отмечалось, что в этом случае введенная сумма как математическая
формула не воспринимается, а обрабатывается в качестве текстового значения со
всеми вытекающими отсюда последствиями.
( Внимание! Существует еще и такой формат адресации, как 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.
' X л^ jt =A1"2| В4 Г*
А _ _8 . M~l~iS*EZ
1^1=
1 ,) 2
•6~\ i ! !
Просто объясняется и число 16 в ячейке С5. Дело в том, что в ячейке ВЗ, согласно
формуле =А1Л2, вычисляется квадрат числа, содержащегося в ячейке А1. В ячейке С5
вычисляется квадрат того числа, что находится в ячейке ВЗ, а это, в свою очередь, квадрат
числа из ячейки А1. Два в четвертой степени есть шестнадцать. Таким образом, получи-
лась последовательность ссылок. Достаточно изменить число в ячейке А1, как автомати-
чески будут пересчитаны ячейки ВЗ и С5. Желающие могут это проверить.
Values Only
Formatting Only
UnkCefc
C5
e
9.8i j.g
s in new workbook-
Standard for*
IXeu* ffle location: ,.'••
Userpame:
Очень часто при работе с таблицами бывает недостаточно выполнить те или иные
ссылки. Над соответствующими данными приходится производить еще и сложные
преобразования. Это особенно справедливо, когда речь заходит об инженерных рас-
четах. На этот случай в Excel предусмотрен целый набор специальных, предопреде-
ленных функций.
В следующем разделе речь пойдет о некоторых общих аспектах, имеющих перво-
степенное значение при работе с функциями в Excel. Здесь же будут описаны наибо-
лее общие и часто используемые функции, а также базовые операции, которые мож-
но выполнять с их помощью.
Вставка функций
Понятно, что прежде чем вставлять функцию, следует выбрать ячейку, куда эта
функция будет вставляться. После этого можно выбрать команду Insert 1 ^Function
(Вставка<=>Функция). В результате раскроется диалоговое окно Insert Function,
представленное на рис. 2.28.
В поле Select a function (Выбрать функцию) предлагается список тех функций,
которые использовались последними. Если нужная функция в списке присутствует,
достаточно щелкнуть на ней мышью, а затем щелкнуть на кнопке ОК в нижней части
диалогового окна.
Если функции, которая необходима пользователю, в предложенном списке нет, в
раскрывающемся списке Or select category (Или выбрать категорию) следует вы-
брать элемент АИ (Все). В этом случае в поле Select a function будет отображен спи-
сок всех доступных функций. Он достаточно велик, поэтому если известно, к какой
категории функций принадлежит искомая (например, логическая или финансовая),
лучше вместо значения АИ выбрать в списке Or select category нужную группу
функций (для приведенного примера это, соответственно, Logical и Financial).
Список будет не таким большим, поэтому и искать функцию легче.
IF
AVERAGE
HYPERLINK
COUNT
MAX
SIN
SUM(mJinberl .number 2....)
Adds al the numbers in a range <rf eels
Математические функции
Для выполнения непосредственно математических операций могут быть полезны
функции, перечисленные в табл. 2.1. В некоторых случаях функции указываются
вместе с аргументами.
Функция Описание
ABS() Модуль числа. В качестве результата функцией возвращается модуль
числа, указанного ее аргументом
ACOSQ В качестве результата функцией возвращается арккосинус от ее
аргумента
ACOSH() Гиперболический арккосинус
ASINQ Арксинус от числа, указанного аргументом функции
ASINH() Арксинус гиперболический
ATAN() Функцией в качестве результата возвращается арктангенс от аргумента
ATANH() Гиперболический арктангенс
Функция Описание
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) Целочисленный остаток от деления А (первый аргумент) на В
(второй аргумент)
Функция Описание
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() Тангенс гиперболический от аргумента
Функция Описание
TRANSPOSEQ Транспонирование матрицы (замена местами строк и столбцов
диапазона)
TRUNC() Округление числа, указанного аргументом функции, до целого значе-
ния путем отбрасывания дробной части. Если указать еще один
(второй) аргумент, то он будет определять точность округления
(число знаков после десятичной точки)
Логические функции
Помимо непосредственно математических функций, немаловажное место занима-
ют и логические функции. Эти функции обычно могут возвращать одно из двух значе-
ний: TRUE (истина) или FALSE (ложь). Справка по этим функциям, а также по функ-
ции IF(), имеющей непосредственное отношение к логическим, приведена в табл. 2.2.
Функция Описание
ANDQ Функция возвращает значение TRUE, если все ее аргументы (величи-
ны логического типа) равны TRUE. В противном случае (т.е. если хотя
бы один из аргументов равен FALSE) возвращается значение FALSE
FALSE() Функцией возвращается значение FALSE
IF() У функции три аргумента. Первым аргументом является условие,
которое проверяется при вычислениях. Если условие выполнено
(значение TRUE), значение в ячейке определяется согласно второго
аргумента функции. Если условие не выполнено (значение FALSE),
значение ячейки определяется третьим аргументом функции
NOTQ Логическое отрицание. В качестве значения возвращается выражение,
противоположное аргументу (логический тип). Другими словами,
значение TRUE меняется на FALSE и наоборот
ORQ Логическое ИЛИ. Если хотя бы один из аргументов принимает значе-
ние TRUE, функцией возвращается значение TRUE. Значение FALSE
возвращается, только если всеми аргументами также принимается
значение FALSE
TRUEQ Функцией возвращается значение TRUE. Аргумента у функции нет
Функция Описание
CHARO Функцией по коду, указанному в качестве аргумента, возвращается
символ, который определяется согласно таблице кодов
CODEO Функцией в качестве результата возвращается код первого символа
текстового выражения, указанного аргументом функции
CONCATENATEO Функцией выполняется объединение текстовых значений, указанных
в качестве ее аргументов, в одну строку. Аргументы разделяются за-
пятыми и заключаются в двойные кавычки (чтобы они интерпретиро-
вались как текст)
ЕХАСТО Функцией выполняется проверка на предмет полного совпадения
двух текстовых строк, указанных в качестве ее аргументов. В случае
совпадения функцией возвращается значение TRUE. В противном
случае возвращаемым в качестве результата значением является
FALSE. При сравнении принимается в расчет различие между строч-
ными и прописными буквами
FINDQ Функцией осуществляется поиск строки, указанной в качестве перво-
го аргумента, в строке, указанной вторым аргументом. В качестве ре-
зультата функцией возвращается позиция первой строки во второй.
Если строка встречается несколько раз, возвращается первая по оче-
редности позиция. Можно указать третий аргумент функции (число).
Он определяет позицию, начиная с которой выполняется поиск
FIXEDQ Функция может иметь два или три аргумента. Первым аргументом ука-
зывается число, которое в результате выполнения функции округляет-
ся. Количество знаков после десятичной точки, которые оставляются
при округлении, определяется вторым аргументом функции (это целое
число). Третьим аргументом (необязательным) является логическое
выражение. Если оно равно TRUE, то при отображении числа запятая
для выделения тысяч не используется. Если выражение равно FALSE
или не указано вообще, то запятая в случае необходимости отображает-
ся. Результат округления преобразуется к текстовому формату
LEFT() Функция имеет два аргумента. Первым является текстовое выраже-
ние. Второй аргумент (число) определяет количество символов с на-
чала строки, которые возвращаются функцией в качестве результата
LENQ Функцией возвращается в качестве значения количество символов в
строке, указанной аргументом функции
LOWERO Тест, указанный в качестве аргумента, переводится функцией в ниж-
ний регистр (все буквы строчные)
PROPERO Текст в аргументе функции преобразуется так, что все буквы, кроме пер-
вых букв слов, будут строчными. Начальные буквы слов — прописные
Функция Описание
REPLACEQ Функцией выполняется замена фрагмента текста. Функция имеет
четыре аргумента. Первым аргументом указывается текст, в котором
выполняется замена. Второй аргумент — начальный символ, с которо-
го выполняется замена. Третий аргумент функции определяет коли-
чество замещаемых символов в исходном тексте. Наконец, последним,
четвертым аргументом, является вставляемое на место удаленного
фрагмента текстовое выражение
REPT{) Текст, указанный первым аргументом функции, повторяется количе-
ство раз, определяемое вторым аргументом функции
SEARCHQ Функция аналогична функции FINDQ с той лишь разницей, что в дан-
ном случае состояние регистра игнорируется (строчные и прописные
буквы не различаются)
SUBSTITUTEQ Функция имеет три или четыре аргумента. Первым аргументом ука-
зывается текст, в котором выполняется замена. Второй аргумент оп-
ределяет тот фрагмент текста, который следует заменить. Третий
аргумент задает фрагмент вставляемого текста (на место удаляемого
фрагмента). Если не указать четвертый аргумент, то замена будет
осуществлена везде, где появляется указанный вторым аргументом
текст. Если замену следует выполнить только в одном месте, четвер-
тым параметром указывают порядок появления заменяемого фраг-
мента в текстовой строке
Т() Функция в качестве результата возвращает аргумент, если это тексто-
вое выражение. В противном случае возвращается пустая строка
ТЕХТ() Преобразование чисел в текстовый формат. Первым аргументом
функции указывается число, второй аргумент задает способ его фор-
матирования. При этом используется синтаксис определения формата
пользователя (см. главу 1). Код формата заключается в двойные ка-
вычки. Примеры использования команды можно найти в одном из
следующих разделов
TRIMQ В результате выполнения функции в текстовом выражении (аргумент
функции) удаляются все лишние пробелы (за исключением одинар-
ных пробелов между словами)
UPPER() Перевод всех символов текстового выражения, указанного аргумен-
том функции, в верхний регистр (все буквы прописные)
VALUEO Преобразование текста (аргумент функции) в число. Аргументом
функции должно быть текстовое представление числа
Функция Описание
AVEDEVO Функцией возвращается среднее значение модулей отклонений данных,
указанных в качестве аргумента (или аргументов) функции, от среднего
значения. Если {х:} — набор данных (числа), то значение фз'нкции опре-
1 "
деляется согласно формуле —^|*/ ~х„\, гДе N ~ количество элементов
N /=i
множества {х,}, а ха — среднее значение, которое определяется согласно
1 "
равенства JC0 = —^;с.. В качестве аргумента могут использоваться как
Функция Описание
BINOMDISTO Функция биномиального распределения. У функции четыре аргумен-
та. Четвертый аргумент является логической величиной. В зависимо-
сти от его значения функцией возвращаются разные результаты.
Если четвертый аргумент равен FALSE, то в качестве результата
функцией возвращается величина, равная С*р*(1-р)"~* , где
1 л!
С = есть биномиальные коэффициенты.
k\(n-k)\
Смысл формулы в том, что она представляет вероятность k (первый
аргумент функции) удачных исходов в и (второй аргумент функции)
испытаниях при вероятности удачного исхода р (третий аргумент
функции). Если четвертый аргумент равен TRUE, то возвращается
честве, не превышающем k
CHIDISTO Функция хи-квадрат распределения. Имеет два аргумента. Первый
(х) — это значение, для которого вычисляется распределение, второй
(п) — степени свободы. Это распределение рассчитывается для вели-
Функция Описание
DEVSQO Сумма квадратов отклонений чисел от их среднего значения. В каче-
стве аргумента можно указать сами числа или, например, диапазон
ячеек (равно как и ссылки на отдельные ячейки). Если [х{\ —
исследуемый набор чисел, то функцией возвращается значение
N I N
2
V(* - JC0) , где х. - — V x есть среднее значение чисел из упомяну-
М NM
| Xexp(-Xt)dt = 1 - ехр(-Лх)
pT(a)J
выражением — > —
Функция Описание
Функция Описание
SMALLQ Функция возвращает и-е по счету наименьшее число из диапазона
ячеек. Диапазон указывается первым аргументом функции,
число п — вторым
STANDARDIZEO Функция нормализации параметра х (первый аргумент) по среднему
значению а (второй аргумент) и стандартному отклонению D (третий
аргумент). Возвращаемое в качестве результата значение вычисляется
согласно формуле (х - a)/D
STDEVQ Функция вычисления стандартного отклонения. Множество значений
{*} в аргументе функции задается в виде диапазона или путем перечис-
ления чисел (ссылок на ячейки). Результат вычисляется по формуле
Их-
П
,где
N(N-l)
N есть количество элементов множества. При этом текстовые и логиче-
ские значения игнорируются. Если такие значения следует принимать в
расчет, используют функцию STDEVAQ
STEYX() Функция возврата погрешности регрессии. Методы ее использования,
равно как и способ определения погрешности, описаны в главе, по-
священной статистическим методам
VAR() Функция вычисления разброса данных. Множество значений {х) из /V
элементов задается в виде диапазона или путем перечисления чисел
(ссылок на ячейки) в аргументе функции. Результат вычисляется по
формуле — —
N(N-1)
(как несложно заметить, эта функция имеет прямое отношение к
функции STDEV(), описанной выше). При этом текстовые и логиче-
ские значения игнорируются. Если такие значения следует принимать
в расчет, используют функцию VARAQ
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
Функция Описание
BESSELI() Функция Бесселя мнимого аргумента Ij(x) (модифицированная функ-
ция Бесселя). Функция является решением уравнения ху"(х} + ху'(х) —
- (х2 + v1)y(x) = 0 (параметр v определяет индекс функции). У функции
два аргумента. Первый — это значение переменной, для которой
вычисляется функция (т.е. х), второй — индекс v функции Бесселя
BESSELJQ Функция Бесселя первого рода Jj(x), решение уравнения х2у"(х) +
+ ху'(х) + (хг - v2)y(x) = 0 (называется уравнением Бесселя). Функция
/ i-,i 2i+v
Функция Описание
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
Функция Описание
GESTEPQ Функция, равная единице, если ее первый аргумент не меньше, чем
второй. В противном случае значение функции равно нулю
HEX2BINQ Функция преобразования числа из шестнадцатеричной системы
счисления в двоичную
HEX2DECO Функция преобразования числа из шестнадцатеричной системы
счисления в десятичную
НЕХ2ОСТ() Функция преобразования числа из шестнадцатеричной системы
счисления в восьмеричную
IMABSO Функцией возвращается модуль (абсолютное значение) комплексно-
го числа
IMAGINARYQ Функцией возвращается мнимая часть комплексного числа
IMARGUMENTO Функцией возвращается аргумент комплексного числа
IMCONJUGATEO Функцией вычисляется число, комплексно сопряженное тому, что
указано аргументом функции
IMCOSQ Косинус от комплексного числа
IMDIVQ Функцией вычисляется отношение двух комплексных чисел
1МЕХР() Экспонента от комплексного числа
IMLN() Натуральный логарифм от комплексного числа
IMLOG100 Десятичный логарифм от комплексного числа
IMLOG20 Двоичный логарифм от комплексного числа
IMPOWERQ Функция возведения комплексного числа (первый аргумент функ-
ции) в целочисленную степень (второй аргумент)
IMPRODUCTO Произведение комплексных чисел, которые указываются аргумента-
ми функции. Можно использовать ссылки или указать в качестве
аргумента диапазон ячеек
IMREALO Действительная часть комплексного числа
IMSINQ Синус от комплексного числа
IMSQRTO Корень квадратный из комплексного числа
IMSUBO Функция вычисления разности двух комплексных чисел
IMSUMO Функция вычисления суммы комплексных чисел. Аргументами мож-
но указывать сами числа, ссылки на ячейки, диапазоны ячеек
OCT2BINO Функция преобразования числа из восьмеричной системы счисления
в двоичную
OCT2DECO Функция преобразования числа из восьмеричной системы счисления
в десятичную
ОСТ2НЕХ() Функция преобразования числа из восьмеричной системы счисления
в шестнадцатеричную
Замечание. Еще раз хочется напомнить, что диапазон в Excel задается так: снача-
ла указывается верхняя левая ячейка, а затем, через двоеточие, правая нижняя
ячейка. Например, четыре ячейки А1, А2, В1 и В2 образуют диапазон, ссылка на
который выглядит как А1 :В2.
Ш| Resklotc.xls
Совет. Данную формулу можно ввести в ячейку (или строку формул) непосредст-
венно с клавиатуры. Однако удобнее воспользоваться командой Insert^Function
(Вставка <=>Функция) или просто щелкнуть на кнопке со значком функции слева от
поля ввода строки формул, в результате чего открывается диалоговое окно
Insert Function (Вставка функции). Нужно выбрать в этом диалоговом окне функ-
цию SUM() — если она отсутствует в списке Most Recently Used (Последние ис-
пользуемые), ее, безусловно, легко будет отыскать в разделе Math&Trig
(Математические и тригонометрические). В открывшемся после этого диалоговом
окне Function Arguments (Аргументы функции) следует, поочередно выбирая поля
ввода аргументов и щелкая мышкой на соответствующих ячейках рабочего листа,
построить требуемую формулу.
Что касается ячейки G9, то туда вводится либо формула =D9/SUM(B3,D3,F3), либо
=D9/G10. Эффект будет одинаков, однако последнюю формулу вводить проще и разум-
нее, поскольку, если, скажем, нужно будет впоследствии добавить еще одно сопротивле-
ние параллельно к одному из резисторов, процедура вычисления общего сопротивления
изменится, а необходимости изменять формулу вычисления тока не будет.
Все остальное имеет отношение к форматированию данных, которое в этом слу-
чае достаточно простое. Можно отметить следующие его основные моменты.
Кнопка Назначение
Щелчок на этой кнопке приводит к раскрытию списка, в котором собраны
команды для работы с графическими объектами общего характера, позво-
ляющие вращать эти объекты, производить их выравнивание, задавать
приоритетность отображения и т.п.
Выбор графических объектов. Захватываются все графические объекты,
которые попадают (полностью!) в выделенную область
Раскрывается список с командами отображения всевозможных заранее
предопределенных графических форм: различных кривых и ломаных ли-
ний, звездочек, выносок, фигурных стрелок и прочих подобных элементов
Построение линии
Построение линии со стрелкой
Построение прямоугольников
Построение овалов
Вставка текстового поля
[:| Вставка художественного текста WordArt
Вставка структурной схемы
Вставка объекта ClipArt
Вставка графического изображения из файла
Выбор цвета заливки внутренних областей графических объектов
|.£.| Выбор цвета отображения линий
JA-J Выбор цвета отображения текста
Выбор толщины линии
Выбор типа линии
IgJ Выбор типа линии со стрелкой
Выбор эффекта отображения тени объекта
| '• Выбор эффекта отображения объекта в качестве трехмерного
I V Е* W
^ j
.R1.0H | R2, Он ; R3.0H :
* . *
it -
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 /
В таблице, размещенной ниже, под той, что описывалась только что (см. рис. 2.32),
представлено меньшее количество данных, однако они позволяют сделать некоторые
выводы о характере происходящих процессов в целом (это, другими словами, стати-
стическ^е данные). В частности, там представлены средние значения, среднее откло-
нение модуля и среднеквадратичное отклонение напряжения и силы тока о' их сред-
него значения за период. Для вычисления средних значений использованг функция
AVERAGEQ. В ячейку С20 введена формула =AVERAGE(C14:V14), а в ячейку С21 -
соответственно =AVERAGE(C15:V15). В качестве аргументов этих функций указаны
диапазоны ячеек, по которым средние значения и вычисляются.
Замечание. Выше последним столбцом при определении диапазонов указан V а
не W по той причине, что первый (начальный) момент и последний (данные в
столбце W) описывают одно и то же состояние (точнее, сдвинутое на полный пе-
риод). Чтобы не считать фактически одну и ту же точку дважды, данные в по-
следнем столбце в расчет не принимались.
Использование названий
В Excel есть одна достаточно интересная концепция, которая позволяет сущест-
венно упростить процедуру работы с формулами. Главная ее идея состоит в исполь-
зовании для ячеек, диапазонов, формул и констант специальных названий. В этом
разделе речь пойдет о них.
Рис. 2.35. Диапазону А1:С4 присвоено имя Рис. 2.36. Именованный диапазон содер-
Range жится внутри выделенного
ацНейтрон
4 I Протон
Водород
бор
ЩНеон
В. {Кремний
I
Значение в ячейке D3 равно 11. Дело в том, что в формуле, при ее определении,
было две ссылки: относительная на ячейку А1 (при активной В2, поэтому на самом
деле это ссылка на ячейку, расположенную вверх и влево на одну позицию к теку-
щей) и абсолютная ссылка на ячейку $В$1. Поскольку формула впоследствии раз-
мещается в ячейке D3, то, согласно относительной ссылке в формуле, используется
значение в ячейке С2. Результат вычисления формулы — это 3 (значение ячейки С2)
в квадрате плюс 2 (значение ячейки В1), т.е. 11. Таким образом, в данном случае
значение ячейки А1 вообще не используется.
Dj Names ids
Рис. 2.42. Использование названия Namel Рис. 2.43. Использование названия Name2
в формуле в формуле
Cetcutotjon
:: ;<* automatic <~BanuaI
.f*~ Automatic except tables 17 . .
Workbook options
P Update remote references Save external |nk values
=Бор Нуклоны
_ С
Символ Нуклоны Протоны Масса, а.е.
0.0005485
1 008665
1.0072765
1.007825
11.0093
19.99244
27'.976Э
С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
С 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:
Cancel '
Cancel
[ Замечание. Кнопку Press and Hold to View Sample отпускать нельзя. Диаграмма
отображается только до тех пор, пока эта кнопка нажата.
Никель 4.84
Цинк 3.74
Qata range:
Series h: Г BOM
<* Сфгив
'• • И ;
Окно, как и в предыдущем случае, имеет две вкладки. На вкладке Data Range
(Диапазон данных), помимо образца диаграммы, содержится поле Data range
(Диапазон), где указывается диапазон данных, по которым строится диаграмма
(имеются в виду все данные, не только численные), а также группа переключателей
Series in (Ряды в). Переключатель в этой группе позволяет определить, как распола-
гаются данные — по столбцам (положение переключателя Columns) или по строкам
(положение переключателя Rows). В данном конкретном случае этот переключатель
установлен именно так, как это требуется. Однако если численные данные размещены
в нескольких столбцах (или строках — это как посмотреть), с помощью переключателя
можно указать, как именно (по строкам или по столбцам) следует формировать после-
довательность значений. Самостоятельно Excel не всегда правильно разбирается в по-
добных ситуациях. Справедливости ради следует отметить, что часто это невозможно
сделать по объективным причинам и без вмешательства пользователя не обойтись.
Например, строки таблицы могут содержать данные о зависимости давления газа от
температуры при постоянном объеме, и разные строки содержат сведения для разных
объемов газа. Понятно, что данные можно группировать как для разных объемов, так и
для разных температур, и решать эту задачу предстоит исключительно пользователю
(хотя Excel и предложит свое видение проблемы). Подробнее такие вопросы обсужда-
ются при решении практических задач в следующем разделе.
Вкладка Series (Ряд) полезна при выполнении дополнительных настроек диапа-
зона данных. В частности, в списке Series (Ряд) представлены названия для каждого
из отображаемых типов данных (рис. 2.61).
Data Range
ЕД * 1. Name; }=Sheetl!$B$l
<Back Qrtsh
В данном случае элемент в списке только один, однако там их может быть и
больше — в зависимости от того набора данных, по которым строится диаграмма.
Если данные для какой-то категории оказались в списке случайно (или не случайно,
но отображать их статистику в диаграмме не следует), их можно удалить с помощью
кнопки 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.) задаются названия вдоль
соответствующей оси. При внесении значений в указанные поля они автоматически
(но с некоторой задержкой) отображаются в окне предварительного просмотра диа-
граммы, расположенном в правой части диалогового окна.
На вкладке Axes (Оси) можно задать параметры координатных осей (рис. 2.63).
На вкладке представлены команды с теми же названиями, что и поля на предыдущей
вкладке. Наличие флажка свидетельствует о том, что отображается соответствую-
щая координатная ось (т.е. если флажка нет, то вдоль соответствующей оси данные
не масштабируются). Кроме того, внизу под командой Category (X) axis (Данные
вдоль оси X) можно видеть переключатель на три положения. Дело в том, что в Excel
есть два принципиальных способа масштабирования данных вдоль оси, и, соответст-
венно, два режима. Этим режимам соответствуют положения переключателей
Category (Категория) (масштабирование по группам) и Time-scale (Временной)
(масштабирование по времени). Второй режим, режим масштабирования по време-
ни, используется в основном в тех случаях, когда группы данных относятся к разным
моментам времени. При этом данные размещаются в строгой хронологической по-
следовательности (даже если данные представлены в иной очередности) с соблюде-
нием масштаба относительного смещения моментов времени. По умолчанию пере-
ключатель установлен в положение Automatic (Автоматически), что позволяет Excel
автоматически выбирать нужный режим (режим масштабирования по времени ис-
пользуется по умолчанию только в тех случаях, когда соответствующие данные, по
которым ранжируются группы, имеют формат типа дата-время).
''• Autaoo»
<~ Time-scale
Г'. • •:...-
I* Value CZlaxfc
чллт.тядилгадядЕииг
SetasffiaOs
Г
". г »
Value (Z) axis
P Major gridSnes
,,•!""" Wnor.grid8nes
«6»* Brtsh [
Titles | Axe
P Show legend
Placement - -
<~ Bottom
f Cgmer
<~Tof>
: T~ Catenary name
Г '••'
r
Sgparatw: ,
EH*
!И.ЕТ1КТО5ТТ.»Яга.М|1».Д1|П5П1|П1ПТП
сТ"'Show data Ы*
F
Cancel ba
^ Assert h:
«{jack
После щелчка на кнопке Finish (Готово) процесс создания диаграммы можно счи-
тать законченным (а можно и не считать!).
Внимание! В зависимости от того, какого типа диаграмма строится и по каким
данным, процесс создания диаграммы может иметь свои особенности в смысле
отсутствия некоторых из описанных выше вкладок, кнопок и т.п. или наличия
прочих элементов, не упомянутых выше. Однако, как правило, это имеет второ-
степенный эффект и процесс создания диаграмм в целом достаточно стереотипен.
;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. Исходный вид диаграммы
J I L1
Ч : . J ^ . . I ., ^ i ' J ., ~ , , '^ .....:.] ' .".
1Г
_ Сплав Вуда | ;
Относительная ! 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
; Относительная
Элемент \ молекулярная Содержание
3 масса
Cancel
Puc. 2.76. Создание диаграммы нового типа Рис. 2.77. Определение названия для типа
диаграммы
На рис. 2.78 представлена ситуация, когда на основе только что описанного поль-
зовательского типа создается новая диаграмма. В качестве базовых выбраны те же
данные, что в таблице о составе сплава Вуда, однако в этом случае выделен только
диапазон с численными величинами (т.е. диапазон В4:С7). Это отразилось, как не-
сложно заметить из рис. 2.78, на отсутствии названий для групп данных, однако об-
щий вид диаграммы остался прежним.
Для удаления типа из списка диаграмм пользователя следует перейти во вкладку
Custom Types окна Chart Type, выделить тот тип диаграмм, который следует удалить из
коллекции типов, и щелкнуть на кнопке Delete. Все это лучше делать, предварительно
выделив диаграмму (не важно какого типа), только в этом случае кнопка Delete будет ак-
тивной. После этого в появившемся окне запроса следует подтвердить удаление.
Рис. 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. Создание массива данных
У <а< * % -- -
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
:
^ , N . . ....^........_...
.....„.„„- . . / ^T^^"":L].^.... ^ ' ""' '
Series
] Функция Бесселя _]]у
На третьем этапе можно задать, помимо прочего, название для графика, в поле
Chart title (Заголовок диаграммы). По умолчанию название предлагается совпадающим с
текстом в легенде графика. В данном случае оно изменено на График функции Бесселя.
В поле Category (X) axis (Данные вдоль оси X) введен текст, который будет отображать-
ся вдоль оси аргумента (введено х), а в поле Value (Y) axis (Значение вдоль оси Y) вво-
дится текст, отображаемый вдоль оси значений функции (введено у(х)) — рис. 2.86.
На вкладке Gridlines (Линии сетки) отменяем отображение координатных линий
(убираются флажки всех опций) — рис. 2.87. На вкладке Legend (Легенда) определяем
место отображения легенды — внизу под графиком (рис. 2.88).
P Show legend
Placement
Г Top
y.j a 977626
0.4 0.960398
a.S 0.93847
0.6 0.912005
0.7 0.881201 График функции Бесселя
0.8 о!в46287 4
— Функция Бессел?
!
:
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
В • > С I
. I
Off**:
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.
Г Logarithmic кие
Г" Values Sri cevwse order
Г" Category 00 axfc crosses at igaximtJn vat»
Pattern! I
•вогеЬг
f fiutomatic
<~ jjone
^ Custom
•Sample
S%] ffc git $ew Insert fytrat loot: flart Smdow Help
0.223891
0.166607
0.110362
«Asheetl^ShMffi /Sheet?
Аргумент: Функция
р! 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. График функции Бесселя
Программирование
в Excel
В этой главе...
• Создание макросов
• Основы интерфейса редактора 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 [
В этом диалоговом окне следует в поле Macro Name (Название макроса) ввести имя
создаваемого макроса (в данном случае это Му_Масго), в поле Description (Описание)
можно ввести комментарий (текст This macro generates numbers from 1 to 10 или что-то
другое). Помимо этого, в поле Shortcut key (Клавиша быстрого выбора) может быть ука-
зана комбинация клавиш для запуска данного макроса. Чтобы сделать это, поместите
курсор в данное поле и нажмите выбранную клавишу. Впоследствии данная клавиша,
нажатая в комбинации с клавишей <Ctrl>, будет запускать создаваемый макрос. В дан-
ном конкретном случае использована прописная литера А, поэтому макрос будет запус-
каться нажатием комбинации клавиш <Ctrl+Shift+A>. В списке Store macro in
(Записать макрос в) можно указать, где будет храниться макрос. В нашем примере созда-
ваемый макрос записывается в текущую рабочую книгу. После щелчка на кнопке ОК
начинается запись макроса.
Замечание. Место хранения макроса во многом определяет его доступность.
I Подробнее речь об этом будет идти несколько позже.
В частности, если эта кнопка отображается нажатой, то все ссылки в процессе за-
писи интерпретируются как относительные. Если щелкнуть на ней еще раз, кнопка
вновь будет отображаться отжатой и ссылки будут интерпретироваться как абсо-
лютные. В процессе записи макроса можно неоднократно щелкать на этой кнопке,
помещая таким образом в макрос как абсолютные, так и относительные ссылки.
Ниже эта особенность манипулирования ссылками будет использована для того,
чтобы создать макрос, с помощью которого в диапазон ячеек, начиная с выбранной
при запуске макроса, будут заноситься натуральные числа от 1 до 10, затем активи-
зируется ячейка А1.
Сам процесс создания подобного макроса практически ничем не отличается от
предыдущего случая (следует только учесть особенности использования относи-
тельных и абсолютных ссылок). Ниже перечислены основные этапы создания дан-
ного макроса и подчеркнуты те моменты, на которые следует обратить внимание.
Совет. Все это лучше, конечно, делать в чистом рабочем листе. Если трех рабочих
листов книги, предлагаемых по умолчанию для работы, недостаточно, можно до-
бавить еще один рабочий лист. Это делается посредством выбора команды
Insert1^ Worksheet (ВставкаОРабочий лист).
Сохранение макросов
Как уже отмечалось, место хранения (т.е. каталог, в котором сохранена книга с мак-
росом) во многом определяет доступность макроса при работе с другими документами.
По умолчанию при записи макроса предлагается сохранить его в текущем рабочем до-
кументе (т.е. в списке Store macro in диалогового окна Record Macro выбран элемент
This Workbook). Для того чтобы макрос был доступен и при работе с другими книгами,
та книга, в которой этот Макрос сохранен, также должна быть открыта. Тогда при за-
пуске макроса посредством выбора команды Tools^Macro^Macros в списке Macros in
диалогового окна Macro следует выбрать значение All Open Workbooks (Все открытые
книги). В этом случае в диалоговом окне Macro перечисляются макросы из всех от-
крытых на данный момент рабочих книг.
Данный метод сохранения макросов хотя и вполне приемлем, тем не менее не
всегда удобен. Особенно это очевидно при работе с функциями пользователя. В час-
тности, при их вызове приходится в явном виде указывать рабочую книгу, где эти
функции были в свое время описаны. Поэтому разумнее все же сохранять макросы в
персональной книге. Эта книга имеет название PERSONAL.xls и хранится в каталоге
XLSTART (подкаталог того каталога, где хранятся файлы Excel — как правило, речь
идет о каталоге Excel\XLSTART). Как известно, при запуске приложения Excel все
документы, размещенные в этом каталоге, открываются автоматически. Поэтому
преимущество сохранения макроса в персональной книге состоит в том, что макрос
будет записан в книге, которая постоянно открыта.
Wd-Insavafabte:
k Analysis ToolPak
™ Analysis ToolPak - VBA
Conditional Sum Wizard
Г" Euro Currency Tools
Г Internet Assistant VBA
Г Lookup Wizard
Для подтверждения следует щелкнуть на кнопке ОК. После этого при каждом за-
пуске приложения Excel данная надстройка будет автоматически загружаться в па-
мять, в результате чего будут доступны как функции пользователя, так и макросы, оп-
ределенные в соответствующем файле. При этом функции пользователя будут доступ-
ны посредством вызова команды Inserts Function (Вставка <=>Функция) (они будут
представлены в категории User Defined диалогового окна Insert Function). Что касает-
ся макросов, то они в списке доступных макросов диалогового окна Macro упоминать-
ся не будут, но установленные для них комбинации клавиш будут работать.
Замечание. Если файл надстройки был сохранен в папку, отличную от Addlns, то
при выборе команды Tools'^Add-ins данная надстройка в списке доступных ото-
бражаться не будет. В этом случае потребуется дополнительно воспользоваться
кнопкой Browse (Просмотр) и указать местонахождение соответствующего фай-
ла в системе.
Редактор VBA
Условно процесс работы с редактором VBA (в контексте его использования в
Excel) можно разделить на редактирование уже существующих макросов и создание
новых (т.е. написание программ "с нуля"). Принципиальной разницы, безусловно, в
обоих случаях нет, но процесс изучения методов работы с кодами VBA все же ра-
зумнее начать с изучения уже существующих функций и макросов.
Соответствующие коды создаются и редактируются в специальном редакторе,
который может быть вызван прямо из окна приложения Excel. Для этого достаточно
выбрать команду Tools^Macro^Visual Basic Editor (Сервис^Макрос^Редактор
Visual Basic) или нажать комбинацию клавиш <Alt+FH>. В результате откроется
окно редактора VBA, показанное на рис. 3.10.
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
Замечание. Здесь и далее речь будет идти о редакторе 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, т.е. те команды, ко-
торые пользователь сможет увидеть, раскрыв соответствующее меню.
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
Меню 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
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
Меню View
В меню View (Вид) представлены команды и подменю, позволяющие выполнять
настройку внешнего вида окна редактора VBA, что, в свою очередь, является зало-
гом эффективной работы. Содержимое этого меню представлено на рис. 3.13.
В табл. 3.4 описаны команды и подменю меню View (Вид).
i'JS _ S X
Object Browser F2
Watch Whdow
alcuiation [True
alining False
nablePivotTabte :False
nableSefection 0 - xWoRestrktions
Sheetl
rollArea
В первую очередь следует обратить внимание на тот факт, что с помощью команд
именно этого меню отображаются все основные панели инструментов. Использова-
ние последних, как показывает практика, позволяет существенно упростить и уско-
рить процесс создания программных кодов для макросов и функций пользователя.
Меню Insert
В меню Insert (Вставка) собраны команды, которые позволяют выполнять встав-
ку всевозможных объектов. В этом меню команд не очень много, все они представ-
лены на рис. 3.14 и описаны в табл. 3.5.
f] Sheet2 (Sheet2)
Sheet3 (Sheets)
ThisWorNbook
|Sheetl Worksheet
Sheetl
DisplayPageBreaks False
DisplayRightToLeft False
EnaUeAutoFilter : False
;nableCalculation True
EnableOutlining False
-
Рис. 3.14. Команды меню Insert редактора 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
±
Следует отметить, что меню содержит в основном подменю, которые, в свою оче-
редь, содержат весьма полезные команды. Не все они представлены на панели инст-
рументов, поэтому вполне разумно их туда поместить. Хотя какие именно кнопки
выносить на панель, разумеется, существенно зависит от характера решаемых задач.
ш
''Я* И
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
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
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
Меню Add-lns
Меню Add-lns (Надстройки) состоит всего из одной команды (рис. 3.19). Это ко-
манда вызова менеджера надстроек Add-In Manager (Менеджер надстроек). В ре-
зультате ее выполнения открывается одноименное диалоговое окно, с помощью ко-
торого можно загружать и выгружать надстройки VBA.
•*' t {(Geneial)
^ItPf^LJ « , Jj
ЗД*
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
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
В меню всего три команды, причем активно используется из них только одна.
Это команда 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 широко используются панели
инструментов. Основные из них описаны ниже.
Панель отладки
Панель отладки может быть отображена на экране посредством выбора команды
1
меню View=>Toolbars *Debug (Вид^Панели инструментов^Отладка). Панель по-
казана на рис. 3.24, а в табл. 3.13 приведена справка по всем этим кнопкам. Как не-
сложно заметить, многие кнопки этой панели размещаются также и на тех панелях
инструментов, что были рассмотрены выше.
Однако на этом панели VBA не исчерпываются. Есть еще одна, достаточно инте-
ресная панель, с помощью которой можно успешно оперировать с элементами форм.
В этот код, уже после создания макроса, можно вносить изменения. Обычно это
делают в двух случаях. Во-первых, иногда приходится создавать достаточно слож-
ные макросы. Полезно сначала с помощью клавиатуры запрограммировать базовые
действия, после чего открыть редактор и внести изменения так, чтобы макрос вы-
полнял именно то, что нужно. Во-вторых, следует иметь в виду, что при записи мак-
росов с помощью клавиатуры (так, как было показано в начале главы), а не путем
создания кода, макрос часто включает лишние инструкции. Лишние в том смысле,
что те же самые действия при написании кода можно запрограммировать более оп-
тимально. Если макрос по объему невелик, а компьютер достаточно производителен,
это не составляет большой проблемы. Однако ситуация меняется, если создается
сложный макрос. В этом случае оптимальность его кода имеет если и не первооче-
редное, то весьма важное значение.
Понятно, что для того чтобы редактировать код, необходимо иметь хотя бы общее
представление, как все это работает. Рассмотрим код макроса Му_Масго ( ) . На его
примере будут изложены некоторые базовые понятия составления программных ко-
дов в языке VBA. Этот программный код приведен ниже в листинге 3.1.
( Замечание. Для тех, кто знаком с ООП, отступление это будет более чем лириче-
ским.
Итак, при работе с языком VBA, практически все, с чем приходится иметь дело,
называется объектом. У объектов, в свою очередь, есть свойства и методы. Свойства
определяют отдельные качества объекта, а методы — что с ним можно делать. В про-
граммном коде имена свойств и методов отделяются от имени объекта точкой.
Другими словами, чтобы добраться до метода или свойства объекта, следует указать
имя этого объекта, поставить точку и указать имя метода или свойства. При этом ме-
тод или свойство могут иметь аргументы, которые указываются обычно в круглых
скобках после метода или свойства (но не всегда). В частности, инструкция
Range ( " Al " ) . Select интерпретируется как указание выделить ячейку А1. Здесь
Select является методом, назначение которого состоит в выделении указанного
диапазона ячеек (это объект). Объект (т.е. диапазон ячеек) возвращается инструкци-
ей Range ( ) (range в переводе значит диапазон), где в скобках указывается диапазон
(заключенный в кавычки!). В данном случае диапазоном является всего одна ячейка
А1 . Если нужно выделить, например, диапазон ячеек АЗ:В5, то соответствующая ин-
струкция выглядела бы как Range ( " A3 : В5 " ) .Select.
Объекты могут содержать в себе другие объекты и сами содержаться в объектах.
В результате образуется иерархия объектов. Чтобы выполнить ссылку на объект, со-
В этом макросе, по сравнению с исходным, убран весь лишний код, и многие дей-
ствия выполняются, что называется, напрямую. Так, первыми двумя инструкциями,
без всякого предварительного выделения, ячейкам А1 и А2 присваиваются значения
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, для которого указано два аргумента. Это свойство,
если оно относится к диапазону ячеек или ячейке (как в данном случае), возвращает в каче-
стве значения диапазон, который получается смещением данного, к которому относится
Функции пользователя
Совершенно очевидно, что макросами область применения языка VBA не ограни-
чивается. Действительно, вполне разумным является подход, при котором на основе
введенных в ячейки таблицы Excel данных выполняются некоторые преобразования и
результат этих преобразований снова отображается в таблице. Ситуация аналогична
той, что имеет место при использовании встроенных функций Excel. Проблема, одна-
ко, в том, что этих встроенных функций (хотя их и достаточно много) хватает далеко
не на все случаи жизни. Очень часто нужна функция, которой среди предлагаемых
пользователю в рамках приложения Excel просто нет или же использование тех, что
есть, приводит к существенным неудобствам. В этой ситуации разумно будет обра-
титься к языку VBA и его практически неограниченным возможностям. Именно во-
просу создания собственных функций и посвящен данный раздел.
Созданиефункции
Процесс создания собственной функции логично будет начать с открытия редак-
тора VBA (комбинация клавиш <Alt+Fl 1>). В открывшемся окне редактора следует
выбрать команду Insert^Module (Вставка1^Модуль). В результате к проекту будет
добавлен новый модуль. Вид окна редактора VBA в этом случае показан на рис. 3.27.
^ VBAPraject (Bookl)
В ф Mcrosof t Excel Objects
i fp Sheetl (Sheetl)
• в Sheet2 (5heel2)
О Sheec3 (Sheets)
1
Q ThisWcrkbook
El-(gi Modules
Большое белое поле в правой части окна редактора предназначено для ввода про-
граммного кода модуля (в данном случае — кода создаваемой функции). Это можно
делать непосредственно с помощью клавиатуры. Однако некоторые стандартные
программные конструкции (например, инструкции начала и окончания процедуры
или функции) можно ввести с помощью команд редактора VBA. Для этого доста-
точно выбрать команду Insert^Procedure (Вставка^Процедура). Открывшееся
диалоговое окно Add Procedure (Добавить процедуру) будет иметь вид, представ-
ленный на рис. 3.28. В этом окне следует выполнить ряд настроек, имеющих непо-
средственное отношение к создаваемой функции или процедуре.
В частности, в поле Name (Название) следует указать имя создаваемой функции
(в нашем примере мы будем создавать именно функцию). В данном случае функция
будет называться Му_Ехр. Соответственно, переключатель Туре (Тип) следует уста-
новить в положение Function (Функция) (это свидетельствует о том, что создается
функция), а переключатель Scope (Доступность) — в положение Public (Глобальная),
чтобы функция была доступна во всех других программах, а не только в процедурах
данного модуля. Перед щелчком на кнопке ОК диалоговое окно Add Procedure должно
иметь такой вид, как на рис. 3.29.
После щелчка на кнопке ОК в окне редактирования кода появятся автоматически
созданные редактором VBA инструкции начала (Public Function My_Exp ( ) ) и
окончания функции (End Function), как это видно на рис. 3.30. Между этими ин-
струкциями будет вводиться программный код нашей функции.
те: |My
Type
= Scope -
j ^ Pubte
: Г Private
a-
y!l f™7
(General)
§
Sheets (Sheet3)
ThisWorkbook
Й-SS
' Modules
Modutel Module
л
Рис. 331. Программный код функции Му_Ехр <)
В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..
А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
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
Setett ahjncMon:
Nohdpavafabte.
Это удобно, поскольку можно сразу поменять нужный аргумент, если результат
по каким-то причинам далек от желаемого. Однако главное неудобство остается —
рабочая книга с описанием функции должна быть открыта. Если смириться с таким
положением дел нет никакой возможности, можно, наконец, сохранить данную ра-
бочую книгу в качестве надстройки (файл с расширением . xla) в каталоге
XLSTART. В этом случае при запуске Excel данный файл (а с ним и функция) будет
автоматически загружаться в память. Поэтому функцию можно будет использовать
без ссылок на ее рабочую книгу.
Внимание! Для того чтобы сохранить файл как надстройку нужно выбрать ко-
манду File^Save as (Файл^Сохранить как), после чего из списка типов выбрать
для сохраняемого файла тип файла надстройки. При этом следует проявить вни-
мание: как только данный тип для сохраняемого файла будет выбран, Excel авто-
матически предложит для сохранения тот каталог, где хранятся надстройки
(место этого каталога в общей иерархии зависит от конфигурации системы).
Это не является проблемой. Можно хранить данный файл с прочими надстрой-
ками. Однако для того, чтобы функция всегда была доступна, придется подклю-
чить надстройку с этой функцией (т.е. сохраняемый файл) самостоятельно. Дела-
ется это выбором команды Tools^Add-lns (Сервис^Надстройки), после чего в
открывшемся окне со списком надстроек следует поставить флажок у имени той
надстройки, в которой записана интересующая функция, и подтвердить выбор.
Это нужно сделать только один раз (т.е. при следующих запусках Excel указанная
надстройка будет загружаться уже автоматически).
После того как вопрос сохранения рабочих книг с функциями пользователя про-
яснен, имеет смысл вернуться к самим функциям.
Данный способ определения переменных вполне приемлем, однако при этом уве-
личивается вероятность совершения ошибки, которая может быть не отслежена
компилятором. Такая ошибка приведет к искажению логики программы. Например,
если в очередном из операторов в названии введенной ранее переменной допустить
синтаксическую ошибку (скажем, пропустить какой-то символ), то VBA ситуацию
проинтерпретирует как ввод новой переменной. Такие ошибки отслеживать доста-
точно трудно, особенно в больших программах. Это же относится и к ситуации, ко-
гда сбой в программе происходит при попытке обработать значение переменной не-
адекватными ее типу методами.
Альтернативой неявному объявлению переменных является, как несложно дога-
даться, явное их объявление. Оно может осуществляться с указанием типа перемен-
ной и без указания типа. В последнем случае типом переменной является Variant.
Для явного объявления переменной используется инструкция Dim. Например, что-
бы объявить переменную MyAge можно воспользоваться инструкцией Dim MyAge.
Если нужно объявить эту переменную как целочисленную, используют инструкцию
Dim MyAge As Integer.
Использование явного способа определения переменных имеет то несомненное
преимущество, что позволяет более экономно распределять ресурсы системы. Это, в
свою очередь, положительно сказывается на времени выполнения программ, к тому
же отслеживать ошибки в такой ситуации, как правило, намного проще. Однако сле-
дует понимать, что выбор способа объявления переменных существенно зависит от
той задачи, которую следует решить.
Что касается аргументов функций, то для них также можно в явном виде указывать
тип. После названия аргумента нужно, после ключевого слова As, указать тип аргумента.
Например, инструкция Function My_Exp2 (x As Double, n As Integer) свиде-
тельствует о том, что первый аргумент является числом с плавающей точкой двойной
точности, а второй аргумент — число целое.
Ниже в листинге 3.6 приведен программный код функции, которая дублирует
созданную ранее функцию вычисления ряда для экспоненты по двум аргументам:
показателю экспоненты и количеству оставляемых в сумме слагаемых (если точнее,
то индексу последнего слагаемого). Однако в отличие от предыдущего случая, здесь
для всех переменных, аргументов и самой функции указан в явном виде тип.
' > n • Ы, -
Ш |(Geneialt TJ MDecUidliotn
Next i
Hy_Exp2 - s
End Function
........................
....... _
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:
Символ Тип
] Single
@ Currency
# Double
$ String
% Integer
& Long
В первую очередь следует обратить внимание на то, что данная функция содержит
необязательный аргумент 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 ( ) . Это те действия, которые выполняются в рамках условного оператора.
В12
(
£ =AVERAGE(B2:B11)
A i В l С ' D
Day Temperature ;
29
|
27! ;
I
9
li
24 *
,
Ю< 26
leverage £ 27 .8J
Module 1 Module
Alphabet (categorized)
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, описывается в следующем разделе. Там речь пойдет о создании форм.
> И Л'-Ж
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
^,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
Возвращаясь к форме можно заметить, что в строке заголовка (при создании фор-
мы) отображено UserFormI. Это заголовок формы, который по умолчанию совпадает с
ее названием. Изменить заголовок можно, изменив значение свойства Caption фор-
мы. Для этого в списке свойств (левый столбец окна свойств Properties) следует найти
значение Caption (это свойство). Его значение отображено напротив, в правом столбце.
Вместо UserFormI следует ввести My First Form (или что-нибудь другое). Резуль-
тат можно видеть на рис. 3.48 (здесь видно, как изменился заголовок формы).
Внимание! Не следует путать имя формы с заголовком формы. Имя формы опре-
деляется ее свойством Name и служит для идентификации объекта. Заголовок
определяется свойством Caption и отображается (для формы) в строке назва-
ния формы.
Кроме этого, разумно уменьшить размеры формы. Это делается совсем просто:
курсор мыши помещается на нижний правый угол формы, после чего ее размеры
приводятся к приемлемому значению — т.е. как и при изменении размеров обычных
окон (рис. 3.49).
Замечание. В процессе изменения размеров формы можно заметить, что автома-
тически изменяются значения ее свойств Height и Width. Эти свойства задают,
соответственно, высоту и ширину формы (в пунктах, один пункт — 1/72 дюйма).
Так что изменять размер формы можно не только с помощью мыши, но и просто
задав новые значения для этих свойств.
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
После щелчка на этой кнопке она отображается на панели Toolbox нажатой и это
значит, что в форме можно разместить метку. Для этого следует мышью выделить
область размещения метки, указав ее расположение и размер (т.е. нажать левую
кнопку мыши и, удерживая ее нажатой, выделить требуемую область в форме).
Процесс размещения метки в форме показан на рис. 3.51.
После того как метка вставлена, форма примет вид, показанный на рис. 3.52.
С 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
Д Bte Bft Sew Insert Format Bsbug B.un Ipote fidd-Ins да*» Ц* ' ''l^L^E—JOr * X
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
: 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)
jCommandButtonl CommandButton
П iiH8000000F& '
:1 - fmBackStyleGpaqu'* ^
CommandButtonl
False
iselcon (None)
> 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) ж
±r
Рис. 3.58. Программирование обработчика события для кнопки
-i
.J
( Совет. На данном этапе разумно будет сохранить документ, однако это не прин-
ципиально.
Создавать процедуру будем в новом модуле, для чего в редакторе VBA выбираем ко-
манду Insert^Module (Вставка^Модуль). Далее выбираем команду Insert^Procedure
(Вставка1* Процедура). В открывшемся диалоговом окне Add Procedure (Добавить про-
цедуру) в поле Name (Название) указываем имя создаваемой процедуры (в данном слу-
чае это будет ShowMyForm). Переключатель Туре (Тип) устанавливается в положение
, 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
jrj JShowMyform
1 Module 1
тз-в -n KI . , „ .
т | ,| ShowMyfoi m
|Modulel Module
Alphabetic I categorized
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
Choose workbook,.,
bfneral Templates...
Templates on my Web Sites.
TemplatesonMicrosoft.com
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
ПВ 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
Для этой новой формы (ее имя UserForm2) в качестве заголовка указываем зна-
чение My Options. Размеры формы устанавливаются следующие: высота (значение
свойства Height) 250 и ширина (значение свойства Width) 370. Однако эти значе-
ния являются, так сказать, рекомендуемыми, но не обязательными. Помимо этого
следует указать параметры шрифта (тип, размер и т.п.). Если шрифт задается для
формы, то он автоматически будет использоваться в качестве основного шрифта для
размещенных в форме элементов.
Для настройки шрифта следует найти в списке свойств формы в окне свойств
Properties свойство Font. В данном случае используется полужирный шрифт типа
Arial размера 10. После выполнения настроек форма будет иметь вид, представлен-
ный на рис. 3.68.
Далее в этой форме разместим рамку. На панели элементов управления формы
выбираем элемент Frame (рис. 3.69). Особой функциональной нагрузки рамка не
несет (по крайней мере на данном этапе), однако с ее помощью легче структуриро-
вать содержимое формы.
^ VBAProject (MyForm.xls)
& ^Э Microsoft Excel Objects
iQ5heec2(5heet2)
Sheets (Sheets)
%] TtisWofftook
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
... _.
i Л Sheets (Sheets)
, fi ThisWorkbook
El- ^s Forms
•• Э UserForml
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
Г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
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
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
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 •'•
Кроме рамки с двумя текстовыми полями, разместим в форме две кнопки. Одна
будет нужна для инициализации процесса внесения изменений в рабочий лист таб-
лицы (т.е. для присваивания значения указанной ячейке), а вторая — на тот случай,
если пользователь решит выполненные им изменения не вносить. Кнопки размеща-
ются в левой нижней части формы, как показано на рис. 3.77.
Первая кнопка получает название ОК, а вторая (кнопка отмены) — название
Cancel. На этом первый этап создания формы завершается. Далее следует ввести и от-
редактировать программный код, для того чтобы данную форму можно было исполь-
зовать. Начнем с самого простого задания: составления программного кода для обра-
ботчика события, связанного со щелчком на кнопке отмены Cancel. Поскольку данное
событие для кнопки — это событие по умолчанию, то при двойном щелчке на кнопке в
процессе редактирования формы открывается окно редактора программного кода с
шаблоном процедуры CommandButton2_Click(), которая является обработчиком
события для щелчка на кнопке. Между инструкциями начала и окончания процедуры
следует ввести всего одну инструкцию UserForm2 . Hide (рис. 3.78), в результате вы-
полнения которой форма UserForm2 будет закрыта (но из памяти не выгружена).
Полный программный код этого обработчика события представлен в листинге 3.13.
ThisWorkbook
Forms
UserForml
Я UsecFerm2
£i Modules
1 - fmeackStyteOpaque
Fake
Cancel
' 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
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. Окно редактора кода с процедурами обработки событий
Совет. Для того чтобы перейти к нужному объекту, например, форме UserForml,
этот объект следует выделить в окне проекта Project (Проект) и дважды щелкнуть
на нем мышью. В этом случае в правой части окна редактора VBA будет отображе-
на форма или окно с ее кодом (в зависимости от выделенного объекта). Обычного
выделения будет мало.
Д 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
13
Однако часто бывает очень удобно, если при вызове формы в полях уже введены
какие-то значения (их, кстати, разумно задавать сразу в окне свойств Properties).
В этом случае можно в приведенном выше коде процедуры две последние инструк-
ции очистки полей пометить комментарием (что и будет сделано далее).
Второй этап модернизации проекта состоит в добавлении возможности задавать в
поле Cell(s) не только абсолютные, но и относительные ссылки (имеется в виду, что
синтаксис ссылок будет как у относительных, а интерпретируются они программой
как абсолютные). С этой целью введем в форму переключатель на два положения, со-
стояние которого и будет определять, относительная ссылка введена в поле Cel)(s) или
абсолютная (напомним, что с точки зрения программы это текстовое поле TextBox2).
Вначале сразу под рамкой Frame 1 (ее заголовок Data) размещаем еще одну рам-
ку, внутри которой и будет находиться переключатель. Заголовок рамки устанавли-
ваем как Reference (рис. 3.86).
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
-; _
{$ 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
Внутрь рамки вносятся два таких элемента (можно внести один, а второй размес-
тить в форме путем копирования первого). Один (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
Data
Value
C«ll(i)
10
, < Reference
О Absolute
f Relative
Cancel
В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 ЧГ
-• ^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
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
:ЯНННВН*!
Data
^E VBAProject (MyForm.nls) ;
• Reference
if f'j Modules
__ 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 .^
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_
-
- ^ 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. Выбор начального значения для поля с данными о размере шрифта
Daw
Value
СеИф
Reference
<v Absolut»
f Relative
OK A Cancel
; it А «Ы Я;Я
f: ffifi !§ _J
— -^ — I" zl jComboBo f
ra*
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 '
Замечание. На рис. 3.106 в области кода, как и в листинге 3.21, можно видеть за-
ключенную в комментарий инструкцию выгрузки формы из памяти Unload Form.
Пояснения по этому поводу будут приведены несколько позже.
Наконец, чтобы при вызове макроса в раскрывающемся списке выбора типа
шрифта было что отображать, нужно в ячейки диапазона А2:А4 (рабочего листа
Sheet2) ввести названия шрифтов, как это показано на рис. 3.107. Процесс тестиро-
вания нового добавленного кода проиллюстрирован на рис. 3.108.
Результат выполнения макроса представлен на рис. 3.109 (текстовое значение в
ячейке А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
{
'••••••КЭ~~
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 "
. 12
_ п
12
Еще раз хочется обратить внимание на ту особенность, что при каждом после-
дующем вызове макроса диалоговое окно My Options отображается с настройками,
которые были выполнены при предыдущем вызове (даже если после этих настроек
был выполнен щелчок на кнопке Cancel в этом диалоговом окне). Как уже отмеча-
лось, причина в том, что при закрытии соответствующей формы она из памяти не
выгружается, поэтому "помнит" последние настройки. Ранее предлагалось при за-
грузке формы выполнять сброс значений ее элементов управления. Однако когда
таких элементов много, это не очень удобно, поскольку приходится задавать слиш-
ком большое количество команд. Можно поступить проще — при закрытии формы
выгружать ее из памяти инструкцией Unload Form. Эта инструкция в процедуре
обработки щелчка на кнопке ОК формы уже присутствует (в последнем варианте
кода), правда, в виде комментария. При желании достаточно просто убрать символ
комментирования. Такую же инструкцию можно добавить и в конец процедуры об-
работки щелчка на кнопке Cancel формы. Окончательное решение в подобных слу-
чаях принимается исходя из назначения разрабатываемого проекта.
Методы вычислительной
математики
В этой главе...
• Решение уравнений и систем
• Надстройка оптимизации и поиска решений
• Приближенные методы решения уравнений и систем
• Вычисление производных и интегралов
• Дифференциальные и интегральные уравнения
В5 Г* =B4/B3
А. D
; Поиск решения уравнения ах-Ь
by Zero Error
Help on tNs error
ignore Error
: t-
4 Ь- 3
х-|Решений нет] i
6 1 i ]
b-
*=c Ш
Рис. 4.4. Корректный результат, вычисленный по
новой формуле
х=|Лю6ое число!
Согласно введенной формуле сначала проверяется условие В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.
Ж-в 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. Создание формы
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
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
•
: 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
|Щ] 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 ; Решение уравнения ах=Ь
I
jjfi
141
161
I?]
18";""
_19l
M <' > «\Sheetl/Sheet2/Sheet3y ' HГ
Ready
<ffl Be В* Sew insert Fojmat Eebug £un Xods &dd-Ins ^ndow Це<р _ r5 X
CommandButtonl т] j Click
РННННННВкЗ
|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 .. , . :,. , , . , ^
_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
*j
Rte gat
с ••& в ч.
в
£_i _ A—J. - L - J? I Р...: \
1 Решение уравнения ах=Ь
Ш ' _L : ' ; ' j _J
3 Для начала поиска .щелкните на кнопке
BE з
7Па= 2
9 »= 1.5'
10
11
12"
_j A i в ^ j ....... с i
1 Решение уравнения ax=b
Пример4.^Решит^равнениех -5х + 6 = О
Сразу следует отметить, что это уравнение в качестве решений имеет значения 2
и 3. Их и будем искать. На рис. 4.18 представлен рабочий лист книги Excel, в кото-
ром будет осуществляться поиск решения.
В4 - •••* =ВЗ«2-5*ВЗ-НЗ
1. А \- ...в.. Л с ; А о ; Е...
Поиск решения уравнения х 2-6х+6»0
Решение x -
Левая част
уравнения I 1
2[
A
-j: . .; t. : ' •'" л в
: Пг.ь-п решения уравнения х 2-вх+6 С
В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
Е ,
[75
76
Поиск решения
•
i
3 -
I
<N 04
t О
a> *-
В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;
О
',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:"
:ChartMps
Г~ XogarRhmic scale
Г~ Values in reverse order
Г* Category (X) e*& crosses at gjaximum value
В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 /
В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.
[Пример4.4. Решить
LwX«H*-_jL«M..mHHW*_MM««»Mi
СаЫайоп
Pperatfofv!
: Maximum ftgratioas; J 100 Maximum фалде: jo.0'?l
WorifboOk Options :;
P ,tftxtete reraote references & Save extetnallNi values
Г^мр^с^ 1
Puc. 4.33- Установка режима выполнения циклических
итераций
Там же можно видеть два весьма важных и полезных поля. Первое — это поле
Maximum iterations (Максимальное число итераций), его значение по умолчанию
равно 100. Оно определяет максимальное количество итераций, после которых Excel
прекращает процесс поиска решения. В поле Maximum change (Максимальное из-
менение) значение по умолчанию равно 0.001. Оно задает границу приращения зна-
чения при выполнении итерационного процесса. Процесс продолжается до тех пор,
пока приращение вычисляемого значения не станет меньше указанной величины.
Если необходимо увеличить точность вычислений, можно изменить соответствую-
щие значения (увеличить число итераций и/или уменьшить значение границы при-
ращения). После того как эти операции выполнены, рабочий документ готов к ис-
пользованию циклических ссылок при вычислениях.
Замечание. Если попытаться ввести циклическую ссылку при сброшенном
флажке Iteration (Итерация), появится сообщение об ошибке. И хотя это не са-
мый безнадежный вариант, лучше такого не допускать. Дело в том, что Excel,
если можно так выразиться, весьма болезненно реагирует на всякого рода рекур-
сии и перекрестные ссылки. Они, как правило, интерпретируются в том смысле,
что пользователем была допущена ошибка и ее следует исправить. Очень часто
это именно так и есть, но "часто" все же не значит "всегда".
В ячейку ВЗ вводим формулу =COS(B3). После того как формула введена и на-
жата клавиша <Enter>, в ячейке ВЗ будет отображено приближенное решение урав-
нения. На рис. 4.34 ячейка с этим приближенным решением активна, поэтому в
строке формул можно видеть соответствующее выражение.
=С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
Это достаточно элегантный способ поиска решения, однако еще раз следует на-
помнить, что применим он далеко не к каждому уравнению. В частности, в случае
тангенса напрямую этот метод использовать не удастся (можно найти только нуле-
вое решение). Для поиска решения на каком-то конкретном интервале приходится
искать иные подходы. Вообще же идея перекрестных (циклических) ссылок находит
достаточно широкое применение.
ч
х, = 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 ;
j А Г> -В F 'С Т D I E
I Решение системы линейных уравнений
1, А , i Bj [ с I D :
е ;
Решение системы линейных уравнений
А-
i; -'• i
f, (=MINVERSE(A))
....А i[ ...в j_ __с_ :L о.... Т Е.,; L
Решение системы линейных уравнений
' ; i
Ill III II
2 -1 1
"з 1 '-Т
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
§ 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
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
10
X V f- =05-07
18
GS '•ft =MDETERM(B15:D17)/G6
I _А. I._B;,: L_C | D ,j E , I
Решение системы линейных уравнений
А1-
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'
J
' -Solver Add*
Toot for optimization and equation solving
Уравнение имеет три решения, которые, строго говоря, можно найти точно и без
всяких дополнительных программных средств. Этот простой пример должен проил-
люстрировать возможности надстройки. Когда решения известны, намного проще
проводить анализ работы приложения. В частности, рассматриваемое уравнение
имеет в качестве корней числа 0, 2 и 4. В этом несложно убедиться, если представить
3 2
полином х - бх + 8л в виде произведения х(х - 2)(х - 4).
;
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«»
з
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;
В данном случае найден корень 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 был выбран. Для значе-
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
Помимо перечисленных выше опций, при работе с надстройкой Solver могут ока-
заться полезными три переключателя в диалоговом окне Solver Options: Estimates
(Оценки), Derivatives (Производные) и Search (Поиск), каждый из которых имеет
два положения. Установив первый переключатель (Estimates), можно выбрать ре-
жим методов оценки начальных значений при решении однопараметрических задач.
Переключатель Derivatives позволяет выбрать способ вычисления производных от
заданных в численном виде функций, а переключатель Search задает тип итераци-
онной процедуры для поиска решения задачи. Дополнительные сведения об этих пе-
реключателях приведены в табл. 4.2.
Solve! Parameters
•- =ВЗ*(ВЗ-2)*(ВЗ-4)
j А 1 '1в:-:4. "С. j О. • Е ..
1 Решение уравнения с помощью Solver
' "
Даже без дополнительного исследования понятно, что в данном случае речь идет
о поиске минимума, (поскольку при неограниченном возрастании аргументов функ-
ции она также будет возрастать в пределе до бесконечности — поэтому о максимуме
речь идти не может). Правда, теоретически мог бы иметь место локальный максимум
где-нибудь поближе к точке начала координат (нулевые значения аргументов функ-
ции). Но в данном случае его нет (см. комментарии ниже). Желающие могут убе-
диться в этом самостоятельно.
Для решения этой задачи в 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 ' [Г
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 *
"is!
Puc. 4.63. Минимум найден
Это была достаточно простая задача. На практике часто приходится искать экс-
тремальные значения функций при условии, что на переменные, от которых зависит
такая функция, накладываются ограничения (т.е. они должны удовлетворять каким-
то равенствам или неравенствам). В таких ситуациях говорят о поиске условного
экстремума. Об этом — следующий пример.
ф^НКДШ1^^^^^
Как и в предыдущем случае, здесь речь идет о минимуме. Безусловно, данную за-
дачу можно решить и без привлечения Excel. Мало того, ее можно свести к задаче
отыскания обычного минимума, если из уравнения, задающего ограничение на пе-
ременные, выразить одну из переменных и затем подставить это выражение непо-
средственно в функцию. Однако здесь всего этого мы делать не будем и на данном
простом примере продемонстрируем, как решаются задачи подобного типа в Excel с
использованием надстройки Solver.
Как и прежде, в первую очередь заносим в таблицу начальные значения для ар-
гументов функции (ячейки ВЗ и В4), равно как и формулу =ВЗЛ2+В4Л2, определяю-
щую значение функции. Эту формулу вводим в ячейку В5 (рис. 4.64).
щ
6 | Условие! Ч I :
Тел
Д
=ВЗ*2+В4 2
1_Условный экстремум
2
3~ х-
у-
_§J U(x.y)-
ввоош
6 Условие Sgt Target CeH:
7 EqualTo: Г йи (Т Мп
8 &-Changing Cefc:
9 1
$B$6 - 1
J,
: =ВЗД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
В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
Solver Pdiemeteu
И EquatTo; К J! Г MIQ. Г
i |$В«:$В$5 guess
.........
Цф ••
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
•г • • £ 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 !
6 ; Уравнение 4.44Е-07
!1
А В С » ! Е F ' ! G
Функция Функция
Левая Правая Функция на правой
Центр • на левой
граница ; граница в центре
; границе ' границе
'
И ! 1 2.5 ' 4 [=1=1 -3.25 -10
В ячейку А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 :
ВЗ -г Ц =(АЗ+СЗ)/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
i
i
1
1
25
Г 1.75
4
2.5
8
i 4
5 I \
В 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
А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
А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
Метод хорд
Очень похож на метод дихотомии метод хорд. Разница состоит в способе выбора
новой границы интервала. В методе половинного деления это центральная точка ин-
тервала. В методе хорд она выбирается несколько иначе — эта точка определяется как
пересечение координатной оси и линии, проходящей через точки (x,,J{xt)) и (*27/(*,)),
при этом х, и х2 есть границы интервала, на котором ищется корень, а решаемое урав-
нение, как и ранее, имеет видДлг) = 0. Центральная точка интервала может быть найде-
на из равенства х3 = (xj(x2) - x./(x^)/(J(x2) -Д*,)). Дальше проверяется значение функции
в этой точке, после чего она становится новой границей интервала, вместо той, где
функция имела такой же знак. Процесс проиллюстрирован на рис. 4.82.
f(X2)
f(x4)
f(x3)
f(xi)
Функция Функция
Левая Правая на : Функция на
Центр
граница левой в центре
граница правой
границе границе
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
:
A3 : / 1 =IF(D2*IE2>D,JB2 А2)
"ЖШ Функция Функция
_ F L. 6
г
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
"° '!
СЗ 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'
В этом случае после первой итерации обе границы диапазона совпадают, что, в
свою очередь, имеет катастрофические последствия, поскольку при определении но-
вой точки в знаменателе стоит разность функций на границах (а это нуль!).
В результате в ячейке ВЗ (и, соответственно, в ячейке ЕЗ) появляется сообщение об
ошибке. Дальше все происходит, как в цепной реакции — сообщения размножаются,
как кролики.
Метод Ньютона
Достаточно популярным методом решения уравнений является метод касатель-
ных, или метод Ньютона. В этом случае уравнение вида Длс) = 0 решается следую-
щим образом. Сначала выбирается нулевое приближение (точка *„). В этой точке
строится касательная к графику функции у =J(x). Точка пересечения этой касатель-
ной с осью абсцисс является следующим приближением для корня. В этой точке
снова строится касательная и т.д. Процесс последовательного определения точек в
методе касательных иллюстрируется на рис. 4.87.
Процедура определения точки на (п + 1)-м шаге может быть записана в виде фор-
мулы л„+1 =xri-J{xn)/f(xn), где через/(х) обозначена производная от функции Дх).
Однако прежде чем приступить непосредственно к решению уравнения с помощью
метода касательных, необходимо сделать несколько замечаний относительнб воз-
можностей использования этого метода (он, к сожалению, применим далеко не в
каждом случае), и, кроме того, о тех принципиальных подходах, которые разумно
использовать в Excel для решения задач этим методом.
f(xi)
f(x2)
f(x)
Наконец, осталось ввести циклическую ссылку в ячейку ВЗ. Вводим в эту ячейку
формулу =ВЗ-В4/В5 (рис. 4.89).
Как видно из рис. 4.89, в найденной точке функция неострого равна нулю (ячейка
В4), хотя в ячейке ВЗ отображен точный корень уравнения. Дело в том, что, как от-
мечалось ранее, корень в ячейке ВЗ при отображении округляется. Если нажать кла-
вишу <Е9>, получим более приемлемую ситуацию (рис. 4.90). На этом же рисунке
можно видеть формулу, которая введена в ячейку В5.
вэ =ВЗ-В4/В5
А .••• : В Г С. i D
Решение уравнения методом Ньютона
3•' | Точка : 71
4 Функция 1(х| - Э.29Е-08
5 ! Производная Г(х) - -2
I
7 "
:
В5 =2*ВЗ-4
С5 =(С4-В4)/В6
'• .... ..
[Решение уравнения методом Ньютона
к ; x»dx j
j Точка х-j
I Функция f(x) -
I Производная Г(х) =
I Шаг dx =
С5 =(С4-В4)/В6
j _ А ; _В 1 С \ D
1 [Решение уравнения методом Ньютона
2J _! ' х
3J Точка х= 1
Д1 Функция f(xl- 8.98Е-08
"б"| Производная Г(х) - -2
fj Шаг dx=; 0.00001
!
7
В4 =(вз+вв)*2-г(вз+ве)+з
в
1 Решение уравнения методом Ньютона
14 • Точка у-
:.i :q г
ЯЩ функция f(y*xb) -| 31
5J Производная Пу*хО) ~ -*i
Б Начальное значение х О = О
7^1 Решение К"| Oi
И
Результат для этого случая будет таким, как показано на рис. 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 }
В7 *•'* =вз+ве
. ' ! - .'А в j с ] D
1 Решение ypatжения методом Ньютона
3D
3 } Точка
4 Функция ffy»xO)-;
:. у-г: r.-?i i 0;
5 Производная Пу*хО)-.; 2i : ;
6 \ Начальное зна 1ение хО = 5
Э
7 ] Решение х-ТЦ 1
8 i
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
Рис. 4.101. Заполнение ячеек А5и В5 Рис. 4.102. Решение уравнения методом
Ньютона
Функция Производная: Ко
' ~
3.333333333 З.С
2.266666667'3.133333 Г
1
2.015686275 3.007843
2.000061036" 3.000031;
2.000000001! " 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 ! ;
СБ » £(=C4:C5-MMULT(MINVERSE(G4.H5),E4:E5)}
А ; В \___ С J D ;_ Е \ . .. LL-Sbb-JLiJ. tt_..l !i_ J
1 Метод Ньютона для системы уравнений
Н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 •;
СВ 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
Отсюда сам собой напрашивается вывод, что выбор начальной точки — достаточ-
но важный момент. В качестве начальных значений можно использовать далеко не
любые. На этот случай есть специальные теоремы и читатель может найти их в лите-
ратуре по данной проблематике. Обсуждение этого вопроса выходит за рамки тема-
тики книги. В качестве практической рекомендаций можно посоветовать метод проб
и ошибок: если не подходит одно значение, следует ввести другое.
Для решения системы уравнений может быть использован другой популярный
метод, который называется методом градиентного спуска. Суть этого метода сводит-
ся к следующему. Предположим, что нужно решить систему уравнений /(Зс) = 0.
В качестве вспомогательной к этой задаче рассматривают проблему поиска миниму-
ма функции Ф(3с) = fT(x)Cf(x), где знак Т означает транспонирование (заменяются
местами строки и столбцы матрицы; в частности, вектор-строка трансформируется в
вектор-столбец и наоборот). Матрица С должна быть симметричной (для ее элемен-
тов справедливо соотношение Ctj = С,,) положительно определенной (это значит, что
для любого ненулевого вектора у имеет место у1 Су > 0). Для положительно опреде-
ленной матрицы, таким образом, функция Ф(3с) может иметь минимум (нулевое
значение) только при условии /(Зс) = 0. Поэтому задача поиска минимума упомяну-
той функции в данном случае эквивалентна решению исходного уравнения. Реше-
ние ищется следующим образом: выбирается начальное приближение, после чего
посредством итерационной процедуры это решение уточняется (часто существенно).
Новое значение для вектора переменных х на (k+ 1)-м шаге выбирается согласно
После этого можно либо щелкнуть на кнопке ОК (в этом случае диалоговое окно
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)
Вычисление производных
Существует несколько способов вычисления производной функции, которая за-
дана в виде таблицы значений. Для большей конкретности будем в дальнейшем
(если не оговорено другое) рассматривать функцию Дд;) a priori неизвестную, для ко-
торой на множестве значений аргумента {х.} заданы значения {_£} (индекс / = 1..и).
Другими словами, по определению полагаем fix) =/. Для вычисления производной
ft в точке х. может быть использована, например, формула f, = (fM - f)l(xin - х). Эта
формула иногда еще называется правой конечной разностью. Она может быть легко
проиллюстрирована графически (рис. 4.118).
Идея состоит в том, что для вычисления производной в точке х, функция получает
конечное приращение, вызванное увеличением ее аргумента до значения хм. Производ-
ная вычисляется как отношение приращения функции к приращению аргумента. В этом
случае неявно предполагается, что между точками х, и хм, где заданы ее значения, эта
функция линейно зависит от аргумента (т.е. соответствующие точки соединяются пря-
мой). Чем меньше приращение последнего, тем, по идее, должна быть выше точность.
Xi-1 XH-I
Рис. 4.120. Центральные разности
С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 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!
31
Value (Y)axB -
I? Ma&r gridnes
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' '.
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 \
В
Вычисление интегралов
Большинство концепций вычисления интегралов (в численном виде) апеллиру-
ют, как правило, в том или ином виде, к геометрической его интерпретации. Так, ес-
ли нужно вычислить интеграл от функции fix) на интервале изменения аргумента
ь
функции от а до b (обозначается как \f(x)dx ), это все равно, что найти площадь под
f(x)
6 V
Ч
fi-1
fi
\
frfl \ ' 1""4*v4->-
fn "NS~^^-,
X
X
0 x
i-l xi Xn
Рис. 4.130. Правостороннее приближение
fi-1
fi
\ N^
fi+1 X k>x
sVi
:, "^>-к^_
fn
X
Xn
f(x)
fo
fi-1
fi
frH
fn
X0 Xn
п
Пример 4.15. Вычислить интеграл \sin(x)dx
I
Рис. 4.133. Ввод начальных данных в таблицу для вычисле-
ния интеграла
Е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.16. Найти площадь фигуры (область О,), ограниченной прямой у(х) -х и
параболой^*) = х
1.2т
у 0.6-
В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
В диапазон ячеек B3:V3 вводятся узловые точки для переменной у, в то время как
в диапазон ячеек А4:А24 внесены значения для узлов по оси х. Заполняются эти
ячейки так. Сначала, например, в ячейку ВЗ вводится значение 0, а затем в ячейку
СЗ — формула =ВЗ+0.05. Далее формула копируется в прочие ячейки диапазона
B3:V3. Так же заполняется и диапазон А4:А24.
На этом же рис. 4.137 видно, что диапазон ячеек B4:V24 заполняется нулями и
единицами. Единица вносится в том случае, если соответствующая узловая точка
попадает внутрь или на границу области, площадь которой вычисляется. В против-
Дифференциальные и интегральные
уравнения
Еще одна важная тема, которая будет рассмотрена здесь, связана с решением
дифференциальных и интегральных уравнений. Разумеется, это сама по себе очень
обширная область, и все тонкости и ключевые моменты, связанные с ней, в рамках
одного раздела изложить нереально. Поэтому будут рассмотрены наиболее простые
методы, успешно реализуемые средствами Excel. Что касается прочих подходов, ко-
торые не найдут здесь отражения, то в большинстве случаев они также могут ис-
пользоваться при работе с электронными таблицами.
онном шаге. Сразу следует отметить, что для поиска значения функции в точке
согласно данной формуле нужно вычислять значения функции на всем диапазоне от
точки, где задано начальное значение, до точки, где вычисляется значение функции.
Щ£им£^^
Эта задача имеет точное решение, а именно у(х) = ехр(-дГ/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).
Начальное
значение уО- 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
сю 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 !
1
—I ;
1 Начальное j i I
! значение уО - 1
I
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
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
: ; ;
.J^^ >'(0) ~
Это уравнение, как отмечалось, может быть представлено как система дифферен-
циальных уравнений первого порядка. В частности, вводим в рассмотрение функ-
цию z(x) = у'(х). Тогда уравнение будет эквивалентно системе z'(x) = у(х) и у'(х) - z(x)
с начальными условиями ,у(0) = 0 и г(0) = 1. Поэтому дальше задача практически сво-
дится к трансформации использованного в предыдущем примере метода на случай
векторной функции (имеющей в данном конкретном случае два компонента). Одна-
ко прежде следует заметить, что поставленная задача в качестве решения имеет
функцию у(х) = sh(x). Это значит, что z(x) = ch(jc). На рис. 4.142 показана таблица с на-
чальными данными — интервал исследования функции от 0 до 1 и точные решения
для функций у(х) и z(x).
Для нулевой итерации предстоит заполнить два диапазона ячеек 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. Нулевая итерация
С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; :
Интегральные уравнения
Помимо дифференциальных уравнений (т.е. таких, которые содержат неизвест-
ные функции и их производные), на практике достаточно часто приходится сталки-
ваться с интегральными уравнениями. В этих уравнениях присутствует как неиз-
вестная функция, так и интегралы от нее. Метод решения интегральных уравнений
существенно зависит от типа самого уравнения. Не вдаваясь в подробную классифи-
кацию таких уравнений, рассмотрим в качестве примера уравнение Фредгольма
*
второго рода, которое в общем случае имеет вид y(x) = f ( x ) + X\K(x,t)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.
_
Рис. 4.146. Окно редактора VBA с кодом функций
Первая функция более чем проста. Она определяет ядро интегрального уравне-
ния. По двум аргументам этой функции (х и t) значение функции вычисляется
согласно формуле x * t Л 2.
Второй функцией Integr ( ) вычисляется интеграл. Она имеет три аргумента.
Первый ее аргумент у, как предполагается, является диапазоном ячеек с данными о
значении функции у(х) в узловых точках в пределах изменения ее аргумента. Значе-
ния этих узловых точек определяются вторым аргументом функции t, который так-
же должен быть диапазоном ячеек. Наконец, третий аргумент функции х задает пер-
вый аргумент для ядра интегрального уравнения.
'У;
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
Теория вероятностей
и математическая
статистика
В этой главе...
• Основы теории вероятности
• Методы математической статистики
• Регрессия
• Надстройка анализа данных
• Интерполяция и аппроксимация
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
В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.!
J
Mai. ожидание
1 Дисперсия
; 223S749_
1 7 084389 1
:
f.:::" = |
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! ' :
:
] ! ]
Если U(f) — сигнал на входе (через / обозначено время), то его можно представить
в виде U(t) = f/o + 8U(t), где случайная функция 8U(t) определяет нестабильность сиг-
Пример 5.3. В урне находится три черных и два белых шара. Из урны случайным
образом сначала вынимают один, а затем второй шар. Найти коэффициент корре-
ляции для числа белых шаров, вытянутых в первый и второй раз
Совершенно очевидно, что при выемке шара вероятность того, что шар будет бе-
лым, равна отношению числа белых шаров в урне к общему числу шаров. Поэтому
вероятность вытянуть в первый раз белый шар равна 0,4 (два к пяти). Вероятность
вытянуть во второй раз белый шар зависит от того, какого цвета шар был вытянут в
первый раз. Если в первый раз был вытянут черный шар, то в корзине из четырех ос-
тавшихся шаров будет два белых и два черных шара. Поэтому вытянуть во второй
раз белый шар можно с вероятностью 0,5 (два к четырем). Если же в первый раз был
вытянут белый шар, то вероятность вытянуть белый шар и во второй раз равна 0,25
(один из четырех).
Введем в рассмотрение две случайных величины х и у, которые определяют коли-
чество вытянутых белых шаров в первый и во второй раз соответственно. Очевидно,
что каждая из этих величин может принимать только два значения: 0 и 1, однако с
разной вероятностью. Для величины х ряд распределения очевиден (для нуля веро-
ятность 0,6 и для единицы, как отмечалось выше, вероятность равна 0,4). Ряд рас-
СВ Т £ =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
сю £ =С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
Вероятности для реализации пары случайных величин Р(ху) могут быть вычис-
лены как произведение вероятности Р(х) реализации данного значения х на вероят-
ность Р(у\х) реализации конкретного значения у при данном фиксированном х, т.е.
Р(ху) = Р(х)Р(у\х). При этом Р(у\х) еще называют условной вероятностью, поскольку
это вероятность реализации значения у при условии, что задано значение х. Напри-
мер, вероятность того, что обе случайные величины х и у окажутся равными нулю,
определяется как произведение вероятности реализации значения Р(х = 0) (значение
0.6 в ячейке В2) на вероятность Р(у = 0\х = 0) реализации значения у = 0 при условии,
что х = 0 (значение 0.5 в ячейке В5). Поэтому в ячейку В9, где отображается значе-
ние для этой вероятности, вводится формула =В2*В5 (см. рис. 5.9). В полной анало-
гии к вышесказанному в ячейку С9 вводится формула =С2*С5, в ячейку В10 вводим
формулу =В2*В6, а в ячейку СЮ — формулу =С2*С6.
F5 •* jS(=SUM(B2:C2*B5.C6*A5:AB)}
(•• ' А : В с _D_ [ Ё F I G
?
Y' 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.' :
F6
и3 II j
0.3 о
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
оценка для дисперсии. При достаточно большом числе испытаний N обе оценки
(смещенная и несмещенная) практически различаются мало.
Опыт Значение
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
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:
:
В2 f, =AVERAGE(B2:B11)
Опыт
0.716^
0.894-
0.899:
0.009:
0.207
0.255
0.422'
0.35
0.697
В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. Вычисление выборочной
дисперсии
b+a 1A
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'
Далее нужно составить и решить систему уравнений. Для этого в диапазон ячеек
Е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.
Е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
В поле 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.
Е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. Оценка параметров распределения методом моментов
Как несложно заметить, оценка для левой и правой границ диапазона, на котором
распределена случайная величина, найдена, по сравнению с аналитически получен-
ным результатом, более чем неплохо.
Запись выше означает, что в случае, если все значения из набора {х:} находятся в
диапазоне [а, Ь}, функция правдоподобия равна l/(b - а)ю. Если хотя бы одно из значе-
ний из набора {jc;} находится вне диапазона [а, Ь], функция правдоподобия равна нулю.
В этой формуле есть ссылки на ячейки Е13 и Е14, в которых вводится начальное
значение для левой (значение -1) и правой (значение 2) границ диапазона соответ-
ственно (рис. 5.25).
Е12 ft =1/POWER(E14-E13,10)
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!
Как несложно видеть, результат полностью совпадает с тем, что был получен пу-
тем аналитического исследования проблемы. Что касается соответствия полученно-
го результата точным значениям 0 (для левой границы) и 1 (для правой границы), то
оно во многом оставляет желать лучшего, хотя окончательный вывод зависит от той
точности, которой полученный результат должен соответствовать. Как и для резуль-
тата, полученного методом моментов, здесь остается справедливым следующее заме-
чание: для получения надежных оценок выборка, по которой эти оценки получены,
должна быть объемной (т.е. содержать достаточно большое число элементов).
Линейная регрессия
В случае линейной регрессии зависимость между параметром х и случайной вели-
чиной у ищется в виде у = ах + Ь. Задача, фактически, в этом случае формулируется как
поиск параметров а и b по известным значениям {у,} при значениях параметра {*,.}. Па-
раметры а и Ь, как правило, вычисляются на основе метода наименьших квадратов,
суть которого сводится к тому, что упомянутые параметры выбираются так, чтобы вы-
ражение F(a,b) = ^(fi-yif было минимальным. При этом / = ох,. + Ь есть оценочное
значение для величины у при значении параметра х = х.. Как уже отмечалось ранее, это
оценочное значение в общем случае отличается от экспериментального у,.. Для того
чтобы функция F(a, b) имела при некоторых значениях а и Ь минимум, необходимо,
чтобы выполнялось (при этих значениях параметров а и Ь) равенство нулю частных
производных dF(a,b)/da = 0 и dF(a,b)/db = Q. В результате получаем систему из двух
Нелинейная регрессия
Совершенно очевидно, что линейная регрессия является далеко не единственным
типом регрессии. В частности, в Excel есть функция LOGEST0, позволяющая выпол-
нять экспоненциальную регрессию. Речь идет о том, что регрессионная зависимость
ищется в виде у(х) = b-а для однофакторной модели. Если в модели больше одного
фактора, то зависимость представляет из себя произведение показательных функций.
Например, для двух факторов XHZ зависимость имеет вид у(х, z) = b • а" • а*, и т.д.
С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
параметры
:сии
'14 [регресс | -00351563 O.SS274432 3.0852441
D2 -• ' S =(В2+ВЗ)/2
__j _..А__ -„kJL-ii. С D Е F
И Зависимая Новые Новые
Фактор эг Фактор z
величина у V [ЛЬ! уаль( 2
л2 а1 b
Ш Параметры '
[tjpeepeccuu ] :р.р351563! 0.55274432_ 3.08524432-
Параметры
регрессии \ -0.0351563:0.55274432:3.08524432
!3 а2 л1 Ь
Япэрэметры | •
14 регрессии -0.03515630.55274432:3.08524432.
Однако, как уже отмечалось ранее, совсем не обязательно, что статистические дан-
ные эффективно описываются именно линейной регрессионной моделью. В частности,
можно использовать для оценки случайной величины показательную регрессионную
модель. В этом случае, по сравнению с рассмотренным выше примером линейной рег-
рессии, в рабочий лист следует внести такие изменения (или ввести данные в новом
листе с учетом следующих поправок): везде, где они встречаются в рабочем листе,
функцию 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.
Я Параметры
14 регрессии 0.99Б10137 1.21418711 ! 0.42192487
"15" '•' ' ' :
Внимание! Для того чтобы в списке команд меню Tools присутствовала команда
Data Analysis, необходимо активизировать соответствующую надстройку
(если это не было сделано раньше). Для этого нужно установить флажок опции
элемента Analysis ToolPak в окне Add-lns (Надстройки), которое открывается
после выбора команды Tools<=>Add-lns.
CJstrtoubon:
Parameters ™-
Number of Variables:
(uniform
Parameters --
Between jo ftnd [T
aandomSeed;
Output options
^ UJtput Range: , ' 1j*A$l:$A$10
; Г New Worksheet 9y:
Г Hew gorkbook
.. 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
Регрессионный анализ
С помощью надстройки анализа данных можно выполнять и регрессионный ана-
лиз. Причем возможности, предоставляемые в рамках этой надстройки, как правило,
существенно шире по сравнению с использованием встроенных функций 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
G H
Ш ^Р S°tjrce Formatting
EJatch Destination Formatting I
Formatting Only
Link eels
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
Output options
1
<~ Output R«ige:
i <? New Worksheet Ely:
i: fNewffiarkbook
rNormalProbebity —
Г йогами ProbaMty Plots
Опция Описание
Residuals (Остатки) Отображение в отчете данных об остатках регрессии
Standardized Residuals Отображение сведений о стандартизированных остат-
( Стандартизированные ках регрессии
остатки)
Residual Plots (Диаграммы Отображение диаграмм остатков регрессии для каждого
остатков) из факторов (т.е. независимых параметров) модели
Line Fit Plots (Диаграммы Отображение диаграммы со сведениями об оценочном и
значений) экспериментальном значении зависимой переменной
jlnput
: JnputJRange: 1 ним \\\тт J
•. 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
нал сумма квадратов (сокращение от regression sum of squares), ESS = У (у; -/)2
/=i
сумма квадратов ошибок регрессии (сокращение от error sum of squares) и
TSS = RSS + ESS = ^(y, - y)~ — общая сумма квадратов (сокращение от total sum of
П£ 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)
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
ESS %*'
Г—^ -где
1 "
{xj есть набор значений фактора модели, а х =—^ х. — его среднее значение
F17 Левая граница доверительного интервала для углового коэффициента при уров-
не достоверности 95 %
F18 Левая граница доверительного интервала для свободного члена при уровне дос-
товерности 95 %
G17 Правая граница доверительного интервала для углового коэффициента при
уровне достоверности 95 %
G18 Правая граница доверительного интервала для свободного члена при уровне
достоверности 95 %
Н17 Левая граница доверительного интервала для углового коэффициента при уров-
не достоверности 99 %
Н18 Левая граница доверительного интервала для свободного члена при уровне дос-
товерности 99 %
117 Правая граница доверительного интервала для углового коэффициента при
уровне достоверности 99 %
118 Правая граница доверительного интервала для свободного члена при уровне
достоверности 99 %
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 10 15
Points X
0.4 т
0.3 -•
0.2 -
0.1 -
О-
-0.1 U 10 15
-0.2 -
-0.3 -•
::
-0.4
-0.5 -£
Points X
Descriptive Statistics
; Jnput Ransei
Grouped By:
<~ R
^Output options
;
Г Smwnoy staSstfcs
i Г" Cc^dwiceLevd for Mean:
А : В 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':
Параметр Описание
Mean (Среднее) Среднее значение. Эквивалент вызова функции AVERAGE()
Standard Error Стандартная ошибка, вычисляемая для набора данных {yt}, опре-
(Стандартная ошибка) I I
2
деляется по формуле SE = ^"^(у, ~ У) /л(я-1)
; OutputОрЙЭП5;-
Г Output Range:
<* New Worksheet 0y:
; f NewSorkbook
Histogram
6
5
I ш Frequency I
1 -•
1" I'M—t t-H f i
^-t
Intervals
Histogram
12
10 -
3
СГ
[•Frequency!
4 -•
2 •
0 (
0 0.3 0.6 1 More
Intervals
; Interval:
I Output options-
i Qjtput Rangej
Г Chart Output
В этом окне в поле Input Range указывается диапазон данных, для которых вы-
полняется сглаживание. Если начальная ячейка диапазона содержит метку, устанав-
ливается флажок опции Labels in First Row (Метки в первой строке).
Сглаживание выполняется по следующему принципу. Уточненное значение вы-
числяется как среднее значение по нескольким предыдущим значениям. В поле
Interval (Интервал) указывается количество узлов (включая и тот, значение которо-
го уточняется), по которым это усреднение выполняется (значение по умолчанию 3).
Кроме того, в поле Output Range следует определить область вывода таблицы отчета
(достаточно указать верхнюю левую ячейку).
На заметку. В данном диалоговом окне из всех переключателей, имеющих отно-
шение к определению области вывода, доступен только Output Range (Диапазон
вывода). Поэтому отчет с диаграммами отображается в том же рабочем листе,
где размещены исходные данные.
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 :
'
|20;
к А ; в ..• 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
Экспоненциальное сглаживание
Для сглаживания данных можно воспользоваться другой утилитой — прибегнуть
к команде Exponential Smoothing (Экспоненциальное сглаживание) из диалогового
окна Data Analysis (Анализ данных). Окно, открывающееся при этом, представлено
на рис. 5.58.
Exponential Smoothing
.Input
Input Range:
Qarnping factor:
Output options
Output Range:
Как несложно видеть, сглаживание получилось не такое плавное, как в случае ис-
пользования метода плавающего среднего. Можно, разумеется, изменить коэффици-
ент ослабления, однако это не всегда помогает. Что касается экспоненциального
сглаживания вообще, то может иметь место эффект начальной точки, когда значение
в этой точке существенным образом сказывается на всей сглаженной кривой. Кроме
того, можно заметить, что сглаженная кривая как бы сдвинута по отношению к экс-
периментальной. Это же имеет место, кстати, и в случае линейного сглаживания.
В последнем случае для достаточно плавных зависимостей и при большом числе
узлов сглаживания такой эффективный сдвиг составляет, по порядку величины,
примерно половину от числа узлов сглаживания. Иногда это приводит к проблемам.
Во всяком случае указанные особенности процедуры сглаживания следует иметь в виду.
Линия тренда
Для решения поставленной задачи (имеется в виду интерполяция или аппрокси-
мация) прежде всего следует отобразить анализируемые данные в графическом ви-
де. В качестве примера будем рассматривать те же данные, что и в предыдущих слу-
чаях. На их основе может быть построена диаграмма, представленная на рис. 5.61.
........... Г 0.2
I! 1 0.9 1.4
Данные, как видно из рис. 5.61, представлены на диаграмме в виде отдельных то-
чек, т.е. кривая для рассматриваемой зависимости не проведена. Эти данные в об-
ласти диаграммы нужно выделить и затем щелкнуть правой кнопкой мыши. В рас-
крывшемся контекстном меню следует выбрать команду Add Trendline (Добавить
линию тренда) (рис. 5.62).
Coving Average
Based on series:
Add Tiendline
Type Options
"Trentfinename .....
j (^ automatic P
<" Custom: j
: Forecast '
Eorward:
Г Setjntercwt»
P Display equation on chart
1.2 л
i -
0.8 -
0.6 -
Trend Line
i?
!
0.8 -
Y0.6 -
J
0.4
0.2 -
н
-0.1 0.4 0.9 I -I
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
; 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; \
.0.2 41*
Интерполяция Лагранжа
Интерполяционную формулу в Excel можно построить достаточно простым спо-
собом. Причем речь о непосредственном программировании на языке VBA здесь не
идет (хотя это еще один эффективный способ решения задачи). В качестве примера
рассмотрим задачу о построении интерполяционного полинома Лагранжа.
Можно показать, что функция Ц*) = Л >,<?,(*), где базисные функции
С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
г;
A(=PRODUCT(iA$2-tAtE:AE,tAt2-AB:tA$16)/PRODUCT(A7:SA$e:/^,A7-AB:$At16))
:
В_ _ С | О | Е i F i G- I .Ж
Функция Пагранжа Цх)
• А I В \ ;. .С...,,
Аргумент х' Функция Лагранжа Цх}
:
. 0.59:
Совместное использование
Excel и Maple
В этой главе...
Ш Подключение надстройки Maple Excel Add-In
• Основы командного языка Maple
• Использование функций Maple в рабочих листах Excel
• Настройка параметров Maple при работе с Excel
• Совместное использование данных в Maple и Excel
• Примеры решения задач
Подключение надстройки
Maple Excel Add-In
Само собой разумеется, что для использования Maple в рабочих листах Excel
(для этого, собственно, соответствующая надстройка и подключается) приложение
Maple должно быть установлено. Эта вполне посильная задача целиком и полностью
ложится на плечи читателя.
Внимание! Приложение Maple должно быть установлено после того, как уста-
новлен пакет Microsoft Office (или отдельно приложение Excel). В противном
случае работа с надстройкой будет невозможна.
Кнопка Описание
Кнопка копирования содержимого ячейки или диапазона ячеек в рабочем листе
Excel в буфер обмена для последующей вставки в рабочий лист Maple в виде
матрицы
Кнопка копирования данных из таблиц Maple (в рабочих документах Maple
можно использовать собственные электронные таблицы) в рабочий лист Excel.
Данные в приложении Maple копируются в буфер обмена, после чего вставляют-
ся в рабочий лист Excel с помощью данной кнопки
Кнопка настройки параметров приложения Maple при работе с Excel. После
щелчка на кнопке открывается диалоговое окно Maple Excel Options
(Параметры Maple), в котором и выполняются соответствующие настройки
После щелчка на кнопке открывается диалоговое окно Maple Function Browser
(Вставка функции Maple), с помощью которого можно получить доступ к функ-
циям Maple
Кнопка доступа к справке Maple (того ее раздела, который имеет непосредствен-
Ш ное отношение к математическим вопросам) прямо из рабочего листа Excel
| I": I •-• J |
Выражения в Maple
Команда Maple, как правило, представляет собой некоторое математическое вы-
ражение, которое либо просто вычисляется, либо присваивается в качестве значения
переменной. В этом случае используются всевозможные операторы, в основном ма-
тематические. В табл. 6.2 приведены основные математические операторы, которые
допускается применять в Maple.
Оператор Описание
+ Оператор сложения. Пример использования: а+Ь
Оператор вычитания. Пример использования: а-Ь
Оператор умножения. Пример использования: а*Ь
Оператор деления. Пример использования: а/Ь
Оператор возведения в степень. Помимо этого оператора, в ранних версиях
Maple можно также использовать двойной оператор умножения (т.е. * *).
Пример использования: а^Ь
Это бинарные операторы (т.е. они используются с двумя операндами). Кроме них в
Maple много других, весьма полезных операторов, однако описываться они будут по
мере необходимости. Здесь же следует отметить, что в Maple в качестве оператора при-
сваивания используется, как и в некоторых языках программирования, двоеточие со
знаком равенства (оператор : =). Переменной, указанной слева от оператора присваи-
вания, присваивается в качестве значения выражение, указанное справа от оператора.
Как пример можно рассмотреть команду присваивания переменной Р в качестве
значения полиномиального выражения ах3 + xlb - 2x + n. Команда, вводимая при
Л Л
этом в рабочем листе Maple, имеет вид Р:=а*х 3+х 2/Ь-2*х+Р1, а результат ее
выполнения приведен на рис. 6.4.
j
Tine; 1.7s i Bytes: 3.06M Available; 806M
Как видно из рис 6.4, для вызова числа л использовано выражение Pi. Это предо-
пределенная константа, причем не единственная из предопределенных констант в
Maple. В табл. 6.3 приведен список основных констант.
Константа Описание
Pi Число я = 3,141592654
true Логическая константа "правда"
Для того чтобы узнать значение переменной, как правило, достаточно ввести эту
переменную (ее название) в качестве команды, поставить точку с запятой и нажать
клавишу <Enter>. Например, на рис. 6.5 показано, как определить значение пере-
менной Р, которой на предыдущем этапе было присвоено значение.
2/b-2*x+Pi;
> P;
> P;
ar. + — - 2 JT +л
> P;
-2+л
[>|
• Time: 17» Bytes. 3.06M
Функция Описание
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 (х) Котангенс гиперболический от х
Функция Описание
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) Корень квадратный из х
Дифференцирование выражений
В Maple для дифференцирования выражений используется функция d i f f ().
В качестве аргументов этой функции указываются дифференцируемое выражение и
переменная, по которой это выражение следует дифференцировать. Например, для
вычисления производной от выражения а? + sin(bt) по переменной t достаточно вве-
сти и выполнить команду dif f (a*t' 4 2 + sin(b*t) , t ) . Результат представлен на
рис. 6.7 (команда выполнялась в новом документе).
:
Time-. 1 7s ! Bytes: 3.06M AvAibte'. 7Э9М
A
diff(a*t 2+sinCb*t>,
diff(a*t*2+sin(b*t),
> 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
Решение уравнений
Помимо интегрирования и дифференцирования, часто приходится решать как
алгебраические, так и дифференциальные уравнения. Причем если для решения ал-
гебраических уравнений в Excel есть специальные утилиты, то для аналитического
решения дифференциальных уравнений без помощи Maple вряд ли можно будет
обойтись. Но даже и в случае алгебраических уравнений использование Maple мо-
жет быть куда более эффективным по сравнению с возможностями Excel, особенно в
тех случаях, когда решение нужно искать в символьном виде.
Для решения алгебраических уравнений используют функцию solve ( ) . Первым
аргументом функции указывается решаемое уравнение (т.е. равенство), вторым —
переменная, относительно которой уравнение решается. Это самый простой способ
вызова функции.
Если первым аргументом указать выражение, то будет искаться такой корень,
при котором выражение обращается в нуль. По умолчанию ищутся все корни урав-
нения. Результат в этом случае возвращается в виде последовательности (это набор
значений, разделенных запятой). Например, решения квадратного уравнения ах2 +
+ Ьх+ с = 0 могут быть найдены с помощью команды solve (а*х Л 2+Ь*х+с=0, х ) .
Результат представлен на рис. 6.10.
Эта функция исключительно полезна при поиске решения в символьном виде. Одна-
ко часто уравнение просто не имеет аналитического решения (точнее, оно не может быть
представлено через элементарные функции). В этом случае логично воспользоваться
функцией f solve ( ) . В результате вызова данной функции решается, в численном виде,
уравнение, указанное первым ее аргументом, относительно переменной, указанной вто-
рым аргументом. Можно вторым аргументом указать не только переменную, но и на-
чальное ее значение для поиска решения. Например, корректной является команда
solve(a*x
2a
> 1
,x-7>,
7.725251837
> f solve ( 0 , 0 1 * x = s i n ( x ) ,x-4*Pi. . 6 * P i ) ,•
15.55181134
В завершение этого раздела хочется отметить одну особенность Maple. Дело в том,
что если, скажем, переменной в каком-то документе Maple присвоено значение, то в
другом рабочем листе переменная с этим же названием будет иметь такое же значение.
Во многих случаях это удобно, но иногда может приводить к неприятностям
(например, если последовательно решается несколько задач, в которых используются
переменные, разные по сути, но с одинаковыми названиями). Чтобы не перезагружать
приложение каждый раз при решении новой задачи, достаточно выполнить команду
restart. В этом случае эффект такой же, как если бы Maple был перезагружен. Начи-
ная с седьмой версии продукта на панели инструментов есть специальная кнопка
(первая справа кнопка панели инструментов, с замкнутой кривой со стрелкой). В ран-
них версиях Maple команду следует выполнять из рабочего документа. Каждую новую
задачу рекомендуется начинать с выполнения именно этой команды.
Ввод формул
Итак, главное правило при вводе формул состоит в следующем: для использования
функции Maple при вводе формулы в ячейку электронной таблицы следует эту функ-
цию со всеми ее аргументами заключить в двойные кавычки и указать в качестве аргу-
мента функции =Мар1е(). Например, для того, чтобы в ячейке А2 отобразить значение
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, отображается результат выполнения обеих ко-
манд, а в качестве разделителя при выводе результатов отображается квадрат.
Замечание. В качестве подынтегрального выражения в функции int ( ) указана
переменная среды %. Этой переменной в качестве значения возвращается результат
выполнения последней команды. Поскольку последней является команда вычисле-
ния производной, то интегрируется именно то выражение, которое и надо интегри-
ровать. Использование этой переменной обычно позволяет существенно упрощать
вид команд и экономить время при их наборе. Однако злоупотреблять ею не стоит,
поскольку очень легко запутаться в логической схеме выполнения операций.
Если все же нужно отображать результат выполнения всех команд (или некото-
рых), а отображение результатов их выполнения в одну строчку кажется малопри-
ятным, можно выполнить форматирование ячейки (или ячеек), где эти результаты
отображаются. Для этого соответствующая ячейка выделяется, а затем выбирается
команда Format^Cells (Формат^Ячейки). В открывшемся диалоговом окне
Format Cells (Формат ячеек) на вкладке Alignment (Выравнивание) нужно устано-
=Maple("x")
J
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 •
Е4 (-5)
i A .: _B L::,: \c... I J;
1 l Пример решения уравнения
Уравнение Переценили Решение
'х'«2-5*хч6 IX ~:3,2
; =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
С4
_J:.:P:J. I...!. F • G
1 Пример решений уравнения
_aj . : ....................... \ ..... 1 1 .
3 Уравнение Переменная Решение
3732050808. - 2Б7949192Д1
Создание графиков
Приложение Maple обладает уникальными возможностями в плане построения
двухмерных и трехмерных графиков. Эти возможности с успехом могут быть ис-
пользованы и при работе с Excel.
Что касается непосредственно Maple, то графики функциональных зависимостей,
заданных в явном виде, строятся с помощью функции plot ( ) . Аргументами этой
функции указываются выражение или функция, для которой строится график,
а также переменная, зависимость от которой отображается графически (лучше с ди-
апазоном ее изменения, однако если он не указан, то по умолчанию принимается
диапазон изменения переменной от -10 до 10). Самый простой случай подразуме-
вает вызов функции plot ( ) стандартными методами из рабочего листа Excel.
В качестве иллюстрации построим график функции Бесселя нулевого индекса.
С этой целью в ячейку ВЗ вводим формулу =Maple("plot(BesselJ(0,x),x=0..20)"). В ре-
зультате в рабочем листе Excel создается график упомянутой функции (рис. 6.25).
Bencl Fenction
/Л
/, а
20
Это только некоторые из опций функции plot ( ) . В табл. 6.5 можно найти краткое
описание прочих опций этой функции. Для получения более полной справки читателю
следует обратиться к специальной литературе или справочной системе Maple.
Опция Описание
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 (красный фуксин),
Опция Описание
symbol Тип символов для отображения базовых точек. Возможные значе-
ния таковы: BOX (квадрат), CROSS (крест), CIRCLE (круг), POINT
(точка) или DIAMOND (ромб)
symbolsize Размер символов базовых точек. По умолчанию размер символов
равен 10 пунктам
thickness Опция задает толщину линии отображения графика. Возможные
значения — число от 0 до 15. Значением по умолчанию является О
tickmarks Значение опции — список, элементы которого (целые неотрица-
тельные числа) определяют минимальное число отображаемых на
графике отметок на шкалах. Первый параметр — для оси абсцисс,
второй — для оси ординат
title Заголовок рисунка. Значением опции является строка символов.
По умолчанию заголовок не отображается. Если нужно вывести
многострочный заголовок, для перехода на новую строку использу-
ют директиву \п
titlefont Шрифт заголовка рисунка
view Значение опции — список, элементами списка являются два диапа-
зона, в пределах которых по оси абсцисс и ординат отображается
график функции. По умолчанию отображается весь график
xtickmarks Опция определяет минимальное число отображаемых меток по оси
абсцисс
у tickmarks Опция определяет минимальное число отображаемых меток по оси
ординат
А ,-.
вз =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-
Опция Описание
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 Опцией задается направление просмотра трехмерного графика.
Значением является список из двух элементов — азимутального и
полярного углов, определяющих направление
Опция Описание
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 ( ) .
e Output Format
Mapde f^eciston: I 10 cB^s of comput«itai
Accept
Puc. 6.31. Вкладка Maple Options диалогового окна Maple Excel Options
Integral Transforms
addtable
fourier
fouriercos 1
fouriersin
hankel
hilbert d
: Packages Included:
Accept
Accept
Вставка функций
Даже опытные пользователи далеко не всегда помнят название функций Maple,
да это, пожалуй, и не нужно. Достаточно знать некоторые, наиболее часто исполь-
зуемые. Тем не менее, иногда приходится обращаться и к довольно редко испо-
льзуемым функциям или искать такую, которая лучше всего соответствовала бы ре-
шаемой задаче. В надстройке Maple Excel Add-in есть специальная утилита, позво-
ляющая выполнять вставку функций в формулы в удобном и наглядном режиме.
Запускается она щелчком на кнопке панели Maple (четвертая слева кнопка с изо-
бражением кленового листа и волшебной палочки). В результате открывается диа-
логовое окно Maple Function Browser (Вставка функции Maple). Там содержится не-
сколько полей. Функции разбиты по типам и подтипам. Выбирая последовательно
тип функции, можно получить доступ практически ко всем основным функциям
Maple. Например, на рис. 6.34 выбрана функция выполнения преобразования Фурье
f ourier ( ) . Добраться до нее можно, последовательно выбирая элементы в списках
(слева направо). При выборе очередного элемента в расположенном справа поле
отображается список подтипов функций или сами функции на последнем уровне
структуризации.
После щелчка на кнопке Next (Далее) открывается еще одно диалоговое окно,
в котором можно задать параметры функции (рис. 6.35).
W |q~
J
f Description
Usage
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
Parameters
expr - expression, equation, or set of ecpaations and/or expressions to
I be transformed
ЛОЛ
Глава 6. Совместное использование Excel и Maple 4оУ
Совместное использование данных
в Maple и Excel
Несмотря на достаточно высокий уровень интегрируемости Maple в Excel, позво-
ляющий с успехом использовать командные возможности Maple прямо в рабочих
листах электронных таблиц, иногда возникает необходимость пересылать данные из
одного приложения в другое. Здесь остановимся на самом простом способе такого
обмена данными — фактически, через буфер обмена. Единственным принципиаль-
ным моментом при этом является то, что такие данные будут копироваться не с по-
мощью стандартных команд Excel, а посредством утилит подключенной надстройки
Maple Excel Add-in. В этом случае данные специальным образом форматируются,
что существенно упрощает всю процедуру.
ЗШШШ.Ш]
[> Matrix (1 . 2 , 1 2, { , (1,2) -2, (2,1)=3, ( 2 , 2 ) - 4 } > ,-
3 4j
: !
i Time: 1.2s ' Bytes: 3.06M Avalabte: 6Э1М
[Hi ил
Matrix (1 . 2 , 1 , 2 , { (1,1)-1, (1,2) =2, ( 2 , 1 ) =3 , ( 2 , 2 ) =4» ,
3 4
•Г I »П
,. 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
При этом следует иметь в виду, что копируются только значения ячеек исходной
таблицы Excel. Другими словами, если копируемые ячейки содержат формулы, то
при копировании эти формулы не запоминаются, копируется только текущее значе-
ние ячейки.
'
3 4
Задача 6.1. Разложить в ряд Тейлора функцию fix) = х/(2+х ) в окрестности точки
х0 = 0 до третьей степени включительно
С6 =Maple("laylof(&1,x=&2,&3)",C3.C4.C5)
В
I
1 ; Разложение функции"'в ряд Тейлора
......
Параметрическая производная
Приложение Maple незаменимо и в тех случаях, когда нужно вычислить производ-
ную, особенно если функция задана в параметрическом виде, в силу чего в параметри-
ческом виде вычисляется и производная. О параметрических производных речь уже
шла в четвертой главе. Однако с использованием надстройки Maple Excel Add-in такие
производные вычисляются не только численно, но и в символьном виде. Рассмотрим
следующий пример.
=Мар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
<
ВЁ 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.9. Следует сра-
зу заметить, что решение этой задачи предлагаемым методом подразумевает под-
ключение пакета Student Calculus. Методы подключения пакетов обсуждались выше
в этой главе.
Замечание. Пакет можно, в принципе, и не подключать, однако в этом случае для
используемой из упомянутого пакета функции Lineint ( ) придется указывать
пакет отдельно.
Замечание. В Maple у многих функций есть неактивные формы. Они, как прави-
ло, имеют такой же синтаксис, но начинаются с большой буквы. Неактивные
формы, в частности, имеются у функции дифференцирования (Dif f () ) и интег-
рирования (Int ( ) ). Неактивные формы функций используются в основном для
символьного представления вычисляемых выражений. Однако проблема в том,
что для неактивной функции Lineint ( ) активной формы не существует.
Интерполяция
Задача интерполяции обсуждалась в пятой главе. Там она выполнялась разными
способами, однако использование надстройки Maple Excel Add-in в некотором от-
ношении открывает новые горизонты при решении этой проблемы. Здесь рассмот-
рим (очень кратко, надо отметить) методы получения интерполяционного полинома
Лагранжа, а также выполнение интерполяции сплайнами.
переменной
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)
Если сравнивать два типа интерполяции, то каждый из них имеет свои преиму-
щества и недостатки. Так, полиномиальная интерполяция по методу Лагранжа дос-
таточно просто выполняется, однако часто на краях интервала интерполирования
полином демонстрирует очень сильные отклонения. При интерполяции сплайнами
этого, как правило, не случается. Однако такая интерполяция не очень удобна, когда
нужно вычислять производные высоких порядков. Вообще же выбор типа интерпо-
ляции во многом зависит от типа данных и характера решаемых посредством интер-
поляции вопросов.
Динамика
В основном, когда речь заходит о прикладных задачах, в первую очередь подра-
зумеваются задачи физические. Показательными в этом отношении являются задачи
механики, хотя следует сразу отметить, что обычно это не самые сложные задачи из
тех, с которыми приходится сталкиваться. В качестве примера использования над-
стройки Maple Excel Add-in при решении прикладных задач рассмотрим задачу о
движении системы грузов по горизонтальной плоскости под действием внешней
приложенной к системе силы.
Приложение 507
Продолжение таблицы
508 Приложение
Окончание таблицы
Приложение 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
Научные вычисления
в Microsoft Excel
Научные
вычисления А.Н. Васильев
в 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