Академический Документы
Профессиональный Документы
Культура Документы
в Microsoft
Excel 2010
Excel* 2010
Formulas
by John Walkenbach
WILEY
Джон Уокенбах
ДИА Л ЕКТИ КА
М осква • Санкт-Петербург • Киев
2011
ББК 32.973.26-018.2.75
У62
УДК 681.3.07
Компьютерное издательство “Диалектика”
Уокенбах, Джон.
У62 Формулы в Microsoft Excel 2010. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2011. —
704 с .: ил. — Парал. тит. англ.
ISBN 978-5-8459-1704-1 (рус.)
ББК 32.973.26-018.2.75
Все названия программных продуктов являются зарегистрированными торговыми марками соответст
вующих фирм.
Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было
форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование
и запись на магнитный носитель, если на это нет письменного разрешения издательства Wiley Publishing, Inc.
Copyright © 2011 by Dialektika Computer Publishing.
Original English language edition Copyright © 2010 by Wiley Publishing, Inc.
All rights reserved including the right of reproduction in whole or in part in any form. This translation is
published by arrangement with Wiley Publishing, Inc.
Научно-популярное издание
Джон Уокенбах
Формулы в Microsoft Excel 2010
Литературный редактор Е.П. Перестюк
Верстка О.В. Романенко
Художественный редактор Е.П. Дынник
Корректор Л.А. Гордиенко
Об авторе 25
Введение 26
Об авторе 25
Введение ~ 26
Глава 3. Имена 89
Что такое имя 89
Область действия имен 90
Ссылки на имена 90
Содержание 9
Рекомендации читателям
Эта книга написана исключительно для версии Excel 2010. Если у вас установлена ка
кая-либо из более старых версий, рекомендую отложить книгу и взять в руки одно из
ранних изданий. Изменения, произошедшие в Excel с выходом версии 2010, весьма су
щественны, поэтому в старой версии вам вряд ли удастся применить материал настояще
го издания.
Для использования примеров, содержащихся на компакт-диске книги, вам потребует
ся привод CD-ROM. Примеры, содержащиеся на прилагаемом компакт-диске, будут опи
саны далее.
Введение 27
Примечание
Я работаю исключительно в Excel для Windows, а не Macintosh. По этой при
чине я не могу гарантировать, что все примеры будут работать в Excel для
Macintosh. Для Excel характерна достаточно неплохая, но все же не идеаль
ная кроссплатформенная совместимость.
Чем быстрее работает ваша система, тем лучше. И естественно, большой объем опе
ративной памяти сделает вашу работу более удобной. Настоятельно рекомендую: на
стройте монитор на работу в режиме высокого разрешения. А еще лучше — установите
два монитора.
Соглашения
Потратьте немного времени на этот раздел, и вы узнаете, какие соглашения и услов
ные обозначения используются в книге1.
Работа с клавиатурой
Клавиатура нужна для того, чтобы вводить формулы. Кроме того, с ее помощью
можно работать с меню и диалоговыми окнами. Этот метод значительно ускорит вашу
работу, особенно если вы хорошо владеете техникой слепой печати.
Листинги формул
Формулы обычно располагаются в отдельной строке и выделяются моноширинным
шрифтом. Ниже приведен пример формулы.
= В П Р (Н ом ерК атегории;П райс-лист; 2 ; ЛОЖЬ)
При описании синтаксиса функций используются подстановки, т.е. названия аргумен
тов, вместо которых должны быть подставлены конкретные значения. Подстановки вы
делены курсивом. Например, приведенная ниже запись означает, что функция ИНДЕКС
принимает аргументы м а с с и в , н о м е р _ с т р о к и и н о м ер _ ст о лб ц а .
ИНДЕКС (массив; номер_строки; номер_столбца)
Курсивом выделяются также специальные термины Excel, определение которых при
водится в тексте.
Excel поддерживает такой специфический тип формул, как формулы массивов. После
ввода такой формулы нажмите <Ctrl+Shift+Enter> (а не просто <Enter>). Excel заключает
такую формулу в фигурные скобки, таким образом напоминая вам о том, что это форму
Примечание
Создавая формулу массива, не вводите фигурные скобки вручную — Excel
сделает это автоматически.
Работа с мышью
В книге используется стандартная терминология для обозначения действий, выпол
няемых с помощью мыши: вы можете “указывать”, “щелкать кнопкой мыши”, “щелкать
правой кнопкой мыши”, “перетаскивать” и т.д.
Введение 29
Мышь — главный инструмент запуска команд с помощью ленты. Команды ленты от
мечаются в книге специальным рубленым шрифтом. Вы часто будете встречать записи
примерно такого вида: Вид^Окно^ Новое окно. Это означает, что на ленте нужно от
крыть вкладку Вид и в группе Окно щелкнуть на кнопке Новое окно. Этим же шрифтом
отмечаются все названия элементов интерфейса, которые вы видите на экране, например
“флажок Включить итеративные вычисления” .
Пиктограммы
В этой книге пометки располагаются над абзацами, к которым они относятся. Отме
ченные абзацы выделены специальным шрифтом. Пометки предназначены для того, что
бы обратить ваше внимание на материал, имеющий важное значение.
Новинка
Данная пометка указывает на нововведения, появившиеся в Excel 2010.
Примечание
Данная пометка привлекает ваше внимание к определенной информации.
Например, в примечании может быть описан новый подход, который помо
жет вам справиться со сложным заданием, или же основополагающий
принцип, необходимый для четкого понимания темы.
Совет
Советы укажут вам новый эффективный путь решения задачи.
Компакт-диск
Эта пометка указывает на то, что прилагаемый к книге компакт-диск содер
жит соответствующий данной теме файл.
Предупреждение
Материал, отмеченный этой пометкой, предостерегает вас от потенциаль
ных ошибок, которые могут возникнуть, если не прочитать данный абзац.
Перекрестная ссылка
Перекрестные ссылки указывают на другие главы, в которых вы найдете бо
лее подробную информацию по рассматриваемой теме или информацию,
имеющую какое-либо отношение к ней.
Структура книги
Систематизируя материал книги, я решил разделить информацию на шесть основных
частей плюс Приложения/Приложения содержат дополнительную информацию, которая
может оказаться весьма полезной.
30 Введение
Глава 22 ознакомит вас с языком и редактором VBA, а глава 23 предоставит основную ин
формацию о пользовательских функциях. Глава 24 освещает некоторые аспекты програм
мирования, а в главе 25 вы найдете примеры пользовательских функций, которые сможете
применить в исходном виде или адаптировать к собственным задачам.
Компакт-диск книги
Эта книга содержит множество примеров, файлы которых собраны на прилагаемом
компакт-диске. Примеры организованы в папки, соответствующие конкретным главам. В
каждой из таких папок вы найдете авторские, а также адаптированные к русскоязычной
версии Excel примеры — последние имеют название главы с дополненным суффиксом
RUS, например C hapterl5__R U S . x l s x .
Файлы примеров хранятся на компакт-диске в несжатом виде, поэтому можете от
крывать их непосредственно с компакт-диска без какой-либо предварительной установ
ки. Все файлы сохранены в формате Excel 2010. Файлы, имеющие расширение * .x ls m ,
содержат макросы VBA. Чтобы использовать эти файлы, нужно предварительно вклю
чить поддержку макросов.
Помимо этого, компакт-диск содержит электронную версию книги на английском
языке. Электронная версия в формате PDF, несомненно, пригодится вам в дальней ко
мандировке.
Перекрестная ссылка
Подробно файлы примеров, содержащиеся на компакт-диске книги, описа
ны в приложении Г.
32 Введение
Обратная связь
Я очень заинтересован в ваших отзывах о моих книгах. Обратную связь со мной луч
ше всего поддерживать с помощью электронной почты. Ваши замечания и предложения
направляйте по такому адресу:
j ohn@j- w a l k . com
К сожалению, я не смогу ответить на конкретные вопросы. Советую выносить возни
кающие вопросы в сетевые конференции, посвященные Excel, и вам обязательно помо
гут. В приложении В вам будет предложено несколько ссылок на такие конференции.
Путешествуя по Интернету, не забудьте заглянуть и на мой сайт:
www. s p r e a d s h e e t s . com
А теперь, не тратя времени даром, переверните страницу и начните повышать свою
квалификацию.
Основные сведения
В этой части...
Глава 1
Знакомство с Excel
Глава 2
Знакомство с формулами
Глава 3
Имена
Глава
Знакомство с Excel
В этой главе...
♦ Краткая история Excel
♦ Концепция объектной модели
♦ Рабочие книги
♦ Интерфейс пользователя Excel 2010
♦ Справочная система
♦ Форматирование ячеек
♦ Таблицы
♦ Формулы и функции электронных таблиц
♦ Объекты графического слоя
♦ Пользовательская настройка Excel
♦ Средства Интернета
♦ Средства анализа
♦ Средства защиты
чинам данная программа не стала популярной в США. Не удивительно, что Lotus 1-2-3
оставила своего конкурента MultiPlan далеко позади.
В некоторой степени MultiPlan можно считать предшественницей Excel. Выпущенная
для платформы Macintosh в 1985 году, программа Excel, подобно другим приложениям
для Macintosh, имела графический интерфейс (в отличие от текстового интерфейса Mul
tiPlan). Первая версия Excel для Windows (она называлась Excel 2, поскольку изначаль
ная версия была разработана для Macintosh) вышла в свет в ноябре 1987 года. Программа
Excel стала популярной не сразу— она совершенствовалась параллельно с Windows.
Вскоре появилась версия Lotus 1-2-3 для Windows. Еще одним конкурентом для Excel
стала Quattro Pro — программа, созданная компанией Borland International для DOS, ко
торая была впоследствии продана компании Novell, а затем перешла в собственность
компании Corel (теперешнего владельца Quattro Pro).
Версии Excel
Excel 2010— это на самом деле всего лишь “псевдоним” версии Excel 14. Однако не
стоит воспринимать ее как четырнадцатую по счету версию программы. Microsoft — очень
успешная компания, но ее нумерация программных продуктов часто приводит в замеша
тельство. Как вы вскоре узнаете, Excel 2010 на самом деле является одиннадцатой версией
продукта. В следующих подразделах будут кратко описаны основные версии Excel.
Excel 2
Исходная версия Excel для Windows — Excel 2 — вышла в конце 1987 года. Эта вер
сия программы получила название “номер 2”, поскольку версия “номер 1” была разрабо
тана для Macintosh. В то время операционная система Windows еще не имела такого ши
рокого распространения. Поэтому к Excel прилагалась оперативная версия Windows —
операционная система, которая обладала функциями, достаточными для запуска Excel.
По нынешним стандартам эта версия Excel кажется недоработанной (рис. 1.1).
/
Excel 3
В 1990 году компания Microsoft выпустила Excel 3 для Windows. Эта версия обладала
более совершенными инструментами и привлекательным внешним видом. В Excel 3 поя
вились панели инструментов, средства рисования, режим структуры рабочей книги, над
стройки, трехмерные диаграммы, функция совместного редактирования документов и
многое другое.
Excel 4
Excel 4 вышла в свет весной 1992. Появление этой версии программы оказало значи
тельное влияние на рост популярности Windows. Excel 4 обладала рядом новых функций.
Кроме того, она была значительно удобнее в использовании, и теперь начинающие поль
зователи могли достаточно быстро освоить незнакомую для них программу.
Excel 5
В начале 1994 года на рынке появилась Excel 5. Эта версия предлагала пользователям
огромное количество новых средств, включая многолистовые книги и новый макроязык
Visual Basic for Application (VBA). Как и предшествующая версия, Excel 5 получала наи
лучшие отзывы во всех отраслевых изданиях.
38 Часть I. Основные сведения
Рис. 1.1. Исходная версия Excel 2 для Windows. С тех пор программа претерпела
значительные изменения (фотография предоставлена Microsoft Corporation)
Excel 95
Версия Excel 95 (также известная как Excel 7) была выпущена летом 1995 года.
Внешне она напоминала предыдущую (в Excel 95 появилось лишь несколько новых
средств). Однако выход этой версии все же имел большое значение, поскольку в Excel 95
впервые был использован более современный 32-разрядный код. В Excel 95 и Excel 5 ис
пользовался один и тот же формат файлов.
Excel 97
Версия Excel 97 (также известная как Excel 8) была значительно усовершенствована
по сравнению с предыдущими версиями. Изменился внешний вид панелей инструментов
и меню, справочная система была организована на качественно новом уровне, количест
во строк рабочей книги увеличилось в четыре раза. Если вы занимаетесь программиро
ванием макросов, то, вероятно, заметили бы, что рабочая среда VBA была значительно
усовершенствована. В Excel 97 появился новый формат файлов.
Excel 2000
Excel 2000 (также известная как Excel 9) появилась в июне 1999 года. Эта версия ха
рактеризовалась незначительным расширением возможностей. Немаловажным преиму
ществом новой версии стала возможность использования HTML в качестве альтернатив
ного формата файлов. В Excel 2000, конечно же, поддерживался и стандартный двоич
ный формат файлов, совместимый с Excel 97.
Глава 1. Знакомство с Excel 39
Excel 2002
Версию программы Excel 2002 (также известную как Excel 10 или Excel ХР) выпус
тили в июне 2001 года. Она составляет часть пакета Microsoft Office ХР. В этой версии
присутствует несколько новых функций, предназначенных, прежде всего, для начинаю
щих пользователей Excel. Основным нововведением Excel 2002 стала возможность со
хранения результатов работы в случае аварийного завершения программы и восстанов
ления файлов поврежденной рабочей книги, над которой вы когда-то работали. В новой
версии Excel появилась также фоновая проверка формул, а также новые инструменталь
ные средства отладки.
Excel 2003
Excel 2003 (также известная как Excel 11) появилась на рынке в конце 2003 года. Внее
было добавлено немного новых средств. Одной из самых заметных новых функций была
возможность импортировать данные из файлов XML и экспортировать их в эти файлы,
а также отображать данные XML на определенные ячейки рабочего листа. Также в этой
версии была введена концепция списка— особым образом организованного диапазона
ячеек. Обе эти функции стали “кандидатами” на дальнейшее усовершенствование.
Excel 2007
Excel 2007 (также известная как Excel 12) была выпущена в начале 2007 года. Офици
альное название этой программы — Microsoft Office Excel 2007. Эта версия программы
стала наибольшим прорывом со времен выхода версии Excel 97. Одним из самых замет
ных нововведений стал новый формат файлов рабочих книг, основанный на технологиях
XML. В то же время остался доступным и старый двоичный формат файлов. Еще одним
заметным новшеством стала лента — новый тип интерфейса пользователя, пришедший
на замену старой системе каскадных меню и панелей инструментов. В дополнение к это
му была усовершенствована концепция списка, введенная в версии Excel 2003 (теперь
этот способ организации данных стал называться таблицей), улучшен внешний вид диа
грамм, существенно увеличено количество доступных строк и столбцов на рабочем листе
и добавлено несколько новых функций рабочего листа.
Примечание
В документе XML (extensible Markup Language) данные хранятся в структу
рированном текстовом формате. Новые форматы файлов на самом деле
представляют собой сжатые папки, содержащие несколько различных фай
лов XML. По умолчанию расширением файлов рабочих книг Excel является
. x s 1х. Одновременно доступен формат . x s lm , поддерживающий макросы,
двоичный формат с расширением . x l s b и старый формат . x l s .
Excel 2010
Текущая версия, Excel 2010 (другое название— Excel 14), выпущена в начале 2010
года. Куда же подевалась версия 13? Внятных разъяснений от Microsoft нет. Видимо, да
же такая большая компания, как Microsoft, может быть подвержена предрассудкам.
Большинство пользователей считают, что компания просто решила пропустить несчаст
ливое число 13.
Версия 2010 содержит все улучшения, введенные в Excel 2007. Кроме того, в нее добавлен
ряд новых средств, о которых будет подробно рассказано в соответствующих главах.
40 Часть I. Основные сведения
Новинка
Ниже перечислены новые средства, добавленные в Excel 2010.
Рабочие книги
Основным документом Excel является рабочая книга. Все, что вы делаете в Excel,
происходит именно в рабочей книге.
Начиная с версии Excel 2007 файлы рабочих книг фактически являются сжатыми
папками. Если вы когда-либо открывали файл с расширением . z i p , то, наверное, уже
знакомы с концепцией сжатия. Внутри файла . z i p хранится несколько файлов, в кото
рых находится вся информация рабочей книги, в том числе диаграммы, макросы, форма
тирование и данные ячеек.
Рабочая книга Excel может содержать любое количество листов (их количество огра
ничено только объемом памяти). Существует четыре типа листов:
• рабочие листы;
• листы диаграммы;
• листы макросов Excel 4.0 (устаревшие, но все еще поддерживаемые);
• листы диалоговых окон Excel 5.0 (также устаревшие, но все еще поддерживаемые).
Можно открыть любое количество книг (каждую в отдельном окне), но активной кни
гой в текущий момент может быть только одна из них. Аналогично, только один лист книги
может быть активным листом. Для того чтобы активизировать другой лист, щелкните на
42 Часть I. Основные сведения
Рабочий ли ст
Наиболее распространенный тип листа — это рабочий лист. Его мы чаще всего под
разумеваем, говоря об электронной таблице. Каждый рабочий лист Excel 2010 имеет
16 384 столбцов и 1 048 576 строк. После многих лет запросов сообщества пользовате
лей компания Microsoft наконец-то соблаговолила существенно увеличить число доступ
ных строк и столбцов.
Примечание
Рабочие листы версий программы, предшествовавших Excel 2007, поддер
живали только 256 столбцов и 65 536 строк. Если открыть такой файл, Ex
cel 2010 перейдет в режим совместимости с предыдущими версиями, и вы
сможете работать с рабочим листом такого размера. Чтобы расширить та
кой рабочий лист до новых размеров, вам придется сохранить файл в фор
мате Excel 2010, затем закрыть рабочую книгу и снова открыть ее.
Вы имеете полный контроль над видимыми размерами ячеек, можете даже скрывать
их. Содержимое ячеек может отображаться как вертикально, так и под заданным углом.
Ячейка может содержать несколько строк. Кроме того, ячейки можно объединять, полу
чая таким образом одну большую ячейку.
Примечание
По умолчанию каждая новая рабочая книга состоит из трех рабочих листов.
Добавить новый рабочий лист можно в любой момент, поэтому начинать но
вую книгу с трех рабочих листов нет необходимости. Можно изменить уста
новленное по умолчанию количество листов таким образом, чтобы каждая
новая книга состояла всего из одного рабочего листа. Для этого выберите
команду Файл^Параметры Excel, перейдите во вкладку Общие и измените
значение в поле Число листов.
Листы диаграмм
Лист диаграммы состоит из одной диаграммы. Многие пользователи предпочитают
создавать вместо листов диаграмм внедренные диаграммы, которые хранятся на графи
ческом слое обычного рабочего листа с данными. Разумеется, вовсе не обязательно ис
пользовать листы диаграмм, однако с их помощью проще распечатать диаграмму на от
дельной странице, что особенно важно при подготовке презентаций. Внедренные (или
плавающие) диаграммы описаны далее.
Лента
Лента представляет собой основной элемент интерфейса Excel. Она заменила собой
систему меню и большинство панелей инструментов, существовавших в предыдущих
версиях. Это самое значительное отступление от стандартного интерфейса, свойственно
го Windows-программам.
Примечание
Некоторые команды все же не поместились на ленте, и у вас может сложиться
впечатление, будто их не стало. Однако вся хитрость заключается в том, что
они существуют, но пользователю нужно знать, где их искать. Щелкните пра
вой кнопкой мыши на панели быстрого доступа и выберите в контекстном ме
ню пункт Настройка панели быстрого доступа. Откроется диалоговое окно со
списком команд, которые можно разместить на панели быстрого доступа. Не
которые из этих команд недоступны ни в каком другом месте интерфейса
пользователя. Можно также добавить команды на ленту. Для этого щелкните
правой кнопкой мыши на ленте и выберите пункт Настройка ленты.
Навигация
Навигацию по ленте легче всего осуществлять с помощью мыши. Щелкните на
вкладке, а затем — на нужном инструменте. Если вы предпочитаете использовать кла
виатуру, эту возможность компания Microsoft для вас сохранила. Нажав клавишу <Alt>,
вы увидите под вкладками буквы “горячих” клавиш, с помощью которых можно будет их
“открыть”. В открывшейся вкладке будут отображены горячие клавиши, соответствую
щие конкретным командам. При нажатии клавиши будет выполнена соответствующая
команда. Нажатие клавиши <Esc> отменяет предыдущее нажатие клавиши.
К примеру, нажатие клавиш <Ак+Я+И+1+Ж> (<Alt+H+B+B>) приведет к добавле
нию границы в нижней части выделенного фрагмента. В данном случае клавиша <Alt>
46 Часть I. Основные сведения
Контекстные вкладки
Лента содержит несколько вкладок, которые отображаются только тогда, когда в них
возникает потребность. Обычно они отображаются тогда, когда на рабочем листе выде
лен элемент или диапазон со специфичными характеристиками (например, диаграмма
или сводная таблица.) Типичным примером является контекстная вкладка Средства ри
сования. Если выделить фигуру или объект WordArt, эта вкладка становится видимой
и активной. В ней содержится множество инструментов, которые применимы только к
фигурам (например, средства форматирования фигур).
Вкладка Файл
Большая круглая кнопка Office, которая была в Excel 2007, в Excel 2010 заменена
вкладкой Файл. При щелчке на корешке вкладки Файл открывается окно, показанное
Глава 1. Знакомство с Excel 47
на рис. 1.3. В нем можно выполнять большинство операций над документом Excel, таких
как создание рабочей книги, открытие и сохранение файлов, печать и т.д.
На левой панели вкладки Файл приведен список категорий (часто их тоже называют
вкладками). Например, при щелчке на категории Последние открывается список откры
вавшихся документов со значками рядом с каждым элементом списка. С помощью знач
ка документ можно закрепить в верхней части списка, где он будет оставаться независи
мо от того, сколько других файлов было открыто или закрыто.
В нижней части списка категорий приведен пункт Параметры. При щелчке на нем
открывается диалоговое окно Параметры Excel, предназначенное для настройки рабо
чей среды Excel.
Рис. 1.4. При щелчке правой кнопкой на диапазоне ячеек открывается контекстное меню и ми
ни-панель инструментов
Смарт-теги
.Смарт-тег — это небольшой значок, который автоматически отображается на рабо
чем листе после выполнения некоторых действий. Щелчок на этом значке приводит
к открытию меню, содержащего несколько команд.
К примеру, если вы скопировали и вставили диапазон ячеек, Excel отображает смарт-
тег под вставляемым диапазоном (рис. 1.5). В Excel встроено также много других смарт-
тегов; некоторые смарт-теги поставляются сторонними производителями.
Панель задач
В версии Excel 2002 была впервые представлена панель задач. Это элемент интер
фейса пользователя, который обычно прикрепляется к правой границе окна Excel (при
50 Часть I. Основные сведения
желании вы можете перетащить ее в другое место). Панель задач используется для мно
жества целей, в том числе для отображения буфера обмена Office, обеспечения помощи
в исследованиях, отображения полей сводной таблицы и данных XML. На рис. 1.6 пока
зана панель задач, открываемая при вставке клипов.
Перетаскивание данных
Функция перетаскивания данных графического интерфейса программы позволяет
свободно перемещать объекты, расположенные на рабочем листе. Нажатие клавиши
<Ctrl> при перемещении объекта приводит к его копированию. Перетаскивать можно та
кие объекты, как фигуры, внедренные диаграммы, объекты SmartArt и т.д.
Excel позволяет также перетаскивать ячейки и диапазоны. И в этом случае нажатие
клавиши <Ctrl> при перетаскивании приводит к копированию.
Примечание
Возможность перетаскивания ячеек можно отключить. Для этого откройте
диалоговое окно Параметры Excel, перейдите во вкладку Дополнительно ив-
разделе Параметры правки снимите флажок Разрешить маркеры заполнения
и перетаскивание ячеек.
Комбинации клавиш
Наряду с горячими клавишами, используемыми для навигации по ленте, Excel пред
лагает множество других комбинаций клавиш для непосредственного выполнения ко
манд. Например, скопировать выделенные элементы в буфер обмен можно, нажав
<Ctrl+C>. Если вы начинающий пользователь Excel или же просто хотите научиться ра
ботать эффективнее, воспользуйтесь справочной системой Excel. Справочная система
содержит описание полезных комбинаций клавиш, используемых для быстрого выпол
нения команд в электронной таблице.
Глава 1. Знакомство с Excel 51
Для упрощения перехода с предыдущих версий на Excel 2010 компания Microsoft вклю
чила возможность использования горячих клавиш Excel 2003. Работа многих пользователей
Excel, привыкших к навигации по старой системе меню с помощью горячих клавиш, поте
ряет свою эффективность, если им придется полагаться исключительно на новую ленту.
Если нажать клавишу <Alt> одновременно с какой-либо буквой, не являющейся частью
ленты, но приводившую к выполнению какой-либо команды в Excel 2003, в верхней части
окна Excel откроется экранная подсказка (рис. 1.7). Если после этого нажать клавишу <R>,
в данном случае будет открыто диалоговое окно консолидации данных.
Примечание
Формулы всегда начинаются со знака равенства (=).
Справочная система
Одной из наиболее важных особенностей Excel 2010 является мощная справочная
система. Значок справки в виде голубого круга с вопросительным знаком находится
в правом верхнем углу окна программы. Щелчок на этом значке или нажатие
клавиши <F1> приводит к отображению окна справки, показанного на рис. 1.8.
Два основных метода навигации по справочной системе сводятся к использова
нию текстового поля Поиск и пункта Оглавление. Ввод ключевых слов в поле по
иска и щелчок на кнопке Поиск приведет к отображению в главном окне соответст
вующих статей справочной системы. В оглавлении перечислено множество связан
ных по темам статей справочной системы. Окно оглавления, когда оно не
используется, может быть скрыто. Обратите внимание, что кнопка Поиск на самом
деле представляет собой элемент раскрывающегося списка. Щелкните на маленькой
стрелке, и вы сможете выбрать тип необходимой справки. По умолчанию содержи
мое справки загружается с сайта Microsoft Office Online. Если у вас нет доступа к
Интернету или вы хотите ограничиться статьями справки, установленными на вашем
компьютере, щелкните на кнопке Автономная работа в правом нижнем углу окна
справки (см. рис. 1.8). Откроется небольшое меню, которое позволит определить,
какая именно справочная система будет использоваться. В этом же меню содержит
ся значок, открывающий справку по справочной системе (странное словосочетание
“справка о справке” в данном случае вполне уместно).
54 Часть I. Основные сведения
Форматирование ячеек
В Excel существует два типа форматов ячеек: числовой и стилевой.
Числовое форматирование
От числового форматирования зависит то, как значение будут представлено в ячейке.
В Excel существует целый ряд стандартных числовых форматов. Кроме того, во вкладке
Число диалогового окна Формат ячейки можно создавать и собственные числовые
форматы. Для активизации этого диалогового окна щелкните на кнопке со стрелкой
в правом конце заголовка группы Число вкладки Главная.
Перекрестная ссылка
© Дополнительную информацию о том, как создавать собственные числовые
форматы, можно найти в приложении Б.
Числовой формат не влияет на само значение, которое находится в ячейке. Предполо
жим, ячейка содержит значение 3 , 1 4 1 5 9 . Если задать такой формат, при котором ото
бражаются только два десятичных разряда, в ячейке будет отображена запись 3 , 1 4 . В то
же время в формуле будет использоваться фактическое значение ячейки ( 3 , 1 4 1 5 9 ) .
Глава 1. Знакомство с Excel 55
Стилевое форматирование
Стилевое форматирование используется исключительно для того, чтобы придать со
держимому ячеек требуемый внешний вид (цвет, начертание, границы, выравнивание
и т.д.)- Группы Главная^Шрифт и Главная^Стили содержат все команды, необходи
мые для форматирования ячеек и диапазонов.
В Excel 2007 была введена новая концепция, называемая темами документов. Темы
позволяют одним мановением руки применить множество параметров форматирования,
таких как шрифты, цвета и стили ячеек. Параметры форматирования, содержащиеся
в теме, установлены так, чтобы органично сочетаться друг с другом. Применив тему,
можно быть уверенным в гармоничном сочетании цветов. Все команды, связанные с те
мами, находятся в группе Темы вкладки Разметка страницы.
Стоит обратить внимание и на функцию условного форматирования Excel. Этот удобный
инструмент позволяет назначить объекту определенный стиль форматирования, который
применяется только при определенных условиях. Например, можно назначить красный цвет
заливки ячейке, содержащей отрицательное число. В Excel 2007 введено множество новых
параметров условного форматирования, а в Excel 2010 они существенно улучшены.
_ Перекрестная ссылка
fcLsr Более подробную информацию об условном форматировании можно найти
в главе 19.
Таблицы
Таблицей называют специально назначенный диапазон ячеек на рабочем листе Ex
cel 2010. Преобразование диапазона ячеек в таблицу существенно упрощает выполнение
множества операций над данными.
Данные в таблице связаны особым образом. Строки представляют связанные объек
ты, а столбцы — связанные элементы информации о каждом из этих объектов. Если,
к примеру, у вас есть таблица книг, содержащихся в библиотеке, каждая строка будет со
держать информацию об одной книге. Столбцы могут включать заголовок, имя автора,
издателя, дату публикации и т.п. В терминологии баз данных в этом случае строки назы
ваются записями, а столбцы — полями.
Если на рабочем листе данные организованы описанным выше образом, их можно
преобразовать в таблицу. Для этого нужно выделить диапазон и выбрать команду Встав-
ка^Таблицы^Таблица. Excel автоматически вставит обобщенные заголовки столбцов,
если таковые не существуют, цветовую заливку и раскрывающиеся списки заголовков.
Эти раскрывающиеся списки, равно как и контекстная вкладка Работа с таблицами на
ленте, обеспечивают быстрый доступ к связанным с таблицами функциям, таким как
сортировка, фильтрация и форматирование. К тому же использование формул в таблицах
имеет ряд существенных преимуществ.
Не пугайте понятия “таблица” и “электронная таблица”. Электронной таблицей принято
называть рабочий лист Excel, а таблицей — диапазон ячеек, определенный, как описано
в предыдущем абзаце.
Перекрестная ссылка
Таблицы подробно рассматриваются в главе 9.
56 Часть I. Основные сведения
Перекрестная ссылка
Функции рабочего листа подробно описаны в главе 4.
Перекрестная ссылка
Глава 3 полностью посвящена именам.
Фигуры
У вас есть возможность вставить на рабочий лист множество разнообразных фигур.
Их выбор выполняется с помощью командной кнопки Фигуры, расположенной в группе
Иллюстрации вкладки Вставка. После вставки фигуры на лист ее можно модифициро
вать, выделяя ее и перетаскивая отображаемые маркеры. К фигурам также можно приме
нять стили, эффекты заполнения и трехмерные эффекты, а группирование множества фи
гур в единый графический объект облегчает изменение его размеров и местоположения.
Иллюстрации
Изображения, клипы и объекты SmartArt можно вставить из группы Иллюстрации
вкладки Вставка. На рис. 1.9 показаны некоторые объекты графического слоя рабочего
листа, включая объекты группы Иллюстрации.
Элементы управления
На рабочий лист можно вставить множество различных элементов управления. Формаль
но их можно разделить на две категории: элементы управления форм и элементы ActiveX.
Использование элементов управления способно значительно повысить эффективность работы
с листом, часто даже без использования макросов. Чтобы вставить элемент управления, выбе
рите на ленте команду РазработчикаЭлементы управления^Вставить. На рис. 1.10 по
казан рабочий лист с несколькими элементами управления (флажок, две группы переклю
чателей, полоса прокрутки и др.), добавленными на лист.
Примечание
Вкладка Разработчик по умолчанию не отображается. Для отображения этой
вкладки откройте окно параметров программы и во вкладке Настройка лен
ты установите флажок Разработчик.
Компакт-диск
Для того чтобы увидеть элементы управления в работе (см. рис. 1.10), от
кройте файл w o r k s h e e t c o n t r o l s . x s l x (C h a p te r0 1 _ R U S . x s lm ) на прила
гаемом компакт-диске.
Диаграммы
Excel — превосходная среда для построения диаграмм. Как уже отмечалось, диа
граммы могут храниться на листе диаграмм или располагаться на текущем рабочем лис
те в качестве плавающих объектов.
В Excel любая диаграмма может изменяться, чтобы максимально соответствовать
требованиям пользователя. При выделении диаграммы на ленте отображается контекст
ная вкладка, содержащая все инструменты, необходимые для коррекции диаграммы. На
жав клавиши <Ctrl+l>, можно открыть диалоговое окно форматирования выделенных
элементов диаграммы. Щелчок правой кнопкой мыши на объекте диаграммы приводит к
открытию контекстного меню.
Создать плавающую диаграмму нетрудно. Выделите данные, на основе которых стро
ится диаграмма, и щелкните на соответствующем типе диаграммы в группе Диаграммы
вкладки Вставка.
Перекрестная ссылка
Глава 17 содержит дополнительную информацию о диаграммах.
Спарклайны
Спарклайн— это диаграмма, расположенная в одной ячейке. Обычно спарклайны
располагают в нескольких соседних ячейках, чтобы визуально продемонстрировать
тренды данных (рис. 1.11).
Макросы
Язык программирования V B A — мощный инструмент, позволяющий Excel выпол
нять такие задачи, осуществить которые иными средствами чрезвычайно сложно или во
обще невозможно. С помощью VBA создаются следующие основные типы макросов:
• макросы, автоматизирующие операции в Excel;
• макросы, которые функционируют в качестве пользовательских функций и при
меняются при вычислении формул на рабочем листе.
Глава 1. Знакомство с Excel 59
Перекрестная ссылка
Часть VI этой книги посвящена созданию пользовательских функций с по
мощью VBA.
Надстройки
Надстройка — это программа, подключаемая к Excel и расширяющая возможности
основной программы. Например, в надстройке можно хранить пользовательские функ
ции электронных таблиц. Для подключения надстройки выберите в окне параметров
программы вкладку Надстройки.
К Excel прилагается только несколько надстроек. Можно также приобрести или за
грузить из Интернета большое количество иных надстроек. Одна из них — пакет Power
Utility Рак, созданный автором этой книги и получивший множество наград. Ознакоми
тельную (бесплатную), а также полную (платную) версию пакета можно загрузить с мое
го сайта h t t p : / / s p r e a d s h e e t p a g e . com.
Перекрестная ссылка
В главе 23 вы узнаете, как создавать собственные надстройки, содержащие
дополнительные функции рабочего листа.
Средства Интернета
Excel содержит множество функций, связанных с Интернетом. К примеру, можно сохра
нить рабочий лист или вообще всю книгу в формате HTML, доступном для браузеров. Можно
также вставлять в ячейки рабочего листа гиперссылки, включая электронные адреса.
60 Часть I. Основные сведения
Средства анализа
В Excel встроены мощные средства анализа данных. Большинство пользователей при
меняют электронные таблицы именно с целью анализа. С помощью формул решаются мно
гие задачи. В то же время в арсенале Excel имеется целый ряд других средств, предназна
ченных для проведения анализа. Об этих средствах речь пойдет в следующих разделах.
Перекрестная ссылка
В главе 9 приведена дополнительная информация о списках и базах данных
рабочего листа.
Excel может автоматически вставлять (а также удалять) формулы промежуточных
итогов в таблицах, настроенных как база данных. Кроме того, Excel автоматически фор
мирует структуру данных, чтобы вы могли видеть только промежуточные итоги на нуж
ном уровне детализации.
Структура таблицы
Режим структуры таблиц особенно удобен при работе с иерархически упорядочен
ными данными, например бюджетными сведениями. Excel может создать подходящую
структуру автоматически, исходя из формул таблицы (для этого используется команда
Глава 1. Знакомство с Excel 61
Рис. 1.12. Функция фильтрации облегчает просмотр записей, которые удовлетворяют задан
ному критерию
Управление сценариями
Управление сценариями — это процесс сохранения входных величин, которые со
ставляют определенную модель. Например, вы подготовили прогноз сбыта продукции.
Этот прогноз может включать сценарии наиболее благоприятного, наименее благопри
ятного и наиболее вероятного сценариев развития событий.
Наиболее эффективно управление сценариями осуществляет диспетчер сценариев.
Учитывайте, что Excel может решать только самые простые задачи управления сцена
62 Часть I. Основные сведения
риями. Тем не менее использовать функцию управления сценариями Excel гораздо удоб
нее, чем пытаться согласовать несколько сценариев вручную.
Сводные таблицы
Сводные таблицы — довольно мощное инструментальное средство Excel. Они позво
ляют отображать сводные данные в любой форме. Данные для сводной таблицы можно
взять из табличной или внешней базы данных и хранить в специальном кеше. В резуль
тате программа быстро пересчитает данные в случае изменения сводной таблицы.
Перекрестная ссылка
Глава 18 содержит дополнительную информацию о сводных таблицах.
Перекрестная ссылка
Более полная информация о функциях проверки данных программы Excel
содержится в главе 21.
Средства защиты
В Excel существует несколько средств защиты данных. Например, можно защитить
формулы от перезаписи или изменения, защитить структуру рабочей книги, а также за
щитить код VBA.
Примечание
По умолчанию все ячейки являются заблокированными. Однако блокировка
и разблокировка ячеек бессмысленна, если не защищен рабочий лист.
Когда вы защищаете рабочий лист, диалоговое окно Защита листа (рис. 1.14) позво
ляет выбрать и те элементы, которые не должны защищаться. Например, можно разре
шить пользователям сортировать данные или использовать автофильтр при работе с за
щищенным листом (в предыдущих версиях программы это было невозможно).
Предупреждение
© Не забывайте о том, что функции защиты Excel несовершенны. Даже если
установлен пароль, защитить компоненты книги удастся только от рядовых
пользователей. Тот, кто действительно заинтересован в том, чтобы взло
мать защиту вашей книги, скорее всего, добьется желаемого результата
с помощью существующих программ взлома паролей.
Рис. 1.15. Диалоговое окно За Рис. 1.16. В диалоговом окне Шифро
щита структуры и окон вание документа рабочую книгу можно
защитить паролем
Глава
Знакомство
с формулами
В этой главе...
♦ Ввод и редактирование формул
♦ Использование операторов в формулах
♦ Порядок вычисления формул
♦ Ссылки на ячейки и диапазоны ячеек
♦ Создание точной копии формулы
♦ Преобразование формул в значения
♦ Сокрытие формул
♦ Ошибки в формулах
♦ Работа с циклическими ссылками
♦ Функция подбора параметра
Эта глава является своего рода введением в такую обширную тему, как использова
ние формул в Excel. Несмотря на то что изложенная информация в первую очередь адре
сована начинающим пользователям Excel, некоторые сведения могут оказаться полез
ными даже опытным пользователям.
Элементы формул
Формула, вводимая в ячейку, может состоять из пяти типов элементов.
• Операторы. Символы, такие как “+” (сложение) и (умножение).
• С сы лки на ячейки. В эту категорию входят именованные ячейки и диапазоны,
относящиеся к текущему рабочему листу, ячейкам другого листа текущей книги и
даже ячейкам листа другой рабочей книги.
• Значения и текстовы е строки. Например, 7 , 5 или " Р е з у л ь т а т ы н а к о н е ц
года".
• Ф ункции и аргументы функций. К этой категории относятся такие функции, как
СУММ, СРЗНАЧ и др., а также их аргументы.
• Скобки. Задают порядок выполнения операций в формуле.
Ввод формул
Когда вы вводите в пустую ячейку знак равенства, программа воспринимает следующую
за этим знаком запись как формулу. В Excel формулы всегда начинаются со знака равенства.
В начале формулы допускается также использование знаков “плюс” и “минус”. Однако Excel
автоматически вставит знак равенства, как только вы закончите вводить формулу.
Excel также воспринимает символы, привычные для пользователей Lotus 1-2-3
(например, “собачка” — @). Этот символ может открывать формулу, которая начинается
с функции. Например, программа распознает обе приведенные ниже формулы:
=СУММ(А 1 :А2 0 0)
@СУММ(А 1 :А2 0 0)
Однако после ввода второй формулы программа автоматически заменит символ @ на
знак равенства. Ввести формулу в ячейку можно двумя способами: вручную или указав
ссылки на ячейки. Оба метода описаны в следующих разделах.
Примечание
Исключение составляют формулы массивов. По окончании ввода формул
массива следует нажать комбинацию клавиш <Ctrl+Shift+Enter>. О формулах
массивов речь пойдет в части IV.
После нажатия клавиши <Enter> в ячейке будет отображаться результат выполнения
формулы. Сама же формула будет отображена в строке формул, когда активизирована
соответствующая ячейка.
Вставка имен
В главе 3 речь пойдет о том, как присвоить имя ячейке или диапазону. Например,
чтобы присвоить имя ячейке, щелкните на ней правой кнопкой мыши и выберите коман
ду Присвоить имя. Если в формуле используются именованные ячейки или диапазоны,
то можно задать имя вместо адреса. Имя следует выбрать из списка, тогда программа
автоматически вставит его в формулу.
Для вставки имени в формулу поместите курсор в то место формулы, в котором
должно находиться имя, а затем воспользуйтесь любым из следующих методов.
• Нажмите клавишу <F3>, чтобы открыть диалоговое окно вставки имени. Выбери
те имя из списка и щелкните на ОК.
• Выберите команду Формулы^Определенные именам Использовать в формуле.
В открывшемся списке имен выберите нужное имя, и оно будет вставлено в формулу.
• Воспользуйтесь преимуществами функции автозавершения. При вводе очередной
буквы во время ввода формулы программа Excel отображает список подходящих
вариантов имен и функций. С помощью клавиши <i> выберите нужное имя, а за
тем нажмите <ТаЬ>, чтобы вставить имя в формулу.
ние данных и при этом не влияют на результат формулы. Для того чтобы задать разрыв
строки, нажмите комбинацию клавиш <Alt+Enter>. На рис. 2.1 показана формула, в ко
торой использованы пробелы и разрывы строк.
Совет
Чтобы в строке формулы отображалось несколько строк, перетащите ее
нижнюю границу вниз.
Перекрестная ссылка
О том, как создавать пользовательские функции, читайте в части VI.
Примеры формул
Следуя представленным выше инструкциям, вы сможете создать разнообразные фор
мулы. В этом разделе будет приведено несколько примеров формул.
Компакт-диск
Все примеры этой главы содержатся в файле c h a p t e r 2 _ R U S . x s l x на при
лагаемом компакт-диске.
• Следующая формула используется для умножения чисел 15 0 и 0 , 0 1 . Результат
вычисления— 1 , 5 . В этой формуле были использованы только константы, по
этому особой ценности она не имеет (вместо формулы можно было просто ввести
значение 1 , 5).
=150*,01
• С помощью следующей формулы складываются значения ячеек А1 и А 2:
=А1+А2
• Следующая формула предназначена для вычитания значения ячейки с именем
Р асх о д ы из значения ячейки с именем Доходы:
=Доходы-Расходы
Глава 2. Знакомство с формулами 69
Редактирование формул
Если необходимо внести изменения в рабочий лист, вам, возможно, придется редак
тировать формулы. Если же формула возвращает одно из значений ошибки (описанных
далее), то ее необходимо исправить. Отредактировать формулу можно так же, как и зна
чение любой другой ячейки.
Режим редактирования ячейки активизируется несколькими способами.
• Дважды щелкните на ячейке. Это позволит внести изменения непосредственно
в ячейке. Данный способ работает только в том случае, если во вкладке Дополни
тельно диалогового окна параметров программы установлен флажок Разрешить
редактирование в ячейках.
• Щелкните на ячейке и нажмите клавишу <F2>. В результате вы сможете ре
дактировать содержимое непосредственно в ячейке. Если же флажок Разрешить
редактирование в ячейках снят, редактирование будет осуществляться в строке
формул.
• Выделите ячейку с формулой, подлежащей редактированию, и щелкните мы
шью в строке формул. После этого приступайте к редактированию в строке формул.
В режиме редактирования формулы можно выделить несколько символов, проведя по
ним указатель мыши. То же можно сделать, нажимая клавиши стрелок при нажатой клави
ше <Shift>. Если нужно выделить фрагмент формулы от положения курсора до начала или
конца текущей строки, нажмите, соответственно, клавиши <Shift+Home> или <Shift+End>.
Совет
Предположим, в длинной формуле присутствует ошибка. Программа не по
зволит работать с данной формулой. Не сможете вы также перейти к другой
ячейке, потому что при каждой попытке выйти из ячейки будет появляться
диалоговое окно с сообщением об ошибке. В таком случае рекомендуется
преобразовать формулу в текст и вернуться к ней позже. Для того чтобы
преобразовать формулу в текст, просто удалите знак равенства (=). Когда вы
захотите разобраться с этой формулой, снова вставьте знак равенства,
и содержимое ячейки будет автоматически преобразовано в формулу.
70 Часть I. Основные сведения
Операторы ссылки
Excel поддерживает еще один класс операторов — так называемые операторы ссыл
ки. Операторы ссылки, перечисленные в табл. 2.2, используются в ссылках на ячейки.
• Последняя формула возвращает значение ИСТИНА только в том случае, если обе
ячейки — А1 и А2 — содержат значения, меньшие 100.
= И (А 1<100;А 2 < 1 0 0 )
Приоритет операторов
В формулах можно (и рекомендуется) использовать скобки, чтобы контролировать
порядок выполнения вычислений. В качестве примера рассмотрим следующую формулу,
которая содержит ссылки на именованные ячейки:
=Доход-Расход*Налог
Эта формула предназначена для того, чтобы вычесть значение расходов из значения
доходов и затем умножить результат на величину налоговой ставки. Если вы введете
формулу в том виде, в котором она приведена выше, Excel выдаст некорректный резуль
тат. Программа умножит расходы на процентную ставку, а результат вычтет из дохода.
Правильный результат вернет формула, записанная следующим образом:
= (Доход-Расход)*Налог
Для того чтобы понять принцип, в соответствии с которым следует расставлять скоб
ки, необходимо ознакомиться понятием приоритетов. Приоритет операторов — это на
бор правил, определяющих последовательность выполнения операций. Изучив табл. 2.3,
вы узнаете, какой приоритет имеет каждый из операторов Excel. Чем выше в табл. 2.3
приведен оператор, тем выше его приоритет. К примеру, умножение выполняется рань
ше вычитания.
Вложенные скобки
Скобки в формулах можно вкладывать, т.е. помещать внутрь других скобок. Если
в формуле используются вложенные скобки, Excel вычислит сначала выражение, нахо
дящееся внутри скобок с наибольшей глубиной вложения. Ниже приведен пример фор
мулы со вложенными скобками.
= ( ( В 2 * С 2 ) + ( В З * С З ) + ( В 4 * С 4 ) ) *В6
В этой формуле четыре пары скобок, три из которых вложены в четвертую. Про
грамма вычисляет значения выражений, находящихся во вложенных скобках, суммирует
эти значения, а затем умножает результат на значение ячейки Вб.
74 Часть I. Основные сведения
Скобки в формулах рекомендуется' использовать даже в том случае, когда нет необ
ходимости изменять порядок вычислений, определяемый приоритетами операторов.
Скобки разъясняют порядок выполнения операций, делая формулу более понятной. На
пример, если нужно прибавить единицу к результату умножения значений двух ячеек,
следующая формула, конечно же, справится с задачей:
=А1*А2+1
Однако порядок выполнения действий в следующем варианте записи формулы
(с лишними скобками) будет более очевиден:
= (А1*А2)+1
Совет
© Каждая открывающая (левая) скобка, естественно, должна иметь парную ей
закрывающую (правую) скобку. Если в формуле присутствует несколько
скобок разной глубины вложения, контролировать пары скобок нелегко.
К счастью, Excel поможет проследить за скобками в формулах. Соответст
вующие друг другу скобки выделяются одинаковым цветом. Правда, если
существует множество пар вложенных скобок, различие в цветах будет
сложно проследить. Кроме того, если над некоторой скобкой в формуле по
местить указатель мыши, Excel на мгновение выделяет ее и соответствую
щую ей парную скобку полужирным начертанием. Этот эффект длится
меньше секунды, так что будьте внимательны.
Если в формуле имеются непарные скобки, Excel в некоторых случаях может пред
ложить варианты исправления ошибки. На экране иногда даже появляется функция ав
томатического исправления ошибок в формулах (рис. 2.2).
Ф Предупреждение
Внимательно проверяйте предлагаемую в диалоговом окне коррекцию форму
лы. Во многих случаях предлагаемая формула, несмотря на свою синтаксиче
скую корректность, может оказаться логически некорректной. В примере, ис
пользованном для получения рис. 2.2, в формуле была пропущена закрывающая
скобка после имени диапазона квартал1. На рис. 2.2 программа предложила
следующее исправление формулы: =сумм(квартал 1 / сумм(г о д ) ). Совершен
но очевидно, что корректной формулой вычисления доли доходов в первом
квартале в доходах за год является следующая:
=СУММ(квартал!)/СУММ(год)
Глава 2. Знакомство с формулами 75
Предупреждение
Режим вычисления Excel относится не только к тому рабочему листу, при работе
с которым был применен, — изменение режима отражается на всех открытых
рабочих книгах, а не только на активной. Исходным режимом вычисления стано
вится тот режим, который сохранен в первой открытой вами рабочей книге.
Если система R1C1 окончательно вас заОутала, вы не одиноки. Тип ссылок R1C1
удобно использовать при работе с абсолютными ссылками, чего нельзя сказать об от
носительных.
Числа в скобках означают относительное расположение ссылок. К примеру,
R [ - 5 ] с [ - з ] указывает на то, что ячейка находится на пять строк выше и на три столбца
левее. Соответственно, R [ 5 ] c [ 3 ] ссылается на ячейку, расположенную на пять строк
ниже и на три столбца правее. Если опустить какую-либо из скобок, запись будет озна
чать ячейку в том же столбце или строке. Например, R [ 5 ] с указывает на ячейку, распо
ложенную на пять строк ниже в том же столбце.
Вполне возможно, что вы не будете использовать R1C1 в качестве основной системы
представления ячеек. Однако эта система имеет, по крайней мере, одно преимущество:
BR1C1 очень легко обнаружить формулу с ошибкой. При копировании формула в R1C1
остается неизменной независимо от типа ссылок (относительная, абсолютная или сме
шанная). Поэтому советуем включить режим R1C1 для проверки скопированных формул.
Если одна из формул отличается от остальных, она, возможно, содержит ошибку.
Можно воспользоваться функцией фоновой проверки формул, которая помечает по
тенциально некорректные формулы. О фоновой проверке формул речь пойдет в главе 21.
Предупреждение
© При работе с внешними ссылками могут возникнуть неожиданные трудно
сти. Например, если применить команду Файл^Сохранить как для того, что
бы создать резервную копию книги-источника, связанные формулы автома
тически изменятся, и ссылка будет указывать на новый файл (не тот, кото-
Глава 2. Знакомство с формулами 79
Этот прием особенно эффективен в тех случаях, когда формулы используются для
преобразования ячеек. Предположим, в столбце А содержитоя список имен в верхнем ре
гистре, а вы хотите, чтобы эти имена были записаны в нижнем регистре. Для этого необ
ходимо создать формулы в отдельном столбце, затем преобразовать эти формулы в зна
чения и заменить ими исходные значения столбца А. Чтобы достичь поставленной цели,
выполните следующее.
1. Вставьте новый столбец после столбца А.
2. В ячейку В1 поместите следующую формулу:
=ПРОПИСН(А 1 )
Глава 2. Знакомство с формулами 81
Сокрытие формул
В некоторых случаях может возникнуть необходимость скрыть формулы (например,
чтобы никто не увидел специально разработанную вами формулу, использование кото
рой приносит вашей компании прибыль). Скрыть формулы можно с помощью диалого
вого окна Формат ячеек.
82 Часть I. Основные сведения
Для того чтобы сделать невозможным просмотр одной или нескольких формул, сле
дуйте приведенной ниже инструкции.
1. Выделите формулу или формулы.
2. Щелкните правой кнопкой и выберите в контекстном меню команду Формат
ячеек (или нажмите <Ctrl+l>).
3. В открывшемся диалоговом окне перейдите во вкладку Защита.
4. Установите флажок Скрыть формулы (рис. 2.6).
5. Во вкладке Рецензирование ленты выберите команду Защитить лист.
Чтобы гарантировать прочность защиты, не забудьте в открывшемся диалоговом окне
установить пароль; в противном случае снять защиту сможет любой пользователь.
По умолчанию все ячейки заблокированы. Если лист защищен, никто не сможет из
менить блокировку ячейки. Следовательно, перед тем, как защитить лист, вы должны
будете разблокировать ячейки, предназначенные для ввода информации пользователями.
Предупреж дение
Вы должны знать о том, что существуют программы взлома паролей рабочих
листов Excel. Следовательно, метод сокрытия формул не может гарантиро
вать того, что защищенные формулы не увидит абсолютно никто.
Ошибки в формулах
Нередко программа обнаруживает ошибку во вводимых формулах. В табл. 2.4. пере
числены типичные ошибки, которые могут появиться в ячейке, содержащей формулу.
Формулы могут возвращать значения ошибки и в том случае, если в ячейке, ссылку
на которую содержит эта формула, присутствует значение ошибки. Это так называемый
эффект домино: одна-единственная ячейка, содержащая ошибку, может повлиять на
другие ячейки, в которых расположены зависимые от нее формулы.
Примечание
Если ячейка заполняется символами “решеток” (##########), то это, как
правило, означает, что ширина столбца не позволяет разместить значение.
В этом случае можно увеличить ширину столбца или изменить цифровой
формат ячейки. Символы “решетки” появляются в ячейке и в том случае, ко
гда формула, находящаяся в ней, возвращает ошибочное время или дату.
Иногда радом с формулой, содержащей ошибку, отображается смарт-тег. Щелкнув на
нем, можно узнать, какая ошибка была допущена, и на каком этапе вычислений она поя
вилась. Подробную информацию о смарт-тегах вы найдете в главе 21.
Циклическая ссылка появляется в случае, если формула содержит прямую или кос
венную ссылку на собственное значение. Например, если в ячейку АЗ ввести значение
84 Часть I. Основные сведения
=А1, в ячейку ВЗ значение =АЗ, а в ячейку А1 значение =ВЗ, то будет создана цикличе
ская ссылка, поскольку формулы образуют своеобразное кольцо, в котором каждая фор
мула зависит от предыдущей. Каждый раз, когда вычисляется значение для АЗ, оно
влияет на формулу для ВЗ, что, в свою очередь, влияет на формулу для А1. Значение А1
повлияет на значение АЗ, и круг замкнется. Таким образом, вычисление будет происхо
дить бесконечно долго, и формула никогда не сможет вернуть окончательный результат.
Если ввести формулу, содержащую циклическую ссылку, и нажать клавишу <Enter>,
чтобы зафиксировать формулу, Excel отобразит диалоговое окно с двумя кнопками: ОК
и Отмена (см. рис. 2.7).
Чтобы исправить циклическую ссылку, щелкните на кнопке ОК. После этого Excel
вставит на рабочий лист стрелки трассировки и откроет статью справки по циклическим
ссылкам. В строке состояния будет отображено Циклические ссылки:АЗ. Чтобы разре
шить проблему циклической ссылки, выберите команду Формулы^Зависимости фор-
мул^Проверка наличия ошибок1^ Циклические ссылки и вы увидите список ячеек,
“вовлеченных” в циклические ссылки. Щелкните на каждой из ячеек и попытайтесь най
ти ошибку. Если не можете определить, является ли данная ячейка причиной цикличе
ской ссылки, перейдите к следующей ячейке в этом подменю. Продолжайте проверку
ячеек, пока в строке состояния не исчезнет сообщение Циклические ссылки.
Перекрестная ссылка
В редких случаях циклические ссылки вводятся преднамеренно. Некоторые
примеры использования циклических ссылок приведены в главе 16.
Совет
Вместо последовательного перехода по ячейкам в подменю Циклические
ссылки, щелкайте на стрелках трассировки, чтобы быстро переходить между
ячейками.
Если не отреагировать на замечание программы о появлении циклической ссылки
и щелкнуть на кнопке Отмена, Excel позволит зафиксировать формулу. В строке со
стояния будет присутствовать сообщение, напоминающее о существовании циклической
ссылки. Если после этого начать работу в другом рабочем листе или книге, в напомина
нии будет отсутствовать ссылка на ячейку.
Предупреждение
Если во вкладке Формулы окна параметров Excel установлен флажок Вклю
чить итеративные вычисления, Excel не оповещает пользователя о появле
нии циклической ссылки. Когда этот флажок установлен, Excel выполняет
циклические вычисления столько раз, сколько задано в поле Предельное
число итераций, или же пока изменение значения поля не станет меньше,
чем о, 001 (или любого другого значения, указанного в поле Относительная
погрешность). Рекомендую не устанавливать флажок Включить итеративные
вычисления. Тогда программа будет предупреждать вас о появлении цикли
ческих ссылок. Ведь чаще всего существование циклической ссылки свиде
тельствует об ошибке, которую необходимо исправить.
Как правило, причина циклической ссылки бывает очевидна — это ссылка ячейки са
мой на себя; исправить такую ошибку достаточно легко. Для такого типа циклической
ссылки Excel не отображает стрелки трассировки. Но иногда вы будете сталкиваться
Глава 2. Знакомство с формулами 85
Excel практически мгновенно сообщит о том, что решение найдено, и откроет окно
Результат подбора параметра. В этом окне вы увидите подбираемое и текущее значе
ния. В данном примере программа нашла точное значение. Оно автоматически помеще
но в ячейку В4 (2 5 0 1 8 7 4 , 2 2 р .) . В результате получается желаемая оплата 12 ты
сяч рублей в месяц. Диалоговое окно Результат подбора параметра предоставляет
следующие варианты выбора:
• щелкните на кнопке О К, чтобы заменить исходное значение найденным;
• щелкните на кнопке Отмена, и ваша таблица вернется к своему исходному состоя
нию, в котором она находилась до использования функции подбора параметра.
Имена
В этой главе...
♦ Что такое имя
♦ Область действия имен
♦ Диспетчер имен
♦ Способы присвоения имен ячейкам и диапазонам
♦ Создание многолистовых имен
♦ Работа с именами диапазонов и ячеек
♦ Поддержка имен ячеек и диапазонов
♦ Потенциальные проблемы с именами
♦ Ключ к пониманию термина “имя”
♦ Решение сложных задач с помощью формул
Ссылки на имена
Ссылки на имена уровня книги позволяют применять их на любом листе книги.
Ссылки на имена уровня листа должны предваряться именем соответствующего листа,
если, конечно, используются на листе, отличном от того, на котором определены.
Глава 3. Имена 91
Совет
Если имя листа содержит пробел, заключите его в одинарные кавычки при об
ращении к имени, определенном на нем, например = 1мой Л и с т 1 шоеимя.
В общем случае рекомендуется задавать именам как можно более узкую область дей
ствия. Если имя используется только на одном листе, ограничьте его область действия
только этим листом. Если же имя используется на многих листах рабочей книги, более
подходящей будет область действия уровня книги.
Примечание
В поле Имя отображаются только имена уровня текущего рабочего листа. Ана
логично, только имена уровня текущего рабочего листа отображаются в спи
ске команды Формулы«=>Определенные именам Использовать в формуле.
Конфликты имен
Использование имен уровня листа может быть несколько запутанным, поскольку Ex
cel разрешает на листах создавать те же имена, которые уже определены на уровне кни
92 Часть I. Основные сведения
ги. В этом случае имена уровня листа имеют приоритет, но тодько в пределах листа, на
котором определены.
К примеру, можно определить имя И т о г уровня книги для некоторой ячейки листа
Л и с т 1 . Одновременно можно определить имя уровня листа Л и с т 2 ! И т о г . Когда акти
вен лист Л и с т 2 , идентификатор И т о г будет ссылаться на имя уровня листа. Когда же
активен какой-либо другой лист, И т о г будет ссылаться на имя уровня книги. Запутанно,
не правда ли? Для облегчения жизни рекомендуется избегать использования одних и тех
же имен на уровнях книги и листа.
Один из способов устранения такой путаницы основан на соглашениях об именова
нии. Само имя должно содержать информацию о том, на каком уровне оно определе
но. К примеру, во всех именах уровня рабочей книги можно использовать префикс рк,
а в именах уровня рабочего листа — р л . Используя это соглашение, вы никогда не
спутаете имена р л И т о г и р к И т о г .
Диспетчер имен
Теперь, когда вы поняли концепцию области действия имен, можно приступить к их
созданию и применению. Excel предлагает удобный способ управления именами — дис
петчер имен (рис. 3.1).
Создание имен
Диспетчер имен содержит кнопку Создать, при
щелчке на которой открывается диалоговое окно, по
казанное на рис. 3.2.
В диалоговом окне создания имени можно задать
имя, область действия и диапазон, на который ссыла
ется имя. При желании можно сопроводить имя ком
ментарием, который поможет впоследствии понять
назначение имени. Поле Диапазон позволяет вы
брать ячейки с помощью мыши или ввести диапазон
вручную, аналогично тому, как это выполняется в Рис. 3.2. Диалоговое окно создания
строке формул. имени
Редактирование имен
При щелчке на кнопке Изменить откроется диалоговое окно Изменение имени,
внешне идентичное окну Создание имени. В этом окне можно изменить любое свойст
во имени, за исключением области действия. При изменении имени диапазона все фор
мулы рабочей книги, на него ссылающиеся, будут автоматически обновлены.
Совет
Для изменения области действия имя нужно вначале удалить, а затем вос
создать. Если при этом точно ввести то же имя, все формулы, его исполь
зующие, останутся работоспособными.
Диалоговое окно Изменение имени является не единственным местом редактирова
ния имен. Если единственное свойство, которое нужно изменить, — диапазон, то можно
сделать это непосредственно в главном окне диспетчера имен. В нижней части диалого
вого окна находится поле Диапазон. Выберите в списке нужное имя и измените ссылку
в поле Диапазон.
Совет
При редактировании содержимого поля Диапазон вручную в строке состоя
ния отображается слово Укажите. Если попытаетесь использовать при ре
дактировании этого поля клавиши навигации, такие как стрелки, клавиши
<Н оте> или <End>, то увидите, что перемещаетесь по рабочему листу, а не
редактируете поле. Для переключения из режима указания в режим редак
тирования нужно нажать клавишу <F2>, в результате чего в строке состоя
ния будет отображаться слово Правка.
Удаление имен
Щелчок на кнопке Удалить удаляет выделенное имя из рабочей книги. Естественно,
Excel предупредит вас о том, что данную операцию нельзя будет отменить. К сожале
нию, программа недостаточно услужлива, чтобы заменить все ссылки на удаленное имя
соответствующими диапазонами ячеек. В результате все формулы, использующие уда
ленное имя, будут отображать ошибку #ИМЯ?.
94 Часть I. Основные сведения
Примечание
Количество имен ячеек и диапазонов не ограничено. Excel позволяет при
сваивать одному и тому же элементу сразу несколько имен, однако делать
этого не следует. Если выделенная ячейка или диапазон имеет несколько
имен, в поле Имя всегда будет появляться первое из них по алфавиту.
Глава 3. Имена 95
Имя можно присвоить и несмежному диапазону ячеек. Выделить все ячейки и диапа
зоны несмежного диапазона можно с помощью мыши, удерживая клавишу <Ctrl>.
jm b Предупреждение
« ы Создавая имя в поле Имя, не забудьте нажать <Enter>. Если ввести имя, а
затем щелкнуть в области рабочего листа, новое имя не будет создано.
Поле Имя выполняет еще одну функцию. С его помощью можно быстро выделить
именованную ячейку или диапазон, как показано на рис. 3.3. Для этого щелкните в поле
Имя и выберите нужное имя в списке. Будет выделена соответствующая ячейка или диа
пазон. Как ни странно, для активизации поля Имя не предусмотрена комбинация кла
виш. Иными словами, вы не получите доступ к этому полю с помощью клавиатуры; сде
лать это можно, только используя мышь. После щелчка в поле Имя для указания имени
достаточно использовать клавиши со стрелками и <Enter>.
Совет
Имена, созданные в поле Имя, по умолчанию имеют область действия уров-
ня рабочей книги. Для того чтобы создать имя уровня рабочего листа, пред
варите его именем рабочего листа и восклицательным знаком (например,
Л и с т 2 ' И т о г ) . Так как поле Имя работает только с текущим выделенным
диапазоном, ввод имени листа, отличного от текущего, приведет к ошибке.
в столбце А, можно использовать для создания имен ячеек столбца В. Решить эту задачу
в Excel достаточно просто.
Для того чтобы присвоить имена, используя текст смежных ячеек, выделите данный
текст и ячейки, которым должно быть присвоено имя (это могут быть как отдельные
ячейки, так и диапазоны ячеек). Текст имен должен находиться в смежных ячейках отно
сительно ячеек, которым вы хотите назначить имена. Можно создать несколько выделе
ний. Выберите команду Формулы ^Определенные имена^Создать из выделенного
или нажмите комбинацию клавиш <Ctrl+Shift+F3>. Откроется диалоговое окно Созда
ние имен из выделенного диапазона (рис. 3.5).
Если же вместо текста смежная ячейка содержит значение или формулу, программа не
сможет создать корректное имя. В таком случае Excel просто не создаст никакого имени.
Предупреждение
Внимательно проверяйте имена, автоматически создаваемые программой.
Иногда диалоговое окно Создание имен из выделенного диапазона работает
не совсем логично. На рис. 3.6 показана небольшая таблица с текстом и зна
чениями. Выделите всю таблицу, выберите команду Создать из выделенного
и примите вариант, предложенный программой (флажки в строке выше и в
столбце слева). В результате имя товары будет относиться не к диапазону
А2 : Аб, как вы ожидали, а к диапазону В2 : Сб. Если верхняя левая ячейка выде
ленного диапазона содержит текст и установлены флажки в строке выше и в
столбце слева, Excel использует это имя для всего набора данных, исключая
верхнюю строку и левый столбец. Поэтому, прежде чем принять предложения
программы, убедитесь, что она правильно поняла ваш замысел.
Рис. 3.6. Создание имен на основе данных такой таблицы может привести
к неожиданным результатам
Компакт-диск
Все приводимые в настоящей главе примеры содержатся в файле chap-
t e r 3 _ R U S . x s l x на прилагаемом компакт-диске.
Скрытые имена
Некоторые макросы и надстройки Excel создают скрытые имена. Эти имена присут
ствуют в рабочей книге, но не появляются в диалоговом окне диспетчера имен и в поле
Имя. Надстройка “Поиск решения” , например, создает целый ряд скрытых имен. Как
правило, скрытые имена можно игнорировать, но они могут стать причиной возникно
вения некоторых проблем. Если скопировать лист из одной рабочей книги в другую,
вместе с листом копируются и скрытые имена. При этом скрытые имена могут созда
вать ссылку, которую довольно трудно обнаружить.
К сожалению, в окне диспетчера имен скрытые имена не приводятся. Ниже приве
дена простая процедура на VBA, которая создает список всех скрытых имен активной
рабочей книги. Эта процедура добавляет в книгу новый рабочий лист и помещает в него
список скрытых имен. Не забудьте включить поддержку макросов. Кроме того, если
список не появился, попробуйте удалить инструкцию i f . Возможно, причина в том, что
скрытых имен в данной книге нет.
Sub L i s t H i d d e n N a m e s ()
Dim n As Name, r As Long
W o r k s h e e t s .A d d
r = 1
F or Each n In A c t iv e W o r k b o o k .N a m e s
I f N ot n . V i s i b l e Then
C e l l s ( r , 1) = n.Name
C e l l s ( r , 2) = & n .R e fe r sT o
r = r + 1
End I f
N ext n
End Sub
Глава 3. Имена 99
Примечание
Многолистовые имена не отображаются ни в поле Имя, ни в диалоговом ок
не Переход (это окно отображается при выборе команды Главная^Редак-
тирование^Найти и выделить^Перейти). Иными словами, Excel позволяет
назначать такие имена, но вы не сможете автоматически выделить ячейки, к
которым они относятся. Тем не менее, многолистовые имена отображаются
в списке автозавершения при вводе формул.
Если вставить новый лист в рабочую книгу, в которой используются имена, относя
щиеся к нескольким листам, имена будут распространяться на новый лист только в том
случае, если этот лист находится между первым и последним листом, заданным в опре
делении имени. В предыдущем .примере рабочий лист, вставленный между Л и ст1
и Л и с т 2 , оказывается в диапазоне К убД ан н ы х. Лист, вставленный перед Л и с т 1 или
после Л и с т З , не включается в диапазон.
Если удалить первый или последний лист, включенный в определение имени, Excel
автоматически изменит запись в поле Диапазон. В рассматриваемом нами примере уда
ление Л и с т 1 приведет к следующим изменениям в поле Диапазон имени КубДанны х:
= 1Л ист2 : Л и с т З ' !$А $1:$С $3
Областью действия имен, распространяющихся на множество листов, должна быть
рабочая книга. Если они определены на уровне рабочего листа, то будут функциониро
вать корректно, однако в диалоговом окне диспетчера имен будет отображаться ошибка.
те клавишу <F3>). Откроется диалоговое окно Вставка имени (рис. 3.9), в котором будут
перечислены все заданные имена. Для того чтобы вставить список имен, щелкните на
кнопке Все имена.
ЖЯк, Предупреждение
н В список имен не входят имена уровня рабо
чего листа (кроме имен активного листа),
а также скрытые имена.
Список имен, вставленный в рабочий лист, состоит из
двух столбцов. В первом столбце перечислены имена,
а во втором — адреса соответствующих диапазонов. Ад
реса диапазонов, расположенные во втором столбце спи
ска, представляют собой строки текста, которые напоми Рис. 3.9. Диалоговое окно Встав
ка имени
нают формулы. Преобразовать такую строку в формулу
можно, отредактировав ячейку (нажмите <F2>, а затем
<Enter>). В результате строка становится формулой. Если имя относится к отдельной
ячейке, формула отображает текущее значение этой ячейки. Если же имя относится
к диапазону, формула возвращает ошибку #ЗН А Ч !.
Перекрестная ссылка
Ошибки в формулах, такие как # з н а ч ! и # с с ы л к а ! , рассматриваются
в главе 21.
Когда имя, заданное на уровне рабочего листа, используется в формуле того листа,
в котором оно было задано, имя рабочего листа не следует указывать перед именем диа
пазона. Если такое имя используется в другом листе рабочей книги, необходимо задать
полное имя (имя рабочего листа, восклицательный знак и имя диапазона). Например, ес
ли П р о д а н о Е д и н и ц — имя, заданное на уровне рабочего листа Л и с т 1 , то формула для
вычисления суммы диапазона на любом другом рабочем листе будет выглядеть так:
= С У М М (Л и с т 1 ! П р о д а н о Е д и н и ц )
Ввод знака равенства активизирует функцию автозавершения, как при вводе от
крывающей скобки в функции рабочего листа. При этом под активной ячейкой откры
вается список определенных имен и функций рабочего листа. Для использования
функции автозаполнения вводите имя, пока оно не будет выделено в списке, а затем
нажмите <ТаЬ>, чтобы зафиксировать имя. Можно также использовать клавишу <>1>,
чтобы выбрать имя в списке.
Если в формуле используется несуществующее имя, Excel отобразит ошибку #ИМЯ?,
указывающую на то, что программа не может найти имя, которое вы пытаетесь исполь
зовать. Зачастую причиной такой ошибки является просто опечатка.
102 Часть I. Основные сведения
Используя символ пробела для разделения двух ссылок на диапазоны, вы задаете так
называемое явное пересечение. Это означает, что вы приказываете Excel явно определить
пересечение диапазонов. Программа может находить и неявные пересечения. Неявное
пересечение происходит в том случае, когда Excel выбирает значение из многоячеечного
диапазона, основываясь на строке или столбце формулы, имеющей ссылку. Для того
чтобы разобраться с пересечениями такого типа, рассмотрим конкретный пример. На
рис. 3.11 показана таблица, содержащая именованный диапазон В З : В 8 . В ячейке D5
отображается простая формула, приведенная ниже:
=МоиДанные
Обратите внимание на то, что в ячейке D5 отображено значение из диапазона
МоиДанные, соответствующее строке, в которой расположена формула. Аналогично,
если ввести ту же формулу в строки с 3 по 8, формула вернет соответствующее значение
из диапазона МоиДанные. Excel выполняет неявное пересечение, используя диапазон
МоиДанные и строку, содержащую формулу. Это действие подобно вычислению сле
дующей формулы:
=МоиДанные 5 : 5
Если ввести формулу в строку, не принадлежащую диапазону МоиДанные, то формула
вернет ошибку, поскольку неявное пересечение в таком случае произойти не может.
Глава 3. Имена 103
Совет
Для того чтобы применить новое имя ко
всем формулам рабочего листа, выделите
одну ячейку, перед тем как выполнить ко
манду Применить имена.
Флажок Игнорировать тип ссылки отвечает за то,
как Excel заменяет адрес диапазона именем. Обычно
имя ячейки или диапазона задается как абсолютная
ссылка. Если флажок Игнорировать тип ссылки ус
тановлен, Excel применит имя только в том случае, ес
ли ссылка в формуле полностью соответствует типу
диапазона. В большинстве случаев, когда вы приме
няете имена, удобнее игнорировать тип ссылки.
Если флажок Использовать имена строк и столб- Рис. 3.12. Диалоговое окно Приме-
цов установлен, то при применении имен в формулах нение имен
Excel использует оператор пересечения. Не имея воз
можности использовать точные имена ячеек, Excel для ссылок на ячейки использует
имена строк и столбцов. Для того чтобы объединить имена, Excel использует оператор
пересечения. Щелчком на кнопке Параметры можно задать несколько дополнительных
параметров, но только при условии, что флажок Использовать имена строк и столб
цов установлен.
Иногда это свойство программы очень помогает в работе. Но если вы захотите ис
пользовать адрес ячейки, а не ее имя, это свойство будет только мешать. К сожалению,
отключить данную функцию невозможно. Если вы решили использовать адрес ячейки
или диапазона, введите его вручную (не указывайте элемент таблицы мышью).
Примечание
Описанный выше прием не документирован и может работать не во всех
случаях, так что внимательно проверяйте результат.
Имена с ошибками
Если удалить строку или столбец, содержащий именованный диапазон или ячейку,
само имя как таковое удалено не будет. Вместо этого в имени будет содержаться некор
ректная ссылка. К примеру, если ячейка А1 листа Л и с т 1 имеет имя Д и с к о н т , а вы уда
лили столбец А или строку 1, имя Д и с к о н т будет содержать ссылку = Л и с т 1 ! #ССЫЛ!
(т.е. ошибочную ссылку). Если при этом имя Д и с к о н т используется в какой-либо фор
муле, результатом формулы тоже будет #ССЫЛ!.
Чтобы не было такой ошибки, нужно в диспетчере имен удалить имя. Кроме того,
можно переопределить имя так, чтобы оно указывало на корректную ячейку.
Совет
Диспетчер имен позволяет фильтровать отображаемые имена, используя
предопределенные фильтры. Один из этих фильтров специально предна
значен для отображения только тех имен, которые имеют ошибочные ссыл
ки. Это позволяет быстро локализовать проблемные имена.
Перекрестная ссылка
Дополнительная информация о диаграммах приведена в главе 17.
Если удалить строку или столбец внутри именованного диапазона, этот диапазон изме
нится соответствующим образом. Например, если удалить столбец D, имя М о й Д и а п а з о н
будет относиться к = Л и с т 1 1$С $3 : $D $5.
Если удалить все строки и ячейки, составляющие именованный диапазон, именован
ный диапазон будет продолжать существовать, однако ссылка на него будет содержать
ошибку. Например, удалите столбцы С, D, Е, и имя М о й Д и а п а з о н будет ссылаться на
= Л и с т 1 ! #ССЫЛКА! . Все формулы, в которых использовалось это имя, тоже будут воз
вращать ошибки.
Примечание
Копирование и вставка ячеек из одного рабочего листа в другой не приводит
к копированию имен даже в том случае, когда копируемый диапазон содер
жит именованные ячейки.
Какой можно сделать вывод? Копируя листы рабочей книги, содержащей имена,
будьте очень внимательны. Скопировав лист, проверьте все имена и удалите те, которые
были скопированы случайно.
Именование объектов
Когда вы добавляете на рабочий лист объект, присваиваемое ему по умолчанию имя
отражает ТИП объекта (например, Прямоугольник!.).
Чтобы изменить имя объекта, выделите нужный объект, введите новое имя в поле
Имя и нажмите <Enter>. Исключение составляют диаграммы. В этом случае необходи
мо выделить диаграмму, и в контекстной вкладке Работа с диаграммами^Макет вы
брать команду Свойства.
Поле Имя в Excel имеет некоторые особенности: с его помощью можно переимено
вать объект, однако список объектов в этом окне не отображается. Более того, Excel по
зволяет задавать диапазонам имена, уже присвоенные объектам, при этом несколько
объектов могут иметь одно и то же имя. В диалоговом окне Диспетчер имен имена объ
ектов не отображаются.
Оценивая эту формулу, Excel, прежде всего, анализирует формулу, которая носит имя
С т а в к а (оно существует только в памяти программы, а не в ячейке). Затем Excel умно
жает результат именованной формулы на 1 , 0 5 и возвращает результат. Разумеется,
приведенная выше формула равноценна формуле, в которой вместо имени используется
ссылка на ячейку:
= Л и с т 1 ! $ В $ 1 * 1 , 05
Возникает вопрос: можно ли создать такую именованную формулу, которая бы не со
держала ссылок на ячейки? Ответ на него вы найдете в следующем разделе.
Рис. 3.16. Формально имя Ставка Рис. 3.17. Присвоение имени константе
представляет собой именованную
формулу, а не именованную ячейку
Примечание
Имена, не относящиеся к диапазонам, не отображаются в поле Имя и в диа
логовом окне Переход (которое можно вызвать нажатием клавиши <F5>).
И это логично, поскольку константы отсутствуют в ячейках рабочего листа.
Константы отображаются в диалоговом окне Вставка имени, и это тоже ло
гично, поскольку имена констант используются в формулах.
Как вы, вероятно, догадываетесь, значение константы может быть изменено в любой
момент в диалоговом окне Изменение имени. Все, что нужно сделать, — это изменить
значение в поле Диапазон. После того как диалоговое окно будет закрыто, Excel пересчи
тает все формулы, в которых фигурирует данная константа, на основе нового значения.
Описанный выше прием очень эффективен во многих ситуациях, однако изменение
значения занимает некоторое время. Если константу разместить в ячейке, изменить ее
значение будет значительно легче. Если значение действительно является константой,
изменять его вам не придется.
Перекрестная ссылка
Детально функция т е к с т () рассматривается в главе 5.
Теперь эту формулу можно ввести в ячейку, и она будет возвращать название текуще
го месяца в текстовой форме. В апреле формула будет возвращать текст А п р е л ь .
= И м я М е с я ц а
Рис. 3.20. Создание именованной Рис. 3.21. Формула под именем Ячей-
формулы, в которой используется каСправа изменяется в зависимо
ссылка на диапазон сти от того, какая ячейка активна в
данный момент
Примечание
Именованная формула ЯчейкаСправа не будет работать, если она исполь
зуется в формуле, расположенной в столбце x f d , поскольку в этом случае
формула ссылается на несуществующую ячейку (справа от столбца xfd
столбцов больше нет).
Создав именованную формулу, можно ввести следующую формулу в любую ячейку лю
бого листа, и эта формула будет возвращать сумму десяти ячеек, расположенных справа:
=Сумма1ОЯчеек
Например, если ввести такую формулу в ячейку D12, она будет возвращать сумму
значений диапазона Е12 : N12, состоящего из десяти ячеек.
Глава 3. Имена 115
Примечание
Именованная формула СуммаЮЯчеек не будет работать, если ввести ее
в ячейку, которая располагается в столбце, следующем за столбцом х е т .
В таком случае формула становится ошибочной, поскольку в ней появляется
ссылка на несуществующую ячейку, расположенную за пределами столбца x f d .
Примечание
© Формулу ПерваяВСтроке нельзя использовать в столбце а , поскольку будет
создана циклическая ссылка. Формула в данном случае будет ссылаться са
ма на себя.
Совет
Команду Данные1^Работа с данными^Проверка данных можно использовать
для вставки раскрывающегося списка в ячейку А1б. В поле Тип данных от
крывшегося окна выберите пункт Список, а в поле Источник введите диапа
зон А2 : А 13 . Теперь пользователь сможет выбрать название месяца из спи
ска, а итоговое значение для месяца будет отображаться в ячейке В16.
Используя функцию ДВССЫЛ, можно ссылаться и на имена уровня рабочего листа.
Предположим, что вы работаете с рабочими листами О б л а с т ь 1, О б л а с т ь 2 и т.д. Каж
дый лист содержит имя И т о г и П р о д а ж , заданное на уровне рабочего листа. Следующая
формула извлекает значение из соответствующего рабочего листа, используя имя листа,
заданное в ячейке А1:
=ДВССЫЛ (А1&" !ИтогиПродаж")
Перекрестная ссылка
В части IV подробно описаны массивы и формулы массивов. Однако эта те
ма имеет отношение и к именам.
Задать массив можно с помощью фигурных скобок. Каждый элемент массива отделя
ется запятой или точкой с запятой. Запятая используется для разделения элементов, рас
положенных вертикально, а точка с запятой — для разделения элементов, находящихся
горизонтально.
В диалоговом окне Создание имени можно создать формулу И м е н а М е с я ц е в , ко
торая имеет такое определение:
= { "Я н в 11; " Ф е в " ; "Мар" ; " А п р " ; "М ай" ; "Июн" ; "Июл" ; " А в г " ;
"Сен"; "Окт"; "Ноя"; "Дек"}
Эта формула определяет массив, который состоит из 12 текстовых строк, располо
женных горизонтально.
Примечание
Вводя такую формулу, не забудьте о фигурных скобках. В диалоговое окно
Создание имени формула массива вводится не так, как в ячейку.
Определив формулу И м е н а М е с я ц е в , ее можно использовать в других формулах.
Однако в конечной формуле необходимо обозначить, какой из элементов массива ис
пользуется. Для этого рекомендуется применить функцию ИНДЕКС. К примеру, следую
щая формула возвращает текст " А в г 11:
= И НДЕКС(Им енаМ есяцев; 8 )
Примечание
В формуле предполагается, что диапазон не содержит пустых ячеек. Напри
мер, если ячейка В2 пустая, функция с ч ё т з пропустит ее и в результате
функция счёт вернет неправильный диапазон.
Глава 3. Имена 119
Для того чтобы проверить, как работает эта формула, введите следующую формулу
в любую ячейку, которая не расположена в столбце В:
=СУММ(ОбъемПродаж)
Эта формула вернет сумму значений столбца В. Обратите внимание на то, что О бъем-
Продаж не отображается ни в поле Имя, ни в диалоговом окне Переход. Для того чтобы
выбрать диапазон, откройте диалоговое окно Переход и введите ОбъемПродаж вручную.
Напрашивается вопрос: зачем все эти трудности? Ведь и простая формула, приведен
ная ниже, сделает все, что необходимо:
=СУММ( В : В)
Эффективность работы именованных формул с динамическим размером становится
очевидной при создании диаграмм. С помощью таких формул можно создать диаграмму
с наборами данных, которые автоматически изменяются при вводе новых сведений.
Перекрестная ссылка
Использование таблиц для хранения данных часто устраняет необходимость
создания динамических диапазонов. Таблицы рассматриваются в главе 9.
Часть
Использование функций
в формулах
В этой части...
Глава 4
Знакомство с функциями рабочего листа
Глава 5
Работа с текстом
Глава 6
Дата и время
Глава 7
Способы суммирования и подсчета данных
Глава 8
Поиск данных
Глава 9
Базы данных и таблицы листа
Глава 10
Дополнительные виды вычислений
Глава
Знакомство с функциями
рабочего листа
Вэтой главе...
♦ Что такое функция
♦ Типы аргументов функций
♦ Способы ввода функций в формулу
♦ Категории функций
Упрощение формулы
Иногда использование встроенных функций позволяет существенно упростить формулу.
Предположим, нужно вычислить среднее арифметическое значений десяти ячеек ( А 1 : А10).
Без использования функций вам пришлось бы создать примерно следующую формулу:
= (А1+А2+АЗ+А4+А5+А6+А7+А8+А9+А10) / 1 0
Громоздко, не правда ли? Более того, если впоследствии диапазон суммируемых зна
чений будет увеличен, вам придется редактировать эту формулу. Однако ее можно заме
нить более простой, в которой будет использована одна из встроенных функций рабочего
листа Excel. В приведенной ниже формуле используется функция СРЗНАЧ:
=СРЗНАЧ(А1:А 1 0 )
1. Введите эту формулу в ячейку В1, а затем скопируйте ее в следующие 999 строк.
2. Выделите диапазон В 1 : В 1 0 0 0 и скопируйте его в буфер обмена с помощью ко
манды Копировать вкладки Главная или нажав клавиши <Ctrl+C>.
3. Активизируйте ячейку А1 и преобразуйте формулы в значения, выбрав команду
Главная^ Буфер обмена^Вставить^Вставить значения.
4. Удалите столбец В.
Таким образом, в приведенном примере использование встроенной функции Excel
позволило сэкономить несколько часов драгоценного времени.
Принятие решений
Функции предоставляют формулам возможность принятия решений. Предположим, у
вас есть таблица, предназначенная для вычисления комиссионных с продажи. Если ме
неджер продает товар на сумму, превышающую 100 тысяч долларов, ставка комиссион
Глава 4. Знакомство с функциями рабочего листа 125
Перекрестная ссылка
Создание пользовательских функций на VBA рассматривается в части VI.
Перекрестная ссылка
В приложении А содержится полный список функций Excel с кратким описа
нием каждой из них.
Если функция имеет больше одного аргумента, то все они отделяются друг от друга
точкой с запятой. В функции НАИБОЛЬШИЙ, которая возвращает и-ое по величине значе
ние из множества данных, используются два аргумента. Первый из них задает диапазон
значений, а второй — значение п. Приведенная ниже формула возвращает третье по ве
личине значение ячеек диапазона А 1 : А100:
=НАИБОЛЬШИЙ(А 1 :А10 0 ; 3 )
Примечание
Символы разделителей определяются в окне региональных стандартов Win
dows. Если в этом окне установлен русский формат, разделителем списка
служит точка с запятой, а десятичным разделителем — запятая. Если же ус
тановлен формат США, разделителем списка будет запятая, а десятичным
разделителем — точка. Переключите формат в Windows, и вы увидите, что
символы разделителей в формулах автоматически изменятся. Обязательно
переключите формат обратно, потому что в данной книге предполагается,
что установлен русский формат. Кроме разделителей, установленный фор
мат влияет на отображение дат, времени, денежных значений и т.д.
Если диапазон А 1 : А2 0 имеет имя (например, Продажи), то оно может быть исполь
зовано вместо ссылки на диапазон:
=СУММ(Продажи)
Перекрестная ссылка
За подробной информацией о том, как определять и применять имена, об
ратитесь к главе 3.
выражение, Excel сначала вычисляет значение этого выражения, а затем использует его
в качестве аргумента. Рассмотрим следующий пример:
=КОРЕНЬ( (А1 а 2 ) + ( А2 а 2 ) )
В этой формуле используется функция КОРЕНЬ, единственным аргументом которой
выступает следующее математическое выражение:
(А1Ж2 ) + ( А2 а 2)
Вычисляя значение формулы, Excel сначала вычисляет значение выражения в аргу
менте функции, а затем извлекает квадратный корень из результата вычислений.
Перекрестная ссылка
Подробнее работа с массивами будет описана в части IV.
Рис. 4.1. Когда вы начинаете вводить функцию, Excel отображает список функ
ций, начинающихся с уже введенных символов
Примечание
Вместе с именами функций список автозавершения содержит имена диапа
зонов и ссылки на таблицы (о таблицах см. главу 9).
После нажатия клавиши <Tab> Excel отображает еще одну экранную подсказку
(рис. 4.2), в которой перечисляются аргументы функции. Полужирным шрифтом выде
лен вводимый в настоящее время аргумент. Аргументы, показанные в квадратных скоб
ках, являются необязательными. Обратите внимание, что текст в экранной подсказке со
держит гиперссылки. Гиперссылки отображаются, когда указатель мыши наведен на имя
функции или ее аргументы. Щелчок на гиперссылке приводит к выбору аргумента. Если
окно подсказки мешает вам, можете перетащить его в другое место.
Если при вводе функции пропустить закрывающую скобку, Excel вставит ее автома
тически. Например, если ввести =СУММ (А 1: С12 и нажать <Enter>, программа исправит
ошибку, вставив закрывающую скобку.
130 Часть II. Использование функций в формулах
Совет
После ввода функции Excel преобразует введенные символы в верхний регистр.
Поэтому разумно вводить все функции с помощью символов нижнего регистра.
Если после нажатия клавиши <Enter> программа не преобразует текст в верхний
регистр, это значит, что программа не распознала введенную вами запись как
функцию. Так происходит в том случае, если при вводе функции была допущена
ошибка или данная функция просто недоступна (например, функция определена
только в надстройке, которая в данный момент не установлена). Это может слу
жить одним из способов избежать ошибок при вводе функций.
С то и м о с ть
Д а т а .п р и о б р
Первы й_период
| О с та то ч н а яс то и м о с ть
Период
Значение:
Категории функций
Далее будет представлен список категорий функций с кратким описанием каждой из них.
Перекрестная ссылка
В последующих главах приведены конкретные примеры использования
функций.
Финансовые функции
Финансовые функции позволяют выполнять экономические вычисления, связанные
с расчетом денежных средств. Функция ПЛТ, например, используется для вычисления
величины ежемесячной выплаты по займу. Для вычисления необходимо задать еле-
134 Часть II. Использование функций в формулах
Примечание
Во всех тригонометрических функциях углы измеряются в радианах (а не в
градусах). Для того чтобы преобразовать градусы в радианы, используйте
ФУНКЦИЮ РАДИАНЫ.
Статистические функции
Функции этой категории предназначены для проведения статистического анализа
диапазонов значений. С помощью статистических функций можно вычислить наимень
шее значение набора значений, значение моды множества данных, стандартное отклоне
ние выборки, дисперсию и т.д.
Текстовые функции
Текстовые функции позволяют манипулировать текстовыми строками в формулах.
Функция ПСТР, например, возвращает заданное количество символов из строки текста, на
чиная с указанной позиции. Другие функции позволяют изменить регистр символов текста
(например, преобразовать символы нижнего регистра в символы верхнего регистра).
Глава 4. Знакомство с функциями рабочего листа 135
Логические функции
Данная категория состоит всего из семи функций. Эти функции позволяют проверить
заданное условие и вернуть логическое значение ИСТИНА или ЛОЖЬ. Функция ЕСЛИ
также может оказаться полезной, поскольку она предоставляет формулам возможность
принятия решений.
Информационные функции
Функции этой категории помогают определить тип данных, хранящихся в ячейке.
Например, функция ЕТЕКСТ возвращает ИСТИНА, если значение является текстом.
С помощью функции ЕПУСТО можно узнать, пуста ли ячейка. Функция ЯЧЕЙКА возвра
щает полезную информацию о конкретной ячейке.
Пользовательские функции
К этой категории относятся функции рабочего листа, созданные пользователем с по
мощью VBA. Пользовательские функции выполняются так же, как и встроенные функ
ции Excel. Единственное отличие состоит в том, что описание аргументов этих функций
не отображается в диалоговом окне Мастер функций.
Инженерные функции
Функции этой категории помогут вам при решении инженерных прикладных задач.
Эти функции позволяют работать с компдексными числами, а также выполнять преобра
зование единиц одной системы исчисления или измерения в единицы исчисления или
измерения другой системы.
Аналитические функции
Предназначены для манипулирования значениями, размещенными в кубе данных OLAP.
Функции совместимости
Это устаревшие статистические функции, помещенные в отдельную категорию для
обеспечения совместимости с предыдущими версиями Excel. Полезны в ситуациях, когда
нужно совместно работать с пользователями, на компьютерах которых установлены пре
дыдущие версии.
Перекрестная ссылка
Информацию о том, как записать пользовательскую функцию в одну из кате
горий, можно найти в главе 23.
136 Часть II. Использование функций в формулах
Непостоянные функции
Некоторые функции Excel принадлежат особому классу так называемых непостоян
ных функций. Программа автоматически пересчитывает непостоянную функцию при
пересчете рабочей книги даже в том случае, если формула, в которой эта функция ис
пользуется, не задействована в пересчете.
Одной из непостоянных функций является функция слчис, которая возвращает но
вое случайное число при каждом пересчете рабочего листа. Кроме того, в Excel присут
ствуют следующие непостоянные функции:
двссыл
ИНДЕКС
СМЕЩ
ЯЧЕЙКА
ОБЛАСТИ
СТРОКА
СТОЛБЕЦ
СЕЙЧАС
СЕГОДНЯ
Использование непостоянных функций имеет один побочный эффект: Excel будет
всегда напоминать вам о сохранении рабочей книги перед ее закрытием (даже в том
случае, если вы не вносили никаких изменений). Например, вы открыли рабочую книгу,
в которой используются непостоянные функции, просмотрели ее (ничего при этом не
меняя) и хотите закрыть файл. При этом Excel обязательно спросит, хотите ли вы со
хранить рабочую книгу.
Чтобы отменить появление окна с этим вопросом, используйте режим вычислений
вручную. Для этого откройте вкладку Формулы диалогового окна параметров програм
мы и в разделе Параметры вычислений установите переключатель вручную и снимите
флажок Пересчитывать книгу перед сохранением.
Глава
Работа с текстом
В этой главе...
♦ Несколько слов о самом тексте
♦ Текстовые функции
♦ Расширенные текстовые формулы
Примечание
Возможно, читателю уже приходилось сталкиваться с термином строка, ис
пользующимся в смысле “текст” . В данном контексте эти термины взаимо
заменяемы. Иногда они даже могут встречаться вместе, например в выра
жении текстовая строка. Оба они означают одно и то же — произвольную
последовательность символов.
Примечание
Если включена фоновая проверка ошибок, Excel помечает числа с апостро
фом (и числа, отформатированные как текст) смарт-тегом. Этот смарт-тег
можно использовать для преобразования “текста” в фактическое значение.
Для этого щелкните на смарт-теге и выберите в открывшемся меню пункт
Преобразовать в число. Фоновая проверка включается и отключается в раз
деле Контроль ошибок вкладки Формулы диалогового окна Параметры Excel.
Текстовые функции
Приложение Excel предлагает довольно широкий выбор функций, с помощью кото
рых обрабатывается текст. Большинство из них можно найти в библиотеке функций или
диалоговом окне Мастер функций (чтобы открыть его, выберите команду Формулы1^
Библиотека функцийоТекстовые^Вставить функцию). В категории Текстовые со
Глава 5. Работа с текстом 139
держится большая часть текстовых функций. Некоторые другие функции, которые тоже
могут использоваться при работе с текстом, встречаются в других категориях. Например,
функция е т е к с т находится в категории Проверка свойств и значений.
Перекрестная Ссылка
В приложении А приведен перечень функций, относящихся к категории
тестовых.
Область применения большинства текстовых функций не ограничивается только тек
стом. Другими словами, эти функции могут использоваться и в ячейках, содержащих чи
словые значения. Excel предоставляет прекрасную возможность обрабатывать числа как
текст и, наоборот, текст — как числа.
В этой главе приводятся примеры некоторых широко распространенных операций,
которые можно выполнять с текстом. Возможно, вы захотите взять себе на вооружение
некоторые из приведенных ниже примеров.
Примечание
Ф ункция кодсимв
Функция КОДСИМВ, которая используется в приложении Excel, возвращает код сим
вола, введенного в качестве аргумента функции. Например, формула, приведенная ниже,
возвращает значение 192 — код русского символа А, введенного в верхнем регистре.
=КОДСИМВ( " А " )
В том случае, если аргумент функции КОДСИМВ содержит несколько символов, функ
ция использует только первый символ. Например, следующая формула возвращает зна
чение 196 — код символа Д: 7
=КОДСИМВ("Дорога к Р и м у " )
Функция символ
По своей сути функция СИМВОЛ полностью противоположна функции КОДСИМВ.
Ее аргументом является числовое значение в интервале от 1 до 255, а сама функция воз
вращает символ, соответствующий этому значению. Например, приведенная ниже фор
мула возвращает русский символ А:
=СИМВОЛ( 1 9 2 )
Чтобы продемонстрировать разницу между функциями КОДСИМВ и СИМВОЛ, введите
в ячейку следующую формулу:
=СИМВОЛ(КОДСИМВ( " А " ))
Формула вернет символ А. Этот пример лишь иллюстрирует действие функций, вряд
ли он будет полезен на практике. Сначала введенный символ преобразуется в соответст
Глава 5. Работа с текстом 141
вующее значение кода (192), после чего функция СИМВОЛ возвращает символ А, кото
рый соответствует данному значению.
Теперь предположим, что ячейка А1 содержит символ А (в верхнем регистре). Тогда
следующая формула вернет символ а (в нижнем регистре):
=СИМВОЛ (КОДСИМВ (А1) +32)
В этой формуле используется тот факт, что в кодовой таблице символы расположены
последовательно, в алфавитном порядке, при этом символы нижнего регистра располо
жены после символов верхнего (между прописными и строчными буквами находится не
сколько других символов). Каждая строчная буква русского (равно как и английского)
алфавита размещена ровно на 32 позиции выше своего прописного собрата.
СОВПАД. Приведенная ниже формула возвращает значение ИСТИНА только в том случае,
если ячейки А1 и А2 содержат абсолютно идентичные записи.
=СОВПАД(А1;А2)
Следующая формула возвращает значение ЛОЖЬ, поскольку первая строка содержит
в конце пробел:
=СОВПАД("нуль " ; " н у л ь ")
Примечание
Имейте в виду, что в Excel есть также функция сцепить , которая поддержи
вает до 255 аргументов. Эта функция объединяет свои аргументы в единую
строку. Многие пользователи предпочитают применять именно ее, однако
использование оператора конкатенации (&) значительно проще.
Глава 5. Работа с текстом 143
Примечание
Имейте в виду, что, вопреки ожиданиям, применение числового формата ко
всей ячейке, содержащей формулу, не даст никакого эффекта. Все дело в
том, что используемая формула возвращает строку, а не числовое значение.
Применить формат к содержимому ячейки ВЗ в ячейке А5 можно с помощью функ
ции ТЕКСТ. Для этого нужно ввести в А5 такую формулу:
="Чистая прибыль: "&ТЕКСТ(ВЗ; " # # # # ## # # # , 0 0 " )
Эта формула будет отображать и текст, и само отформатированное числовое значение
следующим образом:
Чистая прибыль: 104 6 1 6 , 5 2 р .
Второй аргумент функции ТЕКСТ содержит стандартное определение числового
формата, используемого в приложении Excel. В качестве этого аргумента можно ввести
любое другое допустимое определение числового формата.
В предыдущем примере мы использовали простую ссылку на ячейку ВЗ. Но это не
единственная возможность. Вместо ссылки на ячейку можно использовать любое выра
жение. Ниже приведен пример, в котором текст объединяется с числом, полученным пу
тем вызова функции СРЗНАЧ.
="Средний р а с х о д : "&ТЕКСТ(СРЗНАЧ(А:А) ; " # , # # 0 , 0 0 р . " )
Эта формула возвращает такую строку:
Средний р а с х о д : 7 794,57р.
144 Часть II. Использование функций в формулах
Перекрестная ссылка
Для получения подробной информации о числовых форматах в Excel обра
титесь к приложению Б.
Перекрестная ссылка
Далее рассматривается еще несколько примеров, в которых продемонст
рирован подсчет числа определенных символов в пределах одной строки.
Кроме того, информацию по этому вопросу можно найти в главе 7, в которой
обсуждаются методы вычисления значений в Excel, и в главе 15, где речь
пойдет о необыкновенных возможностях формул массивов.
Рис. 5.3. Чтобы быстро создать гистограмму на рабочем листе, воспользуйтесь функцией п о в т о р
146 Часть II. Использование функций в формулах
Совет
Средства условного форматирования позволяют создавать простые гисто
граммы непосредственно в ячейках (см. главу 19).
Формулы, содержащиеся в ячейках столбцов Е и G, графически отображают ежеме
сячное изменение бюджета, выводя на экран ряд символов шрифта Wingdings. В этом
примере мы использовали символ п, который в выбранном шрифте отображается как
маленький квадрат. Формула, использующая функцию ПОВТОР, определяет количество
символов, которое должно быть отображено на экране. Формулы для ячеек, формирую
щих диаграмму, имеют следующий вид.
ЕЗ =ЕСЛИ(D3 < 0 ; ПОВТОР("П" ; - ОКРУГЛ(D3 *10 0 ; 0 ) ) ;"")
F3 =АЗ
G3 =ЕСЛИ( D3 >0 ; ПОВТОР( "п"; ОКРУГЛ( D 3 * 1 0 0 ; 0 ) ) ; " " )
Установите для ячеек ЕЗ и G3 шрифт Wingdings, а затем скопируйте формулы, со
держащиеся в этих ячейках, вниз в ячейки столбцов, чтобы распределить данные. Вы
ровняйте текст в столбце Е по правому краю, после чего примените любое другое фор
матирование ячеек. Имейте в виду, что в зависимости от величины числового диапазона
данных может возникнуть необходимость изменить масштаб значений. Поэксперимен
тируйте с перемещением 100 значений в формулах. Выбранный ранее для диаграммы на
рис. 5.3 символ п можно заменить на любой другой.
Компакт-диск
Рабочая книга, представленная на рис. 5.3, содержится на прилагаемом
компакт-диске в файле t e x t h i s t o g r a m . x l s x ( C h a p t e r 0 5 _R US . x l s x ) .
Перекрестная ссылка
Для получения дополнительной информации о создании пользовательских
форматов обратитесь к приложению Б. В нем вы также найдете дополни
тельные примеры использования символа звездочки в отдельных форматах.
Предупреждение
Функция пропнач не всегда приводит к нужному результату, поскольку она
может неправильно трактовать некоторые слова. К примеру, фамилию
Mc Ca rt ne y она изменит на M c c a r t n ey .
прописн для преобразования текстовой строки в верхний регистр. Чаще всего исход
ные данные требуется заменить преобразованными данными. Для этого вставьте пре
образованное значение поверх исходного текста.
1. Создайте формулы, преобразующие исходные данные.
2. Выделите ячейку с формулой.
3. Выберите команду Главная^Буфер обмена^Копировать.
4. Выделите исходную ячейку с формулой.
5. Выберите команду Главная^Буфер обмена^Вставить^Вставить значения.
После выполнения приведенных выше действий формула удаляется, а на ее место
вставляются преобразованные данные.
ние Excel данные содержат знаки звездочки, которые необходимо преобразовать в дру
гие символы. Безусловно, для этого можно воспользоваться диалоговым окном Найти и
заменить (команда Главная^Редактирование^Найти и выделить1^Заменить). Ес
ли же вы хотите решить эту проблему с помощью формул, воспользуйтесь преимущест
вами любой из следующих двух функций.
1. Функция ПОДСТАВИТЬ заменяет в строке определенный текст или символ. Эту
функцию лучше всего использовать, когда известен символ, который необходимо
заменить, а не его расположение.
2. Функция ЗАМЕНИТЬ заменяет символ, расположенный в определенном месте в
пределах строки. Данная функция используется при замене любого текста, если
известно его местоположение. Содержимое самого текста или символа в данном
случае не учитывается.
Ниже приведена формула, в которой используется функция ПОДСТАВИТЬ для замены
значения года 2001 на 2002 в строке Бюджет 2 001. Эта формула возвращает значение
Бюджет 2 0 0 2 .
=ПОДСТАВИТЬ("Бюджет 2 0 0 1 " ; " 2 0 0 1 " ; " 2 0 02 " )
Следующая формула использует функцию ПОДСТАВИТЬ для удаления из строки всех
пробелов. Другими словами, она заменяет все пробелы пустой строкой и возвращает
строку Б е л ы й ш о к о л а д с и з ю м о м .
= ПОДСТАВИТЬ( "Белый шоколад с изюмом";" ";"")
Приведенная далее формула использует функцию ЗАМЕНИТЬ для замены всего одно
го символа, расположенного в пятой позиции, ничего не вставляя вместо него. Иными
словами, она просто удаляет шестой символ (дефис) и возвращает текст Ч а с т ь 5 4 4 .
=ЗАМЕНИТЬ( "Часть - 5 4 4 " ; б ; 1 ; " " )
Безусловно, можно вкладывать эти функции друг в друга, чтобы с помощью одной
формулы выполнить множество замен. Обратите внимание, насколько может быть эф
фективной следующая формула, использующая несколько вложенных функций
ПОДСТАВИТЬ. По большому счету, эта формула заменяет в ячейке А1 каждый из семи
символов, следующих друг за другом: пробел, дефис, двоеточие, звездочку, символ под
черкивания, открывающую круглую скобку и закрывающую круглую скобку.
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(А1;" " ; " " ) ; " - " ; " " ) ; " : " ; " " ) ; "* " ; " " ) ;
к п . м к ^ . п ^ п . п и ^ . п ) и . и п j
Поиск в строке
Найти местонахождение определенного текста или символа в пределах одной строки
в приложении Excel можно с помощью функций НАЙТИ и ПОИСК.
• Функция НАЙТИ обеспечивает поиск текста (подстроки) в пределах текстовой
строки и возвращает исходную позицию этой подстроки. Можно определить по
зицию, с которой следует начать поиск текста. Эту функцию удобно использовать
для сравнения текста с учетом регистра, но она не поддерживает сравнение груп
повых символов.
150 Часть II. Использование функций в формулах
Совет
Чтобы найти символы вопросительного знака или звездочки, введите в
формуле перед этими символами тильду (~).
Компакт-диск
Все примеры, приведенные в этом разделе, можно найти в файле t e x t
e x a m p l e s . x l s x ( C h a p t e r 0 5 _ R U S . x l s x ) на прилагаемом компакт-диске.
Перекрестная ссылка
Обратите внимание, что в данной формуле используются два массива, ука
занные в фигурных скобках. Дополнительную информацию об использова
нии в формулах массивов можно найти в главе 14.
На рис. 5.5 показано, как работает эта формула.
Примечание
Задача становится более сложной, если имена в списке содержат титулы и
звания (например, г - н , проф. ) или сопровождаются некоторыми дополни
тельными подробностями (например, мл. или ш ) . Приведенные ниже
формулы не помогут в таких сложных случаях. Тем не менее они позволяют
существенно продвинуться в решении этой задачи. Вам остается внести
лишь несколько корректировок, чтобы вручную обработать частные случаи.
В приведенных ниже формулах предполагается, что имя и фамилия человека нахо
дятся в ячейке А1. Формула, возвращающая имя человека, выглядит весьма просто:
=ЛЕВСИМВ(А 1 ; НАЙТИ(" " ; А 1 ) - 1 )
Глава 5. Работа с текстом 155
Сложнее ситуация обстоит со списками отчеств людей, так как эта информация мо
жет быть введена не во все ячейки. Данная формула возвращает отчество человека (если
таковое имеется), в противном случае формула не вернет ничего.
=ЕСЛИ(ДЛСТР(А1) -ДЛСТР(ПОДСТАВИТЬ(А1;" " ; " " ) ) >1;
П С Т Р (А 1 ; И С К А Т Ь ( " " ; А 1 ) + 1 ; И С К А ТЬ ( " " ; А 1 ; И С К АТЬ (" ";
А1) + 1 ) - (ИСКАТЬ(" " ; А 1 ) + 1 ) ) ; " " )
И наконец, следующая формула возвращает фамилию:
=ЕСЛИОШИБКА(ПРАВСИМВ ( A I ; LEN (А1) -ИСКАТЬ ( "* " ; ПОДСТАВИТЬ (А1 ;
.. .. . .. *.. . ПРАВСИМВ (А1) -ДЛСТР (ПОДСТАВИТЬ ( А1; " " ; " " ) ) ) ) ) ; " " )
Однако существует формула, которая позволяет более простым способом извлечь из
списка отчества людей. Следующая формула может быть весьма полезна, если изначаль
но использовать две другие формулы для получения имени и фамилии. Необходимо по
местить имя человека в ячейку В1, а фамилию — в ячейку D1.
=ЕСЛИ(ДЛСТР(B1&D1)+ 2 >=ДЛСТР(А1) ;" " ;ПСТР(А1; ДЛСТР(В1)+2;
ДЛСТР(А1)-ДЛСТР(B1&D1)- 2 ) )
Как видно на рис. 5.6, эти формулы работают достаточно хорошо. Тем не менее неко
торые проблемы все же существуют, особенно с именами, которые содержат четыре
слова. Но, как отмечается ниже, такую ситуацию можно исправить вручную.
Перекрестная ссылка
© Для получения более подробной информации о создании приведенных
в этом разделе формул обратитесь к главе 20, в которой рассматриваются
мегаформулы.
Рис. 5.6. На этом рабочем листе используются формулы извлечения имен, отчеств и фа
милий людей, содержащиеся в списке столбца А
зования одного столбца данных в несколько. В общем случае в первом окне мастера
нужно установить переключатель С разделителями и в качестве разделителя во втором
окне выбрать символ пробела.
Перекрестная ссылка
Excel предлагает достаточное количество функций, предназначенных для
работы с текстом. Однако вы можете столкнуться с такой задачей, при ре
шении которой невозможно будет использовать ни одну из существующих
функций. В таком случае вам предоставляется прекрасная возможность
создать собственную функцию для заданного рабочего листа с использова
нием встроенного языка программирования VBA, как описано в главе 25.
Глава
Дата и время
В этой главе...
♦ Принципы управления датами и временем в Excel
♦ Функции управления датами
♦ Функции управления временем
Примечание
Примеры, которые будут использоваться в этой главе, соответствуют фор
мату даты, принятому в русифицированном приложении Excel: д д . м м . г г г г
или д д / м м / г г г г . Например, дата 1.03.1952 или 01/03/1952 означает 1 мар
та 1952 года. Имейте в виду, что это не 3 января 1952 года, как принято в ре
гиональном формате США.
Перекрестная ссылка
Информация, связанная с датами, представлена и в других главах книги.
К примеру, в главе 7 описаны примеры расчета значений ячеек, которым на
значен формат даты, а в главе 25 — некоторые полезные функции управле
ния датами, написанные на VBA.
158 Часть II. Использование функций в формулах
Примечание
Excel 2000 и более поздние версии этого приложения поддерживают даты в
диапазоне от 1 января 1900 года до 31 декабря 9999 года (порядковое число
этой даты 2958465). Диапазон дат, доступный в более ранних версиях при
ложения, значительно меньше. Здесь используются даты с 1 января 1900
года и до 31 декабря 2078 года (порядковое число 65380).
Ввод даты
Конечно, можно вводить дату как порядковое число, но, как правило, дата вводится
с использованием одного из нескольких поддерживаемых в Excel форматов даты. После
ввода даты Excel автоматически преобразует ее в соответствующее порядковое число,
которое в дальнейшем будет использоваться для вычислений. Затем к ячейке применяет
ся заданный по умолчанию формат даты, и на экране отображается более привычный
формат даты, нежели загадочное порядковое число.
Например, если необходимо ввести дату 3 июня 2010 года, то это можно сделать
весьма просто— 3 Июнь, 2 0 1 0 , используя данный формат или любой другой из
имеющихся форматов даты. Excel преобразует введенную информацию и сохранит ее
как числовое значение 3 9 2 5 1 — порядковое число, соответствующее этой дате. После
этого Excel применит формат даты, заданный по умолчанию, поэтому содержимое ячей
ки может быть отображено в представлении, несколько отличном от введенного.
Примечание
В зависимости от установленных региональных параметров операционной
системы, дата, введенная в формате з и ю н ь , 2 0 1 0 , может интерпретиро
ваться как текстовая строка. В таком случае нужно ввести дату, как опреде
лено в окне региональных параметров Windows.
Обратите внимание, что при активизации ячейки, содержащей дату, в строке формул
отображается ее содержимое. Оно будет представлено в заданном по умолчанию форма
те, который соответствует сокращенному виду даты, принятому в системе. Имейте в ви
ду, что строка формул не отображает порядковое число даты. Чтобы отобразить поряд
ковое число даты, примените к ячейке числовой формат.
Совет
Чтобы изменить заданный по умолчанию формат даты, необходимо изме
нить региональные параметры операционной системы. Для этого в систем
ном меню Пуск операционной системы Windows 7 выберите команду Панель
управления^Язык и региональные стандарты и выберите в соответствующих
раскрывающихся списках краткий и полный форматы дат. В Excel по умол
чанию применяется краткий формат даты.
В табл. 6.1 приведены образцы форматов даты, которые поддерживает Excel (исполь
зуемые в региональных параметрах для России и Украины). Однако они могут отличаться,
если в компьютере были установлены параметры другого региона.
160 Часть II. Использование функций в формулах
Рассматривая примеры, приведенные в этой таблице, можно сделать вывод, что Excel
обладает достаточно широкими возможностями преобразования введенных дат, однако
они не вполне совершенны. Например, программа не признает в качестве даты следую
щую введенную информацию:
• 1 июня 2010;
• Июн-1 2010;
• Июн-1/2010.
Эту информацию Excel воспримет как текст. Поэтому прежде чем использовать даты
в формулах, убедитесь, что Excel поддерживает тот формат даты, который собираетесь
ввести. В противном случае формулы, которые обращаются к этим датам, будут работать
некорректно.
Существует еще один недостаток. Если введенная дата находится вне поддерживаемого
диапазона дат, Excel также интерпретирует ее как текст. Если порядковое число, находя
щееся за пределами доступных для даты числовых значений, попытаться привести к фор
мату даты, вместо значения будет отображаться ряд знаков “решетки” (#########).
Поиск даты
В рабочем листе, в котором используется довольно м ного дат, мож ет возникнуть
необходим ость найти определенную дату. Для это го воспользуйтесь д иалоговы м окном
Найти и заменить Excel, которое м ожно открыть, выбрав ком анду Главная^Р ед актиро-
ва н и е ^Н а й ти и вы делить1^ Найти или нажав ком бинацию клавиш <C trl+F>. И мейте в в и
ду, что Excel достаточно требовательна к точности ввода иском ой инф орм ации. Вам
придется ввести полны й четы рехразрядны й го д даты в поле Найти д и а л о го в о го окна
поиска данных. Ф орм ат даты долж ен соответствовать кратком у представлению даты,
принятом у в систем е. Это представление можно увидеть в строке ф ормул.
Ввод времени
Как и в случае с датами, нет необходимости вводить порядковое число времени. Доста
точно ввести в ячейку время в любом из форматов, поддерживаемых в Excel. В табл. 6.3
приведены некоторые примеры записей времени, поддерживаемых в Excel.
Примечание
При использовании системы дат, начинающейся с 1904 года, временные
значения без значения даты отсчитываются от первого января 1904 года.
Все приведенные ниже примеры основываются на системе дат, начинаю
щейся с 1900 года.
Чтобы объединить дату и время, используйте совместный формат даты и времени,
который состоит из формата даты, пробела и формата времени. Например, если в ячейку
ввести текст 18 ию нь, 2010 1 1 :3 0 , приложение Excel вычислит порядковое число
3 9 2 5 1 , 4 7 9 1 6 6 6 6 6 7 и отобразит его в доступном формате даты и времени.
18.06.2010 11:30:00
В некоторых случаях, когда вводится время, превышающее 24 часа, связанная с ним
дата соответственно увеличивается. Например, если ввести в ячейку время 25:00:00, Ex
cel увеличит ту часть, которая относится ко дню (поскольку время превышает 24 часа),
и отобразит введенное значение следующим образом:
0 1 . 01.2000 1 : 00:00
То же самое происходит, если ввести одновременно и дату, и время, превышающее
24 часа. Введенная дата при отображении будет откорректирована. Например, при вводе
в ячейку 0 1 . 0 9 . 2 0 1 0 2 5 : 0 0 : 0 0 на экране отображается следующая информация:
02.09.2010 1:00:00
При вводе только времени без соответствующей даты максимальное время, которое
можно ввести в ячейку равно 9 9 9 9 : 5 9 : 5 9 , т.е. менее 10000 часов. В этом случае Excel
добавляет соответствующее количество дней, и на экране отображается полученная дата.
Если же ввести время, превышающее предел 10000 часов, то оно будет представлено как
простая текстовая строка.
® ^°,вт
При создании формул со ссылками на ячейку, содержимое которой пред
ставляет дату или время, Excel автоматически преобразует результат вы
полнения формул в формат даты или времени. В некоторых случаях это мо
жет быть весьма кстати, в других же создает определенные неудобства
и даже раздражает. К сожалению, Excel не позволяет отключить автомати
ческое форматирование ячейки. Тем не менее в подобных случаях можно
воспользоваться специальной комбинацией клавиш, чтобы отменить фор
матирование всех чисел ячейки и вернуться к формату Общий, заданному по
умолчанию. Для этого достаточно выделить ячейку и нажать комбинацию
клавиш <Ctrl+Shift+~>.
Глава 6. Дата и время 163
Рис. 6.1. Раскрывающийся список числовых форматов используется для задания способа
отображения даты и времени
Совет
Следующий пользовательский формат данных особенно полезен для ото
бражения времени:
[ ч ] :м м :сс
Совет
Если планируете сортировать старые даты, введенные как текст, или хотите
избавиться от проблем с форматами, применяйте даты в формате UTC
(Universal Time Coordinated — универсальное скоординированное время по
Гринвичу). В формате UTC (стандарт ISO 8601) дата записывается так:
г г г г - м м - д д , например, 1 7 7 6 - 0 7 - 2 4 . Это стандартный международный
формат даты и времени, используемый в авиационной и морской навига
ции. Его основное преимущество состоит в том, что он правильно считыва
ется, обрабатывается и сортируется практически в любой системе (в том
числе, в Excel) и при любых параметрах региональных форматов по той при
чине, что в нем все разряды по старшинству расположены слева направо.
Для сравнения: в русском формате даты (например, 2 4 . 7 . 1 7 7 6 ) год (старший
разряд) расположен правее дня (младшего разряда). К сожалению, среди
пользователей формат UTC мало популярен (как в США, так и в России), по
тому что для них он непривычный и по этой причине плохо воспринимается
визуально.
Однако датами, принимаемыми в виде текста, уже нельзя манипулировать как номи
нальными, измеряемыми в единицах времени. Эти даты нельзя сортировать, фильтровать
и форматировать, изменяя числовой формат, как это принято в Excel. Нельзя определить
день недели, на который приходится заданная дата, а также вычислить дату, которая сле
дует семью днями позже.
Перекрестная ссылка
В главе 25 вашему вниманию будет представлено несколько пользовательских
функций VBA, позволяющих работать с датами от 100-го до 9999-го года.
Совет
Чтобы избежать всякого рода неожиданностей при работе с датами, просто
введите год полностью, используя все четыре цифры.
Совет
Чтобы ввести в ячейку штамп даты (значение даты, которое не будет изме
няться каждый последующий день), нажмите клавиши <Ctrl+Shift+; (точка
с запятой)>. Текущая дата будет введена в ячейку в текстовом формате без
использования формулы, поэтому она останется неизменной.
Отображение произвольных да т
Как уже отмечалось, дату можно добавить в ячейку, непосредственно введя ее в лю
бом формате, поддерживаемом в приложении Excel. Дату также можно создать; для это
го воспользуйтесь функцией ДАТА. Эта функция использует три аргумента: год, месяц
и день. Например, приведенная ниже формула возвращает дату, состоящую из года, взя
того из ячейки А1, месяца, взятого из ячейки В1, и дня — из ячейки С1.
=ДАТА(А1;В1;С1)
Примечание
Обратите внимание, что функция дата принимает также недопустимые ар
гументы и приводит результат в соответствие ожидаемому. Например, сле
дующая формула использует число 13 как аргумент месяца и возвращает 1
Январь, 2011. Аргумент месяца автоматически преобразуется в первый
месяц следующего года.
=ДАТА( 2 0 1 0 ; 1 3 ;1)
Предупреждение
Будьте особо внимательны при использовании функции д а т а з н а ч . Тексто
вая строка, которая может быть использована как дата в одной стране, со
вершенно не подходит для ввода даты в другой стране. Предыдущий пример
работает прекрасно в том случае, если система настроена для форматов да
ты России или Украины. Однако при использовании других региональных
форматов даты (в частности, форматов США) формула может возвращать
ошибку, поскольку приложение Excel будет искать восьмой день двадцать
второго месяца.
Создание последовательности да т
В отдельных случаях может возникнуть необходимость вставить в рабочий лист це
лый ряд последовательных дат. Например, при еженедельном отслеживании продаж тре
168 Часть II. Использование функций в формулах
буется ввести несколько последовательных дат с интервалом в семь дней. Эти даты бу
дут служить основой для систематизации коммерческой информации.
Самый эффективный способ ввода ряда последовательных дат не требует никаких
формул. Просто воспользуйтесь инструментом, встроенным в Excel, — автозаполнени
ем. Для этого введите в ячейку первую дату, а затем, удерживая нажатой правую кнопку
мыши, перетащите в необходимом направлении маркер автозаполнения (маленький чер
ный квадрат в правом нижнем углу контура выделения). Отпустите правую кнопку мыши
и выберите в контекстном меню команду Заполнить по дням (рис. 6.2).
Ф
Перекрестная ссылка
Для получения дополнительной информации об использовании формул
управления текстом обратитесь к главе 5.
Примечание
Если приведенная выше формула отображает некорректное значение, убе
дитесь, что ячейки a i и В1 действительно содержат даты, а не текстовую
информацию, похожую на даты.
В некоторых случаях вычисление разницы между двумя датами может потребовать зна
чительных усилий. Чтобы продемонстрировать это, проведем аналогию с “телеграфными
столбами”. Например, если требуется определить количество телеграфных столбов, то за
дачу их подсчета можно решить двумя способами: непосредственно сосчитав количество
столбов или определив количество пролетов между ними. При этом имейте в виду, что ко
личество столбов всегда на один больше, чем пролетов.
Чтобы рассмотреть эту ситуацию применительно к некоторому диапазону дат, в каче
стве примера приведем кампанию по продвижению на рынок некоторого товара. Пред
положим, что начальная дата кампании по продвижению товара — 1 февраля, а завер
шающая дата — 9 февраля. Просто вычитая одну цифру из другой, мы получим ответ:
восемь дней. Но в действительности срок продвижения товара — девять дней. В этом
случае, чтобы получить правильный ответ, необходимо сосчитать дни “включительно”,
а не определять количество дней между датами. Ниже приведена формула, позволяющая
вычислить длительность кампании по продвижению товара (предположим, что у нас есть
ячейки, соответствующие этим названиям).
=ПоследнийДень-НачальныйДень+1
Примечание
Название функции чистрабдни часто вводит в заблуждение. Она не имеет
никакого отношения к чистоте или рабству, а, вместо этого, возвращает ко
личество рабочих дней между двумя заданными датами.
Итак, функция ЧИСТРАБДНИ вычисляет разницу между двумя датами, исключая вы
ходные дни (субботы и воскресенья). Кроме того, как дополнительное условие можно,
определить диапазон ячеек, содержащий даты, на которые приходятся праздничные дни.
Эти даты также могут быть исключены при расчете. Естественно, Excel не имеет ника
кой возможности самостоятельно определять праздничные дни, поэтому вы должны
обеспечить программу этой информацией, указав соответствующий диапазон ячеек.
На рис. 6.3 показан рабочий лист, на котором вычисляется количество рабочих дней
между определенными датами. В диапазоне А2 : А8 содержится перечень дат, приходя
щихся на праздничные дни. Формулы, которые введены в столбце С, вычисляют количе
ство рабочих дней, расположенных между датами в столбцах А и В. Например, формула
в ячейке С И будет иметь такой вид:
=ЧИСТ РАБДНИ( A l l ; В 1 1 ;А 2 :А 8 )
Глава 6. Дата и время 171
Новинка
В Excel 2010 добавлена усовершенствованная версия функции чист р аб дни ,
которая называется ч и с т р а б д н и . межд. Она полезна, когда нужно считать
выходными днями не субботу и воскресенье, а другие дни недели.
Компакт-диск
Файл этого примера на компакт-диске называется work d a y s . x l s x (Chapter06_
RUS. x l s x ) .
Предупреждение
Имейте в виду, что результат, возвращаемый данной формулой, полностью
зависит от региональных форматов даты. В других странах приведенная
выше жестко закодированная дата может интерпретироваться как 1 августа
2010 года. Чтобы избежать этого, используйте следующую формулу:
=РАБДЕНЬ(ДАТА( 2 0 1 0 ; 1 ; 8 ) ; 10 )
Интересно, что второй аргумент функции РАБДЕНЬ может быть отрицательным. Как
и в случае с функцией ЧИСТРАБДНИ, функция РАБДЕНЬ может использовать третий не
172 Часть II. Использование функций в формулах
Имейте в виду, что аргумент начальная_дата должен находиться левее, чем аргумент
конечная_дата, в противном случае функция возвращает ошибку. Кроме того, в русифи
цированной Excel коды единиц измерения должны вводиться английскими буквами.
нья, как это принято в англоязычных программных продуктах. Например, следующая фор
мула возвращает значение 5, поскольку первый день 2010 года выпадает на пятницу:
=ДЕНЬНЕД(ДАТА( 2 0 1 0 ; 1 ; 1 ) )
Функция ДЕНЬНЕД может принимать и второй, необязательный аргумент, который
определяет систему нумерации дней недели для вывода результата. Если в качестве вто
рого аргумента введено значение 2, то функция возвращает значение 1 для понедельни
ка, 2 — для вторника и т.д. Если же в качестве второго аргумента ввести значение 3, то
функция вернет 0 для понедельника, 1 — для вторника и т.д.
Совет
Для того чтобы вычислить день недели даты в ячейке, можете использовать
собственный числовой формат. Выберите команду Главная^Число^Число-
вой формат^Другие числовые форматы. В поле Тип диалогового окна Фор
мат ячеек введите д д д д и щелкните на кнопке ОК. Введите в ячейку дату
(например, 2 2 . 0 7 . 2 0 1 0 ) . В результате в ячейке будет отображено ч е т
в е р г — день недели введенной даты.
Примечание
Если значение, содержащееся в ячейке А4, не принадлежит к диапазону
дней указанного месяца, то формула вернет дату, относящуюся к следую
щему месяцу. Например, если задать определение даты шестой пятницы
июня 2010 года (а такой даты не существует), то формула вернет дату пер
вой пятницы июля.
©
Перекрестная ссылка
Детально формулы массивов рассмотрены в главах 14 и 15.
На рис. 6.4 показан результат использования этой формулы на рабочем листе. В этом
случае используются и абсолютные, и смешанные ссылки на ячейки, поэтому можно ско
пировать эту формулу. К примеру, формула в ячейке СЗ выглядит следующим образом:
{=СУММ( (ДЕНЬНЕД(ДАТА( $ В $ 2 ; $АЗ; СТРОКА(ДВССЫЛ(
"1 : " &ДЕНЬ(ДАТА( $ В $ 2 ; $АЗ + 1 ;0) )) ) ) ) = С $ 1 ) *1) }
176 Часть II. Использование функций в формулах
Итоговые формулы на этом листе используют функцию СУММ. Они вычисляют общее
количество дней в месяце (столбец J) и количество каждого дня недели в году (строка 15).
К ом пакт-диск
Рис. 6.4. На этом рабочем листе вычисляется количество дней недели в месяцах года
Примечание
Результат этой формулы имеет текстовый формат, а не формат даты.
Компакт-диск
Файл этого примера на прилагаемом компакт-диске в авторском варианте
называется o r d i n a l d a y s . x l s x . В нем внимание сосредоточено на ото
бражении суффиксов s t , n d и др., которые используются с числительными
на английском языке.
Вычисление праздничных да т
Вычисление дат, выпадающих на специфические праздничные дни, требует исполь
зования специальных методов. Безусловно, это не касается таких дат, как Новый год или
День Независимости США, поскольку они определены издавна. Для них можно просто
использовать функцию ДАТА, о которой речь шла ранее. Следующая формула отобража
Глава 6. Дата и время 177
ет дату Нового года. Новый год всегда приходится на 1 января; нужный год введите
в кчейку А 1 .
= Д А Т А (А 1 ; 1 ; 1)
Рис. 6.5. Для того чтобы определить дату праздничного дня, воспользуйтесь специаль
ными формулами
Компакт-диск
Файл этого примера на прилагаемом компакт-диске называется h o l i
d a y s . x l s x ( Chapter06_RUS . x l s x ) .
Новый год
Новый год отмечается первого января.
=ДАТА (А 1 ; 1; 1)
День президентов
День президентов празднуется в третий понедельник февраля. Следующая формула
вычисляет дату этого дня в указанном году (ячейка А1):
=ДАТА(А1; 2 ; 1 ) +ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1; 2 ; 1 ) ) ;7-ДЕНЬНЕД(
ДАТА(А1; 2 ; 1 ) ) + 2 ; 2 - ДЕНЬНЕД(ДАТА(А1; 2 ; 1 ) )) + ( ( 3 - 1 ) * 7 )
178 Часть II. Использование функций в формулах
День труда
День труда — это первый понедельник сентября. Формула, приведенная ниже, опре
деляет его дату в указанном году (ячейка А1).
=ДАТА(А1; 9 ; 1 ) +ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1; 9 ; 1 ) ) ;7-ДЕНЬНЕД(
ДАТА(А1; 9 ; 1 ) ) + 2 ; 2 -ДЕНЬНЕД(ДАТА(А1; 9 ; 1 ) ) ) + ( ( 1 - 1 ) * 7 )
День ветеранов
Этот праздник выпадает на 11 ноября.
=ДАТА(A I ; 1 1 ; 1 1 )
День Колумба
Этот праздник выпадает на второй понедельник октября. Для вычисления его даты в
указанном году (ячейка А1) используется следующая формула:
=ДАТА(А1; 1 0 ; 1 ) +ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1; 1 0 ; 1 ) ) ; 7 -ДЕНЬНЕД(
ДАТА(А1; 1 0 ; 1 ) ) + 2 ; 2 -ДЕНЬНЕД(ДАТА(А1; 1 0 ; 1 ) ) ) + ( ( 2 - 1 ) * 7 )
День Благодарения
День Благодарения празднуется в четвертый четверг ноября. Следующая формула
вычисляет дату этого дня в указанном году (ячейка А1):
=ДАТА(А1; 1 1 ; 1 ) +ЕСЛИ( 5<ДЕНЬНЕД(ДАТА(А1; 1 1 ; 1 ) ) ; 7-ДЕНЬНЕД(
ДАТА(А1; 1 1 ; 1 ) ) + 5 ; 5 -ДЕНЬНЕД(ДАТА(А1; 1 1 ; 1 ) ) ) + ( ( 4 - 1 ) * 7 )
Рождество
Католическое Рождество празднуется 25 декабря.
=ДАТА(A I ; 1 2 ; 2 5)
Предупреждение
Помните, что для 1900 года результат истина , возвращаемый данной функ
цией, будет неправильным. Об этой ошибке речь шла ранее.
Примечание
Имейте в виду, что эти формулы обновляются при пересчете рабочего листа.
Совет
Для того чтобы ввести в заданную ячейку штамп времени (значение, которое
не будет изменяться при пересчете рабочей книги), нажмите комбинацию
клавиш <Ctrl+Shift+: (двоеточие)Х
формулу заведомо неправильный аргумент 80. В этом случае формула возвратит значе
ние 10 : 2 0 : 1 5 AM. “Неправильные” 80 минут будут просто добавлены к заданному часу,
а оставшаяся их часть — отображена как 20 минут.
=ВРЕМЯ ( 9 ; 80 ; 15 )
Предупреждение
Если ввести в качестве первого аргумента функции время значение, превы
шающее 24 часа, то результат будет не совсем ожидаемый. Следуя логике,
можно предположить, что такая формула должна определить числовое зна
чение даты и времени, равное 1, 0 4 1 6 6 7 (т.е. один день и один час), но в
действительности она возвращает 0 , 0 4 1 6 6 7 .
=ВРЕМЯ(2 5 ; 0 ; 0 )
Данная формула возвращает то же значение, что и предыдущая:
=ВРЕМЯ( 1 ; 0 ; 0 )
Функция ДАТА может быть использована вместе с функцией ВРЕМЯ в одной ячейке.
Например, следующая формула вычисляет числовое значение 3 9 4 2 0 , 7 7 0 8 3 3 3 3 3 3 , ко
торое соответствует времени 18:30 4 декабря 2010 года.
=ДАТА( 2 0 1 0 ; 1 2 ; 4 ) +ВРЕМЯ( 1 8 ; 3 0 ; 0 )
П реду п режден ие
При вводе описанной выше формулы Excel автоматически форматирует
ячейку для отображения только даты. Чтобы увидеть время, нужно вручную
установить соответствующий числовой формат.
Совет
Для ввода в ячейку текущей даты и времени, которые не будут изменяться
при пересчете листа, нажмите <Ctrl+Shift+; (точка с запятой)>, пробел,
<Ctrl+Shift+: (двоеточие)>, а затем <Enter>.
Функция ВРЕМЗНАЧ преобразует текстовую строку, подобную временному значе
нию, в числовое представление заданного времени. Приведенная ниже формула возвра
щает числовое значение 0 , 2 3 9 5 8 3 3 3 3 3 для времени 5:45:
=ВРЕМЗНАЧ( " 5 : 4 5 " )
Чтобы результат этой формулы отображался как время, необходимо применить к ячейке
формат времени. Имейте в виду, что функция ВРЕМЗНАЧ принимает только форматы вре
мени, поддерживаемые в приложении Excel. Например, следующая формула вернет значе
ние ошибки, поскольку Excel не воспринимает запись “a.m.” как параметр времени:
=ВРЕМЗНАЧ ( " 5 : 4 5 a . m . " )
Весьма очевидно, что формула возвращает неправильное значение (18 часов 30 ми
нут). Ведь простой расчет показывает, что общее количество часов должно быть равным
42 часам 30 минутам. Проблема состоит в том, что на самом деле формула возвращает
числовое значение даты и времени 1 , 7 7 0 8 3 3 , но формат ячейки не позволяет отобра
жать часть значения, относящегося к дате.
Для того чтобы полученный результат отображался как время, превышающее 24 часа,
необходимо изменить формат результирующей ячейки, а часть времени, представляю
щую собой часы, заключить в квадратные скобки. Применение следующего формата
к ячейке В9 позволит правильно отобразить сумму значений времени:
[ч]:мм
Рассмотрим еще один пример расчета времени. На следующем рабочем листе (рис. 6.7)
отслеживаются нормативные и сверхурочные часы, отработанные в течение недели.
Рис. 6.7. Пример рабочей книги для расчета времени, отработанного служащими
Дата начала работы введена в ячейку В4. Столбец В содержит формулы, которые вы
числяют дни недели, соответствующие каждой дате. Таким образом определяются рабо
чие дни недели. Отработанное время вводится в диапазон ячеек С7 : F13. Столбец G со
Глава 6. Дата и время 183
Компакт-диск
Файл примера, показанного на рис. 6.7, на компакт-диске называется t i m e
sheet.xlsm (Chapter06_RUS.xlsx).
В том случае, если направление вычитания времени не столь важно, можно использо
вать функцию ABS, которая возвращает абсолютное значение.
=ABS (В2-А2)
Проблема “отрицательного времени” часто возникает при вычислении разницы между
более ранним и более поздним временем. Вернемся к задаче вычисления количества отра
ботанных часов. Чтобы определить его, достаточно просто вычесть начальное время рабо
ты из конечного времени. Это не представляет никакой проблемы, если два указанных зна
чения приходятся на один и тот же день. Но как быть, если рабочее время начинается неза
долго до конца текущих суток, а заканчивается на следующие сутки? Например, если
служащий начинает работать в 22:00, а заканчивает в 6:00, то в этом случае результатом
вычитания будет отрицательное время. Таким образом, определить отработанные часы
для смены, начинающейся в одних сутках, а заканчивающейся в других, становится про
блемой (рис. 6.8).
Какой может быть выход из такой ситуации? Использование функции ABS и вычис
ление абсолютного значения в этом случае не подходит, поскольку формула возвращает
неправильный результат— 16 часов. Тем не менее приведенная ниже формула может
сработать:
=ЕСЛИ(В2<А2;В2+1;В2)-А2
Существует и более простая формула для решения задачи:
=ОСТАТ(В2-А2;1)
Совет
Как уже отмечалось, работа с отрицательным временем возможна, если ра
бочая книга использует систему дат 1904. Чтобы перейти к этой системе
дат, откройте диалоговое окно параметров Excel, перейдите во вкладку До
полнительно и в разделе При пересчете этой книги установите флажок Ис
пользовать систему дат 1904. Будьте бдительны! При изменении системы
исчисления все даты, имеющиеся в рабочей книге, будут увеличены на че
тыре года.
Если ячейка А1 содержит больше или меньше четырех чисел, то результат, который
возвратит данная формула, будет неверным. Следующая формула корректирует эту
ошибку и возвращает допустимое значение времени для любого времени в “военном
формате” от 0 до 2359:
=ВРЕМЗНАЧ (ЛЕВСИМВ (ТЕКСТ ( А1; "0 000 " ) ; 2 ) &" : "&ПРАВСИМВ (А1; 2) )
В более простой формуле задействована функция ТЕКСТ, которая форматирует стро
ку как текст, а затем использует функцию ВРЕМЗНАЧ, чтобы отобразить результат
в формате времени.
=ВРЕМЗНАЧ(ТЕКСТ(А 1 ;"0 0 \ :0 0") )
Совет
Для заполнения значениями времени диапазона ячеек можно также исполь
зовать функцию автозаполнения. К примеру, чтобы создать последователь
ность значений времени с приращением в 10 минут, введите в ячейку А1
значение 8 : 00, а в ячейку А2 — 8 : 1 0 . Выделите обе ячейки и перетащите
правой кнопкой мыши маркер автозаполнения (в нижнем правом углу ячей
ки А2) ВНИЗ ПО СТОЛбцу.
Рис. 6.9. Для заполнения ячеек не- Рис. 6.10. На этом рабочем листе дата и время переводятся
сколькими временными значения- из одного часового пояса в другой
ми, последовательно возрастаю
щими на 10 минут, использовалась
всего одна формула
Компакт-диск
Файл этого примера на компакт-диске называется gmt c o n v e r s i o n . x l s x
( C h a pt e r 0 6_ R US . x l s x ) .
Компакт-диск
Файл этого примера на компакт-диске называется j o g g i n g lo g .x lsx
( Chapter06_RUS . x l s x ) .
Глава
Способы суммирования
и подсчета данных
В этой главе...
♦ Подсчет и суммирование ячеек электронной таблицы
♦ Подсчет и суммирование записей в базах данных и сводных таблицах
♦ Основные формулы подсчета
♦ Расширенные формулы подсчета ячеек
♦ Формулы суммирования
♦ Условное суммирование по одному критерию
♦ Условные суммы на основе нескольких критериев
©
Перекрестная ссылка
Более подробно о формулах массива, используемых для подсчета и сумми
рования ячеек, рассказано в части IV. Операции подсчета и суммирования
данных в списках описаны в главе 9.
Примечание
Если данные представлены в виде таблицы, многие операции подсчета
и суммирования можно выполнять с помощью функции автофильтрации. По
сле установки критерия автофильтрации таблица отображает только строки,
удовлетворяющие критерию. Остальные строки не удаляются, а скрываются.
Несложно создать формулу, выводящую результаты подсчета в итоговой
строке таблицы. Использование таблиц рассматривается в главе 9.
Перекрестная ссылка
Информация о функциях базы данных, а также об использовании формул
подсчета и суммирования базы данных электронной таблицы приведена
в главе 9.
Создание сводных таблиц— великолепный способ получения количества и суммы
элементов без использования формул. Как и функция базы данных, сводная таблица ис
пользуется в том случае, если данные представлены в форме базы данных.
Перекрестная ссылка
Для получения дополнительной информации о сводных таблицах обрати
тесь к главе 18.
Компакт-диск
Рабочую книгу, показанную на рис. 7.1, в авторском варианте можно найти на
прилагаемом компакт-диске в файле b a s i c c o u n t i n g . x l s x ( C h a p t e r 0 7 _
RUS . x l s x ) .
Примечание
Имейте в виду, что функция с ч и т а т ь п у с т о т ы не учитывает ячейки, содер
жащие нулевое значение, даже если снять флажок Показывать нули в ячей
ках, которые содержат нулевые значения вкладки Дополнительно диалогово
го окна параметров программы.
Функция СЧИТАТЬПУСТОТЫ может использовать в качестве аргумента целую строку
или столбец. Например, приведенная ниже формула возвращает количество пустых яче
ек в столбце А.
= С Ч И ТА ТЬ П УС ТО ТЫ (А : А )
Следующая формула возвращает количество пустых ячеек в пределах всего рабочего
листа Л и с т 1 . Данная формула должна быть введена в другой лист, в противном случае
будет создана циклическая ссылка.
^ С Ч И ТА ТЬ П У С ТО ТЫ (Л и с т!!1 :1 0 4 8 5 7 6 )
194 Часть II. Использование функций в формулах
Примечание
Если ячейка содержит формулу, возвращающую пустую строку, она включа
ется в итог, возвращенный функцией с ч ё т з , даже несмотря на то, что внеш
не выглядит пустой.
Функция ЕОШ возвращает значение ИСТИНА, если ячейка содержит любое значе
ние ошибки, за исключением # Н /Д .
Функция ЕНД возвращает значение ИСТИНА, если значение равно # Н /Д .
Примечание
Обратите внимание: ошибка #н/д (нет данных) обрабатывается не так, как
другие. В большинстве случаев это вообще не ошибка. Часто сообщение
#н/д используется в качестве правильного заполнителя ячейки при отсутст
вии данных. Значение #н/д можно ввести непосредственно или с помощью
функции нд.
Все примеры этого раздела приведены для простого рабочего листа, показанного на
рис. 7.2, в котором в столбцах Месяц, Представитель и Тип содержатся данные о про
дажах товара фирмой. Диапазоны ячеек данного рабочего листа имеют имена, соответ
ствующие значениям, введенным в строку 1.
Компакт-диск
Рабочую книгу, показанную на рис. 7.2, можно найти на прилагаемом компакт-
диске в файле m u l t i p l e c r i t e r i a c o u n t i n g . x l s x ( C h a p t e r 0 7 _ R U S . x l s x ) .
Глава 7. Способы суммирования и подсчета данных 197
t
Новинка
Некоторые примеры этого раздела используют функцию с ч ё т е с л и м н , вве
денную в версии Excel 2007. В разделе также будут представлены альтерна
тивные версии формул, которые нужно использовать, если создаваемую
рабочую книгу требуется совместно использовать с теми, у кого установле
ны предыдущие версии Excel.
Рис. 7.2. На этом рабочем листе приведены различные варианты подсчета, использующие
целый ряд условий
Использование условия и
Функция СЧЁТЕСЛИМН принимает пары аргументов. В пару входят диапазон условия
и условие. Количество пар не ограничено. Логическая операция И реализуется благодаря
тому, что функция учитывает ячейку, только если истинны все пары. Используя условие
И, можно подсчитать все ячейки диапазона, соответствующие определенным условиям.
Типичным примером использования этого условия можно считать формулу, с помощью
которой подсчитывается количество значений, содержащихся в пределах определенного
числового диапазона. Предположим, что необходимо подсчитать ячейки, которые ото
бражают значения большие 1 0 0 и меньшие или равные 2 0 0 . Функция СЧЁТЕСЛИМН
принимает следующий вид:
=СЧЁТЕСЛИМН (О б ъ е м ; " > 1 0 0 " ; О б ъ е м ; "< = 2 0 0 " )
В данном примере функция СЧЁТЕСЛИМН принимает две пары аргументов. Первым
элементом каждой пары является диапазон значений (в нашем примере это Объем), вто
рым — критерий. Формула возвращает количество всех ячеек диапазона Объем, в кото
рых значение больше 100 и меньше 200.
До выхода в свет Excel 2007 вам пришлось бы использовать формулу следующего вида:
СЧЁТЕСЛИ(О бъем;" > 1 0 0 " ) - С Ч Ё Т Е С Л И ( О б ъ е м ;" > 2 0 0 " )
198 Часть II. Использование функций в формулах
Примечание
При вводе ф ормулы м ассива не забы вайте нажимать <Ctrl+Shift+Enter>
вм есто <Enter>; также не вводите вручную ф игурны е скобки — они будут
вставлены автом атически.
Условия подсчета можно задать не только для суммируемых, но и для других ячеек.
Например, можно подсчитать количество продаж в ячейках, соответствующих следую
щим условиям:
• месяц — январь
и
• представитель — Данилкин
и
• сумма больше 1000.
Следующая формула возвращает количество ячеек массива, соответствующих всем
трем условиям:
=СЧЁТЕСЛИМН(Месяц;"Январь"; П р е д с т а в и т е л ь ; "Данилкин";
О б ъ ем ;">1000")
В качестве альтернативы можно использовать следующую формулу массива:
{=СУММ( (Месяц="Январь" ) * (П редстави тель="Д ан илк и н")*
(С ум м а> 100 0)) }
Так как в данном случае в аргументах функции приходится повторять операцию “И”,
использование СЧЁТЕСЛИМН может привести к созданию длинных формул с множест
вом критериев. Когда список критериев велик, удобнее использовать формулы массивов.
К примеру, следующая формула массива вернет тот же результат, что и предыдущая:
{= С У М М ( ( М е с я ц = " Я н в а р ь " ) * Е С Л И ( ( П р е д с т а в и т е л ь = " Д а н и л к и н " ) +
( П р е д с т а в и т е л ь = "К у к и н а " ) ; 1 ) ) }
Предупреждение
Если существует несколько значений, встречающихся с одинаковой макси
мальной частотой, данная формула вернет первое из них.
Компакт-диск
Рабочую книгу, показанную на рис. 7.4, можно найти на прилагаемом компакт-
диске в файле c o u n t i n g t e x t i n a r a n g e . x l s x ( C h a p t e r 0 7 _ R U S . x l s x ) .
Глава 7. Способы суммирования и подсчета данных 201
Компакт-диск
Рабочую книгу, показанную на рис. 7.5, можно найти на прилагаемом ком
пакт-диске в файле c o u n t u n i q u e . x l s x ( C h a p te r0 7 _ R U S . x l s x ) .
Массив в диапазоне C l : C l 2 содержит итоги, подсчитанные для каждого значения
в массиве И н т е р в а л . Например, число 100 появляется в массиве И н т е р в а л три раза.
Таким образом, каждый элемент массива С 1:С 12, соответствующий значению 100
в диапазоне Д ан н ы е, будет содержать значение 3.
Диапазон D1 :D12 отображает результаты следующей формулы массива:
{= 1/C l : С12}
Данный массив состоит из значений, полученных путем деления 1 на значения мас
сива в диапазоне ячеек C l : С12. Например, если какая-либо ячейка исходного диапазона
И н т е р в а л содержит значение 2 00, то соответствующая ей ячейка в диапазоне D l : D12
будет иметь значение 0 ,0 5 .
Глава 7. Способы суммирования и подсчета данных 203
Ф
Перекрестная ссылка
Создание формулы массива, возвращающей список одинаковых значений
в заданном диапазоне ячеек, описано в главе 15.
Распределение частот
Главным компонентом процедуры распределения частот является итоговая таблица,
которая отображает частоту повторения значений в заданных интервалах. Например,
преподаватель школы или ВУЗа может создать распределение частот экзаменационных
оценок, т.е. таблицу, в которой отображается количество значений 1, 2, 3 и т.д. Чтобы
создать распределение частот, воспользуйтесь одним из следующих инструментов, кото
рые Excel предоставляет в ваше распоряжение:
• функция ЧАСТОТА;
• собственная формула;
• надстройка “Пакет анализа”;
• сводная таблица.
Компакт-диск
Рабочую книгу, демонстрирующую использование всех четырех методов
создания распределения частот, можно найти на прилагаемом компакт-
диске в файле f r e q u e n c y d i s t r i b u t i o n . x l s x ( C h a p t e r 0 7 _ R U S . x l s x ) .
Примечание ч
Если данные представлены в форме базы данных, для создания распреде
ления частот можно также использовать сводную таблицу.
Функция ЧАСТОТА
Самый простой способ создания таблицы распределения частот в приложении
Excel— использование функции ЧАСТОТА. Эта функция возвращает массив, поэтому
она всегда должна применяться в формуле массива, введенной в диапазон ячеек.
На рис. 7.6 в диапазон ячеек A i : Е 2 0 ( Д и а п а з о н З ) введены значения от 1 до 5 0 0 .
Диапазон G2 :G 11 задает уровни дискретизации (интервалы), используемые в распреде
лении частот. Каждая ячейка этого диапазона представляет собой верхний предел интер
вала. В данном случае используются интервалы 1-50, 51-100, 101-150 и т.д. Более про
стой способ создания интервалов рассматривается далее.
204 Часть II. Использование функций в формулах
Формула в ячейке G2, приведенная ниже, представляет собой формулу массива, кото
рая подсчитывает количество баллов, относящихся к оценке А.
{=СУММ((Оценки>=Б2)* (Оценки<=Е2) ) }
Эта формула уже использовалась в предыдущем разделе настоящей главы. В данном
примере формула скопирована в четыре ячейки ниже ячейки G2.
Формулы в столбце Н вычисляют процентное соотношение оценок. Формула, содер
жащаяся в ячейке Н2, скопирована в четыре ячейки, находящиеся ниже Н2.
=G2/CYMM($G$2:$G$6)
Предупреждение
П К» Учтите, что в данном случае распределение частот состоит из значений, а не
формул. Поэтому при внесении изменений во входные данные нужно по
вторно открыть диалоговое окно Гистограмма, чтобы обновить отображае
мые графические результаты.
Перекрестная ссылка
Сводные таблицы рассматриваются в главе 18, а создание полос гисто
граммы с помощью условного форматирования — в главе 19.
Компакт-диск
Рабочий лист, показанный на рис. 7.12, можно найти на прилагаемом ком
пакт-диске в файле a d j u s t a b l e b i n s . x l s x (Chapter07_RUS . x l s x ) .
Данная диаграмма использует в формуле РЯД два динамических имени. Имя
К а т е г о р и и определяется с помощью следующей формулы:
=СМЕЩ( 7 _ 1 2 ! $ Е $ 4 ; 0 ; 0 ; ОКРУГЛВВЕРХ( 1 0 0 /Р а зм е р ы И н т е р в а л о в ; 0 ) )
Имя Ч а с т о т а определяется следующей формулой:
=СМЕЩ( 7 _ 1 2 ! $ F $ 4 ; 0 ; 0 ; ОКРУГЛВВЕРХ( 1 0 0 /Р а зм е р ы И н т е р в а л о в ; 0 ) )
В результате при изменении содержимого ячейки Р а з м е р ы И н т е р в а л о в диаграмма
автоматически корректируется.
Перекрестная ссылка
Дополнительная информация о создании диаграмм, использующих динами
ческие имена в формуле р я д , приведена в главе 17.
Глава 7. Способы суммирования и подсчета данных 209
Формулы суммирования
В этом разделе представлены основные принципы суммирования содержимого ячеек, а
также рассмотрены примеры суммирования: как простейшие формулы суммирования, так
и сложные формулы массивов, которые вычисляют значения на основе ряда критериев.
Предупреждение
Несмотря на всю универсальность, функция сумм в отношении логических
значений (истин а и л и ложь) ведет себя достаточно противоречиво. Напри
мер, логические значения, сохраненные в ячейках, всегда трактуются как
нуль, однако при использовании логического значения и ст и н а в качестве
аргумента функции сумм о н о трактуется как единица.
210 Часть II. Использование функций в формулах
Накопительная сумма
При необходимости можно вычислить общую сумму значений заданного диапазона,
которая в этом случае называется накопительной. На рис. 7.13 приведен пример такого
вычисления. В столбце В представлены суммы по месяцам, а в столбце С отображается
накопительная сумма за все прошедшие месяцы.
В ячейку С2 введена следующая формула:
=СУММ(В$2:В 2 )
Обратите внимание, что данная формула использует смешанную ссылку. Первая
ячейка диапазона, на которую ссылается формула, всегда располагается в строке 2. При
копировании этой формулы вниз по столбцу данный диапазон изменится, но таким обра
зом, что суммирование ячеек всегда будет начинаться со строки 2 и заканчиваться теку
щей строкой. Если скопировать эту формулу вниз по столбцу С, ячейка С8 отобразит
следующую формулу:
=СУММ(В$2:В8)
Чтобы скрыть общие суммы для строк, данные в которые еще не введены, используй
те функцию ЕСЛИ (например, как в формуле, введенной в ячейку С2 и скопированной
вниз по столбцу).
=ЕСЛИ(ЕПУСТО(В2) ; " " ; СУММ(В$2:В 2 ))
На рис. 7.14 показано, как работает эта формула.
Рис. 7.13. С помощью простой формулы, Рис. 7.14. Чтобы скрыть текущие суммы
введенной в столбец с, можно представить для строк с отсутствующими данными,
текущую сумму значений из столбца в используйте функцию е с л и
Компакт-диск
Рабочий лист, показанный на рис. 7.14, можно найти на прилагаемом ком
пакт-диске в файле c u m u l a t i v e s u m . x l s x (C h a p t e r 0 7 _ R U S . x ls x ) .
Перекрестная ссылка
О массивах речь пойдет в главе 14.
Компакт-диск
Примеры, приведенные в этом разделе, можно найти на прилагаемом ком
пакт-диске в файле c o n d i t i o n a l s u m m i n g . x l s x ( C h a p t e r 0 7 _ R U S . x l s x ) .
212 Часть II. Использование функций в формулах
Примечание
Для того чтобы просуммировать отрицательные значения диапазона
Разница, можно также использовать следующую формулу массива:
{=СУММ(ЕСЛИ(РазницасО;Разница)) }
Вовсе не обязательно в функции СУММЕ СЛИ жестко программировать критерий. На
пример, следующая формула использует ссылку на содержимое ячейки G2, в которую
введен критерий:
=СУММ( Р а з н и ц а ; G2)
Когда критерий в ячейке G2 изменяется, формула возвращает новый результат.
Примечание
Чтобы вычислить сумму значений диапазона Сумма, для которых соответст
вующие значения диапазона Разница являются отрицательными, можно
также воспользоваться следующей формулой массива:
{ =СУММ(ЕСЛИ(Разница<0 ; Сумма)) }
Глава 7. Способы суммирования и подсчета данных 213
Применение оператора и
Предположим, необходимо подсчитать общую сумму по счетам, оплата которых про
срочена И которые, в то же время, выписаны филиалом в Калуге. Иными словами, значе
214 Часть II. Использование функций в формулах
ния, содержащиеся в диапазоне Сумма, будут суммироваться только в том случае, если
одновременно выполняются следующие условия:
• в диапазоне Р а з н и ц а им соответствуют отрицательные значения;
• соответствующий им текст в диапазоне О т д е л е н и е — это К а л у г а .
Примечание
Предыдущую формулу массива можно переписать с помощью функции
выполняющей умножение и сложение элементов массивов.
суммпроизв ,
=СУММПР0ИЗВ( ( Р а з н и ц а с О ) ; ( Филиал= "К а луга" ) /Сумма)
Однако в силу непонятных причин функция суммпроизв обрабатывает буле
вы значения некорректно, поэтому данная формула нежизнеспособна. Тем
не менее можно использовать другую формулу, которая умножает булевы
значения на 1, — она корректно справится со своей задачей.
=СУММПР0ИЗВ( 1 * ( Р а з н и ц а с О ) / 1 * ( Филиал="К а л у г а " ) /Сумма)
Поиск данных
В этой главе...
♦ Знакомство с формулами поиска данных
♦ Функции, применяемые для поиска данных
♦ Базовые формулы поиска
♦ Специальные формулы поиска
В настоящей главе будут описаны методы поиска значений в таблицах. Для выполне
ния этой задачи в Excel предоставляется три функции: ПРОСМОТР, ВПР и ГПР. Несмотря
на то что именно эти функции рассматриваются как основные функции поиска информа
ции, они не являются универсальными. В этой главе также приведены примеры поиска
информации, поддерживаемые как обычными средствами Excel, так и другими, более
специализированными инструментами поиска данных.
Примечание
В этой главе термин таблица означает прямоугольный диапазон данных, а не
табличный объект, созданный с помощью команды Вставка^Таблицы^Таблица.
На рис. 8.1 показан простейший рабочий лист, который содержит несколько формул
поиска и таблицу с данными о служащем (диапазон Д а н н ы е С л у ж а щ е г о , начиная с 9-й
строки). Если в ячейку В2 ввести интересующую вас фамилию, формулы поиска, вве
денные в диапазон ячеек С2 : F2, найдут в таблице необходимую информацию. В приве
денных ниже формулах используется функция поиска ВПР.
218 Часть II. Использование функций в формулах
Ячейка Ф ормула
С2 = В П Р ( В 2 ; ДанныеСлужащего; 2 ; ЛОЖЬ)
D2 = В П Р ( В 2 ; ДанныеСлужащего; 3 ; ЛОЖЬ)
Е2 = В П Р ( В 2 ; ДанныеСлужащего; 4 ; ЛОЖЬ)
F2 = В П Р ( D 2 /ДанныеСлужащего; 5 ; ЛОЖЬ)
В этом примере для извлечения информации из диапазона Д анны еС луж ащ его ис
пользуется четыре формулы. Однако, как правило, требуется вернуть только одно значе
ние таблицы, в таких случаях используется только одна формула.
Компакт-диск
\S ^ Примеры этого раздела доступны на прилагаемом компакт-диске в файле
b a s i c lo o k u p e x a m p l e s . x l s x ( C h a p t e r 0 8 _ R U S . x l s x ) .
Функция ВПР
Функция ВПР выполняет поиск значения в первом столбце просматриваемой таблицы
и возвращает значение из ячейки, расположенной на пересечении найденной строки
и указанного столбца таблицы. Данная функция выполняет вертикальный поиск по таб
лице. Синтаксис функции ВПР следующий:
ВПР ( искомое_значение; массив_табл; номер_индекса_столбца ;
интерв аль ный_про смо тр)
Функция ВПР использует следующие аргументы.
• и с к о м о е _ з н а ч е н и е — значение, которое необходимо найти в первом столбце
таблицы (значение, ссылка или строка).
• м а с с и в _ т а б л — диапазон, содержащий таблицу, в которой выполняется поиск
данных.
• н о м е р _ и н д е к с а _ с т о л б ц а — номер столбца в таблице, из которого необходи
мо возвратить соответствующее значение.
• и нт е р ва ль н ы й _ п р о см о т р — необязательный аргумент. Если данный аргумент
содержит значение ИСТИНА или опущен, функция возвращает значение, найден
ное путем приближенного сопоставления искомого значения. Если не определено
точное значение, функция возвращает ближайшее значение, меньшее, чем задан
ный аргумент и с к о м о е _ з н а ч е н и е . В случае, если аргумент содержит логиче
ское значение ЛОЖЬ, функция ищет точное соответствие. Если точное соответст
вие не найдено, функция возвращает ошибку #Н/Д.
Примечание
Если аргумент интервальный_просмотр содержит значение и сти н а и л и опу
щен, таблица должна быть отсортирована в порядке возрастания. В случае,
если аргумент искомое_значение меньше самого меньшего значения, со
держащегося в первом столбце диапазона массив_табл, функция впр вернет
ошибку #н/д. Если аргумент интервальный_просмотр содержит значение
ложь, первый столбец таблицы поиска не требует сортировки по возрастанию.
Если точное соответствие не найдено, функция возвращает ошибку #н/д.
220 Часть II. Использование функций в формулах'
©
Совет
Если аргумент искомое_значение содержит текст и аргумент интерваль-
ный_просмотр равен ложь, искомое значение может содержать групповые
символы * и ?. Звездочка означает любое количество произвольных симво
лов, а знак вопроса — один произвольный символ.
Классическим примером использования формулы поиска может служить таблица с
процентными ставками налога (рис. 8.2). В эту таблицу внесены ставки налога, каждая из
которых соответствует определенному уровню дохода служащего. Следующая формула,
введенная в ячейку В2, возвращает ставку налога для заданного уровня дохода в ячейке В1:
=ВПР(В2; D 2 : F 7 ;3)
Функция Г П Р
Функция ГПР работает аналогично ВПР, за исключением того, что таблица просмат
ривается не по вертикали, а по горизонтали. Функция просматривает верхнюю строку
таблицы и возвращает значение из указанной строки.
Функция ГПР имеет следующий синтаксис:
ГПР {искомое_значение; таблица; номер_строки; интервальный_просмотр)
В функции ГПР используются следующие аргументы.
• искомое_значение — значение, которое требуется найти в первой строке таблицы.
• таблица — таблица, в которой выполняется поиск данных.
• номер_строки — номер строки в таблице, из которой возвращается сопостав
ляемое значение.
• интервальный_просмотр — необязательный аргумент. Если значение этого
аргумента ИСТИНА или опущено, функция возвращает значение, найденное путем
приближенного сопоставления искомого значения (если точное соответствие не
Глава 8. Поиск данных 221
Совет
Если аргумент искомое_значение содержит текстовое значение и аргумент
интервальный_просмотр равен ложь, в искомом значении можно исполь
зовать групповые символы * и ?. Звездочка соответствует любому количе
ству символов, а знак вопроса — одному символу.
На рис. 8.3 показана таблица со ставками подоходного налога, но уже в горизонталь
ной форме ( E l : J3 ). Формула в ячейке ВЗ выглядит следующим образом:
=ГПР (В2 ; E l : J3 ; 3 )
в С О Е F G Н I J к
U I i 1_________________________
Рис. 8.3. В этом случае для поиска ставки подоходного налога можно воспользоваться функцией гпр
Функция ПРОСМОТР
Функция ПРОСМОТР имеет следующий синтаксис:
ПРОСМОТР (искомое_значение; вектор_просмотра; вектор_результата)
Данная функция использует следующие аргументы.
• искомое_зна чение — значение, которое функция ищет в векторе просмотра.
• вектор_просмотра — диапазон, состоящий только из одной строки или одного
столбца и содержащий значения, среди которых необходимо найти нужное. Зна
чения должны располагаться в порядке возрастания.
• вектор_результата — диапазон, состоящий только из одной строки или одно
го столбца и содержащий значения, которые будут возвращены. Размер этого диа
пазона должен быть равен размеру диапазона вектор_просмотра.
Функция ПРОСМОТР просматривает диапазон, состоящий из одной строки или одного
столбца ( вектор_просмотра ), находит необходимое значение (искомое_значение )
и возвращает значение, содержащееся в соответствующей ячейке второго диапазона, ко
торый также состоит из одной строки или одного столбца ( вектор_результата ).
Предупреждение
Имейте в виду, что значения диапазона вектор_просмотра должны распола
гаться в порядке возрастания. В том случае, когда искомое_значение меньше
наименьшего значения, содержащегося в диапазоне вектор_просмотра,
функция возвращает ошибку # н / д .
222 Часть II. Использование функций в формулах
Примечание
Справочная система Excel указывает, что функция просм отр имеет два ва
рианта синтаксиса, один из которых включает аргумент массив. Это обеспе
чивает совместимость Excel с другими программами управления электрон
ными таблицами. Однако на практике вместо второго варианта синтаксиса
предпочтительнее использовать функции впр и гпр.
На рис. 8.4 показана все та же таблица ставок налога, только на этот раз формула, ко
торая введена в ячейку ВЗ, содержит функцию ПРОСМОТР, возвращающую соответст
вующую ставку. Обратите внимание на то, что возвращаемые значения содержатся в
другой таблице.
=ПРОСМОТР(В2; D 2 : D 7 ; G 2 :G9)
Предупреждение
Если значения в первом столбце не расположены в порядке возрастания, зна
чение, которое возвращает функция просмотр , может быть неправильным.
Примечание
В том случае, если аргумент тип_сопоставления равен единице, функция
поискпоз ищет самое большое значение, которое меньше либо равно аргу
менту искомое_значение (значения диапазона массив_поиска должны
располагаться в порядке возрастания, т.е. диапазон должен быть отсорти
рован). Если аргумент тип_сопоставления равен нулю, функция ищет пер
вое значение, в точности соответствующее аргументу искомое_значение.
Если же аргумент тип_сопоставления равен -1, функция ищет наименьшее
значение, которое больше или равно аргументу искомое_значение (в этом
случае значения диапазона массив_поиска должны располагаться в поряд
ке убывания). Если аргумент тип_сопоставления опущен, то по умолчанию
он принимается равным единице.
Функция ИНДЕКС возвращает ячейку диапазона. Синтаксис функции следующий:
ИНДЕКС (массив ; номер_строки; номер_столбца)
Функция ИНДЕКС принимает три аргумента.
• м а с с и в — диапазон, являющийся массивом.
• ном ер_ст роки — строка в массиве ма с сив, из которого возвращается значение.
• ном ер_ст олбца — столбец в массиве ма с сив, из которого возвращается значение.
Примечание
Если массив содержит всего одну строку или столбец, соответствующий ар
гумент номер_строки\лп\л номер_столбца использовать не обязательно.
На рис. 8.5 показан рабочий лист, в котором в столбцах D, Е и F содержатся значения
дат, дней недели и сумм. При вводе даты в ячейку В1 формула, приведенная ниже
(ячейка В2), просматривает значения в столбце D (так выполняется поиск необходимой
даты), а затем возвращает из столбца F соответствующую этой дате сумму.
=ИНДЕКС(F 2 : F 21 ; ПОИСКПОЗ(В 1 ; D 2 :D21 ; 0 ) )
Чтобы понять, как работает эта формула, начните с функции ПОИСКПОЗ. Данная
функция ищет в диапазоне D2 :D 2 1 дату, содержащуюся в ячейке В1, и относительный
номер строки, в которой эта дата найдена. Полученное значение используется в качестве
второго аргумента функции ИНДЕКС. В результате формула возвращает соответствую
щее значение, содержащееся в диапазоне F2 : F 2 1 .
Если нужно, чтобы нулевые значения отличались от пустых ячеек, измените формулу
просмотра, добавив в нее функцию если , — так вы определите длину возвращаемого
значения. В том случае, если возвращаемая ячейка пустая, длина значения восприни
мается равной нулю, во всех других случаях — как ненулевое значение. Следующая
формула возвращает пустую строку всякий раз, когда длина возвращаемого значения
нулевая; фактическое значение будет отображено в том случае, когда длина значения
не равна нулю.
=ЕСЛИ(ДЛСТР(ВПР(В1; D 2 : Е 8 ;2) ) = 0 ; " " ; (ВПР(В1; D 2 : Е 8 ;2) ) )
Компакт-диск
Примеры ЭТОГО раздела находятся в файле s p e c i a l i z e d lo o k u p exam
p l e s . x l s x (Chapter08_RUS . x l s x ) на прилагаемом компакт-диске.
Глава 8. Поиск данных 225
Поскольку последний аргумент функции ВПР имеет значение ЛОЖЬ, функция возвращает
значение только в том случае, если найдено точное соответствие. В противном случае, если
значение не найдено, формула возвращает ошибку #Н/Д. Безусловно, поиск приближенного
соответствия значения табельного номера служащего не имеет в данном случае никакого
смысла. Обратите внимание также на то, что табельные номера служащих в столбце С распо
ложены не в порядке возрастания, поскольку при использовании в качестве четвертого аргу
мента логического значения ЛОЖЬ упорядочения по возрастанию не требуется.
Совет
Если нужно, чтобы вместо ошибки # н /д на экране отображалась другая ин
формация (в случае, если табельный номер служащего не найден), исполь
зуйте функцию еслиошибка. Ее синтаксис следующий:
ЕСЛИОШИБКА( значение ; значение_ если_ ошибка)
где:
♦ значение — это произвольное выражение; обычно это формула, по
тенциально способная вернуть ошибку;
♦ зна чение_если_ошибка — это любое выражение, содержащее чис
ла, строки, ссылки на ячейки или формулы.
Следующая формула вместо ошибки # н /д отображает текст не найдено:
=ЕСЛИОШИБКА(ВПР(В 1 ; СписокСлужащих; 2 ; ЛОЖЬ) ) ; " Не н а й д е н о ")
226 Часть II. Использование функций в формулах
Рабочий лист, показанный на рис. 8.8, содержит два диапазона: первый включает
ячейки D2 :D7 (с именем Д иап азон01), второй— ячейки Е 2:Е 7 (с именем Д иапа
зоне^). Текст, который необходимо найти, содержится в ячейке В1 (с именем Слово).
Примечание
Не забывайте, что при вводе формулы массива необходимо использовать
клавиши <Ctrl+Shift+Enter>.
Рис. 8.9. Данный рабочий лист содержит много таблиц поиска данных
228 Часть II. Использование функций в формулах
Совет
Существует еще один способ быстрого создания формулы для поиска зна
чения на пересечении строк и столбцов. Он предусматривает присвоение
имен каждой строке и каждому столбцу таблицы. Для этого выделите табли
цу с данными и выберите команду Формулы*=>Определенные именаоСоздать
из выделенного. После создания имен приведенные формулы будут выгля
деть гораздо проще.
=3ажигалки Июль
Данная формула использует пересечение двух диапазонов и возвращает
данные о продажах зажигалок в июле. Для обращения к ячейкам, в которые
введены месяц и товар, используйте следующую формулу:
=ДВССЫЛ(Месяцы) ДВССЫЛ(Товар)
Эта формула преобразует значения ячеек с именами месяцы и товар в ссылки
на диапазоны и находит пересечение. (Оператор пересечения подробно опи
сан в главе 3.)
Таблица поиска содержит список автомобилей, для каждого из которых указаны про
изводитель, модель и код. Диапазоны рабочего листа названы следующим образом.
F2:F12 Код
В1 Производитель
В2 Модель
D2:D12 Диапазон4
Е2:Е12 ДиапазонБ
Рис. 8.14.хФормула в ячейке В2 воз- Рис. 8.15. Данная рабочая книга демонстрирует процесс
вращает адрес ячейки в диапазоне поиска значения, ближайшего к заданному
Данные, в которой содержится зна
чение, введенное в ячейку В1
Формула, приведенная ниже (в ячейке В2), для принятия решения использует функ
цию ЕСЛИ. Если в диапазоне х найдено значение, в точности соответствующее искомо
му, формула возвращает соответствующее значение из диапазона у (используется функ
ция ПРОСМОТР). Если же точное соответствие не найдено, формула использует функцию
ТЕНДЕНЦИЯ и возвращает значение у, рассчитанное методом поиска максимально близ
кой величины (не прибегая к линейной интерполяции).
=ЕСЛИ(В1=ПРОСМОТР(В1 ; х ; х ) ; ПРОСМОТР(ИНДЕСК(х; ПОИСКПОЗ(
ПРОСМОТР( В 1 ; х ; х ) ; х ; 0 ) ) ; х ; у ) ; ТЕНДЕНЦИЯ( у ; х ; В 1 ) )
Глава
Базы данных
и таблицы листа
В этой главе...
♦ Таблицы и терминология
♦ Работа с таблицами
♦ Расширенная фильтрация
♦ Определение условий расширенного фильтра
♦ Функции баз данных
♦ Вычисление промежуточных итогов
Таблицы и терминология
Похоже, компания Microsoft следует традиции в присвоении имен создаваемым сред
ствам и технологиям. В версии Excel 2003 были введены списки, обеспечивающие работу
баз данных рабочего листа. В версии Excel 2007 списки эволюционировали в таблицы.
Дополнительную путаницу вносят и так называемые таблицы данных, которые вообще
не имеют ничего общего с полноценными таблицами Excel. В этом разделе представле
ны термины, используемые на протяжении всей главы.
• База данных листа. Это определенным образом организованная совокупность
информации. Она состоит из необязательной строки заголовков (описательного
238 Часть II. Использование функций в формулах
текста) и находящихся под ней строк, содержащих числовые или текстовые значе
ния. В этой книге под базой данных листа понимается прямоугольный диапазон,
в котором каждая строка содержит информацию о конкретном элементе данных
(аналогично таблицам реляционных баз данных). В общем случае термин база
данных используется в довольно широком смысле, означая многие понятия, такие
как реляционные базы данных (SQL Server, Oracle и т.д.), файлы CSV, инициали-
зационные файлы и т.д. База данных рабочего листа Excel больше похожа на
обычную таблицу в стандартной базе данных. В отличие от реляционных баз дан
ных, Excel не позволяет устанавливать отношения между таблицами.
• Таблица листа. Это база данных рабочего листа, преобразованная в специальный
диапазон с помощью команды Вставка^Таблицы^Таблица. Преобразование
базы данных рабочего листа в таблицу предоставляет пользователю существенные
преимущества, однако в то же время имеет некоторые недостатки. Все они будут
описаны в настоящей главе.
В терминологии баз данных столбец такой таблицы называется полем, а строка — за
писью. Используя эту терминологию, можно сказать, что диапазон, показанный на
рис. 9.1, имеет пять полей (Имя, Г о д о в а я з а р п л а т а , М е с я ч н а я з а р п л а т а ,
Филиал, Д а т а п р и е м а н а р а б о т у ) и двадцать записей. Учитывайте, что поля часто
называют просто столбцами, а отдельные ячейки — полями.
Глава 9. Базы данных и таблицы листа 239
Размер базы данных, которую можно создать в Excel, ограничен только областью ра
бочего листа. Теоретически база данных рабочего листа может иметь более 16 тысяч
столбцов и состоять из более миллиона записей. Такая база данных способна заставить
даже самый современный компьютер работать со скоростью черепахи.
Пример таблицы
На рис. 9.2 показана база данных рабочего листа (см. рис. 9.1), преобразованная
в таблицу с помощью команды Вставка^Таблицы«^Таблица.
Работа с таблицами
Осваивая работу с таблицами, вы вскоре обнаружите, что они предлагают ряд преиму
ществ по сравнению со стандартными базами данных рабочего листа. Главное преимущество
использования таблиц — это упрощение форматирования. Об этом речь пойдет далее.
Если в формулах используется множество именованных диапазонов, синтаксис таб
лицы является прекрасной альтернативой для создания имен столбцов и всей таблицы
в целом. К тому же при внесении изменений в таблицу именованные диапазоны автома
тически корректируются соответствующим образом.
Еще одно преимущество относится к работе с диаграммами. Если диаграмма создает
ся на основе таблицы, ряды диаграммы автоматически расширяются при добавлении
в таблицу новых данных.
Если ваша компания использует службу SharePoint, вы получите в руки дополнитель
ное преимущество — сможете публиковать таблицу на сервере SharePoint. Для этого вы
берите в контекстной вкладке команду Работа с таблицами^Конструктор^Данные
из внешней таблицы^Экспорт^Экспорт таблицы в список SharePoint. Эта коман
да открывает диалоговое окно, в котором можно ввести адрес сервера, а также предоста
вить дополнительную информацию, необходимую для публикации таблицы.
В то же время таблицы, по сравнению с базами данных рабочего листа, имеют ряд
ограничений.
Ограничения таблиц
Таблицы Excel имеют ряд преимуществ по сравнению с обычными базами данных
рабочего листа. Однако по определенным причинам создатели инструментария таблиц
наложили на таблицы некоторые ограничения.
• Если рабочий лист содержит таблицу, невозможно создать и применять пользова
тельские представления.
• Таблица не может содержать формулы массивов, распространяющиеся на не
сколько ячеек.
• Нельзя автоматически вставлять промежуточные итоги.
• Нет возможности совместно использовать рабочую книгу, содержащую таблицу.
• Нельзя отслеживать изменения в рабочей книге, содержащей таблицу.
• Нельзя также использовать команду Главная^Выравнивание^Объединить и помес
тить в центре, так как она искажает разделение на строки и столбцы.
Если одно из этих ограничений нарушает ваши планы, преобразуйте таблицу в
обычную базу данных рабочего листа с помощью команды Конструктор^Сервис^Прео
бразовать в диапазон.
Создание таблиц
Excel позволяет создавать таблицы из пустого диапазона ячеек, однако чаще пользо
ватели преобразуют в таблицы уже существующие диапазоны данных (базы данных ра
бочего листа). Следующие инструкции предполагают, что уже существует диапазон дан
ных, подходящий для создания таблицы.
1. Убедитесь, что диапазон не содержит пустых строк и столбцов.
2. Активизируйте любую ячейку в диапазоне.
242 Часть II. Использование функций в формулах
Рис. 9.3. При выборе ячейки таблицы отображается контекстная вкладка Работа с таблицами,
Конструктор
Совет
Существует еще один метод преобразования диапазона в таблицу — выбе
рите команду Главная^Стили^Форматировать как таблицу.
В диалоговом окне создания таблицы Excel может принять некорректное решение от
носительно адреса диапазона, если таблица не отделена от остальной информации рабо
чего листа хотя бы одной пустой строкой или столбцом. В этом случае скорректируйте
поле адреса диапазона или щелкните на кнопке Отмена и реорганизуйте рабочий лист
так, чтобы отделить таблицу от остальной информации пустой строкой и столбцом.
О
Совет
Если применение стиля не срабатывает или работает некорректно, скорее
всего, к диапазону до преобразования в таблицу уже был применен какой-
либо стиль (табличное форматирование не замещает собой обычное). Для
очистки текущего форматирования цвета фона выделите всю таблицу и вы
берите команду Главная^Шрифт^Цвет заливки^Нет заливки. Для очистки
текущего цвета шрифта выберите команду Главная^Шрифт^Цвет текста. По
сле выполнения этих команд стили таблицы будут применяться корректно.
Совет
При щелчке правой кнопкой мыши на ячейке таблицы открывается контекст
ное меню, содержащее связанные с таблицей команды.
Совет
Когда курсор ячейки находится в крайней нижней правой ячейке таблицы,
нажатие клавиши <ТаЬ> приводит к вставке новой строки внизу таблицы.
При помещении указателя мыши над маркером в правом нижнем углу таблицы его
форма изменяется на диагональную линию с двумя стрелками. Щелкните мышью и пере
тащите маркер вниз, и в таблицу будут добавлены новые строки. Щелкните мышью и пе
ретащите этот маркер вправо, и в таблицу будут добавлены новые столбцы.
При вставке в таблицу нового столбца в строку заголовка помещается имя С тол бец 1,
С толбец 2 и т.д. Эти имена лучше заменить на что-либо более информативное.
Перемещение таблицы
Для перемещения таблицы в новое место в пределах рабочего листа поместите указа
тель мыши над одной из ее границ. Когда форма указателя изменится на перекрестие
с четырьмя стрелочками, щелкните мышью и перетащите таблицу в новое место.
Для перемещения таблицы на другой рабочий лист (той же или другой рабочей кни
ги) выполните следующее.
1. Дважды нажмите клавиши <Ctrl+A>. Будет выделена вся таблица.
2. Нажмите <Ctrl+X> для вырезания выделенных ячеек.
3. Активизируйте другой рабочий лист и выделите ячейку, которая будет служить
верхним левым углом таблицы.
4. Нажмите <Ctrl+V>, и таблица будет вставлена.
Совет
Для того чтобы удалить дубликаты из базы данных рабочего листа, не яв
ляющегося таблицей, выберите команду Данные^Работа с данными1^ Уда
лить дубликаты.
Предупреждение
Дублирующиеся значения определяются по содержимому, отображаемому
в ячейках, а не по фактическим данным, в них хранящимся. Для примера
предположим, что одна из дат отображается как 1 5 . 0 5 . 2010 , а в другой
ячейке та же дата отображается как 15 м а я 201 о г . При удалении дублика
тов Excel будет трактовать эти даты как разные. Поэтому рекомендуется ис
пользовать во всех ячейках столбца один и тот же формат.
Компакт-диск
Примеры сортировки и фильтрации приведены в файле r e a l e s t a t e
t a b l e . x l s x ( c h a p te r 0 9 _ R U S . x l s x ) на прилагаемом компакт-диске.
Совет
Если вы работаете с базой данных рабочего листа, а не с таблицей, для до
бавления стрелок к ячейкам строки заголовков выберите команду Дан-
ные^Сортировка и фильтр^Фильтр. Эта команда работает как переключа
тель, так что если захотите впоследствии скрыть стрелки, достаточно будет
еще раз воспользоваться этой же командой. Эту же команду можно исполь
зовать для сокрытия стрелок в строке заголовков таблицы.
248 Часть II. Использование функций в формулах
Сортировка таблицы
Сортировка таблицы реорганизует ее строки, основываясь на содержимом заданного
столбца (столбцов). К примеру, сортировка может понадобиться, чтобы упорядочить
фамилии сотрудников по алфавиту или по суммам продаж.
Для сортировки таблицы по некоторому столбцу щелкните на стрелке в заголовке
этого столбца и выберите одну из команд сортировки. Состав этих команд варьируется
в зависимости от типа столбца. Если в столбце содержится текст, будут предложены ко
манды Сортировка от А до Я и Сортировка от Я до А. Если в столбце содержатся чи
словые или логические данные, будут предложены команды Сортировка от минималь
ного к максимальному и Сортировка от максимального к минимальному. Если
в столбце содержатся даты, будут предложены команды Сортировка от старых к но
вым и Сортировка от новых к старым.
В любом случае можно также воспользоваться командами сортировки по цвету фона
или текста. Этот вариант уместен только в том случае, если изменены цвета стиля табли
цы или используется условное форматирование, зависящее от содержимого ячеек.
Совет
Если таблица отсо р тир о ва н а по некотором у столбцу, кнопка в его заголовке
дополняется стрелочкой, указы ваю щ ей тип с о р ти р о вки (по возрастанию или
по убы ванию ).
Компакт-диск
Рабочая книга базы данных агентства недвижимости с названием r e a l e s t a t e
t a b l e . x l s x ( c h a p t e r 0 9 _ R U S . x l s x ) содержится на прилагаемом компакт-диске.
Фильтрация таблицы
Под фильтрацией таблицы понимается отображение в ней только тех строк, которые
удовлетворяют заданному критерию (все остальные строки скрываются).
Совет
Программа Excel предлагает два способа фильтрации таблицы. В этом раз
деле будет описан стандартный метод, ранее называемый автофильтром.
В большинстве случаев этот метод является вполне адекватным. Более
сложные критерии требуют использования расширенной фильтрации, кото
рая рассматривается далее.
Используя описанную выше таблицу агентства недвижимости, предположим, что нас
интересуют только объекты, расположенные в Митино. В заголовке столбца Регион
щелкните на стрелке и снимите флажок Выделить все. Программа снимет флажки во
всех значениях данного столбца. После этого установите флажок около значения
Митино и щелкните на кнопке ОК. Результат фильтрации показан на рис. 9.9 — в табли
це теперь отображаются только объекты, расположенные в Митино. Обратите внимание,
что некоторые номера строк пропущены — в этих строках находятся отфильтрованные
(т.е. скрытые) данные. Также обратите внимание на значок кнопки в заголовке столб
ца — в нем теперь отображается пиктограмма фильтрации.
Совет
В строке итогов отображаются результаты вычислений по видимым строкам.
Глава 9. Базы данных и таблицы листа 251
Предупреждение
Функция промежуточные .итоги является единственной функцией, игнори
рующей данные, скрытые фильтрацией. Если используются другие форму
лы, обращающиеся к данным отфильтрованной таблицы, их невозможно
скорректировать так, чтобы учитывались только видимые строки. К примеру,
если используется функция сумм д л я суммирования значений в столбце,
а некоторые строки скрыты, ее результат будет отражать все данные столб
ца — даже невидимые.
Предупреждение
Если строка итогов скрыта, то формула, ссылающаяся на ячейку строки ито
гов таблицы, вернет ошибку. Как только строка итогов снова будет восста
новлена на экране, эта формула будет продолжать работать, как полагается.
Функция ПРОМЕЖУТОЧНЫЕ.итоги
Функция п р о м е ж у т о ч н ы е .итоги достаточно универсальна, однако в то же время
она является одной из самых противоречивых функций в арсенале Excel. Прежде всего,
само ее имя вводит в заблуждение, поскольку она способна вычислять не только итоги.
Первый ее аргумент имеет числовой тип и определяет операцию, выполняемую функ
цией. Эти числа практически невозможно запомнить, однако функция автозавершения
Excel поможет вам выбрать нужное число.
В версии Excel 2003 функция п р о м е ж у т о ч н ы е .итоги была расширена дополнитель
ными возможными значениями первого аргумента, решающими проблемы совмести
мости с более ранними версиями Excel.
Первый аргумент функции определяет реально используемую функцию. К примеру,
если первым аргументом является единица, работа функции п р о м е ж у т о ч н ы е .итоги
аналогична функции с р з н а ч . В следующей таблице представлены возможные значения
первого аргумента функции п р о м е ж у т о ч н ы е . итоги.
Глава 9. Базы данных и таблицы листа 253
Если первый аргумент функции больше ста, она работает по-другому. В частности,
в область расчетов не попадают данные скрытых вручную строк данных. Если же исполь
зовать первый аргумент, меньший 100, то в формуле промежуточные .итоги учитываются
все вручную скрытые строки, а не учитываются только строки, отсеянные фильтрацией.
Дополнительную путаницу вносит то, что скрытые вручную строки не всегда тракту
ются одинаково. Если строка скрыта вручную в диапазоне, который тоже скрыт фильт
ром, Excel трактует их уже как отфильтрованные, а не скрытые вручную. В этом случае
функция с первым аргументом, большим ста, будет вести себя точно так же, как и с ар
гументом, меньшим ста. При этом снятие фильтра приведет к отображению всех
строк — даже тех, которые ранее были скрыты вручную.
Возможность использования первого аргумента, большего ста, была впервые вве
дена в версии Excel 2003. Эту обновленную версию функции промежуточные .итоги
можно использовать в любом месте рабочей книги, а не только в таблицах. Однако уч
тите, что функция не имеет обратной совместимости. Если первый аргумент функции
больше ста, а рабочая книга открыта в версии Excel, предшествовавшей Excel 2003, ее
результатом будет значение ошибки.
Еще одной интересной особенностью функции промежуточные .итоги является ее
способность точно вычислять общий итог. При этом функция игнорирует ячейки, тоже
содержащие формулы с функцией промежуточные .итоги. Эта особенность будет про
демонстрирована в разделе, посвященном созданию промежуточных итогов.
Компакт-диск
Рабочая книга t a b l e f o r m u l a s . x l s x (C h a p t e r О9_RUS . x l s x ) содержится
на прилагаемом компакт-диске.
Примечание
Символ @перед именем заголовка столбца означает конкретную строку,
в которой находится формула.
Обратите внимание, что на рабочем листе мы не создавали никаких имен — формула
использует ссылки на таблицу, основанные на названиях столбцов. Если изменить текст
заголовка столбца, все формулы, ссылающиеся на него, будут автоматически обновлены.
Несмотря на то что мы вводили формулу в первую строку данных таблицы, такой по
рядок не обязателен. В какую бы ячейку пустого столбца ни вводилась бы формула, она
автоматически будет скопирована во все его ячейки. Если необходимо отредактировать
формулу, скорректируйте содержимое любой ячейки столбца, и все изменения будут от
ражены в остальных его ячейках.
В приведенном выше примере при создании формулы была использована методика
указания. В качестве альтернативы можно вводить формулу вручную, используя стан
дартные ссылки на ячейки. К примеру, в ячейку ЕЗ можно ввести следующую формулу:
=D3-СЗ
Если формула вводится с использованием ссылок на ячейки, Excel все равно ее копи
рует автоматически во все остальные ячейки столбца — просто в данном случае не ис
пользуются имена столбцов.
Совет
Когда Excel вставляет в вычисляемый столбец формулу, отображается
смарт-тег, содержащий ряд вариантов дальнейших действий. Если предпо
читаете копировать формулу вручную, выберите вариант Не создавать вы
числяемые столбцы автоматически.
Эта формула всегда возвращает сумму всех значений таблицы, даже если в ней будут уда
ляться и добавляться строки и столбцы. Если вы измените имя таблицы, Excel автоматически
скорректирует все формулы, на нее ссылающиеся. К примеру, если имя Таблица 1 изменить
на Продажи, приведенная выше формула будет изменена на следующую:
=СУММ(Продажи)
Совет
Чтобы изм енить имя таблицы , вы делите в ней лю бую ячейку и о тр е д а кти
руйте поле Работа с та б л и ц а м и ^К о н с тр у к то р ^С в о й с тв а ^И м я таблицы. Так
же можно воспользоваться дисп е тче р о м им ен во вкладке Формулы.
Предупреждение
Учтите, что результат преды дущ ей ф ормулы не будет скорректирован, если
путем ф ильтрации скры ть стр о ки таблицы . П ропустить скры ты е строки
можно с пом ощ ью ф ункций а гр е га т и промежуточные . итоги. В данном
случае можно использовать след ую щ ие ф ормулы:
= П Р О М Е Ж У Т О Ч Н Ы Е .И Т О Г И ( 1 0 9 ; Т а б л и ц а 8 [ О б ъ е м ] )
= А Г Р Е Г А Т (9;1;Т а б л и ц а в [ О б ъ е м ] )
Перекрестная ссылка
О писание ф ункции суммесли привед ено в главе 7.
Глава 9. Базы данных и таблицы листа 257
Рис. 9.14. При создании формул, ссылающихся на данные таблицы, вам поможет функция
автозавершения
Совет
Для генерации последовательных номеров не скрытых ячеек отфильтрован
ной таблицы можно воспользоваться функцией промеж уточные .итоги. Ну
мерация будет изменяться по мере сокрытия и отображения строк в резуль
тате установки и снятия фильтра. Если таблица содержит имена столбцов в
строке 1, введите следующую формулу в ячейку А2, а затем скопируйте ее
во все последующие строки таблицы:
= ПРОМЕЖУТОЧНЫЕ. И Т О Г И ( 3 ; В $ 2 : В 2 )
Заполнение промежутков
Импортируя данные, вы можете получить рабочий лист, подобный тому, который по
казан на рисунке ниже. В этом примере каждая ячейка столбца а связана с несколькими
строками других столбцов. Сортировка такого списка может привести к беспорядочно
му отображению информации, и, в конечном счете, вы не сможете разобраться, кем из
продавцов было сделано такое количество продаж.
Хорошо, если список невелик. В этом случае отсутствующие данные можно вве
сти в пустые ячейки вручную. Однако что делать, если размер базы данных огро
мен? Тогда используйте следующий более эффективный способ заполнения пус
тующих ячеек.
Глава 9. Базы данных и таблицы листа 259
Расширенная фильтрация
В большинстве случаев стандартной фильтрации вполне достаточно. Однако если вы
столкнулись с ее ограничениями, может потребоваться расширенная фильтрация, намно
го более гибкая, чем стандартная, однако требующая дополнительной подготовительной
работы. Расширенная фильтрация обеспечит вас следующими возможностями:
• использование более сложных условий фильтрации;
• использование вычисляемых условий фильтрации;
• копирование строк, которые соответствуют определенным условиям, в другой
диапазон ячеек, указанный пользователем.
Расширенную фильтрацию можно применять в базах данных рабочего листа и в таблицах.
В настоящем разделе будет использована таблица агентства недвижимости, показан
ная на рис. 9.15. Она состоит из 125 записей и 7 полей. Эта база данных занимает диапа
зон А8 : G133 и имеет широкий набор различных типов данных: числовых и логических
значений, текстовых строк, а также дат. Строки над таблицей используются для опреде
ления критериев.
260 Часть II. Использование функций в формулах
Компакт-диск
Рабочая книга с базой данных агентства недвижимости r e a l e s t a t e d a t a
b a s e . x l s x (c h a p t e г o9_ rus . x l s x ) содержится на прилагаемом компакт-диске.
3. Если активная ячейка находилась внутри диапазона базы данных, Excel может
принять эмпирическое решение относительно диапазона данных. При необходи
мости (если Excel не угадала, что вам нужно) этот диапазон можно изменить.
4. Задайте в окне созданный в п. 1 диапазон условий.
Если был определен диапазон К р и т е р и й , программа вставит его в поле Диапа
зон условий. При необходимости можно изменить его.
5. Для выполнения фильтрации на месте (т.е. для сокрытия строк, которые не удов
летворят условиям) установите переключатель в положение фильтровать спи
сок на месте. Если выбрать второй вариант — скопировать результат в дру
262 Часть II. Использование функций в формулах
Совет \
При выборе варианта скопировать результат в другое место можно опреде
лить, какие столбцы включать в копию. Перед открытием диалогового окна
Расширенный фильтр скопируйте заголовки в первую строку области, в ко
торой собираетесь разместить отфильтрованные строки. В поле Поместить
результат в диапазон диалогового окна Расширенный фильтр задайте ссылку
на скопированные заголовки столбцов. После этого скопированные от
фильтрованные строки будут содержать только поля, заголовки которых бы
ли скопированы.
Примечание
Принцип использования отдельного диапазона условий для расширенного
фильтра возник вместе с появлением первой версии Lotus 1-2-3, еще два
десятилетия назад. Позднее этот метод был реализован в приложении Excel
и никогда не изменялся, даже несмотря на тот факт, что определение усло
вий расширенного фильтра — одно из самых непростых заданий при работе
в Excel. Хотя следует отметить, что использования стандартных средств
фильтрации Excel вполне достаточно для решения подавляющего большин
ства задач.
Примечание
Для выполнения подобной фильтрации можно использовать стандартные
средства.
Чтобы выбрать только те записи, которые в определенных полях содержат конкрет
ные значения, введите имя столбца в первую строку диапазона условий, а соответствую
щее значение— во вторую строку. К примеру, диапазон условий (А1 :А2), показанный
на рис. 9.19, позволяет отобрать только те записи, которые в столбце К о л -в о к о м н а т
содержат значение 4.
Рис. 9.19. Диапазон условий a i :А2 позволяет отобрать записи, которые со
держат характеристики четырехкомнатных квартир
Примечание
Имейте в виду, что при сравнении текстовых значений регистр символов не
учитывается. Например, символы с е * могут соответствовать как слову Се
меныч, так и слову СЕКРЕТНО.
ловие должно быть введено точно так же, как показано в этом примере: фор
мула с предшествующим ей знаком равенства. В качестве альтернативы мож
но использовать ведущий символ апострофа и исключить кавычки: ' =с*с
<>*с Записи содержат текст, который не заканчивается символом с
=???? Записи, содержащие четыре символа
о ? ? ? ? ? Все записи, которые содержат больше или меньше пяти символов, но не в
точности пять
<>*с* Записи, не содержащие символ с
~? Записи, содержащие единственный символ вопроса (символ тилццы заме
щает символ макроподстановки реальным символом вопросительного знака)
= Пустые записи
<> Непустые записи
= "= с " Записи, содержащие единственный символ с. Условие должно быть введе
но точно так же, как показано в этом примере: формула с предшествующим
ей знаком равенства. В качестве альтернативы можно использовать веду
щий символ апострофа и исключить кавычки: ' =с
На рис. 9.21 показан еще один пример диапазона условий, в соответствии с которым
из базы данных отбираются все записи, внесенные в список в марте месяце. Обратите
внимание, что одно из имен полей Д а т а п о д а ч и з а я в к и появляется в диапазоне два
жды, поскольку в данном случае используется следующее условие: дата занесения в спи
сок должна быть больше либо равна 1 марта И меньше либо равна 31 марта.
jK iN b П редупреж дение
Учтите, что условия, показанные на рис. 9.21, с американскими форматами
даты могут работать неправильно. Чтобы гарантировать совместимость за
данных условий с различными системами дат, используйте функцию д а т а ,
как, например, в следующих формулах:
=">="&ДАТА( 2 0 0 7 ; 3 ; 1 )
= "< ="&ДАТА(2 0 0 7 ; 3 ; 3 1 )
Чтобы объединить условия с помощью оператора ИЛИ, диапазон условий должен со
держать больше одной строки. Диапазон условий может содержать любое количество
строк, и все они будут объединены оператором ИЛИ. На рис. 9.22 показан диапазон усло
вий (A I : СЗ), содержащий две строки.
Примечание
Имейте в виду, что с помощью автофильтра подобный отбор выполнить не
возможно.
Можно повторить условие в нескольких строках, чтобы включить один и тот же кри
терий в несколько групп, объединенных оператором И. Предположим, что вы ищете од
нокомнатную квартиру в центре, но также можете рассмотреть предложения трехком
натных квартир в других районах с ценой меньше 250 тысяч долларов. На рис. 9.23 пока
зано, как использовать оператор ИЛИ между критериями Р е г и о н и Цена.
268 Часть II. Использование функций в формулах
В табл. 9.4 перечислены функции баз данных Excel. Каждая функция принимает один
столбец базы данных.
.................................................................. """Т ...................................................................
Та б лиц а 9 .4 . Ф ункции Excel, предназначенные д л я работы с базами д а н
ных электронной таблицы
Функция Описание функции
дсрзнач Возвращает среднее значение выбранных фрагментов базы данных
бсчёт Подсчитывает количество числовых ячеек в выборке из заданной базы
данных по конкретному критерию
бсчёта Подсчитывает количество непустых ячеек в выборке из заданной базы дан
ных по конкретному критерию
бизвлечь Извлекает из базы данных одну запись, удовлетворяющую заданному кри
терию
дмакс Возвращает максимальное значение из числа выделенных фрагментов
базы данных или записей базы данных
дмин Возвращает минимальное значение из числа выделенных фрагментов базы
данных или записей базы данных
бдпроизвед Перемножает значения определенных полей записей базы данных, удовле
творяющих критерию
дстандоткл Вычисляет стандартное отклонение по выборке, характеризующей гене
ральную совокупность, для выделенной части базы данных
дстандотклп Вычисляет стандартное отклонение по генеральной совокупности для вы
деленной части базы данных
бдсумм Суммирует числа в столбце базы данных на основе заданного условия
бддисп Оценивает дисперсию по выборке, характеризующей генеральную сово
купность, для выделенной части базы данных
бддисп п Вычисляет дисперсию по генеральной совокупности для выделенной части
базы данных
Все функции баз данных требуют отдельного диапазона условий, который указывает
ся в качестве последнего аргумента функции. Диапазон условий, используемый функ
циями баз данных, аналогичен диапазону условий расширенной фильтрации, которая
была рассмотрена ранее.
На рис. 9.25 в формуле в ячейке В22 используется функция БДСУММ. В частности,
формула возвращает сумму записей столбца Продажи, которые в столбце Месяц со
держат значение Ф е в р а л ь , а в столбце Регион — значения С е в е р или Юг.
=БДСУММ(В б :G21 ; F 6 ; Ус л ов и я )
В данном случае диапазон Вб : G21 представляет собой таблицу, F6 — заголовок столбца,
который будет суммироваться, а У с л о в и я — имя диапазона критериев (В 1: С2).
В альтернативной версии этой формулы используются структурированные ссылки на
таблицу:
=БДСУММ(Таблица4 [ # В с е ] ; Т а б л и ц а 4 [ [ # З а г о л о в к и ] ;
[Объем п р о д а ж ] ] /Условия)
К ом пакт-диск
Рабочая книга d a t a b a s e f o r m u l a s . x l s x (Chapter09_RUS . x l s x ) содер
жится на прилагаемом компакт-диске.
Глава 9. Базы данных и таблицы листа 271
Примечание
Может показаться весьма обременительным создавать диапазон условий
каждый раз при использовании функции базы данных. Excel предлагает не
которые альтернативные способы выполнения условного суммирования
и подсчета. В главе 7 приведены примеры, в которых используются функции
сум м ес л и , с ч ё т е с л и и различные другие методы.
Примечание
(S) Когда выделена таблица, команда Данные^Структура^Промежуточный итог не
доступна. Таким образом, этот раздел применим только при работе с базами
данных рабочего листа. Если данные находятся в таблице и нужно автоматиче
ски вставить промежуточные итоги, преобразуйте таблицу в диапазон, восполь
зовавшись командой Работа с таблицами^Конструктор^Сервис^Преобразовать
в диапазон. После вставки промежуточных итогов можно снова преобразовать
диапазон в таблицу с помощью команды Вставка^Таблицы^Таблица.
272 Часть II. Использование функций в формулах
К ом пакт-диск
Рабочая книга с примерами n e s t e d s u b t o t a l s . x l s x (Chapt e r О9_RUS . x l s x )
содержится на прилагаемом компакт-диске.
П редупреж дение
После добавления промежуточных итогов к отфильтрованному списку и уда
ления фильтра итоги перестают быть правильными.
Совет
При создании дополнительных промежуточных итогов не устанавливайте
в диалоговом окне флажок Заменить текущие итоги.
274 Часть II. Использование функций в формулах
Примечание
В большинстве случаев для обобщения данных лучше применять не функ
цию про ме жу т очные . итоги, а сводные таблицы (см. главу 18). Они более
гибкие и не требуют разработки формул. Функцию про ме жут очные . итоги
рекомендуется применять только для решения простых задач.
Дополнительные виды
вычислений
В этой главе...
• Преобразование единиц измерения
• Решение задач для прямоугольных треугольников
• Вычисление длин, площадей и объемов
• Решение систем линейных уравнений
• Округление чисел
• магнетизм;
• температура;
• меры жидкостей.
Примечание
В предыдущих версиях Excel функция преобр требовала установки пакета
анализа. Начиная с версии Excel 2007 эта функция встроена в саму программу.
Функция ПРЕОБР принимает три аргумента: преобразуемое значение, а также вход
ную и выходную единицы измерения. К примеру, если в ячейке А1 содержится расстоя
ние в милях, для преобразования его в километры можно воспользоваться следующей
формулой:
=ПРЕОБР( A I ; "mi" ; "km" )
Второй и третий аргумент представляют собой аббревиатуры единиц измерения —
все они приведены в соответствующей справке. Некоторые аббревиатуры используются
повсеместно, другие редко. Естественно, для выполнения преобразований нужно знать
точные аббревиатуры. Следует отметить, что в аббревиатурах имеет значение регистр
символов, поэтому следующая формула вернет ошибку:
=ПРЕОБР( A I ; "Mi" ; "km")
Функция ПРЕОБР более универсальная, чем кажется на первый взгляд. При исполь
зовании единиц измерения метрической системы можно воспользоваться множителями,
как в предыдущем примере. Фактическая аббревиатура единицы измерения, используе
мой в третьем аргументе, — m (метры). В предыдущем примере добавлен множитель
к — “к и л о ” , — чтобы выразить результат в километрах.
В некоторых ситуациях использование функции ПРЕОБР требует творческого подхо
да. К примеру, что делать, если нужно преобразовать десять квадратных ярдов в квад
ратные футы? Ни одна из этих единиц измерения не доступна в функции ПРЕОБР, одна
ко задачу поможет решить следующая формула:
ПРЕОБР(ПРЕОБР ( 1 0 ; " y d "; " f t " ) ; " yd "; " f t " )
Вложенный экземпляр функции ПРЕОБР преобразует ярды в футы, и этот результат
(3 0) используется в качестве первого аргумента внешнего экземпляра функции. Анало
гично, чтобы преобразовать кубические ярды в кубические футы, можно исцользовать
следующую формулу:
ПРЕОБР(ПРЕОБР(ПРЕОБР( 1 0 ; " y d "; " f t " ) ; " y d "; " f t " ) ; " y d " ; " f t " )
К ом пакт-диск
На прилагаемом компакт-диске есть рабочая книга т аблица п р е о б р а з о в а
ний е д и н и ц . x l s x , в которой содержатся коэффициенты преобразования
множества единиц измерения друг в друга. В этой рабочей книге использу
ется не функция п р е о б р , а только запрограммированные множители.
К ом пакт-диск
Рабочую книгу, содержащую формулы расчета различных элементов прямо
угольного треугольника по двум известным элементам, можно найти на прила
гаемом компакт-диске в файле s o l v e r i g h t t r i a n g l e . x s l m ( C h a p t e r l 0 _
RUS. xl sm) .
Примечание
Все тригонометрические функции Excel подразумевают, что угол, являю
щийся аргументом функции, представлен в радианах. Для преобразования
градусов в радианы используйте функцию радианы. Для обратного преоб
разования радиан в градусы примените функцию градусы .
Если известны высота и основание, следующую формулу можно использовать для
вычисления угла между гипотенузой и основанием (угол А).
=ATAN( Высота/Основание)
Формула, приведенная выше, возвращает значение угла в радианах. Для преобразо
вания значения в градусы используйте следующую формулу:
=ГРАДУСЫ(ATAN( В ы с о т а / О с н о в а н и е ) )
Если известны высота и основание, следующая формула может использоваться для
вычисления угла между гипотенузой и высотой (угол В):
=ПИ( ) / 2 - ATAN(Высота/ Ос нование )
Данная формула возвращает значение в радианах. Для преобразования значения
в градусы используйте следующую формулу:
= 9 0 -ГРАДУСЫ(ATAN(Высота/ Ос нование )
На рис. 10.2 показана рабочая книга, которая содержит формулы для вычисления раз
личных элементов прямоугольного треугольника.
Чтобы вычислить периметр квадрата, умножьте длину одной из его сторон на 4. Сле
дующая формула вычисляет периметр квадрата, сторона которого находится в ячейке
с именем с т о р о н а :
=сторона*4
Площадь трапеции
Для вычисления площади трапеции необходимо сложить две параллельные стороны,
умножить их сумму на высоту и разделить на 2. Следующая формула вычисляет площадь
трапеции, используя ячейки с именами с т о р о н а 1, с т о р о н а 2 и в ы с о та:
= ( ( с т ор о на 1 + с т о р о н а 2 ) * в ы с о т а ) / 2
Площадь треугольника
Площадь треугольника представляет собой сумму основания и высоты треугольника,
деленную на два. Следующая формула рассчитывает площадь треугольника, используя
ячейки с именами о с н о в а н и е и в ы с о та:
= (основание*высота)/2
Объем цилиндра
Чтобы вычислить объем цилиндра, необходимо умножить квадрат радиуса основания
цилиндра на число к и высоту. Следующая формула рассчитывает объем цилиндра, ис
пользуя ячейки с именами р а д и у с и в ы с о та:
= (ПИ( ) * ( р а д и у с А2 ) *высота)
Глава 10. Дополнительные виды вычислений 281
Объем пирамиды
Чтобы вычислить объем пирамиды, необходимо определить площадь ее основания, а
затем умножить ее на высоту и разделить на 3. Представленная ниже формула вычисляет
объем пирамиды, используя для расчетов ячейки с именами ширина (ширина основа
ния), д л и н а (длина основания) и в ы с о т а (высота пирамиды).
= (ширина*длина*высота) / 3
Рис. 10.3. Рабочая книга, содержащая формулы для расчета системы уравнений
Перекрестная ссылка
К ом пакт-диск
Рабочую книгу с формулами, показанными на рис. 10.3, можно найти на прила
гаемом компакт-диске в файле s i m u l t a n e o u s e q u a t i o n s . x l s m ( Chapt erlO_
RUS .xlsm).
Округление чисел
Excel предоставляет в ваше распоряжение ряд функций, которые позволяют с помо
щью различных методов округлять введенные и вычисленные значения. Перечень этих
функций приведен в табл. 10.1.
Предупреж дение
Примите к сведению, что существует разница между округлением значений
и их форматированием. При форматировании значения для отображения
конкретного положения десятичной точки в формулах, обращающихся
к этим значениям, используется внутреннее, истинное значение; отличие
заключается лишь во внешнем представлении на экране. Когда же значение
округляется, в связанных с ним формулах используются неточные (до опре
деленного знака) величины.
Перекрестная ссылка
Предупреж дение
Значение, возвращ аем ое ф ункцией р у б л ь . д р о б ь , нельзя использовать
в д р угих вы числениях. Значение, полученное в преды дущ ем прим ере, будет
интерпретироваться как 9 ,1 , но не как 9 ,2 5 . Чтобы вы полнить расчеты с и с
пользованием д а нного значения, его необходим о преобразовать обратно в
значение десятичной др о б и. Для это го используется ф ункция рубль . д е с .
Совет
Безусловно, ф ункции р у б л ь . д р о б ь и р у б л ь . д е с предназначены не только
для обработки значений в денеж ном ф ормате. Их можно использовать, на
прим ер, для работы с ф утами и д ю йм ам и. П редполож им , что мы им еем зн а
чение, представленное в ф у та х — 8 ,5 . Чтобы преобразовать его в футы
и дю йм ы , воспользуйтесь привед енной ниже ф орм улой. Данная ф ормула
возвращ ает значение 8 , Об (или 8 футов и 6 д ю й м о в).
= РУБЛЬ.ДРОБЬ( 8 , 5 ; 1 2 )
Еще одним примером использования этих функций является ведение стати
стики в бейсболе. Подающий может выполнить 6 2/3 серии подач, что обыч
но отображается, как 6 , 2 . Следующая формула возвращает значение 6 , 2 :
= РУБЛЬ. ДРОБЬ(6 + 2 / 3 ; 3 )
Использование функций ц е л о е и о т б р
Внешне функции Excel ЦЕЛОЕ и О Т Б Р кажутся подобными, поскольку обе преобра
зуют исходное значение в целое. Функция О Т Б Р просто удаляет дробную часть числа. А
функция ЦЕЛОЕ округляет число вниз до ближайшего целого, основываясь на дробной
части числа.
На практике функции ЦЕЛОЕ и О Т Б Р возвращают различные результаты только то
гда, когда в качестве аргумента функции используется отрицательное число. Например,
следующая формула возвращает значение - 1 4 , 0 :
=0ТБР( - 1 4 , 3 )
Напротив, значение, которое возвращает следующая формула, будет равно - 1 5 , 0,
поскольку значение - 1 4 , 3 округляется вниз до следующего меньшего целого.
=ЦЕЛОЕ( - 1 4 , 3 )
Функция О Т Б Р использует дополнительный (необязательный) параметр, отображаю
щий количество десятичных знаков, которые должны присутствовать в возвращаемом
значении. Например, приведенная ниже формула возвращает значение 5 4 , 33 (после за
пятой остается два знака).
=0ТБР( 54, 3 3 3 3 3 3 3 ; 2 )
286 Часть II. Использование функций в формулах
Финансовые формулы
В этой части...
Глава 11
Знакомство с финансовыми формулами
Глава 12
Формулы дисконтирования и амортизации
Глава 13
Финансовые планы
Глава
Знакомство с финансовыми
формулами
В этой главе...
♦ Финансовые концепции
♦ Основные финансовые функции Excel
♦ Вычисление компонентов процентной ставки и основных выплат
♦ Преобразование процентных ставок
♦ Ограничения финансовых функций Excel
♦ Вычисления, связанные с облигациями
Финансовые концепции
Перед тем как приступить к рассмотрению финансовых функций Excel, следует озна
комиться с некоторыми основными концепциями этой области. Упоминаемые здесь кон
цепции не специфичны для Excel, однако их следует принимать в расчет при создании
финансовых формул. Если вы хорошо знакомы с финансовыми концепциями и термино
логией, можете лишь бегло просмотреть этот раздел. Если же вы новичок в сфере эко
номики, вам необходимо четкое понимание описываемых концепций.
Совет
Когда формула возвращает заведомо неправильный результат, прежде все
го проверьте знак, отражающий направление движения денег.
Глава 11. Знакомство с финансовыми формулами 291
Примечание
Авансовые платежи (или первоначальные взносы) не рассматриваются как пе
риодичные, поэтому на них не влияет аргумент Тип. Авансовые платежи исполь
зуются во многих примерах этой главы (их обработка будет описана далее).
Совет
Фактически в примерах рассматривается одна и та же ситуация с разных
сторон. Многие аргументы во всех этих функциях одни и те же.
К ом пакт-диск
Все примеры ЭТОЙ главы содержатся в книге b a s i c f i n a n c i a l formu
l a s . x l s x ( c h a p t e r i i _ R U S . x l s x ) на прилагаемом компакт-диске.
В приведенной выше формуле вы, наверное, заметили, что процентная ставка взята как бы
ниоткуда. Функция ПС обычно используется для определения, сколько стоят на настоящий
момент будущие выплаты. В этих ситуациях конкретная процентная ставка недоступна.
Глава 11. Знакомство с финансовыми формулами 293
Примечание
Существует множество мнений относительно того, какую процентную ставку
лучше использовать при определении приведенной стоимости. Выбор про
центной ставки в значительной мере зависит от вас самих. Одни говорят, что
нужно использовать текущую процентную ставку по банковским депозитам,
другие утверждают, что нужно брать процентную ставку по инвестициям, не
связанным с рисками, таким как казначейские облигации. В данном примере
была использована процентная ставка по инвестициям в ценные бумаги.
В приведенном выше примере была использована процентная ставка 12%. В результате
получилось, что инвестиция размером в 6800 долларов принесет тот же доход, что и деся
тилетнее ожидание платежей по 1 200 долларов. Если плательщик предложит вам 7000
долларов немедленно, вы можете вложить их и получить лучший финансовый результат.
Теперь давайте вернемся к таблицам и предположим, что у вас есть обязательства, по
которым вы должны ежегодно выплачивать кому-то по 1200 долларов в течение 10 лет.
Формула выглядит следующим образом:
=ПС ( , 12 ; 10 ; - 1 2 0 0 ; 0 ; 0 )
Вместо входящего, в этой формуле использован исходящий денежный поток. Резуль
тат ( - $ 6 7 8 0 , 2 7 ) также имеет знак, противоположный предыдущему примеру. В обо
их примерах сумма платежей формирует всю транзакцию, поэтому будущей стоимости
не существует. Также в примере использовано значение по умолчанию аргумента Тип.
Аргументы БС и Тип не являются обязательными; они были включены в пример только
для наглядности. На рис. 11.1 этот расчет показан в рабочей книге.
Примечание
Из соображений простоты в формулах примеров, приведенных в тексте гла
вы, используются только константы. На практике чаще всего в аргументы
функций подставляются ссылки на ячейки, как на рабочих листах примеров
на компакт-диске книги.
Таким образом, это будет единовременный платеж ровно через 15 лет. Если бы у вас
были сейчас какие-либо деньги, вы смогли бы инвестировать их под 8% годовых. Так как
периодических платежей не будет, аргумент Тип в формуле опущен.
Результат формулы свидетельствует о том, что если бы у вас было сейчас 31524,17
долларов и вы бы инвестировали их под 8%, то через 15 лет получили бы сотню тысяч
долларов (рис. 11.2).
Из этой формулы выходит, что приведенная стоимость всех будущих выплат состав
ляет 46698,82 доллара. Следовательно, можно сделать вывод: лучше вложить свои пять
десят тысяч долларов в какое-либо другое предприятие, чем на данных условиях отдать
родственнику.
Глава 11. Знакомство с финансовыми формулами 295
Совет
Подставляя в аргументы функции различные значения, можно найти нужное
решение. Данный результат вы можете выставить в качестве контрпредло
жения. При этом вы даже можете воспользоваться функцией подбора пара
метра программы Excel. Для этого выберите команду Данные^Работа с
данными^Анализ “что если’,с>Подбор параметра. Эта функция поможет по
добрать такие значения аргументов, при которых приведенная стоимость
будущих выплат составит нужную вам сумму.
Рис. 11.4. Вычисление будущей суммы платежей Рис. 11.5. Вычисление будущей стоимо
сти вклада
Совет
Лучше представить себе данную задачу следующим образом. Некто одол
жил вам 150 тысяч долларов, чтобы выкупить закладную на дом, хотя на са
мом деле этого не произошло. Вычисленное значение - 1 3 7 4 3 5 , ю — это
сумма выходного потока по истечении пяти лет.
Глава 11. Знакомство с финансовыми формулами 297
Рис. 11.6. Вычисление будущей стоимости Рис. 11.7. Вычисление платежей по займу
вклада и платежей
Эта формула возвращает значение 608,69 долларов. Таким образом, если вы в со
стоянии платить такие ежемесячные взносы, то можете получить в кредит 28 тысяч дол
ларов и полностью погасить его за 48 месяцев.
Предупреждение
Если одна из ф инансовых ф ункций вернула ош ибку #число ! или заведомо не
правильный результат, прежде всего нужно посм отреть на направление д е
нежного потока. О бращ айте внимание на знаки сумм в прим ерах настоящ его
раздела, и вы лучше поймете, какие знаки нужно присваивать аргументам.
Примечание
Процентные ставки обычно опредёляются из расчета одного года, даже если
срок займа больше или меньше года. Преобразование процентной ставки
к годовой позволяет сравнить различные условия кредитных договоров. Если
попытаться сравнить месячную процентную ставку с годовой, то первая будет
выглядеть существенно меньшей, хотя на самом деле таковой не является.
Глава 11. Знакомство с финансовыми формулами 299
Темпы роста
Чаще всего функцию СТАВКА используют для вычисления темпов роста на пенсион
ном счету.
Предположим, что баланс на пенсионном счету составляет 40 тысяч долларов на на
чало года и 48,5 тысячи — на конец. В течение года с каждой получки (т.е. раз в две не
дели) вы клали на счет по 200 долларов (т.е. осуществили 26 платежей). Следующая
формула показывает, как пополнялись ваши инвестиции (рис. 11.10):
=СТАВКА( 2 6 ; - 2 0 0 ; - 4 0 0 0 0 ; 4 8 5 0 0 ; , 0 1 ) * 2 6
В данном примере функция СТАВКА возвращает темпы роста за каждый период, по
этому для получения годовой процентной ставки следует умножить это число на 26. Ре
зультатом будет ставка 7,49%.
Примечание
Аргумент приближенного результата (прбл) используется в нескольких фи
нансовых функциях. Можно опустить этот аргумент; в таком случае Excel
применит значения по умолчанию. Если результат оказался далеким от
ожидаемого, попытайтесь подставить в этот аргумент близкое к ожидаемо
му значение.
Беспроцентные займы
Беспроцентные займы на самом деле редко таковыми являются, так как интерес заи
модателя уже учтен в стоимости товара. Предположим, что вы хотите купить кухню за 3
тысячи долларов и оформляете на нее беспроцентную рассрочку на 12 месяцев. Если бы
у вас было достаточно наличных, вы смогли бы купить эту же кухню за 2500 долларов —
фактически вы переплачиваете за рассрочку 500 долларов. Рассчитанная по следующей
формуле приведенная процентная ставка составляет 35,07%:
=СТАВКА( 1 2 ; - 3 0 0 0 / 1 2 ; 2 5 0 0 ; 0 ; 0 ; , 0 1 ) * 1 2
Проверить результаты функции СТАВКА можно, создав таблицу погашения кредита
(рис. 11.11). Если баланс стремится к нулю, значит, процентная ставка вычислена правильно.
= ( 2 0 * 1 2 ) -КПЕР( , 0 5 7 5 / 1 2 ; ПЛТ( 0 , 0 7 5 / 1 2 ; 2 0 * 1 2 ; 2 0 0 0 0 0 / 0 ) ;
2 0 0 0 0 0 ;0 ;0 )
Примечание
Функция кпер может возвращать дробный результат (например, 4,26 меся
цев), однако вас он, вероятно, не удовлетворит. В этом случае воспользуй
тесь встроенными в Excel средствами подбора оптимального результата
(команда Данные^Работа с данными«=>Анализ “что если,,с>Подбор параметра).
К ом пакт-диск
Примеры, приведенные в этом разделе, содержатся на прилагаемом ком
пакт-диске в файле p ay me nt c o m p o n e n t s . x l s x ( C h a p t e r l l _ R U S . x l s x ) .
Примечание
Если вы уже создали план погашения кредита, то эти функции не будут осо
бенно полезны, так как вы можете просто обратиться к плану. Функции осплт
и прплт используются для определения соотношения процент/основной
вклад для конкретного платежа.
Синтаксис этих двух функций приведен ниже (полужирным шрифтом выделены обя
зательные параметры).
ОСПЛТ( ставка ; период ; клер ; ПС; б с ; т и п )
ПРЛТ( ставка ; период ; клер ; пс ; б с ; т и п )
Как и в функциях погашения кредита, аргументы с т а в к а , п е р и о д и к п е р имеют
одни и те же приведенные единицы измерения времени. Если срок займа выражен в ме
сяцах, аргумент с т а в к а будет равен проценту за месяц, а аргумент п е р и о д (т.е. срок
начисления процента) указывает на конкретный месяц.
В примере на рис. 11.14 показаны вычисления трех платежей 30-летнего кредита: за
первый, 180-й и 360-й (т.е. последний) период. Формулы вычисления составляющих
первого платежа следующие:
=ОСПЛТ(,0 5 5 ; 1 ; 3 0 * 1 2 ; 3 5 0 0 0 0 )
=ПРПЛТ( , 0 5 5 ; 1 ; 3 0 * 1 2 ; 3 5 0 0 0 0 )
Примечание
Не правда ли, интересный (и удручающий) факт, насколько мала доля ос
новной составляющей первой выплаты.
Формулы преобразования
Ограниченные процентные ставки можно преобразовать друг в друга; для этого Excel
предлагает две функции: НОМИНАЛ и ЭФФЕКТ. Периодическая ставка равна номиналь
ной, деленной на количество составляющих периодов; никакой специальной функции
для такого преобразования не требуется. Синтаксис данных функций таков:
НОМИНАЛ(эффективнаяставка;клер)
ЭФФЕКТ(номинальная_ставка;кпер)
Примечание
Большинство банков и других финансовых учреждений рассчитывает годо
вую номинальную процентную ставку и добавляет суммы на счет ежемесяч
но. Однако в отчетах о доходах от инвестиций или при сравнении процент
ных ставок чаще всего используются эффективные процентные ставки.
К примеру, 12 процентов годовых, начисляемых ежемесячно, гораздо боль
ше тех же 12 процентов, начисляемых ежеквартально, и на первый взгляд
трудно оценить, сколько составляет разница.
Глава 11. Знакомство с финансовыми формулами 305
К ом пакт-диск
Примеры этого раздела содержатся в файле r a t e con version .xlsx
( c h a p t e r i i _ R U S . x l s x ) на прилагаемом компакт-диске.
Применяя эту формулу, мы получим, что фактическая сумма начислений за год со
ставит 12,6825%. Эффективную ставку можно вычислить и с помощью функции БС , ис
пользуя следующую формулу:
=БС( 0 , 1 2 / 1 2 ; 1 2 ; 0 ; - 1 ) - 1
Если вы знаете, что заплатили 56,41 долларов по процентам в прошлом году за заем в
одну тысячу, то номинальную процентную ставку можете вычислить следующим образом:
=НОМИНАЛ( 5 6 , 4 1 / 1 0 0 0 / 1 2 )
Результатом применения этой формулы будет 5,5% — именно такова годовая номи
нальная процентная ставка, начисляемая ежемесячно.
Ком пакт-диск
Примеры этого раздела содержатся в файле e x t e n d i n g b a s i c f u n c
t i o n s . x l s x (c h a p t e r i i _ rus . x l s x ) на прилагаемом компакт-диске.
К ом пакт-диск
Примеры этого раздела содержатся в файле b ond c a l c u l a t i o n s . x l s x
( c h a p t e r i i _ R U S . x l s x ) на прилагаемом компакт-диске.
Оценка облигаций
Предприятия, выпускающие ценные бумаги, устанавливают перечисленные выше по
казатели, основываясь на текущей рыночной конъюнктуре. Когда конъюнктура меняется,
стоимость облигаций тоже изменяется.
Для примера предположим, что некоторая компания выпустила облигации с номи
нальной стоимостью 100 долларов, сроком погашения 10 лет и 6%-ной ставкой, выпла
чиваемой дважды в год.
• Если процентная ставка по кредитам растет, ставка в 6% становится не такой
уж и привлекательной. Покупатели уже не захотят платить 100 долларов за обли
гацию — они будут их покупать за меньшую сумму.
• Если процентная ставка по кредитам падает, ставка в 6% становится привле
кательной. В данном случае покупатели готовы платить больше номинальной
стоимости.
Функция ЦЕНА вычисляет сумму, которую покупатели потенциально готовы запла
тить за облигацию в ожидании определенного дохода. Синтаксис этой функции таков:
ЦЕНА(расчетныйдень;срокпогашения;ставка;доходность;
погашение;частота;базис)
Учитывая приведенные выше факты, инвестор, желающий получить 7,5% годовых,
должен использовать следующую формулу для вычисления приемлемой цены облига
ции, срок погашения которой наступает через 8 лет.
=ЦЕНА(СЕГОДНЯ() ;СЕГОДНЯ()+ДАТА(8 ;1 ;0 ) ; , 0 6 ; #0 7 5;10 0 ;2 )
Результатом этой формулы будет 91,10 долларов— именно такую сумму стоит за
платить за облигацию номиналом в 100 долларов с шестью процентами годовых, чтобы
прибыльность составила 7,5%. Каждый год инвестор будет получать 6%*100 долларов,
плюс при погашении облигации он получит дополнительную прибыль в 8,90 долларов.
Эти два компонента — проценты и дисконт — формируют доходность облигаций.
Фактическая дата выпуска облигации может отличаться от даты ее покупки инвесто
ром. В рассмотренном примере облигации были выпущены за два года до их покупки,
следовательно, инвестор будет получать за них проценты только в течение 8 лет.
Если же процентная ставка упала с момента выпуска и инвестору достаточно 5,2%,
формула слегка изменится:
=ЦЕНА(СЕГОДНЯ();СЕГОДНЯ()+ДАТА(8 ;1 ;0 );, 0 6 ; , 0 5 2 ; 1 0 0 ; 2 )
При этих обстоятельствах инвестор может заплатить за стодолларовую облигацию
105,18 долларов. На рис. 11.17 эти вычисления показаны на рабочем листе.
Вычисление доходности
В предыдущем примере инвестор знал необходимую ему доходность и вычислял та
кую цену облигации, чтобы получить ее. Если же, наоборот, он знает цену облигации, то
функция ДОХОД поможет вычислить прибыльность инвестиций. Синтаксис этой функции
следующий:
Глава 11. Знакомство с финансовыми формулами 309
ДОХОД (расчетныйдень;срокпогашения;ставка;ценапокупки ;
номинал;частота;б а з и с )
Формулы дисконтирования
и амортизации
В этой главе...
♦ Использование функции ЧПС
♦ Использование функции ВСД
♦ Несколько ставок в функциях ВСД и МВСД
♦ Нерегулярные денежные потоки
♦ Использование функции БЗРАСПИС
♦ Вычисление амортизации
рого стремится добиться инвестор. Если функция ЧПС возвращает нуль, это указывает на
то, что будущие денежные потоки обеспечат тот уровень доходности, который в точно
сти равен заданной процентной ставке.
Если значение, возвращаемое функцией ЧПС, положительное, значит, будущие де
нежные потоки обеспечат более высокий уровень доходности, чем заданная процентная
ставка. Полученное положительное значение представляет собой ту сумму, которую ин
вестор мог добавить в изначальный денежный поток, чтобы получить заданный им уро
вень доходности.
Если ЧПС возвращает отрицательное значение, то инвестор не получает необходи
мой ему учетной ставки. Эта ставка часто называется пороговой рентабельностью. Для
достижения нужной ставки инвестор должен уменьшить изначальный исходящий денеж
ный поток (или увеличить начальный входящий поток) на величину, возвращаемую от
рицательным результатом ЧПС.
Примечание
Используемая учетная ставка -— это единая эффективная ставка на протя
жении периода учета денежных потоков. Таким образом, если денежные по
токи регистрируются ежемесячно, то необходимо использовать ежемесяч
ную эффективную ставку.
П редупреж дение
Это предположение отличается от определения, используемого большинст
вом финансовых калькуляторов. Оно также не совпадает с определением,
используемым такими учреждениями, как Институт бухгалтеров США (AIA).
Например, последнее определение устанавливает чпс как разницу между
текущим значением входящих и исходящих денежных потоков. Если исполь
зовать функцию чпс без дополнительной коррекции, то результат не будет
соответствовать определению AIA.
Основное назначение функции ЧПС — выяснить, обеспечат ли инвестиции ожидае
мый уровень доходности. Типичная последовательность денежных потоков состоит из
начального исходящего потока, за которым следует серия входящих потоков. К примеру,
вы покупаете тележку для приготовления хот-догов и полуфабрикат^ (изначальный вы
ходной поток) и летом каждый день продаете их на улице (серия входных потоков). Если
в качестве аргумента использовать начальный выходной поток, функция ЧПС предпола
гает, что изначальные инвестиции выполняются не сейчас, а в конце первого месяца (или
через какой-либо другой временной период).
На рис. 12.1 показан рабочий лист с вычислением чистой приведенной стоимости для
ряда денежных потоков: изначального выходного потока объемом в 20 тысяч долларов,
ряда месячных входных потоков и 8%-ного дисконта.
Формулы в строке 9 следующие:
В 9 : =ЧПС( 0 , 0 8 ; В 4 : В8 )
С 9 : =ЧПС( 0 , 0 8 ; С 5 : С8 ) +С4
D 9 : =ЧПС( 0 , 0 8 ; D 4 : D 8 ) * ( 1 + 0 , 0 8 )
Глава 12. Формулы дисконтирования и амортизации 313
Компакт-диск
Все примеры этого раздела содержатся в файле n e t p r e s e n t v a l u e . x l s x
на прилагаемом компакт-диске.
(chapteri2_RUS .x ls x )
Изначальная инвестиция
Многие вычисления чистой приведенной стои
мости начинаются с изначального выходного де
нежного потока, за чем следует серия входных по
токов. В представленном далее примере в момент
времени 0 был куплен снегоочиститель. В течение
следующих десяти лет этот снегоочиститель ис
пользовался для уборки дорог, что позволяло полу
чать доход. Практика показывает, что такого рода
снегоочиститель может работать десять лет, после
чего его ремонт уже не имеет смысла. На рис. 12.2
показан рабочий лист с вычислениями чистой при
веденной стоимости будущих денежных потоков,
ассоциированных с покупкой снегоочистителя.
Функция ЧПС в ячейке В 1 7 использует следую Рис. 12.2. Изначальная инвестиция
щую формулу, возвращающую сумму -21046,57 привела к будущим положительным
долларов: денежным потокам
=ЧПС($В$3;В7:В16)+В6
Чистая приведенная стоимость в данном примере оказалась отрицательной. Это свиде
тельствует о том, что покупку снегоочистителя нельзя назвать удачной инвестицией. На ре
зультат повлияло несколько факторов.
314 Часть III. Финансовые формулы
• Во-первых, “удачной инвестицией” можно назвать ту, которая приносит, как ми
нимум, 10% прибыли. Если вас удовлетворяет меньшая отдача от вложенных
средств, подставьте ее в формулу.
• Будущие денежные потоки часто можно оценить, но не всегда. В данном случае по
тенциальный покупатель снегоочистителя предполагает рост доходов в течение 10
лет. Если у покупателя имеется десятилетний контракт на уборку снега, он может
точно оценить будущие входящие денежные потоки. В противном случае оценить
будущие доходы можно, только основываясь на собственном опыте и прогнозах.
• В заключение, если вам удастся договориться с продавцом снегоочистителя
о скидке, десятилетняя инвестиция может оказаться вполне разумной.
Этот пример может показаться необычным, однако в реальной жизни такая ситуация
часто случается в сфере недвижимости, когда рента выплачивается авансом. Как следует
из формулы, вы можете выплатить по ренте 197292,96 долларов, и эта сумма погасит бу
дущие выплаты. Рента за первый год выплачивается авансом; поэтому она указана в ну
левом периоде.
Суммы погашения
В последнем приведенном примере отсутствует один ключевой элемент: переход соб
ственности по истечении семи лет. Вы можете арендовать жилье вечно, в случае чего по
требуется постоянно увеличивать в расчетах количество временных периодов. Можете
также продать недвижимость (рис. 12.5).
Рис. 12.4. Некоторые вычисления чпс содер- Рис. 12.5. Изначальные инвестиции могут иметь стои-
жат начальный входящий денежный поток мость и в конце периодов выплат
Примечание
Преобразование процентных ставок рассматривается в главе 11.
ВячейкеВ17 будущаястоимостьвычисляетсяпоследующейформуле:
= (Ч П С (В З;В 7:В 13)+ ( 1+ВЗ) А7
Глава 12. Формулы дисконтирования и амортизации 319
Предупреждение
А р гум е н т д и а п а з о н долж ен содерж ать значения. Пустые ячейки не р а с
см атриваю тся как содерж ащ ие значение нуль. Если д и а п а зо н значений с о
д ер ж ит нули или текст, ф ункция вед не возвращ ает ош ибку; вм есто это го
она возвращ ает неправильны й результат.
Компакт-диск
Все прим еры это го раздела содерж атся в файле i n t e r n a l r a t e o f re
t u r n . x l s x (C h a p t e r 12_RUS. x l s x ) на прилагаем ом ком пакт-диске.
ВСД — это учетная ставка, при которой денеж ные выплатыприводят кчистой при
веденнойстоимости, равной нулю. В формуле вячейке D 21 используется ВСД вфунк
цииЧПС относительнотехж евыплат. Подстановка ВСД вЧПС (поквартально) приводит
к результату $ 0 , 0 0 — такпроверяетсярезультат основных вычислений.
Проверка результатов
На рис. 12.14 показан рабочий лист, демонстрирующий взаим освязь функций ВСД,
ЧПСиПС. Проверкаих взаим освязиосновананасам омопределениифункции ВСД: сум
маположительныхиотрицательныхденежныхпотоковдолжнабытьравнанулю.
ЧистаяприведеннаястоимостьвычисляетсявячейкеВ16.
=ЧПС(D3; В 7 : В 1 4 ) +В6
ВнутренняяставкадоходностивычисляетсявячейкеВ17.
=ВСД(Вб:В 1 4 ; - 0 , 9 )
В столбце С с помощ ью формул вычисляется текущ ее значение. Результат ВСД
(вячейкеВ17) используется вкачествеучетной ставки, аколичество периодов (в столб
цеА) — вкачествеаргументакпер. Кпримеру, формулавячейкеС6следую щая:
= П С ($ В $ 1 7 ;А 6 ; 0 ; - В б )
Суммазначенийвстолбце Сравнанулю.
Глава 12. Формулы дисконтирования и амортизации 323
Компакт-диск
Все примеры этого раздела содержатся в файле m u l t i p l e i r r . x l s x (Chap-
t e r i2 _ R U S . x l s x ) на прилагаемом компакт-диске.
Рис. 12.15. Одни и те же денежные потоки могут иметь множество процентных ставок
Разделение потоков
Функция МВСД поможет реш ить последнююзадачу нескольких ставок. В примере
этогоразделадемонстрируетсяэффективностьиспользованияфункцииМВСД.
На рис. 12.16 показан рабочий лист, в котором используются те же данные, что и в
предыдущем. Для займа (ячейка ВЗ) и вклада (ячейка В4) предоставляются разные став
ки. Они используются в качестве аргументов функции МВСД (ячейка В19), а результат
равен 6,1279%.
=МВСД(В7:В16;ВЗ;В4)
Ряд потоков превращ ается вряд балансов, ане висходныеденежны е потоки. Внут
ренняя ставка возврата в этих управляемых балансомпотоках становится равной нулю
(илиблизкойкнулю). Учитываются всефинансовы епотокииинвестиции, необходимы е
для реализации проекта. Эквивалентнуюставку ВСД можно затемсравнить с другой
ставкой, такой как ставка не связанной с рисками нормыдоходности (как правило, ис
пользуется ставка по 90-дневному казначейскому векселю ). В результате можно будет
оценитьотносительныерискипроекта.
Что все это значит? Если оплачивать 9% на отрицательных балансах, то в проекте
возвращ аетсяставка8,579%наположительныхбалансах. Терминэквивалентная ставка
ВСД свидетельствует отом, что определяется эффективность возвращ ения денег, инве
стированныхвбанкилипредоставляемыхпо90-дневномуказначейскомувекселю .
Ставка займ а не обязательно должна быть фиксированной. Банк мог быпостроить
вычисления такимж е образом , но фиксировать депозитнуюставку и с помощ ьюфунк
цииПодбор параметра вычислитьэквивалентнуюставкузайм а.
Компакт-диск
Все прим еры это го раздела содерж атся в ф айле i r r e g u l a r c a s h f l o w s .
x l s x (C h ap te ri2 _R U S . x l s x ) на прилагаем ом ком пакт-диске.
Примечание
В отличие от функции чпс, функция чистнз предполагает, что денеж ные пото
ки связаны с началом каждого периода, а не с его концом. Работая с функцией
чпс, я исключал первый платеж из аргументов и добавлял его к результату
функции. Работа с ф ункцией чистнз не требует использования этого приема.
Глава 12. Формулы дисконтирования и амортизации 327
Предупреждение
Ф ункция чиствндох им еет те же проблемы при работе с нескольким и ста в
ками, что и ф ункция вед, — она ожидает, что см ена знака денеж ны х потоков
будет однократной: с полож ительны х значений на отрицательны е или в о б
ратном направлении. Если знак изм еняется несколько раз, результат ф унк
ции следует подставить в ф ункцию ч истнз и проверить, возвращ ает ли она
нуль. На рис. 12.19 проде м о н стр ир о ва н а такая проверка (в р а ссм а тр и ва е
мом прим ере знак изм еняется все го один раз).
Использование функции б з р а с п и с
Функция БЗРАСПИС вычисляет будущее значение начальной суммыпосле примене
ниявтечениеопределенноговременирядаразны хставок. Еесинтаксисследующий:
БЗРАСПИС(сум м а; п л а н )
Рис. 12.19. Функция чиствндох ра Рис. 12.20. Расчет ежемесячных до
ботает с нерегулярными денежными ходов инвестиционного фонда
потоками
Компакт-диск
Все прим еры э то го раздела содерж атся в ф айле f v s c h e d u l e . x l s x (c h a p -
t e r i2 _ R U S . x l s x ) на прилагаем ом ком пакт-диске.
Предупреждение
Обратите внимание на то, что функция бзр а с п и с не подчиняется соглашениям
о знаках. Она возвращает будущее значение с тем же знаком, что и текущее.
Вычисление амортизации
Внастоящ емразделеречьидет обамортизации — концепции, связаннойсуменьш е
ниембалансовой стоимости активавтечение врем ени его эксплуатации. Некоторые ак
тивыполностьюобесцениваю тся втечениеодного периода(это, вчастности, относится
кмалоценны мосновны мсредствам). Другие активыпостепенно обесцениваю тся втече
ние нескольких периодов врем ени. Эти активывводятся в эксплуатацию и амортизи
руются (каждый период с их балансовой стоимости списы вается определенная сумма).
Для каждогоактивавычисляется определенная процентная ставкаамортизации или ука
зы вается период эксплуатации. К примеру, программны е продуктысчитаю тся полезны
м и(т.е. имеющ имикакую-либоценность) втечениечеты рехлет. В этомслучаесписание
балансовой стоимости происходит равномерны ми порциями в каж домиз периодов, со
ставляю щих четыре года с моментавводаактивавэксплуатацию . Как правило, аморти
зация начисляется еж еквартально. Следовательно, для программного продукта еж еквар
тальносписы ваетсяоднаш естнадцатаяегопервоначальнойстоимости.
Глава 12. Формулы дисконтирования и амортизации 329
Аргументыфункцийамортизацииопределяютсяследующимобразом.
• н а ч _ с т о и м о с т ь. Первоначальнаястоимостьактива.
• о с т _ с т о и м о с т ь. Стоимость активапослеполногообесценивания.
• с р о к _ э к с п л у а т а ц и и . Рядпериодов, втечениекоторыхактивобесценится.
• п е р и о д . Периодвремени, длякотороговыполняетсявычисление.
• м ес я ц ы . Числомесяцеввпервомгоду; поумолчаниюExcel использует 12.
• к о э ф ф и ц и е н т . Ставка снижения баланса; по умолчаниюпредполагается равной
двум(т.е. двойноепонижение).
• с т а в к а . Процентная ставка запериод. Например, если осуществлять ежемесяч
ны еплатежи, тоследуетделитьежегоднуюпроцентнуюставкуна12.
• б е з п е р е к л ю ч е н и я . Имеет значение ИСТИНА или ЛОЖЬ. Уточняет, нужно ли
переклю читьсяналинейноеначислениеамортизации, еслиобесцениваниебольш е
величины, рассчитаннойметодомснижаю щегосяостатка.
330 Часть III. Финансовые формулы
Компакт-диск
Все примеры этого раздела содерж атся в файле d e p r e c i a t i o n . x l s x (ch ap-
te r i2 _ R U S . x l s x ) на прилагаемом компакт-диске.
Финансовые планы
В этой главе...
♦ Созданиефинансовыхпланов
♦ Созданиеплановпогашениякредита
♦ Сведениепараметровзаймавтаблицуданных
♦ Финансовыеотчетыикоэффициенты
♦ Созданиеиндексов
Компакт-диск
Все прим еры , приведенны е в этой главе, доступны на прилагаем ом ком
пакт-диске в файле a m o r t i z a t i o n . x l s x ( C h a p t e r l 3 _ R U S . x s l x ) .
Совет
Чтобы сделать ф ормулы более понятны м и, в них использованы о п иса те ль
ные им ена д иапазонов. И менованные диапазоны и ячейки рассм атриваю тся
в главе 3.
Сводная информация
В первой строке плана, непосредственно под заголовком, содержатся сводные фор
мулы . В данном примере виднытолько общ ие итоговые суммы , однако при желании
мож новключить итоги погодам, кварталамилю бымнужнымпериодам. Формула, вве
деннаявячейкеВ13 иразмнож еннаянавсюстроку, имеетследующийвид:
=СУММ(В14:В381)
Соввт
ю -Д Помещение итоговой информации над детальным планом исключает необ-
ходимость прокрутки вниз в конец рабочего листа для доступа к этой ин
формации.
План погашения кредита
Сампланпогаш ениякредитаначинаетсясостроки 14, гдевкачественачальногоба
лансаотображается сумма финансирования. Первый платеждолжен быть внесенровно
через месяц после получения займа. Строка первого платежа (15-я) и все следующие
строкисодержат одниитеж еформулы, приведенны ениж е. Формулавячейке Е14 сле
дую щая:
=Объем_финансирования
Для приращения дат платежей используется функция ДАТА. Формула вячейке А15
имеетследующийвид:
=ДАТА(ГОД(А 1 4 ) ; МЕСЯЦ( А 1 4 ) + 1 ; ДЕНЬ ( А 1 4 ) )
ФункцияДАТА формируетдату изаргументовгода, м есяцаидня. Аргументыоснова
нына ячейке, находящ ейся непосредственно вы ш е, при этом месяц увеличивается на
единицу.
Столбец платежей ссы лается на функциюПЛТ из раздела пользовательского ввода.
Таккакрезультатэтойформулыужеокруглен, дальнейш ееокруглениенетребуется.
Столбец процентной составляю щ ей платежа формирует результат на основе преды
дущ егобаланса. ФормулавячейкеС15 следую щая:
=ОКРУГЛ(Е14* С т а в к а / 12;2)
Предыдущий баланс, содержащийся в ячейке Е14, умножается на годовую процент
ную ставку, деленную на 12. Годовая процентная ставка находится в ячейке В7 с именем
Ставка. Баланс каждого месяца должен быть округлен до копейки (цента), это также
касается и процентной составляющей платежа.
Та часть платежа, которая превысилапроцентнуюсоставляю щую , формирует основ
нуюсоставляю щуюплатежа. ФормулавячейкеD15 следую щая:
=В15-С15
336 Часть III. Финансовые формулы
Совет
Еще одна проверка добавлена в ком понент осн о вн о й со ставляю щ ей плате
жа. С умма всех этих значений долж на равняться исходной сум м е займа.
Ограничения
Этот тип плана погаш ения кредита отлично подходит для займ ов, неизменяю щ ихся
воврем ени. Он настраивается одинразидействует втечениевсегосроказайм а. В даль
нейш емонможет быть скопировандля созданияновогоплана, вкоторыйнужно внести
всегонесколькоизменений.
Наверное, вызаметили, чтобаланс вконцесроказайм асоставляет ненуль, а-4 , 07.
Причиной этого являю тся ошибки округления, накопивш иеся при вычислении всех ос
новны х ипроцентных составляю щ их платежа. Поскольку все эти округления жизненно
необходимы , более гибкий план позволит скорректировать заключительный платежтак,
чтобыбалансбыл нулевы м.
Приведенныйвы ш епланпогаш ениякредиталишенгибкостиивдругихаспектах.
• Платежвычисляется иприменяется каждыймесяц, но неучитывает возможность
досрочныхипросроченныхплатежей.
• Многиезайм ыимею тпеременныепроцентныеставки, аданныйпланнепозволяет
скорректироватьпроцентнуюставкувконкретномпериоде.
• Несмотря на то что пользователюпредоставлена возможность определить срок
займа, количество строк вплане фиксировано. Определение более короткого или
болеепродолжительногосроказайм апотребуетудаленияилидобавленияформул.
В следующемразделемырешимнекоторыеизэтихвопросовисоздадимболеедина
мичныйпланпогашения.
Сводная информация
Теперь пользователь может изменять срокзайма, процентнуюставку исуммыплате
ж ей, которые влияют на срок погаш ения займа. В сводной информации суммируются
толькодопустимыестроки. ФормулавячейкеС13 следую щая:
=СУММЕСЛИ( $G 1 5 : $G3 7 4 ; " > = 0 " ; С 1 5 : СЗ 74)
ПослетогокакбалансвстолбцеG становитсянулевы м, вычислениепрекращается. Функ
цияСУММЕСЛИ используетсядлясум мированиязначенийстолбцатолькодоэтойточки. Эта
форм улакопируетсявстолбцыпроцентнойиосновнойсоставляю щейплатежа. Абсолю тная
ссылкагарантирует, чтоновыеформулытакжебудутуказыватьнастолбецG.
Заключительные штрихи
Какследует изрис. 13.2(наэтомрисункескрытам ассасреднихстрок, такчтоможно
увидетьпоследние), заключительныйплатежсодержитсявстроке 127; вычисленияниже
Глава 13. Финансовые планы 339
этойстроки неосущ ествляю тся. Однако это ещеневсе. Все ячейки вплане погаш ения
кредита, начинаяспятнадцатой, имею т условноеформатирование. Если значениестолб
цаG предыдущ ейстроким еньш еилиравнонулю, цвет фонаитекстастановятсябелы ми,
поэтомуихсодерж имоеневидимо.
Для применения условного форматирования выделите диапазон ячеек А15 :G374, по
сле чего выберите команду Главная^Стили^Условное форматирование^Создать
правило. В качестве формулы введите следующее правило:
=$G14<=0
Абсолютная ссылканастолбецгарантирует, что всестолбцывыделенногодиапазона
будут ссылатьсянастолбецG. Относительная ссылканастроку 14 обеспечит всемстро
камссылкунапредыдущуюстроку.
Перекрестная ссылка
Более подробно условное форматирование рассматривается в главе 19.
Формулы, находящиеся под строкой 127 (вплоть до 360 месяцев), скрытыс помо
щьюусловного форматирования. Таким образом , применение условного форматирова
нияпозволяетдинамическиизменятьразм ерытаблицы.
Даты
=ДАТА(ГОД(Дата_займа2) ; МЕСЯЦ(Дата_займа2)+СТРОКА( ) - 1 4 ;
ДЕНЬ(Дата_займа2) ) +ЕСЛИОШИБКА(ПРОСМОТР(ДАТА(ГОД(
Дата_займ а2)/М ЕС Я Ц (Д ата_займ а2) +СТРОКА( ) - 1 4 /ДЕНЬ(
Дата_займ а2)) ; t b l L a t e ; Задерж ка2) / 0 )
Этаформулавыглядитнесколькозагромож денной, однакоонанетакплоха. Начинается
онавсестойж еформулы , котораябылаиспользованавпреды дущемпримереивкоторую
340 Часть III. Финансовые формулы
Процент
Таблицаt b l R a t e содерж ит списокизм ененийпроцентнойставки. Функция ПРОСМОТР
использованасотсутствую щ имчетверты маргум ентом, такчтоизм енениеставкисохраняет
ся, пока ее значение не будет изм енено снова. Такимобразом , датыв таблице t b l R a t e
должныбы тьотсортированы .
Если искомоезначениевтаблице ненайдено, функция ЕСЛИОШИБКА возвращ ает на
чальнуюставку.
=ЕСЛИОШИБКА(ПРОСМОТР(А15; t b l R a t e ;2) ; С т а в к а 2 )
Дополнительные платежи
В таблице t b l A d d перечисленыдополнительные платежи, атакжедатыих начала
и окончания. Для добавления единоразового платежа пользователь может записать
одинаковыедатыначалаиконца платежа. Однако если дополнительные платежи вно
сятся втечениедлительного промежуткавремени, такой подход упрощает пользовате
люзадачу. Формула СУММЕСЛИМН добавляет сумму дополнительного платежа в каж
дуюстроку плана погаш ения кредита между датами начала иконца платежа. Это зна
чит, чтодажеесли воднудату было внесенонесколькодополнительных платежей, все
онибудут учтены.
=СУММЕСЛИМН(t b l A d d [Д о п о л н . ] ;
t b l A d d [ Н а ч а л о ] & А 1 5 ; t b l A d d [Конец];">="&А15)
Глава 13. Финансовые планы 341
Перекрестная ссылка
Более полная инф орм ация о ссы лках на таблицы в ф ормулах находится в
главе 9. Ф ункции сум м ирования, подобны е суммеслимн, описаны в главе 7.
П римеры ф ункций поиска, подобны е ф ункциям просм отр или еслиошибка,
содерж атся в главе 8.
Компакт-диск
Все прим еры э то го раздела содерж атся в ф айле lo a n d a ta ta b le s . x ls x
(c h a p te ri3 _ R U S . x l s x ) на прилагаем ом ком пакт-диске.
Длясозданиятаблицыданныхвыполнитеследующиедействия:
1. Впервойстрокетаблицыданныхвведитеформулы, возвращающиерезультаты.
Процентнаяставкавтаблицеданны хварьируется, однако, есливычисленияправиль
ные, не имеет значения, какая именно процентная ставка используется. Вданном
примереформулывячейкахЕ2 : G2 содерж атссылкинадругиеформулывстолбцеВ.
Е2: =В6
F 2 : =В7
G 2: =В8
2. Впервомстолбцетаблицыданныхвведитеразныезначениявходнойячейки.
Вприм еревходны мзначениемявляетсяпроцентнаяставка. Разныезначениявходной
величинывведенывячейкиD2 :D9. Обратитевним ание, чтовпервойстрокетаблицы
данны х(строка2) отображенырезультатыдляпервоговходногозначения.
3. Выделите диапазон, содержащий введенные на предыдущих шагах значения.
Внаш емпримереэтоD2 : G9.
4. Выберите команду Данные^Работа с данными^Анализ “что-еслиИс:>Таблица
данных. Откроетсядиалоговоеокно, показанноенарис. 13.7.
5. В поле Подставлять значения по строкам в введите ссылку на ячейку, соот
ветствующую входной переменной. Внашем случае это $В$2.
6. Поле Подставлять значения по столбцам в оставьте пустым и щелкните на
кнопкеОК.
Excel вставит формулу массива, в которой используется функция ТАБЛИЦА с од
ним аргументом.
344 Часть III. Финансовые формулы
Совет
М ож но отф орм атировать таблицу данных; к прим еру, можно затенить з а го
ловки строк и столбцов.
Обратите внимание, что формула массива не вводится в весь диапазон ячеек, выбран
ный в п. 4, — первый столбец и первая строка выделения остаются неизменными.
Рис. 13.9. Использование двусторонней таблицы данных для отображения платежей по зай
мам с различными процентными ставками и суммами
Глава 13. Ф инансовы е планы 345
;
Для создания этой таблицы данных выполните следующие действия.
1. Введите формулу, которая будет возвращать результаты, формирующие таблицу
данных.
В представленном примере формула в ячейке В7 является ссылкой на ячейку В5,
содержащую формулу вычисления платежа.
2. Введитеразличныезначенияпервойвходнойпеременнойвпервуюстрокутабли
цыданных.
Первойвходнойпеременнойбудет процентная ставка; ееразныезначениявведи
тевдиапазонС7 : J7.
3. Введите различные значения второй входной переменной впервый столбец таб
лицыданных.
В данномпримере второй входной переменной будет величина кредита; еераз
ныезначениявведитевдиапазонВ 8 :В13.
4. Выделите диапазон ячеек, охватывающий введенные на предыдущих шагах зна
чения. ВпримереэтодиапазонВ 7 :J13. *
5. Выберите команду Данные1^Работа с данными^Анализ “чтоесли’^Таблица
данных. ОткроетсядиалоговоеокноТаблица данных (см.рис. 13.7).
6. Вполе Введите значения по строкам в введите ссылку на первую ячейку ввода
(в данном примере это В2).
7. В поле Введите значения по столбцам в введите ссылку на вторуюячейку
ввода(вданномпримереэтоВ1).
8. ЩелкнитенаОК.
Программа Excel вставит формулу массива, в которой используется функция
ТАБЛИЦА сдвумяаргументами.
Послесозданиядвустороннейтаблицымож ноизменитьформулу вверхнемлевомуг
лутаблицыданных. Вданномпримерем ывведемвячейкуВ 5 следующуюформулу:
= П Л Т ( В 2 * ( В З /1 2 ) ; В 4 ; - В 1 ) * В 4 - В 1
В этом примере функция ТАБЛИЦА отобразит общую сумму платежей по процентам,
а не платежи за период.
Совет
Если окажется, что таблица данны х сущ е стве н н о зам едляет вы числения в
рабочей книге, вы берите ком анду Ф о р м у л ы ^В ы числ е н ие ^П а р а м е тр ы вы-
числений^А втом атически, кроме таблиц данных. После это го можно за п ус
тить пересчет значений таблицы, нажав клавиш у <F 9>.
Компакт-диск
Все примеры этого раздела приведены в файле f i n a n c i a l s t a t e m e n t s ,
x l s x (C h ap teri3 _R U S . x l s x ) на прилагаемом компакт-диске.
Глава 13. Финансовые планы 347
Анализ коэффициентов
Финансовыми коэффициентами назы вают значения, основанные насводных ипро
чихфинансовы х данных ипредназначенны едля оценкиразличных аспектовдеятельно
стикомпании. Коэффициентыпредприятия можносравниватьскоэффициентамидругих
компаний и с отраслевыми стандартами. В данномразделе будет показано, как вычис
лятьнекоторыефинансовы екоэффициенты(рис. 13.14).
Анализ ликвидности
Коэффициенты ликвидности дают возможность определить способность компании
быстрооплачиватьвыставленныесчета.
Коэффициент чистого оборотного капитала вычисляется путемвычитания кратко
срочныхобязательствизтекущихактивов.
=Общ ие_текущ ие_активы -О бщ ие_краткосрочны е_обязательства
Текущие активы обычнопреобразую тсявденеж ны есредствавтечениеодногорасчетно
гопериода(какправило, года). Краткосрочными назы вают обязательства, которыедолжны
бы тьоплаченывтечениеодногорасчетногопериода. Положительныйрезультатуказы ваетна
то, чтокомпанияим еетдостаточноактивов, чтобыоплачиватькраткосрочны еобязательства.
Коэффициентом текущей ликвидности назы ваю т аналогичнуюм еру, нополученную
врезультатеделениятекущихактивовнакраткосрочны еобязательства.
= О бщ ие_текущ ие_активы /К раткосрочны е_обязательства
350 Часть III. Финансовые формулы
Совет
Для форматирования коэффициентов текущей и быстрой ликвидности мож-
но применять пользовательский числовой формат 0, 00" : ! " _) .
Коэффициенты рентабельности
Как вы, наверное, ужедогадались, коэффициенты рентабельности являются мерой
прибыльности компании. Рентабельность валовой прибыли ирентабельность чистой
прибыли можно вычислять на основе более ранних финансовых коэффициентов, по
сколькуобаэтикоэффициентавычисляю тсяотносительнопродаж. Формулыдлярасчета
этихкоэффициентовследующ ие(соответственно):
=Общая_прибыль/ Д оход
=Чистая_прибыль/ Доход
Коэффициент рентабельности активов дает возможность определить, насколько
хорошокомпанияиспользуетсвоиактивыдляполученияприбыли.
=Чистая_прибыль/ ( (В с е г о _ а в т и в о в +
В сего_актив ов _в_п р ош л ом _году) / 2 )
Коэффициент рентабельности собственного капитала показывает, насколько хо
рошоработают инвестициивладельцевпредприятия.
=Ч истая_прибы ль/( (Собственный_капитал+
С обствен н ы й _к апитал_в_п р ош лом _году) / 2 )
Создание индексов
Заклю чительныйраздел этойглавыдемонстрирует, каксоздать индекс наоснове из
менениязначений. Индексыпомогаю т проследить, какданные изменяю тся во времени.
Индексыпозволяют легко выполнить перекрестное сравнение между различными пе
риодам и, атакжемеждуразны минаборамиданных.
Для примера предположим, что потребительская цена изменяется и записы вается в
индекс, в которомизначальная “потребительская корзина” соответствует индексу 100.
Всепоследую щ ие изменения выполняются относительно этого базиса. Такимобразом ,
любы едветочкивоврем енипоказы ваю тнакопительныйэффект от изменений.
Совет
П рим енение индексов облегчает сравнение данны х по сильно отл ича ю щ им
ся шкалам — наприм ер, сравнение индекса п о требительской цены с ин д е к
сом п рож иточного минимум а.
352 Часть III. Финансовые формулы
Пожалуй, лучшевсегоиспользоватьдвухшаговыйподход.
1. Преобразование исходный данных впоследовательность процентных изменений
относительнопредыдущ егоэлемента.
2. Настройка столбца, где первая запись содержит число 100, авсе последующие
умножаю тсянаранеевычисленныйпроцент.
Двухшаговый подход не обязателен. Его главное преимущество состоит в том, что
процентныеизменениячастооказы ваю тсяполезнысам ипосебе.
Пример, показанныйнарис. 13.15, содержит аренднуюплату врасчетенаквадратны й
метрнедвижимостиразличноготипавпериодс2003по2009год. Оперативны еданны есо
держ атсявпервойтаблице. Данные, преобразованныевпроцентны еизм енения, — вовто
рой, ивсяэтаинформацияиспользуетсядлясозданияиндексоввтретьейтаблице.
Компакт-диск
Все прим еры это го раздела содерж атся в файле i n d i c e s . x l s x (c h a p -
t e r i3 _ R U S . x l s x ) на прилагаем ом ком пакт-диске.
В этой части...
Глава 14
Знакомство с массивами
Глава 15
Магия формул массива
Глава
Знакомство с массивами
В этой главе...
♦ Концепцияформул массива
♦ Концепцияразмерностимассива
♦ Присвоениеименмассивамконстант
♦ Работасформуламимассива
♦ Использованиемногоячеечныхформул массива
♦ Использованиеодноячеечныхформулмассива
Компакт-диск
Все прим еры этой главы содерж атся на прилагаем ом ко м пакт-диске в ф ай
ле C h a p t e r l 4 _ R U S . x l s x .
Примечание
Того же результата можно до стичь с пом ощ ью ф ункции суммпроизв:
= С У М М П Р 0 И З В (В 2:В 7;С 2:С 7 )
Однако, как будет показано, это почти единственны й случай, когда ф ормулу
м ассивов можно зам енить одной ф ункцией. Чаще все го это невозм ож но.
360 Часть IV. Формулы массивов
Примечание
В случае непосредственного задания массива (как показано выше) необхо
димо заключать элементы массива в фигурные скобки. С другой стороны,
при вводе формулы массива фигурные скобки можно не ставить, потому что
Excel добавит их автоматически.
Наданномэтапесложнозаметитькакие-либопреимущ естваиспользованиямассивов
констант. Действительно, представленнаянижеформулавозвращает точнотакоежезна
чение, какипредыдущ ая.
=СУММ( 1 ; 0 ; 1 ; 0 ; 1 )
Очевидныепреимуществастанутясныпридальнейшемрассмотрении.
Вследую щейформулеиспользуютсядвамассиваконстант:
=СУММ( { 1 ; 2 ; 3 ; 4 } * { 5 ; б ; 7 ; 8 } )
Этаформуласоздает впамятиновыйм ассив, которыйсостоит изпроизведениясоот
ветствующихэлементовдвухдругихмассивов. Этот новыймассивимееттакойвид:
{5 ;12;21;32}
Созданныймассивбудет использоватьсявпоследствиивкачествеаргументафункции
СУММ, которая возвращает результат вычислений (70). Эта формула эквивалентна сле
дующей, вкотороймассивынеприменяются:
=СУММ( 1 * 5 ; 2 * 6 ; 3 * 7 ; 4 * 8 )
Формула может работать как с массивомконстант, так и с массивам и, хранимыми
вдиапазоне. К примеру, следующая формула возвращает сумму значений в диапазоне
AI:D1, каждоеизкоторыхумножаетсянасоответствующийэлемент м ассиваконстант:
=СУММ((A I :D1* { 1 ; 2 ; 3 ; 4 } ) )
Приведеннаявышеформулаэквивалентнаследующей:
=СУММ(А1*1; В 1 * 2 ; С 1 * 3 ; D l * 4 )
Глава 14. Знакомство с массивами 361
Двухмерные массивы
В двухмерных массивах используется точка с запятой (запятая в английской версии
программы ) для разделения горизонтальных элементов и двоеточие (точка с запятой
ванглийской версиипрограммы) для разделения вертикальных элементов. Ниже приве
денпримерм ассиваконстантразмерностью3x4.
{1;2;3;4:5;6;7;8:9;10;11;12 }
Для отображения этого массивавдиапазонетребуется двенадцать ячеек. Чтобывве
сти егонарабочемлисте, выделитедиапазонячеек, состоящ ий изтрех строк ичетырех
столбцов. Затемвведитеследующуюформулу, послечегонажмите<Ctrl+Shift+Enter>:
={1;2;3;4:5;6;7;8:9;10;11;12 }
Рис. 14.2демонстрирует, какбудет выглядетьэтот массив, еслиеговвестивдиапазон
ячеек(вданномслучаевдиапазонВЗ : Е 5).
Перекрестная ссылка
В главе 3 объясняется понятие имени и описывается методика присвоения
имени формуле.
На рис. 14.4 показано, как присвоить имя массиву, используя диалоговое окно При
своение имени. Чтобы открыть его, выберите команду Формулы^Определенные
именам Присвоить имя^ Присвоить имя.
Рис. 14.3. Массив 3x4, введенный в диапазон Рис. 14.4. Присвоение имени мас
ячеек 10x5 сиву констант
Предупреждение
Если после редактирования формулы массива по ош ибке нажать <C trl+Enter>
(вместо <C trl+Shift+E nter>), формула будет введена в каждую выделенную
ячейку, но она уже не будет ф ормулой массива. Соответственно, она, скорее
всего, вернет неправильный результат. Чтобы исправить ошибку, выделите
ячейки и нажмите сначала <F2>, а затем <C trl+Shift+E nter>.
2. Нажмите<F2>дляпереходаврежимредактирования.
3. Нажмите <Ctrl+Enter>. Это действие вводит одну иту же формулу (не формулу
массива) вкаждуювыделеннуюячейку.
4. Изменитедиапазонвыделения, добавивилиисключивячейки.
5. Нажмите<F2>, чтобывновьвключитьрежимредактирования.
6. Нажмите<Ctrl+Shift+Enter>.
Если массив хранится в диапазоне ячеек (в данном случае А 1 : С4), для возведения в
квадрат каждого элемента этого массива можно воспользоваться следующей формулой
массива.
{= А 1 :С 4 а 2 }
Совет
В некоторых примерах фигурные скобки, использованные в формулах, вво
дятся программой автоматически после нажатия <Ctrl+Shift+Enter>, другие же
нужно вводить вручную. Чтобы не запутаться, запомните следующий принцип:
если открывающая фигурная скобка расположена до знака равенства, она
вставляется автоматически, если после — ее следует вводить вручную.
Транспонирование массива
При транспонировании массива происходит преобразование строк в столбцы и
столбцов в строки. Другими словами, таким образом можно преобразовать горизонталь
ный массив в вертикальный или наоборот. Для транспонирования в Excel используется
специальная функция ТРАНСП.
Рассмотрим следующий одномерный горизонтальный массив:
{1; 2 ; 3 ; 4 ; 5 }
Можно ввести данный массив в вертикальный диапазон ячеек, используя функцию
ТРАНСП. Для этого выделите диапазон из пяти ячеек, который располагается в пяти
строках и одном столбце. Затем введите приведенную ниже формулу и нажмите
<Ctrl+Shift+Enter>.
{ =ТРАНСП( { 1 ; 2 ; 3 ; 4 ; 5 } ) }
Горизонтальный массив транспонируется, и его элементы появятся в вертикальном
диапазоне.
Транспонирование двухмерных массивов происходит подобным образом. На рис. 14.11
показан двухмерный массив, введенный в диапазон ячеек без транспонирования, однако с
использованием функции ТРАНСП. В диапазоне А 1 : D3 находится формула массива.
{={ 1 ; 2 ; 3 ; 4 : 5 ; 6 ; 7 ; 8 : 9 ; 10 ; 11 ; 12 } }
Перекрестная ссылка
В главе 15 приведены интересны е прим еры ге нерирования послед ователь
ных целых чисел.
Перекрестная ссылка
Такой тип формулы массива (а именно функция е с л и , вложенная в функцию
с у м м ) используется во многих расчетах (подробнее см. главу 7).
Обратите внимание, что этот массив содержит пять строк из трех элементов (те же
размерности, что и в диапазоне).
К такому же результату приведет использование следующей формулы:
{ = СУ ММ( ЕТЕ КСТ(A I : D 5 ) * 1 ) }
Глава 14. Знакомство с массивами 373
Вэтой формуле не используется функция ЕСЛИ; вместо этого используется тот факт, что
ИСТИНА*1=1
И
ЛОЖЬ*1=0
Примечание
Исключение составляют функции работы с базами данных (например, бдсумм).
Эти функции в качестве обязательного аргумента получают критерий, нахо
дящийся в диапазоне ячеек. К сожалению, использовать массив констант
вместо ссылки на диапазон условий нельзя.
На рис. 14.17 показан рабочий лист, в котором используется таблица преобразования
для отображения слова, соответствующего числу. Например, числу 9 в таблице преобра
зования (диапазон D 1:E 10) соответствует значение Д е в я т ь . Формула, возвращающая
это значение, находится в ячейке С1.
=ВПР( В1; D l : Е 1 0 ; 2 ; ЛОЖЬ)
Глава 14. Знакомство с массивами 375
Компакт-диск
Все прим еры этой главы содерж атся в русиф ицированном файле C h a p t e r i 5 _
R U S . x l s x на прилагаем ом ком пакт-диске (названия листов соответствую т
номерам рисунков), а также в нескольких авторских файлах, о которы х будет
сказано дополнительно.
Компакт-диск
В се п р и м е р ы э т о го р а зд е л а в а в то р с к о м в а р и а н те с о д е р ж а тс я в ф айле
s i n g l e - c e l l a r r a y f o r m u l a s . x l s x на прилагаем ом ком пакт-диске.
Hi : I_________
Рис. 15.1. Формула массива может складывать значе
ния в диапазоне, содержащем ошибки
Примечание
В о зн ика ю т случаи, когда вм е сто е с л и о ш и б к а н е о б хо д им о исп о л ьзо ва ть
д р у ги е ф ункции. Д ело в том , что е с л и о ш и б к а в о звр а щ а е т значение
ИСТИНА при лю б ы х значени ях о ш и бки ( # Н / Д , # З Н А Ч ! , #ССЫЛКА ! , # Д Е Л / 0 ! ,
# число ! , #имя? или # п у с т о !) . Ф ункц ия е о ш в о звр а щ а е т значение и с т и н а
при лю бы х значени ях о ш и бки , кром е # н / д , а ф ункция е н д — только при
значениях о ш и б ки # н / д .
Глава 15. Магия формул массива 379
Новинка
ШШ Ф ункция а г р е г а т предоставляет ещ е один с п о с о б сум м ирования д и а п а зо
на, содерж ащ его ош ибочны е значения:
=АГРЕГАТ ( 9 , 2 , С4 : СЮ)
Первый а ргум ент со д е р ж и т значение 9 — код ф ункции сумм. В торой а р гу
мент приказы вает ф ункции а г р е г а т и гн о р ир о ва ть ош ибки.
ЛОЖЬ*1=0
Примечание
Ф ункция с р з н а ч не учиты вает пусты е ячейки, зато п риним ает в расчет ячей
ки, содерж ащ ие нулевые значения.
Ещеодинподходпредполагает использованиефункцииСЧЁТЕСЛИ:
==Если(СЧЁТЕСЛИ(СписокИмен153;Имя)> 0 ; "Найдено";"Не н айден о" )
ИСТИНА*1=1
И
ЛОЖЬ*1=0
Перекрестная ссылка
Подробная информация об использовании функции двссыл приведена в
главе 14.
Полученный массив впоследствии используется в качестве второго аргумента функ
ции ПСТР. Если в формулу с ПСТР подставить полученные в описанном примере значе
ния, она будет упрощена:
{ПСТР( 4 0 9 ; { 1 ; 2 ; 3 } ; 1 ) *1}
Эта формула генерирует массив, состоящий из трех элементов:
{4 ; 0 ; 9 }
В результате общая формула с функцией СУММ станет более простой и будет иметь
следующий вид:
=СУММ( { 4 ; 0 ; 9 } )
Результат вычислений равен 13.
Примечание
Функция пстр возвращает текстовую строку, поэтому при преобразовании
текста в число элементы массива, находящиеся в аргументе функции пстр,
умножаются на единицу. Альтернативный путь— использование функции
значен, которая также преобразует строку текста, отображающую число,
в числовое значение.
Заметьте, что описанная выше формула не работает с отрицательными значениями,
так как знак “минус” не является цифрой. Ниже приводится формула, в которой исправ
лен данный недостаток. Для этого используется функция ABS, которая возвращает абсо
лютное значение числа. На рис. 15.4 представлен рабочий лист, содержащий в ячейке В4
следующую формулу:
{= С У М М (З Н А Ч Е Н (П С Т Р (ABS(А 2 );С Т Р О К А ( Д В С С Ы Л (
" 1 : " &ДЛСТР(ABS(А2) ) ) ) ; 1 ) ) ) }
Формула в ячейке В 4 была скопирована в другие ячейки столбца В с целью вычис
лить суммы цифр в числах, находящихся в столбце А.
Рис. 15.4. Формула масси- Рис. 15.5. Использование формулы массива устраняет ошибку ок-
ва вычисляет сумму цифр ругления
любого целого числа
Для устранения таких ошибок округления можно также ввести в ячейки столбца Е
уже округленные значения с помощью функции ОКРУГЛ. Этот подход не требует созда
ния формулы массива.
второго аргумента функции СМЕЩ. Например, пусть последнее значение было введено в
строку с номером 100. Функция СЧЁТЗ вернет значение 100, а функция СМЕЩ— значе
ние в ячейке, находящейся на 99 строк ниже ячейки А1.
В то же время столбец А вполне может содержать хотя бы одну пустую ячейку внутри
диапазона. Это приведет к тому, что предыдущая формула будет выполняться непра
вильно. Дело в том, что функция СЧЁТЗ не подсчитывает пустые ячейки.
Приведенная ниже формула массива возвращает содержимое последней непустой
ячейки столбца А.
{ =ИНДЕКС(А1:А;МАКС(СТРОКА(А1:А)* ( А1: А<>"" ) ) ) }
Естественно, что эту формулу можно модифицировать для работы с любым другим
столбцом. Для этого вместо ссылок на столбец А введите ссылки на любой другой столбец.
Предупреждение
Эту формулу нельзя размещать в том столбце, который она обрабатывает. Иг
норирование этого правила приводит к циклической ссылке. Однако можно
немного модифицировать формулу. Например, разместите формулу в первой
строке и измените ссылки так, чтобы они начинались со второй строки.
Примечание
Каждый ранг вычисляется с помощью отдельной формулы массива, а не
формулы массива, введенной в весь диапазон ячеек.
Глава 15. Магия формул массива 389
Новинка
Новая функция ранг . рв во многих случаях устраняет необходимость приме
нения формулы массива для решения подобных задач. В частности, она воз
вращает те же ранги, что и формула массива в столбце D на рис. 15.8. Для это
го нужно скопировать в ячейки столбца D формулу =ранг . р в (В4 , продажи) .
Компакт-диск
Все примеры этого раздела содержатся в файлах m u lt i-с е 11 array f o r
mulas .x l s x и chapteri5_RUS . x l s x на прилагаемом компакт-диске.
С5 : С24. Однако для ячеек, которые не содержат значения, формула массива возвращает
сообщение об ошибке #ЧИСЛО!.
Эта формула должна вводиться в такой же по размеру диапазон, что и Данные. Она
тоже сортирует только числовые значения.
Для сортировки значений Данные по возрастанию можно использовать следующую
формулу:
{ НАИМЕНЬШИЙ(Данные;СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные) ) ) ) }
Компакт-диск
Эта рабочая книга содержится на прилагаемом компакт-диске в файле a r
ray formula c a l e n d a r . x s l x .
©
Перекрестная ссылка
М ассивы констант р а ссм атриваю тся в главе 14.
Рассмотрим еще одну версию приведенной выше формулы. Функция ЕСЛИ в исход
ной формуле проверяет каждую дату на предмет того, принадлежит ли она текущему ме
сяцу. Если это не так, функция ЕСЛИ возвращает пустую строку.
Приведенную выше формулу массива можно несколько упростить, удалив функцию
ЕСЛИ.
=ДАТА(ГОД(В 2 ) , МЕСЯЦ№ 2 ) , 1 ) - (ДЕНЬНЕД(ДАТА(ГОД(В2) , МЕСЯЦ(В2) ,
1 ) ) - 1 ) + { 0 ; 7 ; 1 4 ; 2 1 ; 2 8 ; 3 5 } + { 0 #1 / 2 , 3 / 4 , 5 , б }
Эта версия формулы отображает также дни предыдущего и следующего месяцев
(рис. 15.14). Предыдущая формула отображала ячейки, относящиеся к другим меся
цам, пустыми.
В этой части...
Глава 16
Умышленные циклические ссылки
Глава 17
Диаграммы
Глава 18
Сводные таблицы
Глава 19
Условное форматирование и проверка данных
Глава 20
Создание мегаформул
Глава 21
Инструменты и методы отладки формул
Глава
Умышленные
циклические ссылки
В этой главе...
♦ Что такое циклическая ссылка
♦ Преднамеренное использование циклических ссылок
♦ Определение параметров итераций
♦ Примеры формул, в которых используются циклические ссылки
♦ Потенциальные проблемы, связанные с циклическими ссылками
Рис. 16.1. Таким образом Excel сообщает о том, что формула содержит цик
лическую ссылку
Примечание
Если команда Циклические ссылки отсутствует, значит, во вкладке Формулы
диалогового окна параметров программы установлен флажок Включить ите
ративные вычисления. Этот флажок рассматривается далее.
Перекрестная ссылка
Более подробно процесс отслеживания циклических ссылок описан в главе 21.
Преднамеренное использование
циклических ссылок
Как уже отмечалось, циклические ссылки иногда могут умышленно использоваться
для решения определенных задач. Правильно заданные циклические ссылки могут вы
ступать функциональным эквивалентом циклических структур, используемых в языках
программирования (таких как VBA). С помощью преднамеренных циклических ссылок
выполняется рекурсия или итерация. Каждый промежуточный результат используется
в последующих вычислениях, в итоге приводя к решению задачи.
По умолчанию Excel не выполняет итерационные вычисления. Чтобы разрешить про
грамме выполнение итеративных вычислений, следует указать это явно в окне парамет
ров Excel. Для этого откройте диалоговое окно Параметры Excel, перейдите во вкладку
Формулы и установите флажок Включить итеративные вычисления (рис. 16.3).
Рис. 16.3. Для вычисления циклических ссылок необходимо установить флажок Включить
итеративные вычисления
400 Часть V. Полезные методики применения формул
Примечание
Циклическую ссылку нельзя вычислить, если отключен упомянутый выше
флажок поддержки итераций.
Текст в столбце А соответствует именованным ячейкам в столбце В, а ячейка СЗ на
звана Д оля . Ячейка Б л а г о т в о р и т е л ь н о с т ь (ВЗ) содержит следующую формулу:
=Доля*Чистая_прибыль
Ячейка Ч и с т а я _ п р и б ы л ь (В4) отображает следующую формулу:
= Общий _ до х о д- Р а сх о ды - Бл аг о тв ор ит е л ьн ос т ь
Данная формула создает разрешаемую циклическую ссылку. Excel продолжит вычис
ления до тех пор, пока результат формулы не приведет к решению.
Примечание
Читателям первого издания данной книги известно о другом варианте ре
шения данной задачи (без использования циклических ссылок). Для вычис
ления ячейки Чистая_прибыль используется такая формула:
= ( Общий_доход-Ра сходы) / (1+Доля)
Затем следует вычислить значение ячейки Б л а г о т в о р и т е ль н о с т ь с помо
щью следующей формулы:
=Доля*Чистая_прибыль
В общем случае, если известна формула нециклического получения резуль
тата, лучше применить ее, а не циклическую ссылку.
Компакт-диск
Показанная на рис. 16.4 рабочая книга содержится на прилагаемом ком
пакт-диске в файле n e t p r o f i t c i r c u l a r . x s l m ( Ch apt er l 6_ RUS . xs l m) .
На листе есть кнопка. Щелкните на ней, и в результате будет отображена
вкладка Вычисления диалогового окна Параметры. Таким образом, вы имее
те возможность экспериментировать с различными параметрами итераций.
Кроме того, на компакт-диске содержится файл с демонстрацией вычисле
ния данных без использования циклических ссылок (файл n e t p r o f i t
(not c i r c u l a r ) .x ls x ) .
Примечание
Итерации продолжаются до тех пор, пока не будет достигнуто заданное чис
ло итераций или пока повторное вычисление не будет изменять все ячейки
на значение меньшее, чем указано в поле Относительная погрешность (т.е.
до выполнения одного из этих условий). В зависимости от конкретной зада
чи, может потребоваться изменить значение в поле Предельное число ите
раций или Относительная погрешность. Для получения более точного резуль
тата следует уменьшить значение допустимой погрешности.
Для того чтобы увидеть, как все это работает, откройте пример рабочей книги, пред
ставленный в предыдущем разделе.
1. Установите флажок Включить итеративные вычисления, как было описано выше.
2. Установите значение Предельное число итераций равным единице.
3. Установите значение Относительная погрешность равным 0 ,0 1 .
4. Введите другое значение в ячейке Общ ий_доход (ячейка В1).
5. Нажмите клавишу <F9> для пересчета листа.
Так как максимальное количество итераций задано равным единице, нажатие клави
ши <F9> приведет к выполнению лишь одного цикла вычислений. Нетрудно заметить,
что значение ячейки Б л а г о т в о р и т е л ь н о с т ь не совпадает с решением. Нажмите кла
вишу <F9> еще несколько раз — и значение ячейки станет более близким к искомому
решению. После того как решение найдено, нажатие клавиши <F9> не приведет к суще
ственным изменениям. Если задано небольшое количество итераций, решение появляет
ся фактически незамедлительно (если оно не включает сложные вычисления).
Предупреждение
Если установлен флажок Включить итеративные вычисления, Excel не ото
бражает предупреждение о циклической ссылке в диалоговом окне и строке
состояния. Таким образом, вы можете случайно создать циклическую ссыл
ку и никогда не узнать об этом.
Примечание
При выполнении представленных ниже примеров флажок Включить итера
тивные вычисления должен быть установлен.
Глава 16. Умышленные циклические ссылки 403
Контакт-диск
Рабочая книга, продемонстрированная на рис. 16.6, содержится на прила
гаемом компакт-диске в файле r e c u r s i v e e q u a t i o n s . x l s x ( C h a p t e r l 6 _
RUS.xslx).
Глава 16. Умышленные циклические ссылки 405
Компакт-диск
Рабочая книга с приведенным примером содержится в файле s i m u l t a n e o u s
e q u a t i o n s . x s l x (Chapt erl6_RUS . x l s x ) на прилагаемом компакт-диске.
Перекрестная ссылка
Оптимальным способом решения систем уравнений в Excel является ис
пользование матриц; соответствующие примеры приведены в главе 10.
Компакт-диск
Пример, описанный в этом разделе, содержится в файле i t e r a t i v e c h a r t
a n i m a t i o n . x l s x ( C h a p t e r l 6 _ R U S . x l s x ) на прилагаемом компакт-диске.
лические ссылки. Если рабочая книга содержит большое количество сложных формул,
это может привести к существенному замедлению работы. Таким образом, при исполь
зовании умышленных циклических ссылок необходимо стремиться к максимальной про
стоте рабочих листов.
Иногда может возникнуть необходимость отправить рабочую книгу, в которой ис
пользуются циклические ссылки, другим пользователям. Если при открытии такой рабо
чей книги функция вычисления итераций не включена, Excel отобразит сообщение об
ошибке, что способно озадачить пользователей.
Глава
Диаграммы
В этой главе...
♦ Понятие формулы ряда
♦ Создание ссылок на ячейки
♦ Примеры диаграмм
♦ Тренды
Для большинства людей работа с Excel сводится к анализу строк и столбцов данных.
Однако программа Excel представляет собой нечто большее. В частности, это касается
отображения данных в виде диаграмм. Встроенные в Excel средства создания диаграмм
настолько совершенны, что Microsoft рекомендует использовать их для построения диа
грамм во всех приложениях Office. На практике же диапазон их использования гораздо
шире — их часто применяют со многими другими приложениями.
После создания диаграммы пользователь получает практически полный контроль над лю
бым ее элементом. В этой главе предполагается, что вы уже знакомы с базовыми концепция
ми создания формул в Excel, потому что в диаграммах часто используются формулы.
Рис. 17.1. В строке формул отображается функция ряд для выбранной серии дан
ных на диаграмме
Примечание
Специальную функцию р я д нельзя использовать в ячейке рабочего листа.
И наоборот, функции рабочего листа нельзя использовать в специальной
функции р я д . В то же время у вас есть возможность редактировать аргумен
ты функции р я д для изменения состава данных, используемых на диаграм
ме. Можно также перетаскивать маркеры выделения, чтобы изменять пара
метры диаграммы.
Функция РЯД имеет следующий синтаксис:
= Р Я Д ( и м я ; п о д п и с и _ к а т е г о р и й ; значения/порядок /размеры)
Примечание
В формуле ряд нельзя использовать ссылки на структурированные таблицы.
Если при редактировании добавить ссылку на таблицу (например, Табли-
u a i [то в ар 1 ] ), Excel преобразует ссылку на таблицу в стандартный адрес
диапазона.
Как уже отмечалось, в формуле РЯД нельзя использовать функции рабочего листа. Од
нако можно создавать именованные формулы (использующие функции), которые приме
няются в формуле РЯД. Этот прием позволяет реализовать самые невероятные задачи.
412 Часть V. Полезные методики применения формул
Совет
После добавления на диаграмму текстового поля его можно преобразовать в
любую другую форму, поддерживающую текст. Выделите текстовое поле
и выберите команду Средства рисования^ФормаЮВставка фигура Изменить
фигуру. После этого вы вольны выбрать из галереи любую фигуру.
Примеры диаграмм
В этом разделе вы найдете множество примеров диаграмм, которые могут оказаться
для вас полезными или, по крайней мере, информативными.
Компакт-диск
Продемонстрированный пример содержится в файле t hermometr c h a r t . x l s x
( chapt eri 7_RUS . xslm) на прилагаемом компакт-диске.
как мы оперируем только верхней половинкой круга. Использование функции МИН пре
дотвращает возможность отображения более ста процентов.
Компакт-диск
Продемонстрированный пример содержится в файле c o n d i t i o n a l co l
o r s . x l s x ( c h a p t e r i 7 _ R U S . x s l m ) на прилагаемом компакт-диске.
Как видите, на диаграмме отображено четыре ряда значений, однако в каждом из рядов
отсутствуют некоторые значения. Фактические данные для диаграммы введены в столбец В.
Формулы в столбцах С : F определяют, к которой из серий относятся данные, основываясь на
значениях первой строки. К примеру, формула в ячейке СЗ имеет следующий вид:
=ЕСЛИ(ВЗ<=$С$1; В З ;"")
Если значение в столбце В меньше числа в ячейке С1, то оно попадает в столбец. Все
формулы таблицы настроены таким образом, чтобы значение столбца В попадало в один
и только один столбец таблицы рангов.
Формула в ячейке D3 сложнее, поскольку должна определять вхождение значения
столбца В в интервал.
=ЕСЛИ(И( $ВЗ >С$1; $B3<=D$1) ; $ В З ;"")
Во все четыре ряда данных добавлены соответствующие заголовки. Необходимо так
же увеличить значение Перекрытие рядов. Этот параметр устанавливает промежутки
между рядами. Для коррекции этого параметра воспользуйтесь вкладкой Параметры
ряда диалогового окна Формат ряда данных.
Примечание
Следует отметить, что параметр перекрытия рядов устанавливается для
всей диаграммы в целом. Его изменение для одного ряда данных отразится
на всех остальных рядах.
Компакт-диск
Продемонстрированный пример содержится в файле c o m p a r a t i v e h i s t o
gram, x l s x ( c h a p t e r i 7 _ R U S . x s l m ) на прилагаемом компакт-диске.
Рис. 17.7. Для построения данной диаграммы требуется знание дополнительных методов
Компакт-диск
Продемонстрированный пример содержится в файле g a n t t c h a rt.x ls x
на прилагаемом компакт-диске.
(c h a p t e r i7 _ R U S . xslm )
Глава 17. Диаграммы 421
года). Цену основных делений установите равной 7, что соответствует одной не
деле. Для выбора подходящего типа данных откройте вкладку Число.
9. Примените другое необходимое форматирование.
Компакт-диск
Продемонстрированный пример содержится в файле box p lo t.x ls x
(cha p te ri7 _ R U S . xslm ) на прилагаемом компакт-диске.
Совет
После выполнения всех этих действий лучше создать пользовательский
шаблон, чтобы упростить в будущем создание аналогичных диаграмм. Акти
визируйте диаграмму и выберите команду Работа с диаграммами«=>Кон-
структор^Тип^Сохранить как шаблон.
В легенде этой диаграммы отображаются ряды данных в том порядке, в котором они вво
дились. Возможно, это не лучший порядок, и в некоторых случаях он может даже вводить в
заблуждение. К сожалению, вы не можете изменить этот порядок, поскольку он важен
(вертикальные полосы используют первый и последний ряды данных). Если легенда вводит
вас в заблуждение, удалите все ее элементы за исключением С р е д н е е и П р о ц е н т и л ь 50.
Компакт-диск
Продемонстрированный пример содержится в файле p l o t e v e r y n t h
d a t a p o i n t . x l s x ( C h a p t e r l 7 _ R U S . x s l m ) на прилагаемом компакт-диске.
Ячейка А1 содержит значение 10. Значение в данной ячейке определяет те строки, ко
торые необходимо скрыть. Ячейки столбца В отображают идентичные формулы, исполь
зующие значение в ячейке А1. Например, формула в ячейке В4 имеет следующий вид:
=ОСТАТ(СТРОКА( ) -СТРОКА($А$4);$А$1)
Эта формула вычитает номер текущей строки из номера первой строки таблицы, а за
тем использует функцию ОСТ АТ для вычисления остатка деления этого значения на зна
чение в ячейке А1. В результате каждая n-я ячейка (начиная с четвертой строки) содер
Глава 17. Диаграммы 425
жит нуль. Стрелка фильтрации в ячейке ВЗ используется для выделения только строк,
содержащих в столбце В нуль.
Примечание
При изменении значения в ячейке А1 необходимо переопределить критерий
для столбца в, так как строки не будут скрываться автоматически.
Несмотря на то что в данном примере использовалась таблица (созданная командой
Вставка^Таблицы^Таблица), этот прием можно использовать с любыми диапазона
ми данных, которые содержат заголовки столбцов. В этом случае для включения фильт
рации следует выбрать команду Данные^Сортировка и фильтр^Фильтр.
Примечание
Чтобы вывести на график другое количество точек, скорректируйте форму
лы, введенные в пп. 4 и 7. Замените все вхождения числа б другим числом.
Компакт-диск
Продемонстрированный пример в авторском варианте содержится в файле
p l o t l a s t n d a t a p o i n t s . x l s x на прилагаемом компакт-диске.
Компакт-диск
Продемонстрированный пример содержится в файле c h a r t f ro m combo
b o x . x l s x ( c h a p t e r i 7 _ R U S . x s l m ) на прилагаемом компакт-диске.
Примечание
Не следует путать таблицы данных с таблицами, создаваемыми с помощью
команды Вставка^Таблицы^Таблица.
Совет
Тригонометрические функции Excel требуют задания углов, выраженных
в радианах. Для преобразования градусов в радианы можете воспользо
ваться функцией РАДИАНЫ.
Компакт-диск
Примеры этого раздела содержатся в файле f u n c t i o n plot 2D.x l s x
(c h a p t e r 1 7 _ r u s . x s l m ) на прилагаемом компакт-диске.
Рис. 17.15. Использование диаграммы поверхности для построения графика функции двух пе
ременных
На рис. 17.16 показан лист, создающий графики произвольных функций двух перемен
ных, аналогичных показанному в предыдущем разделе. Данные для диаграммы находятся
в таблице размером 25x25. Она расположена в диапазоне М7 :AL32 (на рисунке этот диа
пазон не показан). Для использования этого листа выполните следующие действия.
1. В ячейку ВЗ введите формулу. Эта формула должна содержать по крайней мере
одну переменную х и одну переменную у. На рисунке формула в ячейке ВЗ сле
дующая:
= S I N ( х ) *COS(х *у)
2. В ячейку В4 введите минимальное значение jc, а в ячейку В5 — максимальное.
3. В ячейку В 6 введите минимальное значение у, а в ячейку В 7 — максимальное.
Формула в ячейке ВЗ отображает значение z для минимальных значений jc и у. Табли
ца данных вычисляет формулу для 25 равноотстоящих значений jc и у , и уже эти данные
выводятся на диаграмму.
Компакт-диск
Продемонстрированный пример содержится в файле f u n c t i o n p l o t 3D. x ls m
( C h apteri7_R U S.xlsm ) на прилагаемом компакт-диске. Перемещая ползунки в
нижней части листа, можно изменять угол наклона и уровень диаграммы; также
можно ввести любую другую функцию двух переменных (X и Y).
Глава 17. Диаграммы 431
Рисование окружности
Для того чтобы создать двухмерную диаграмму, которая выводит на экран идеальную
окружность, вам потребуется два диапазона: один для значений х и другой для у. Коли
чество данных в рядах определяет гладкость окружности. Можете также в диалоговом
окне Формат ряда данных установить флажок сглаженная линия.
На рис. 17.17 показана диаграмма, использующая для создания окружности 13 точек.
Если вы работаете в единицах градусов, сгенерируйте последовательность значений, по
добно тем, которые показаны в столбце А. Эта последовательность начинается с нуля и
имеет приращение 30 градусов. Если вы работаете с радианами (столбец В), первая по
следовательность начинается с нуля; при этом приращение составляет ПИ/ 6.
Компакт-диск
Продемонстрированный пример содержится в файле p l o t circles.xlsx
( C h a p t e r i 7 _ R U S . x l s m ) на прилагаемом компакт-диске.
Компакт-диск
Продемонстрированный пример содержится в файле p l o t c i r c l e s . x l s x
(c h a p t e r 1 7 _ r u s . x l s m ) на прилагаемом компакт-диске. Изменяя координа
ты центра и радиус в нижней части листа, вы можете поэкспериментировать
с рисованием окружностей.
Глава 17. Диаграммы 433
Рис. 17.19. Эти полнофункциональные часы на самом деле представляют собой точечную диаграмму
434 Часть V. Полезные методики применения формул
Компакт-диск
Продемонстрированный пример содержится в файле c l o c k chart.xlsm
( c l o c k RUS. x ls m ) на прилагаемом компакт-диске.
В диаграмме используются четыре набора данных: один для часовой стрелки, второй
для минутной, третий для секундной стрелки и еще один для цифр. Последний набор дан
ных используется для рисования окружности с 12-ю точками; числа вводятся вручную как
подписи. В дополнение я добавил овальную форму в верхней части диаграммы.
В формулах, описанных в табл. 17.2, использованы основные тригонометрические
функции для построения наборов данных. (Диапазон G4 : L4 содержит нулевые значения,
а не формулы.)
Компакт-диск
Продемонстрированный пример содержится в файле h y p o c i c l o i d c h a r t . x l s x
( Ch apt eri 7_RUS . x l s m ) на прилагаемом компакт-диске. Более интересная,
анимированная версия этого листа содержится в файле h y p o c i c l o i d a n i
m a t e d , x l s m . В анимированной версии используется макрос VBA.
436 Часть V. Полезные методики применения формул
Тренды
В некоторых диаграммах для более наглядного представления данных может потре
боваться построение линии тренда. Тренд отображает характер изменения ряда данных.
В некоторых случаях с помощью линий трендов можно выполнять прогнозирование.
Один ряд данных может иметь несколько трендов.
Добавить тренд на диаграмму в Excel довольно просто. Для этого выберите команду
Работа с диаграммами^Макет^Анализ^Линия тренда^Линейное приближение.
Дополнительные параметры управления линией тренда приведены в специальном диало
говом окне, открываемом с помощью команды Работа с диаграммами1^ Макета
Анализ^Линия тренда^Дополнительные параметры линии тренда.
Рис. 17.22. Диалоговое окно параметров линии тренда предлагает автоматическое построе
ние различных типов линий тренда
Линейные тренды
На рис. 17.23 показаны две диаграммы. Диаграмма, находящаяся слева, отображает
ряд данных без линии тренда. На рисунке анализируется линейная зависимость данных
от времени. Справа изображена та же диаграмма, но уже с линией тренда, показывающей
ход изменения данных.
Компакт-диск
Примеры этого раздела содержатся в файле l i n e a r tr e n d lin e .x lsx
( c h a p t e r i7 _ R U S . x ls m ) на прилагаемом компакт-диске.
Рис. 17.23. Диаграмма до (слева) и после (справа) добавления на нее линии тренда
С помощью этого уравнения для каждого значения х (в данном случае это столбец В)
можно получить расчетное значение у (значение на графике тренда). Переменная т
представляет угол наклона прямой, а Ь — это точка пересечения прямой с осью Y. На
пример, для марта значение х равно 3, а расчетное значение, полученное с помощью
указанной формулы, составило 674 , 4 7.
=(53,194*3)+514,93
438 Часть V. Полезные методики применения формул
Линейное прогнозирование
Если диаграмма имеет четко выраженный тренд, Excel может предсказать и отобра
зить на диаграмме дополнительные точки (чтобы предвидеть будущее, не обязательно
быть оракулом). Данная возможность реализуется во вкладке Параметры линии трен
да диалогового окна Формат линии тренда. Необходимо просто указать число пред
сказываемых точек. На рис. 17.26 показана диаграмма, прогнозирующая значения для
двух предстоящих периодов.
Если известны угол наклона и точка пересечения с осью Y, можно создать прогноз
для любых значений х. Например, чтобы вычислить значение у, при котором х=11
(ноябрь), воспользуйтесь следующей формулой:
у = (53,194*11) + 514,93
Существует также возможность прогнозирования значений с помощью функции
ПРЕДСКАЗ. Ниже приведен пример формулы, прогнозирующей значение для ноября (т.е.
для х=11), в которой используются известные значения х и у.
=ПРЕДСКАЗ( 1 1 ; С 2 : C l 1 ; В 2 : В11)
Предупреждение
Вычисление показателя достоверности аппроксимации с помощью функции
квпирсон применимо только в случае линейного тренда.
Нелинейные тренды
Наряду с линейными трендами, Excel может отображать тренды следующих типов.
• Логарифмический. Используется в случае, когда значения данных имеют высо
кую скорость нарастания или спада, а затем стабилизируются.
• Степенной. Используется, когда значения данных увеличиваются или спадают
с постоянной скоростью. Данные не могут содержать нулевых или отрицательных
значений.
• Экспоненциальный. Используется, когда значения увеличиваются или умень
шаются с нарастающей скоростью. Данные не могут содержать нулевых или от
рицательных значений.
• Полиномиальный. Используется для неустойчивых данных. Необходимо выбрать
порядок полинома (от 2 до 6) в зависимости от количества колебаний графика.
Примечание
Во вкладке Параметры линии тренда диалогового окна Формат линии тренда
предоставляется также возможность выбрать вариант Линейная фильтрация.
На самом деле этот вариант не является линией тренда, однако он позволяет
сгладить зашумленные данные. При выборе этого варианта следует указать
количество точек данных, по которым выполняется усреднение. К примеру,
если выбрать пять точек, Excel будет находить среднее каждой группы из пяти
точек и отображать полученное значение на сглаженной линии.
В этой главе уже говорилось о том, как найти угол наклона и точки пересечения с
осью Y для линейного уравнения, описывающего линейный тренд. Нелинейные тренды
тоже основаны на определенных уравнениях, о чем речь пойдет в следующих разделах.
Компакт-диск
Примеры этого раздела содержатся в файле n o n l i n e a r trend lin e.xlsx
( Ch apt er i 7 _RUS . x l s m ) на прилагаемом компакт-диске.
Логарифмический тренд
Логарифмический тренд описывается уравнением следующего вида:
у = (с * LN (х) ) - b
Глава 17. Диаграммы 441
Степенной тренд
Степенной тренд описывается уравнением следующего вида:
у = с * х жЬ
На рис. 17.28 показана диаграмма с добавленной линией степенного тренда. Первый
элемент в двухъячеечной формуле массива, записанной в диапазоне Е2 :F2, вычисляет
значения переменной Ь. Формула массива имеет следующий вид:
{=ЛИНЕЙН(LN( В 2 : B l l ) ;LN(A2:A11) ; ;ИСТИНА) }
Значение переменной с вычисляется с помощью формулы, находящейся в ячейке F3.
=ЕХР(F 2 )
В столбце С содержатся прогнозируемые значения у для каждого значения х, полу
ченные на основе вычисленных значений b и с. Например, в ячейку С2 введена следую
щая формула:
= ($F$3 * (А2Х$Е$2)
442 Часть V. Полезные методики применения формул
Экспоненциальный тренд
Экспоненциальный тренд описывается уравнением следующего вида:
у = с * ЕХР(Ь * х )
На рис. 17.29 показана диаграмма с добавленной линией экспоненциального тренда.
Первый элемент в двухъячеечной формуле массива, записанной в ячейках F2 :G2, вы
числяет значения для переменной Ь. Эта формула имеет следующий вид:
{=ЛИНЕЙН(LN(В 2 :В1 1 ) ; А 2 : А 1 1 ) }
Значение переменной с определяется с помощью формулы, находящейся в ячейке G3.
=ЕХР(G 2)
В столбце С содержатся расчетные значения у для каждого значения х, полученные
на основе вычисленных значений b и с. Например, в ячейке С2 представлена следующая
формула:
=$G $3*E X P ( $ F $ 2 *A 2 )
В столбце D в формуле массива используется функция РОСТ для генерирования расчет
ного значения у. Формула массива, записанная в ячейках D2 : D10, имеет следующий вид:
{ =РОСТ (В2 : В 1 1 ; А2 : А Н ) }
Глава 17. Диаграммы 443
Полиномиальный тренд
При выборе полиномиального тренда требуется дополнительно указать порядок по
линома (число от 2 до 6). Чем выше порядок полинома, тем точнее тренд совпадает с
исходными точками. Если порядок равен количеству точек минус единица, произойдет
полное совпадение, однако учитывайте, что тогда тренд не показывает тенденцию изме
нения данных, а всего лишь повторяет исходные данные. Поэтому выбор порядка поли
нома — непростая задача, требующая опыта работы с тенденциями данного типа. Ниже
показано уравнение полиномиального тренда третьего порядка.
у = ( с З * х Л3 ) + ( с 2 * х ^ 2 ) + ( с 1 * х Л1) +Ь
Обратите внимание на то, что используется три коэффициента с (по одному для каж
дого порядка). Общее количество коэффициентов равно четырем (включая Ь).
На рис. 17.30 показана диаграмма с добавленной линией полиномиального тренда
третьего порядка. Четырехэлементная формула массива, записанная в ячейках F 2 : I 2 ,
вычисляет значения каждого из трех коэффициентов с и коэффициента Ь.
{=ЛИНЕЙН ( (В2 : B l l ) ; (А2 : A l l ) ж{ 1; 2 ; 3 } ) }
В столбце С содержатся расчетные значения у для каждого значения х, полученные
на основе вычисленного коэффициента b и трех коэффициентов с. Например, в ячейке
С2 отображается следующая формула:
= ($F$2*A2'43 ) + ( $G$2*A2A2 ) + ( $Н$2*А2) +$1$2
444 Часть V. Полезные методики применения формул
Сводные таблицы
В этой главе...
♦ О сводных таблицах
♦ Пример сводной таблицы
♦ Данные, пригодные для создания сводных таблиц
♦ Создание сводной таблицы
♦ Другие примеры сводных таблиц
♦ Группировка элементов сводной таблицы
♦ Распределение частот
♦ Создание вычисляемых полей и элементов
♦ Фильтрация сводных таблиц с помощью срезов
♦ Ссылки на ячейки сводной таблицы
♦ Еще один пример сводной таблицы
♦ Создание отчета на основе сводной таблицы
О сводных таблицах
Сводная таблица является, по существу, динамическим итоговым отчетом, генери
руемым на основе базы данных. База данных может находиться как на рабочем листе,
так и во внешнем файле. Сводные таблицы помогут создать доступное для понимания
представление огромного количества строк и столбцов.
С помощью данного средства можно, например, создавать частотные распределения
и таблицы массивов данных разных размерностей. Кроме того, существует возможность
446 Часть V. Полезные методики применения формул
Компакт-диск
Демонстрируемые примеры содержатся в файле bank accounts .x ls x
( c h a p t e r i8 _ R U S . x s l x ) на прилагаемом компакт-диске.
На рис. 18.3 показана еще одна сводная таблица, созданная из той же базы банков
ских данных. В ней используется раскрывающийся список фильтрации по полю типа
448 Часть V. Полезные методики применения формул
клиента. В таблице отображены данные лишь для старых клиентов (можно также вы
брать из списка поля варианты Новый или В с е ) . Обратите внимание на изменение ори
ентации таблицы: отделения указываются уже в строках, а типы счетов — в столбцах.
Этот пример демонстрирует гибкость сводных таблиц.
1 9 ____________________________________________________________________________________________________________________
• Поле столбца — это поле (т.е. столбец) исходной таблицы, имеющее в сводной
таблице ориентацию столбца. Каждый элемент в сводной таблице занимает стол
бец. На приведенном рисунке Клиент является полем столбца с двумя элементами
(Старый и новый). В сводной таблице можно использовать вложенные поля.
• Общий итог — это строка или столбец, отображающий итоги для всех ячеек в
строке или столбце. При создании сводной таблицы можно определить отображе
ние итогов для строк, столбцов, для строк и столбцов или отсутствие итогов.
• Группа — это набор элементов, рассматриваемых как один элемент. Элементы
можно группировать как вручную, так и автоматически (например, можно сгруппи
ровать даты в месяцы). Приведенная выше в качестве примера сводная таблица не
содержит определенных групп.
• Элемент — это элемент поля, выступающий в сводной таблице в качестве заго
ловка строки или столбца. На приведенном рисунке Старый и Новый являются эле
ментами поля Клиент. Поле О тдел ен ие имеет три элемента, поле Тип — четыре.
• Обновление — это пересчет сводной таблицы после внесения изменений в исход
ные данные или структуру.
• Поле строки — это поле (т.е. столбец) исходной таблицы, имеющее в сводной таб
лице ориентацию строки. Каждый элемент в поле занимает строку. Поля строки
можно объединять. На рисунке отображены два поля строки: О тделение и Тип.
• Исходные данные — это данные, используемые для создания сводной таблицы.
Они могут находиться как на рабочем листе, так и во внешней базе данных.
• Промежуточные итоги — это строка или столбец, отображающий промежуточные
суммы для части ячеек в строке или столбце сводной таблицы. В представленной
таблице показаны промежуточные суммы для каждого отделения.
• Фильтр таблицы — это поле, имеющее ориентацию страницы сводной таблицы.
Оно похоже на срез трехмерного куба. В поле фильтра (страницы) может одновре
452 Часть V. Полезные методики применения формул
Совет
Если сводная таблица создается из диапазона рабочего листа, лучше предва
рительно преобразовать его в таблицу, выбрав команду Вставка^Таблицы^
Таблица. В этом случае при добавлении в таблицу новых строк данных Excel
будет обновлять сводную таблицу без необходимости переопределения ново
го исходного диапазона.
нако можно указать диапазон на любом рабочем листе книги, включая тот, который со
держит исходные данные.
Щелкните на кнопке OK — Excel сгенерирует пустую сводную таблицу и отобразит
панель списка доступных полей (рис. 18.8).
“т з г
Совет
Панель списка полей сводной таблицы обычно закреплена у правой границы
окна Excel, однако, перетаскивая ее заголовок, можно перем естить эту па
нель в лю бое д р уго е м есто. Если щелкнуть на ячейке вне сводной таблицы,
панель списка полей будет скры та.
Примечание
В преды дущ их версиях (до Excel 2007) п риход илось перетаскивать им ена
полей н епосредственно в конкретную область сводной таблицы. Э тот м етод
ф орм ирования сводной таблицы остается доступны м , однако по умолчанию
он отключен. Для включения этой ф ункции вы берите команду Работа со
сводными таблицами^П араметры ^С водная таблица^Параметры^П араметры .
В открывш емся диалоговом окне перейдите на вкладку Вывод и установите
флажок Классический макет сводной таблицы.
454 Часть V. Полезные методики применения формул
Рис. 18.9. После нескольких простых действий сводная таблица отображает итоговые данные
Вкладка Операция используется для выбора итоговой функции. Можно выбрать сле
дующие функции: Сумма, Количество, Среднее, Максимум, Минимум, Произведение, Ко
личество чисел, Смещенное отклонение, Несмещенное отклонение, Смещенная диспер
сия и Несмещенная дисперсия.
Для отображения значений в другой форме используйте раскрывающийся список
вкладки Дополнительные вычисления. Доступны варианты: % от общей суммы, % от об
щей суммы по столбцу, Доля и др.
полей сводной таблицы. На рис. 18.11 показана сводная таблица после перетаскивания
поля Открыт в область Названия строк.
Вопрос 1
Какова сумма новых депозитов в каждом из отделений банка?
На рис. 18.13 показана сводная таблица, отвечающая на этот вопрос.
• Поле О т д е л е н и е находится в области Названия столбцов.
• Поле Д а т а находится в разделе Названия строк.
• Поле Сумма находится в области Значения.
Обратите внимание, что сводная таблица может быть отсортирована по любому
столбцу. К примеру, столбец Общий и т о г можно отсортировать по убыванию, чтобы
найти дни, в которые было совершено больше вкладов. Чтобы выполнить сортировку по
любой ячейке столбца, выберите в контекстном меню пункт Сортировка.
Вопрос 2
В каком отделении самая большая сумма открытых счетов?
На этот вопрос отвечает сводная таблица, показанная на рис. 18.14.
• Поле О т д е л е н и е помещено в область Названия строк.
• Поле Сумма помещено в область Значения. Добавлено суммирование значений
Сумма.
Вопрос 3
Сколько счетов было открыто в каждом из отделений банка с разбиением по
типам счетов?
На рис. 18.15 показана сводная таблица, дающая ответ на этот вопрос.
458 Часть V. Полезные методики применения формул
Рис. 18.13. В этой сводной таблице отображены сводные Рис. 18.14. Распределение сумм от-
ежедневные поступления во все отделения банка крытых счетов по отделениям
Рис. 18.15. Эта сводная таблица использует функцию с ч ё т для обобщения данных
Вопрос 4
Каково распределение сумм по счетам?
На рис. 18.16 показана сводная таблица, отвечающая на этот вопрос. К примеру, 358
из новых счетов имеют вклады в размере менее 5000 долларов.
Эта таблица несколько необычна, поскольку в ней использовано всего одно поле —
Сумма.
• Поле Сумма находится в области Названия строк (для выполнения группировки).
• Поле Сумма также находится в области Значения; обобщение выполняется по
количеству.
• Третий экземпляр поля Сумма находится также в области Значения, но обобще
ние выполняется по проценту от общей суммы.
Когда я изначально перетащил поле Сумма в область Названия строк, в сводной
таблице отображалось по одной строке для каждого уникального значения суммы. Затем
я щелкнул на одной из ячеек столбца названий строк и выбрал в контекстном меню
пункт Группировать. В открывшемся диалоговом окне я выбрал шаг в 5 0 0 0 .
Второй экземпляр поля Сумма (в области Значения) обобщен по количеству значе
ний. Для этого я щелкнул правой кнопкой на ячейке области значений и выбрал в кон
текстном меню пункт Итоги по ^ Количество.
Третий экземпляр поля Сумма помещен в область Значения. Данные обобщены по
проценту от общей суммы. Для этого я перешел во вкладку Дополнительные вычисле
ния диалогового окна параметров поля значений и выбрал в раскрывающемся списке ва
риант Доля от суммы по столбцу. Для открытия этого окна следует щелкнуть на любой
ячейке столбца и выбрать в контекстном меню пункт Итоги по1^ Дополнительно.
460 Часть V. Полезные методики применения формул
Вопрос 5
Какие типы счетов кассиры открывают чаще всего?
На этот вопрос отвечает рис. 18.17.
• Поле Тип находится в области Названия строк.
• Поле О ткрыт находится в области Фильтр отчета.
• Поле Сумма находится в области Значения, и обобщение выполнено по количеству.
• Второй экземпляр поля Сумма находится в области Значения, и обобщение вы
полнено по проценту от общей суммы.
В этой сводной таблице в качестве фильтра использовано поле Открыт; при этом
данные отображены только для счетов, открытых кассирами. Данные отсортированы так,
чтобы наибольшие значения находились вверху. Также использовано условное формати
рование, чтобы отображать проценты в виде полос.
Вопрос 6
Каковы успехи центрального отделения банка по сравнению с остальными
двумя?
На рис. 18.18 показана сводная таблица, проливающая свет на этот туманный вопрос.
Показаны результаты центрального офиса и сумма значений остальных отделений банка.
• Поле Тип находится в области Названия строк.
• Поле О тд ел ен и е находится в области Названия столбцов.
• Поле Сумма находится в области Значения.
Я сгруппировал северное и западное отделения и назвал эту группу О стальн ы е.
В сводной таблице показаны объемы для разных типов счетов. Также с целью демонст
рации приведена сводная диаграмма.
Вопрос 7
В каком отделении банка кассиры открыли больше международных счетов для
новых клиентов?
На рис. 18.19 показана сводная таблица, дающая ответ на этот вопрос. В центральном
отделении банка кассиры открыли для старых клиентов 11 таких счетов.
Глава 18. Сводные таблицы 461
В этой сводной таблице определены три фильтра отчета. Поле Клиент отфильтрова
но для показа только старых клиентов; поле Открыт — для показа только сведений
о счетах, открытых кассирами; а поле Тип — для показа только международных счетов.
Наша задача— создать две группы регионов: западный (города Москва, Калуга и
Тверь) и восточный (города Казань, Тула и Пермь). Для создания первой группы, удер
живая клавишу <Ctrl>, выделите города Москва, Калуга и Тверь.
После этого щелкните правой кнопкой и выберите в контекстном меню пункт Груп
пировать. Ту же операцию повторите и для второй группы. На рис. 18.21 показаны ре
зультаты такой группировки.
Можно создать любое количество групп, и даже объединить их в более общие группы.
Компакт-диск
Демонстрируемые примеры содержатся в файле e m p lo y e e lis t.x lsx
( C h a p t e r i8 _ R U S . x s l x ) на прилагаемом компакт-диске.
Группировка по дате
На рис. 18.23 показана часть обычной таблицы, содержащей два поля: Д а т а и
Продажи. Эта таблица содержит 730 строк и охватывает диапазон дат от 1 января 2009 го
да до 31 декабря 2010 года. Требуется обобщить данные о продажах по месяцам.
На рис. 18.24 показана часть сводной таблицы, созданной на основе этих данных. По
ле Д а т а находится в области Названия строк, а поле П р од аж и — в области Значения.
Не удивительно, что сводная таблица выглядит точно так же, как и исходные данные, по
скольку даты еще не были сгруппированы.
Рис. 18.23. Сводную таблицу мож Рис. 18.24. Сводная таблица до группи
но использовать для обобщения ровки по месяцам
объемов продаж по месяцам
Компакт-диск
Демонстрируемые примеры содержатся в
файле s a l e s b y d a t e . x l s x ( C h a p t e r l 8 _
r u s . x s l x ) на прилагаемом компакт-диске.
Примечание
Если в диалоговом окне Группирование выбрать только элемент Месяцы,
одинаковые месяцы разных лет будут объединены. К примеру, в строке
Январь будут сведены данные о продажах за два января 2005 и 2006 года.
На рис. 18.27 показано еще одно представление тех же данных, однако в этом случае
группировка выполнена по годам и кварталам.
Рис. 18.26. Сводная таблица после группи- Рис. 18.27. В этой сводной таблице
ровки по годам и месяцам показаны данные о продажах за раз
ные годы и кварталы
Группировка по времени
На рис. 18.28 в столбцах А и В рабочего листа показаны данные, считанные с некото
рого датчика на протяжении суток с интервалом в одну минуту. Всего данная таблица
содержит 1440 строк. В сводной таблице эти данные обобщены по часам.
Компакт-диск
Демонстрируемые примеры содержатся в файле h o u r l y re a d in g s.x lsx
( c h a p t e r i 8 _ R U S . x s l x ) на прилагаемом компакт-диске.
Распределение частот
Excel предлагает множество способов создания табли
цы распределения частот, однако ни один из них по про
стоте не может соревноваться со сводными таблицами. На
рис. 18.29 показана часть таблицы с результатами тести
рования 221 студента. Требуется определить количество
студентов, попавших в каждый из десятибалльных диапа
зонов (1-10, 11-20 и т.д.).
Компакт-диск
Демонстрируемые примеры содержатся в фай
ле t e s t s c o r e s . x l s x ( C h a p t e r l8 _ R U S .x slx )
на прилагаемом компакт-диске.
Сводная таблица достаточно проста: Рис. 18.29. Исходная таблица с
результатами тестирования сту
• поле Б а л л перенесено в область Названия строк дентов
(с группировкой);
• второй экземпляр поля Б а л л помещен в область
Значения (с обобщением по количеству).
В диалоговом окне Группирование сгенерированы диапазоны по 10 баллов, начиная
с 1 и заканчивая 100.
Глава 18. Сводные таблицы 467
Примечание
По умолчанию Excel не отображает элементы с нулевыми значениями. В пред
ставленном примере нет результатов теста с баллами ниже 21. По этой причи
не диапазоны 1-10 и 11-20 скрыты. Чтобы изменить такой режим работы, от
кройте диалоговое окно Параметры сводной таблицы, перейдите во вкладку
Вывод и установите флажок Показывать элементы без данных в строках.
На рис. 18.30 показана сводная таблица распределения тестовых баллов, а также
сводная диаграмма, созданная с помощью команды Работа со сводными таблицами1^
Параметры^Сервис^Сводная диаграмма.
Примечание
В данном примере для автоматического создания групп было использовано
диалоговое окно Excel Группирование. Вручную можно создать нестандарт
ные, не равные по размеру группы. К примеру, для определенных диапазо
нов баллов можно назначить символьные оценки. Выделите строки для пер
вой группы, а затем выберите в контекстном меню пункт Группировать. По
вторите это действие для каждой из создаваемых групп. После этого
можете присвоить созданным группам смысловые имена.
Компакт-диск
Демонстрируемые примеры содержатся в файле c a l c u l a t e d f i e l d s and
i t e m s . x l s x (C h ap te rl8_ R U S . x s l x ) на прилагаемом компакт-диске.
На рис. 18.32 показана простая сводная таблица, созданная на основе этих данных.
В ней показаны объемы продаж (область Значения), сгруппированные по месяцам
(область Названия строк) и торговым представителям (область Названия столбцов).
Глава 18. Сводные таблицы 469
Примечание
Вычисляемые поля можно использовать только в области Значения сводной
таблицы. В областях Названия столбцов, Названия строк и Фильтр отчета ис
пользовать их нельзя.
Для примера предположим, что требуется вычислить среднюю стоимость единицы
продукции. Данная величина может быть найдена путем деления значения поля
П родажи на значение поля Е д и н и ц п р о д а н о . Результат должен находиться в новом
поле сводной таблицы (в вычисляемом поле).
Чтобы создать вычисляемое поле, содержащее результат деления значений поля
Продажи на значения поля Е д и н и ц п р о д а н о , используйте следующую процедуру.
470 Часть V. Полезные методики применения формул
Примечание
Формулу можно записать вручную, воспользовавшись клавиатурой или два
жды щелкнув на элементе списка Поля. При двойном щелчке элемент пере
носится в поле Формула. Так как в имени поля Единиц продан о есть пробел,
Excel заключает его в одиночные кавычки.
Программа Excel добавляет созданное вычисляемое поле в область Значения свод
ной таблицы (оно также появится на панели списка полей). С ним можно обращаться так
же, как и с любым другим полем, за одним исключением: его нельзя переместить в об
ласть Фильтр таблицы, Названия строк или Названия столбца — оно должно оста
ваться в области Значения.
На рис. 18.34 показана часть сводной таблицы после добавления в нее вычисляемого
поля. В новом поле отображается средняя стоимость единицы продукции для каждого
торгового представителя.
Совет
Используемые формулы могут содержать функции рабочего листа, однако
последние не должны ссылаться на ячейки или именованные диапазоны.
данных нового поля. С другой стороны, вычисляемый элемент сводной таблицы является
альтернативой добавления в источник данных новой строки, содержащей формулы, ссы
лающиеся на другие строки.
Примечание
Модификация источника данных для получения этой информации потребо
вала бы вставки шестнадцати новых строк, содержащих формулы. Таким
образом, в данном примере создание вычисляемых элементов представля
ет собой значительно более легкую задачу.
Для создания вычисляемого элемента комиссионных за первый квартал выполните
следующие действия.
1. Переместите курсор ячейки в область Названия строк или Названия столбцов
сводной таблицы и выберите команду Работа со сводными таблицами^Па-
раметры«=>Вычисления«=>Поля, элементы и наборы^Вычисляемый объект.
2. В открывшемся окне в соответствующих полях введите имя элемента и формулу
(рис. 18.35). В формуле можно использовать элементы других полей, но не функ
ции рабочего листа. В нашем примере именем элемента является К ом иссия 1
кв ., а формула имеет следующий вид:
=10%*(Янв+Фев+Мар)
3. Щелкните на кнопке Добавить.
4. Повторите пп. 2-3 для создания трех остальных вычисляемых элементов, исполь
зуя следующие формулы:
472 Часть V. Полезные методики применения формул
• комиссия 2 кв.=11%*(Апр+Май+Июн);
• комиссия 3 кв.=12%*(Июл+Авг+Сен);
• комиссия 4 кв.=12,5%*(Окт+Ноя+Дек).
5. Щелкните на кнопке О К, чтобы закрыть диалоговое окно.
Примечание
Вычисляемые элементы, в отличие от вычисляемых полей, не отображаются
на панели списка полей.
Предупреждение
При использовании в сводной таблице вычисляемых элементов лучше
отключить строку итогов, чтобы избежать двойного суммирования.
В представленном примере комиссионные также включаются в общий
итог продаж (что не логично), так что для их отключения выберите ко
манду Работа со сводными таблицами^Конструктор^Макет^Общие ито-
ги^Включить только для строк.
После создания вычисляемых элементов они будут отображаться в сводной табли
це. На рис. 18.36 показана сводная таблица после добавления вычисляемых элементов.
Обратите внимание, что по умолчанию вычисляемые элементы добавляются в конец
списка. Однако при желании можно перетащить вычисляемые строки и заголовки в
другое место. Альтернативой является создание для вычисляемых элементов отдель
ных групп. На рис. 18.37 показаны две группы: о д н а— для объемов продаж и дру
гая — для комиссионных вознаграждений. Это позволяет вычислять промежуточные
итоги по каждой группе.
Рис. 18.37. Сводная таблица после создания двух групп и добавления про
межуточных итогов
Рис. 18.38. Использование срезов для фильтрации данных, выводимых сводной таблицей
474 Часть V. Полезные методики применения формул
Новинка
Срезы введены в Excel 2010.
Компакт-диск
Этот пример содержится в файле p i v o t c h a r t s l i c e r . x l s x (18_3 9 _ r u s .
x s l x ) на прилагаемом компакт-диске.
Компакт-диск
Демонстрируемые примеры содержатся в файле in co m e and expen
s e s . x l s x ( C h a p t e r i8 _ R U S . x s l x ) на прилагаемом компакт-диске.
Предупреждение
Использование функции п олучить . данные . сводной . таблицы имеет один
подвох — извлекаемые ею данные должны отображаться в сводной таблице.
Если изменить структуру сводной таблицы таким образом, чтобы эти данные
были скрыты, формула вернет ошибку.
Совет
Если по некоторой причине вы хотите избежать использования программой
функции получить . данные . сводной . таблицы в формулах, примените ко
манду Работа со сводными таблицами^Параметры^Сводная таблица^Пара-
метры1^Создать GetPivotData. Эта команда работает как переключатель.
476 Часть V. Полезные методики применения формул
Компакт-диск
Демонстрируемые примеры содержатся в файле c o u n t y d a t a . x l s x (chap-
t e r i 8 _ R U S . x s l x ) на прилагаемом компакт-диске.
На рис. 18.43 показана сводная таблица, созданная на основе данных таблицы пере
писи населения. В качестве названий строк использованы поля Р е г и о н и Штат, а в ка
честве значений— поля П е р е п и с ь 2000 и П е р е п и с ь 1990.
Для отображения дополнительной информации создано три вычисляемых поля.
• И з м е н е н и е . Изменение численности населения с 1990 по 2000 год в абсолютных
значениях.
Глава 18. Сводные таблицы 477
Рис. 18.42. В этой таблице содержатся данные переписи населения США для некоторых
регионов
Вычисляемые поля и элементы можно документировать. Для этого выберите команду Ра
бота со сводными таблицами^Параметры^Вычисления^Поля, элементы и набо-
ры^Вывести формулы. После этого Excel вставит в рабочую книгу новый лист с ин
формацией о вычисляемых полях и элементах. На рис. 18.44 показан пример такого ра
бочего листа.
Приведенная в качестве примера сводная таблица отсортирована по двум столбцам —
регионам и штатам. Для задания сортировки выберите любую ячейку с данными, по ко
торым нужно выполнить сортировку, щелкните на этой ячейке правой кнопкой и выбе
рите в контекстном меню пункт Сортировка.
Если порядок сортировки отличается от стандартного (в рассматриваемом примере на
звания регионов содержали римские цифры), следует создать пользовательский список.
Для этого откройте окно параметров Excel, перейдите во вкладку Дополнительно и щелк
ните на кнопке Изменить списки. Выберите в левом списке элемент НОВЫЙ СПИСОК,
478 Часть V. Полезные методики применения формул
Рис. 18.44. На этом рабочем листе перечислены вычисляемые поля и элементы сводной таблицы
Компакт-диск
Демонстрируемые примеры в авторском варианте содержатся в файле mu
s i c l i s t . x l s x на прилагаемом компакт-диске.
Отчет, созданный на базе этой сводной таблицы, занимает 132 страницы, и для его
настройки требуется порядка пяти минут (на самом деле для более тщательной настрой
ки может понадобиться больше времени).
Глава 18. Сводные таблицы 479
Вот краткий список действий, которые нужно выполнить для создания этого отчета.
1. Выделите ячейку таблицы и выберите команду Вставка^Таблицы^Сводная
таблица.
2. В диалоговом окне создания сводной таблицы подтвердите предложенные пара
метры, щелкнув на кнопке ОК.
3. На новом рабочем листе на панели списка полей перетащите в область названий
строк следующие поля: Жанр, И с п о л н и т е л ь и А л ь б о м .
4. Следующие поля перетащите в область Значения: К о м п о з и ц и я , Р а з м е р
и Д лительность.
5. В диалоговом окне Параметры полей значений задайте подсчет количества
композиций, а также просуммируйте их размеры и продолжительность.
6. Удобнее отображать размеры в мегабайтах, поэтому для этого столбца создайте
пользовательский формат следующего вида:
# # # , # # # , "Mb";;
7. В столбце длительности примените пользовательский числовой формат
[h] : mm: s s ; ; чтобы отображать часы, минуты и секунды.
8. Отредактируйте заголовки столбцов, чтобы отчет помещался на стандартных
листах по горизонтали.
9. Измените формат сводной таблицы, выбрав команду Работа со сводными таб
лицами1^ Конструктор^ Макета Макет отчета^Показать в сжатой форме.
10. Отключите заголовки полей, выбрав команду Работа со сводными таблицами^
Параметры«=>Показать1^Заголовки полей.
480 Часть V. Полезные методики применения формул
Примечание
На самом деле для выполнения п. 14 нужна некоторая изобретательность.
Необходимо изменить размер шрифта только для названия жанра, но оста
вить прежний размер для промежуточных итогов. Таким образом, нельзя
было менять стиль для сводной таблицы. Я выделил весь столбец а и нажал
клавиши <Ctrl+G>, чтобы открыть диалоговое окно Перейти. В открывшемся
окне я щелкнул на кнопке Выделить и установил переключатель в положение
Константы, после чего щелкнул на кнопке ОК. В результате в столбце А были
выделены только непустые ячейки. После этого уже можно изменить шрифт
только для выделенных ячеек.
Глава
Условное форматирование
и проверка данных
В этой главе...
♦ Условное форматирование
♦ Проверка данных
Условное форматирование
Условное форматирование позволяет применять к ячейкам заданные форматы избира
тельно и автоматически, основываясь на их содержимом. К примеру, можно задать, чтобы
все ячейки с отрицательными значениями в определенном диапазоне имели желтый фон.
При вводе или изменении значений в диапазоне программа Excel проверяет их и автомати
чески применяет правила условного форматирования. Если значение отрицательное, при
меняется желтая заливка; в противном случае форматирование не применяется.
Новинка 7
Средства условного форматирования в версиях Excel 2007 и Excel 2010 пре
терпели существенные изменения и стали еще более полезными для визуа
лизации числовых данных. В некоторых случаях можно использовать услов
ное форматирование даже вместо диаграмм.
Условное форматирование является полезным средством идентификации ошибочных
значений в ячейках, а также ячеек заданного типа. В данном случае использование ус
ловного форматирования (такого как выделение ячеек красным фоном) позволит быстро
выявить искомые ячейки.
482 Часть V. Полезные методики применения формул
На рис. 19.1 показан рабочий лист, содержащий девять диапазонов, в каждом из ко
торых использован особый тип условного форматирования. Вот краткое описание каж
дого из них.
• Больше 10. Значения, превышающие десять, выделяются соответствующим фо
ном. Это правило— всего лишь пример безграничных возможностей правил,
применяемых к числовым значениям.
• Больше среднего. Выделяются ячейки, значения которых превышают среднее
значение диапазона.
• Дублирующиеся значения. Выделяются значения, которые встречаются в диапа
зоне в нескольких экземплярах.
• Слова, содержащие букву X. Если ячейка содержит букву X (независимо от реги
стра), она выделяется.
• Гистограммы. В каждой из ячеек диапазона отображается горизонтальная полоса
с длиной, пропорциональной значению.
• Цветовая шкала. Цвет фона ячейки изменяется в зависимости от ее значения.
Можно выбрать любую из существующих шкал или создать собственную.
• Набор значков. Использование одного из доступных наборов значков, отобра
жаемых в ячейке наряду со значением. Внешний вид значка зависит от содержи
мого ячейки.
• Еще один набор значков. В нем скрыты все значки, кроме одного.
• Пользовательское правило. Правило, использованное в данном примере, осно
вано на следующей формуле:
=ОСТАТ(СТРОКА( ) ; 2 ) =ОСТАТ(СТОЛБЕЦ( ) ;2)
Использование гистограмм
Условное форматирование с использованием гистограмм отображает горизонталь
ные полоски непосредственно в ячейках диапазона. Длина этих полосок пропорциональ
на текущему значению ячейки и зависит от минимального и максимального значений.
Новинка
В Excel 2010 гистограммы существенно улучшены. Теперь они отображают
ся пропорционально (как на диаграммах), добавлена возможность настраи
вать заливку и рамки, отрицательные значения можно отображать другим
цветом слева от оси.
486 Часть V. Полезные методики применения формул
На рис. 19.4 показан пример использования гистограмм. Это список клиентов и соот
ветствующие объемы продаж. На листе условное форматирование было применено
к значениям столбца В. Таким образом, с первого взгляда можно определить, объем сде
лок с какими клиентами был самым высоким.
Компакт-диск
Демонстрируемые примеры содержатся в файле d a t a b a r s ex a m p les,
x l s x (c h a p t e r 1 9 _ r u s . x s l x ) на прилагаемом компакт-диске.
©
Совет
Различия между длиной ячеек становятся более заметными при увеличении
ширины столбца.
В помощью команды Главная1^ Стил и^Условное форматирование^ Гистограм
мы Excel обеспечивает доступ к шести предопределенным цветам полосок. При необхо
димости можно выбрать другие цвета, выбрав пункт Другие правила. В открывшемся
диалоговом окне можно сделать следующее:
• настроить отображение только полосок (скрыть числа);
• задать минимальное и максимальное значения для масштабирования;
• настроить внешний вид полоски;
• задать способ отображения отрицательных значений;
• задать направление полосок.
При внесении изменений в это диалоговое окно можно воспользоваться полем пред
варительного просмотра Образец и увидеть, как будут выглядеть полоски после щелчка
на кнопке ОК.
Компакт-диск
Демонстрируемые примеры содержатся в файле c o l o r s c a l e exam
p l e s . x l s x (C h a p te r 19_RUS. x s l x ) на прилагаемом компакт-диске.
488 Часть V. Полезные методики применения формул
Очень важно понимать, что условное форматирование в виде цветовой шкалы ис
пользует градиент. К примеру, при форматировании диапазона с помощью двухцветной
шкалы вы получите в результате больше двух цветов, так как некоторые ячейки имеют
переходные цвета, находящиеся в спектре между двумя заданными.
На рис. 19.9 представлен экстремальный пример условного форматирования в диапа
зоне, содержащем 10000 ячеек (100 строк и 100 столбцов). Масштаб рабочего листа
уменьшен до 20%, чтобы показать весь спектр трехцветного градиента. Диапазон сфор
мирован с помощью формул, подобных следующей (для ячейки С5):
= S I N ( $А2) + COS(В$1)
Глава 19. Условное форматирование и проверка данных 489
Примечание
Содержимое ячеек при использовании цветовых схем можно скрывать. В дан
ном случае применен пользовательский числовой формат следующего вида:
Компакт-диск
Этот пример содержится в файле e x t r e m e c o l o r s c a l e . x l s x (Chap-
t e r i 9 _ R U S . x s l x ) на прилагаемом компакт-диске. Анимированный пример
С макросом VBA есть в файле a n i m a t e d c o l o r s c a l e , x lsm .
Компакт-диск
Примеры этого раздела содержатся в файле i c o n s e t exa m p les . x l s x
( c h a p t e r i 9 _ R U S . x s l x ) на прилагаемом компакт-диске.
Рис. 19.12. Использование настро- Рис. 19.13. Стрелки отображают тенденции в успеваемо-
енного набора значков для отобра- сти студентов между двумя тестированиями
жения состояния проекта
В этом примере использованы три серые стрелки, при этом правило их применения
было настроено следующим образом.
• Стрелка вверх. Изменение больше или равно 5.
• Стрелка вправо. Изменение больше - 5 и меньше 5.
• Стрелка вниз. Изменение меньше или равно -5 .
Другими словами, изменение в пять баллов в любом направлении рассматривается
как четко выраженная тенденция: если в сторону увеличения, то как положительная, если
в сторону уменьшения, то как отрицательная.
Примечание
Столбец Тенденция содержит формулу, ссылающуюся на столбец Изменения.
В окне параметров условного форматирования столбца тенденция установ
лен флажок Показывать только значок, что позволяет также отцентрировать
значок в ячейке.
В некоторых случаях может потребоваться отображать только один или два значка из
набора (например, для чисел, на которые следует обратить особое внимание). На
рис. 19.14 показан диапазон значений, отображающих значок, только если есть заметная
тенденция. В остальных случаях в диалоговом окне Создание правила форматирова
ния установлено значение Нет значка в ячейке.
Управление правилами
Диалоговое окно диспетчера правил условного форматирования полезно для проверки,
изменения и удаления существующих правил, а также для добавления новых. Доступ к
этому диалоговому окну осуществляется с помощью команды Главная ^Стили^Услов-
ное форматирование<=>Управление правилами (после выделения диапазона).
492 Часть V. Полезные методики применения формул
С помощью кнопки Создать правило можно определить сколько угодно правил. Как
следует из рис. 19.15, в ячейках можно одновременно использовать гистограммы, цвето
вые шкалы и наборы значков (хотя для этого вряд ли есть веские основания).
Совет
Чтобы скопировать только форматирование (включая условное), воспользуйтесь
диалоговым окном Специальная вставка, где установите переключатель в поло
жение Форматы. Или выделите диапазон и выберите команду Главная^Буфер
обмена^Вставить^Другие параметры вставки^Форматирование.
Глава 19. Условное форматирование и проверка данных 493
я*Ч Примечание
Формулы должны возвращать логические значения истина и л и ложь. В первом
случае условие считается выполненным, и к ячейкам будет применено заданное
форматирование; в противном случае форматирование не применяется.
Совет
Еще один вариант использования в формуле условного форматирования
ссылки на ячейку другого листа предполагает создание для последней име
ни с областью определения уровня книги (во вкладке Формулы выберите ко
496 Часть V. Полезные методики применения формул
Компакт-диск
Примеры этого раздела содержатся в файле c o n d i t i o n a l f o r m a t t i n g
f o r m u l a s . x l s x (C h ap te rl9_R U S . x s l x ) на прилагаемом компакт-диске.
РИС. 19.19. Сумма отображается толь Рис. 19.20. Отсутствие одного зна
ко в том случае, если введены значе чения вызывает сокрытие суммы
ния для всех четырех кварталов
498 Часть V. Полезные методики применения формул
©
Перекрестная ссылка
В части VI представлен обзор языка VBA и описаны методы создания поль
зовательских функций рабочего листа.
Компакт-диск
Примеры этого раздела, использующие функции VBA, содержатся на прила
гаемом компакт-диске в файле c o n d i t i o n a l f o r m a t t i n g w i t h VBA f u n c
t i o n , x l s m (C a p terl9 _ R U S .x ls m ).
Примечание
Найти формулы можно также с помощью команды Главная^Редактирова-
ние^Найти и выделить^Выделение группы ячеек. В открывшемся диалого
вом окне установите переключатель в положение Формулы и щелкните на
кнопке ОК — на листе будут выделены все ячейки, содержащие формулы.
После определения этой функции в модуле VBA можно применить условное форма
тирование к ячейке А 1, содержащей недостоверный номер детали, используя следую
щую формулу:
=INVALIDPART(А1)
На рис. 19.24 показан диапазон, применяющий пользова
тельскую функцию INVALIDPART в формуле условного
форматирования. Ячейки, содержащие некорректные серий
ные номера комплектующих, выделены более темным фоном.
Во многих случаях можно просто воспользоваться сред
ствами проверки вводимых значений программы Excel, речь
о котором пойдет далее.
Проверка данных
Средства проверки данных программы Excel во многих
отношениях сходны со средствами условного форматирова-
ния. Они позволяют установить правила, определяющие, ка- рис 1д 24 использование
кое содержимое может вводиться в ячейку. Например, можно условного форматирования
задать условие, ограничивающее вводимые данные пределами для выделения ячеек с не-
от 1 до 12. Если пользователь введет ошибочную запись, бу- корректными данными
дет отображено настраиваемое сообщение, подобное пока
занному на рис. 19.25.
Предупреждение
Средства проверки данных имеют серьезный недостаток. Если некоторую
ячейку скопировать и вставить в другую ячейку, содержащую проверку дан
ных, правила проверки данных удаляются. Впоследствии данная ячейка
сможет принимать любые данные.
|Проверкавводимыхзначений ]
Совет
Меню команды Данные^ Работа с данными о Проверка данных содержит эле
мент Обвести неверные данные. Если щелкнуть на этой команде, все ячейки, со
держащие некорректные данные, будут обведены овалом. Как только данные
будут исправлены, эти обводки исчезают. Чтобы снять обводку некорректных
504 Часть V. Полезные методики применения формул
Рис. 19.27. Excel может обводить некор- Рис. 19.28. Этот раскрывающийся список был создан
ректные значения (в данном случае это с помощью проверки данных
ячейки, содержащие числа больше 100)
Совет
Если сп и со к достаточно короткий, можно ввести его элем енты не п о ср е д ст
венно во вкладке Параметры д и а л о го во го окна Проверка вводимых значений.
Разделяйте отдельны е элем енты сп иска сим волам и, определенны м и в ка
честве разделителей в региональны х парам етрах систем ы W indow s (к при
меру, в С Ш А это запятые, а в Р оссии — точки с запятой).
Глава 19. Условное форматирование и проверка данных 505
Совет
Если для списка вы определили диапазон, он должен находиться на том же
рабочем листе. Если диапазон, используемый для списка, находится на дру
гом рабочем листе, присвойте ему имя с областью определения книги, и в
качестве источника данных укажите именно это имя (предваренное знаком
равенства). К примеру, если диапазон находится на другом листе и ему при
своено имя Список20Ю, введите следующую формулу:
=Список2010
Примечание
Вводимая формула должна быть логической, т.е. возвращать либо значение
и стин а, либо ложь. Если формула равна значению истин а, данные считают
ся корректными и остаются в ячейке. Если формула равна значению ложь,
открывается диалоговое окно с сообщением, определенным на вкладке Со
общение об ошибке диалогового окна Проверка вводимых значений.
Для определения формулы в диалоговом окне Проверка вводимых значений необ
ходимо выбрать из раскрывающегося списка Тип данных значение Другой. В поле
Формула можно либо напрямую ввести формулу, либо указать ссылку на ячейку, содер
жащую необходимую формулу. Следует заметить, что поле Формула отображается во
вкладке Параметры только при выборе типа Другой.
Если во вводимой формуле используется ссылка, она рассматривается как относи
тельная, с привязкой к активной ячейке выбранного диапазона. Здесь имеет место полная
аналогия с формулами условного форматирования.
Компакт-диск
Примеры ЭТОГО раздела содержатся в файле d a t a v a l i d a t i o n exam
p l e s . x l s x (c h a p t e r 1 9 _ r u s . x s l x ) на прилагаемом компакт-диске.
Рис. 19.30. Использование проверки данных для гарантии того, что сумма значений диа
пазона не превысит заданного порога
Создание мегаформул
В этой главе...
♦ Что такое мегаформула
♦ Создание мегаформул: простой пример
♦ Примеры мегаформул
♦ Преимущества и недостатки мегаформул
Примечание
О писанны е в данной главе методы использовались при создании м ногих
слож ных ф ормул, приведенны х в книге.
Рис. 20.1. В данной электронной таблице для вычисления займов под залог не
движимости используется большое количество формул
Компакт-диск
Д е м онстрируем ы е прим еры содерж атся в ф айле t o t a l in te r e st .x lsx
(ch a p ter 2 0 _ R U S . x s l x ) на прилагаем ом ком пакт-диске.
Предположим, что нас интересует только суммарный процент (ячейка С14). Вы, ко
нечно же, можете скрыть строки, содержащие лишнюю информацию, однако существует
возможность создать единственную формулу, которая бы выполняла работу нескольких
промежуточных.
Примечание
Данный прим ер привод ится исклю чительно для д е м о н стр а ц ии методики
создания м егаф орм ул. На сам ом деле с этой же задачей отлично справля
ется функция ПРОЦПЛАТ.
Глава 20. Создание мегаформул 511
ми совм естно с клавишей <S hrft> для вы деления зам еняем ой ссы лки. В заклю чение
с пом ощ ью клавиш <C trl+V > зам ените вы деленны й текст содерж им ы м буф ера обмена.
В некоторы х случаях для обеспечения корректной работы ф ормулы копируем ы й
текст необходим о заклю чить в круглые скобки. Если после вставки текста в ф ормулу
возвращ аемое ею значение изм еняется, отм ените вставку, нажав <C trl+ Z> . Заклю чите
копируем ую ф ормулу в скобки и попробуйте вставить снова.
Примеры мегаформул
Данный раздел содержит еще три примера использования мегаформул. Эти примеры
призваны продемонстрировать, как использование мегаформул позволяет рационализи
ровать выполнение ряда задач. Используя эти примеры, вы сможете очистить списки со
трудников путем удаления отчеств и промежуточных инициалов, найти позицию послед
него пробела в строке, а также определить правильность номера кредитной карточки.
Компакт-диск
Ф айлы t i m e t e s t i n t e r m e d i a t e . x l s x , t i m e t e s t m e g a f o r m u l a . x l s x
и C h a p te r 2 0 .RUS . x l s x , содерж ащ иеся на прилагаем ом ком пакт-диске, п о
зволят вам на больш их объемах данны х сравнить время обработки ин ф о р
мации с использованием пром еж уточны х ф ормул и с использованием м е
гаф ормулы.
Рис. 20.3. Для удаления фамилий и инициалов потребовалось шесть промежуточных формул
Глава 20. Создание мегаформул 513
Примечание
Следует отметить, что данный алгоритм не идеален. Например, он не будет
работать, если в столбец А занесена только фамилия человека (например,
Сидоров). Также он не сработает, если присутствует два вторых имени (напри
мер, Джон Яков Роберт Смит). Этот недостаток обусловлен тем, что ф орму
ла ищ ет в записи второй пробел. В результате в данном случае ф ормула вер
нет результат Джон Роберт Смит. Далее будет представлен метод формулы
массива, используемый для определения последнего пробела в строке.
После выполнения этих операций можно ввести в любую ячейку следующую форму
лу, и она обработает содержимое ячейки, расположенной слева от нее:
=БезИнициалов
Например, если ввести эту формулу в ячейку К8, в ней будут отображаться имя и фа
милия из ячейки J 8 , но уже без инициалов.
Перекрестная ссылка
Создание и прим енение им енованны х ф ормул более подробно р а ссм а тр и
вается в главе 3.
В приведенной выше мегаформуле используется функция ЕСЛИОШИБКА, сущест
вующая только в версиях Excel 2007 и старше. Для совместимости с предыдущими вер
сиями можно использовать следующую мегаформулу:
=ЛЕВСИМВ(СЖПРОБЕЛЫ( А 1 ) ; НАЙТИ(" СЖПРОБЕЛЫ( А 1 ) ; 1 ) -
1)&" "&ПРАВСИМВ(СЖПРОБЕЛЫ( А 1 ) ; ДЛСТР(СЖПРОБЕЛЫ( А 1 ) ) -
ЕСЛИ(ЕОШИБКА(НАЙТИ(" " ; СЖПРОБЕЛЫ( А 1 ) ;
НАЙТИ(" ";СЖПРОБЕЛЫ( А 1 );1 )+ 1 ));НАЙТИ(" ";СЖПРОБЕЛЫ ( А 1 );1 );
НАЙТИ(" " ; СЖПРОБЕЛЫ(А 1 ) ; НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ; 1 ) + 1 ) ) )
Компакт-диск
Тестовы е листы для проверки б ы стродействия данной м егаф орм улы п р и в е
дены в ф айлах t i m e t e s t i n t e r m e d i a t e . x l s x , t i m e t e s t m e g a f o r
m u la , x l s x и t i m e t e s t named m e g a f o r m u la . x l s x на прилагаем ом ком
пакт-диске. М ож ете изм енить имя в a i и п ротестировать бы стр о де йствие на
своем ком пью тере, воспользовавш ись секундом ером .
516 Часть V. Полезные методики применения формул
©
Перекрестная ссылка
В данном методе были использованы м ассивы (для ознаком ления с этой
тем ой можете обратиться к части IV).
Компакт-диск
Д ем онстрируем ы е прим еры содерж атся в файле p o s i t i o n o f t h e la st
s p a c e . x l s x (Chapter20_RUS . x s l x ) на прилагаем ом ком пакт-диске.
Чтобы ввести формулу во всем диапазоне В 1 : В 1 2 , вначале выделите его, затем вве
дите формулы и нажмите клавиши <Ctrl+Shift+Enter>. Фигурные скобки вводить не нуж
но; Excel добавит их автоматически для обозначения формулы массива. Данная формула
возвращает массив из двенадцати последовательных целых чисел'.
Глава 20. Создание мегаформул 517
Создание мегаформулы
В данный момент в ячейке F1 содержится нужный нам результат. Объединим все
промежуточные формулы в одну. Цель состоит в том, чтобы создать формулу, содержа
щую ссылки только на ячейку А1. Вот последовательность действий, приводящая к на
меченной цели. *
1. Формула в ячейке F1 содержит ссылку на ячейку Е1. Замените данную ссылку
текстом формулы в ячейке Е1. В результате данного действия формула в ячейке
F1 приобретет такой вид:
=ДЛСТР(А 1) + 1 - ПОИСКПОЗ(" " ; D l :D 1 2 ;0)
2. Теперь формула содержит ссылку на диапазон D l : D 12. Данный диапазон содер
жит одну формулу массива. Замена ссылки формулой массива приводит к появ
лению в ячейке F1 следующей формулы массива:
{ =ДЛСТР (А 1) +1 -ПОИСКПОЗ ( 11 " ; ПСТР (A I ; C l : С12 ; 1) ; 0) }
Примечание
Так как ссы лка в ячейке F1 зам енена ф орм улой м ассива, теперь вы должны
будете вводить ф орм улу в ячейке F1 как ф орм улу м ассива (после ввода
ф ормулы нажмите клавиш и <C trl+ S h ift+ E n te r> ).
Итак, формула в ячейке F1 ссылается только на ячейку А1; именно такой результат
мы должны были получить. Мегаформула выполняет всю необходимую работу, поэтому
все промежуточные формулы можно смело удалить.
Примечание
Н есмотря на то что в п рим ере использовалась 12-значная запись и при с о з
дании ф ормулы использовались диапазоны из 12 строк, конечная ф ормула
не им еет ни одной ссы лки на эти диапазоны . С ледовательно, данная м е га
ф ормула будет работать со строкам и лю бой длины .
Запуск мегаформулы
На рис. 20.5 показан рабочий лист, содержащий в столбце А список сотрудников.
Столбец В содержит мегаформулу, созданную в предыдущем подразделе. В столбце С
представлена формула, которая извлекает символы, следующие после последнего пробе
ла (они составляют фамилию, содержащуюся в столбце А).
Примечание
Текст ф ормулы, скоп ир о ва н н о й из ячейки B l, заклю чается в круглые скобки.
Если э то го не сделать, последовательность вы числений в ф ормуле будет
наруш ена и будет получен некорректны й результат.
Глава 20. Создание мегаформул 519
Примечание
Проверка в данном случае означает определение правильности структуры
се р и й н о го ном ера кредитной карточки. Конечно же, данная м етодика не п о
зволяет вы яснить, соответствует ли ном ер ф актическом у лицевом у счету
кредитной карточки.
Базовые формулы
На рис. 20.6 показан рабочий лист, созданный для анализа номера кредитной карточ
ки и его проверки. Для вынесения вердикта данная рабочая книга использует совсем не
большое количество формул.
Компакт-диск
Д е м онстрируем ы е прим еры содерж атся в файле c r e d i t c a r d v a l i d a
t i o n , x l s x ( C h a p t e r 2 o _ r u s . x s l x ) на прилагаем ом ком пакт-диске.
520 Часть V. Полезные методики применения формул
Предупреждение
При вводе ном ера кредитной карточки, со де р ж а щ е го более 15 знаков, с л е
дите, чтобы програм м а не округлила е го д о 15 знаков. М ож но пом естить пе
ред ном ером сим вол апостроф а или предварительно прим енить к ячейке
текстовы й ф ормат с помощ ью команды Г л а в н а я ^Ч и сл о ^Ч и сл о в о й ф о р м а т^
Текстовый.
Теперь рабочий лист содержит пять столбцов из шестнадцати строк и всего лишь
пять реальных формул, являющихся многоячеечными формулами массива.
Построение мегаформулы
Процесс создания мегаформулы для данной задачи начинается с ячейки G1, содер
жащей конечный результат. Исходная формула в данной ячейке имеет такой вид:
=ЕСЛИ(ОСТАТ(Е21 ; 1 0 ) = 0 ; " ПРАВИЛЬНО" # "НЕ ПРАВИЛЬНО")
На рис. 20.7 показана эта рабочая книга. В ячейках В7 и В8 содержатся значения, оп
ределяющие вероятности того, будет ли случайное имя именем мужчины и будет ли оно
содержать среднее имя. Случайно сгенерированные имена начинаются с ячейки А Н .
Компакт-диск
Рабочая книга name g e n e r a t o r . x l s x (2 0 07 RUS . x l s x ) содержится на
прилагаемом компакт-диске.
Мегаформула имеет следующий вид (в ней использовано несколько имен).
=ЕСЛИ(СЛЧИС( ) < = P c t M a l e , ИНДЕКС(Mal e Name s, ПОИСКПОЗ(СЛЧИС( ) ,
M a l e P r o b a b i l i t y , - 1 ) ) , ИНДЕКС( Fe ma le N a me s , ПОИСКПОЗ(СЛЧИС( ) ,
F e m a l e P r o b a b i l i t y , - 1 ) ) ) &ЕСЛИ(СЛЧИС( ) < = P c t M i d d l e ," "&
ИНДЕКС( M i d d l e l n i t i a l s , ПОИСКПОЗ(СЛЧИС( ) , M i d d l e P r o b a b i l i t y , - 1 ) ) &
" . и, "&ИНДЕКС( L a s t N a m e s , ПОИСКПОЗ(СЛЧИС( ) , L a s t P r o b a b i l i t y , - 1 ) )
Здесь я не буду приводить промежуточные формулы; вы можете их увидеть, открыв
указанную рабочую книгу.
Инструменты и методы
отладки формул
В этой главе...
♦ Что такое отладка формул
♦ Проблемы в формулах и их устранение
♦ Средства аудита Excel
Ошибки могут произойти везде. При создании формул Excel ошибки встречаются
весьма часто. В данной главе описаны наиболее распространенные ошибки в формулах,
а также представлены средства и методы, которые призваны помочь в создании формул,
корректно выполняющих свою работу.
Непарные скобки
В формуле каждой открывающей (левой) скобке должна соответствовать закрывающая
(правая). Обычно, если в формуле отсутствует необходимая скобка, Excel не позволит вве
сти такую формулу. Исключением из данного правила являются простые формулы, исполь
зующие функцию. Например, если ввести следующую формулу (с недостающей закры
вающей скобкой), Excel примет ее и самостоятельно добавит недостающую скобку:
=СУММ(А1:500
Формула может содержать равное количество открывающих и закрывающих скобок,
но при этом они могут быть расставлены неправильно. Для примера рассмотрим сле
дующую формулу, преобразующую текстовую строку таким образом, чтобы ее первый
символ стал прописным, а все остальные — строчными. Эта формула содержит пять пар
скобок, расставленных должным образом.
=ПРОПИСН(ЛЕВСИМВ(А1)) &ПРАВСИМВ(СТРОЧН(А1); ДЛСТР( A I ) - 1 )
Следующая формула также имеет пять пар скобок, однако расставлены они неверно.
В результате получается синтаксически правильная формула, которая возвращает невер
ный результат.
=ПРОПИСН(ЛЕВСИМВ(А1)&ПРАВСИМВ(СТРОЧН(А1); ДЛСТР( A I ) - 1 ) )
Часто неправильная расстановка скобок приводит к возникновению синтаксической
ошибки, сопровождаемой сообщением о том, что введено слишком много или слишком
мало аргументов функции.
©
Совет
Excel может оказать вам пом ощ ь при работе с недостаю щ им и скобкам и. Ес
ли при редактировании ф ормулы подвести указатель к скобке и нем ного п о
дож дать, Excel п рим ерно на одну секунду вы делит данную скобку и с о о тв е т
ствую щ ую ей парную полуж ирны м начертанием. К то м у же соответствую щ ие
д р у г д р угу влож енны е скобки отображ аю тся одним цветом, при этом каж
ды й уровень влож енности им еет свой цвет.
Автокоррекция формул
При вводе ф ормулы, содерж ащ ей синтаксическую ош ибку, Excel пытается о п р е д е
лить проблем у и предлагает ее реш ение в окне, приведенном ниже (чтобы оно п о я ви
лось, нужно набрать ф орм улу вручную; если вставить ф ормулу из буф ера обмена, окно
автокоррекции на появится).
528 Часть V. Полезные методики применения формул
Будьте осторожны, принимая предлагаемые исправления, так как они не всегда оказы
ваются верными. Для примера введем следующую формулу (с недостающими скобками):
=СРЗНАЧ (СУММ (AI : А12 ; СУММ ( В 1 : В12 ) )
Excel предлож ит представленное ниже исправление для ф ормулы:
=СРЗНАЧ(СУММ(А1:А12;СУММ(В1:В12)))
Если вы без разм ы ш лений прим ете такие изм енения, то получите синтаксически
корректную ф ункцию , однако это будет не та ф ункция, которая предполагалась.
На самом деле корректной ф ункцией долж на была быть следую щ ая:
=СРЗНАЧ(СУММ( A I :А 1 2 ) ; СУММ(В1: В 1 2 ))
Если хоть одна ячейка содержит только символы пробела, в нижней части окна Н а й
ти и з а м е н и ть будет приведен их список.
Совет
Excel позволяет определять сп о со б отображ ения ош и бок на бумаге при п е
чати. Для д оступа к данном у ср е д ству щ елкните на кнопке в правом конце
строки заголовка группы Разметка страни ц ы ^П арам етры страницы. Во
вкладке Лист о ткры вш егося д и а л о го в о го окна можно выбрать один из с п о
собов вывода ош ибок на печать — как на экране, в виде пустых ячеек, в виде
прочерков, в виде ош и бок #н/д.
Трассировка ошибок
Зачастую ош ибка в одной ячейке является результатом ош ибки в д р уго й ячейке, от
которой она зависит. Для трассировки формулы и поиска источника ош ибки можно вос
пользоваться командой Ф ормулы ^Зависимости ф орм ул^П роверка наличия ош и б ки ^
Источник ошибки. Excel ото б р а зит на экране стрелкам и путь от значения ош ибки к ее
источнику.
После идентиф икации ош ибки с помощ ью команды Формулы1^ Зависимости ф о р м у л ^
Убрать стрелки ^ У б р а т ь стрелки м ож но очистить рабочий ли ст от этих стрелок.
Ошибка #ДЕЛ/ 0!
Деление на нуль является недопустимой операцией. Если попытаться ее выполнить,
Excel отобразит хорошо знакомое значение ошибки # Д Е Л /0 !.
Так как Excel считает значение пустой ячейки равным нулю, данная ошибка будет
получена и при делении на отсутствующее значение. Это стандартная ситуация при соз
дании формул для еще не введенных значений (рис. 21.2). В ячейке D2 находится сле
дующая формула, которая скопирована вниз:
= (С 2 -В 2 )/С 2
530 Часть V. Полезные методики применения формул
Компакт-диск
Все приведенны е в главе прим еры содерж атся в рабочей книге C hap-
t e r 2 i _ R U S . x s l x на прилагаем ом ком пакт-диске.
Ошибка #н/д
Ошибка #Н/Д (нет данных) возникает, если в одной из ячеек, на которую ссылается
формула, отображается значение #Н/Д.
Совет
Некоторые пользователи для явного указания отсутствую щ их данных исполь
зую т обозначения = з н а ч () или # н / д (что значит “ недоступно” ). При этом ста
новится соверш енно ясно, что данные недоступны, а не удалены случайно.
Ошибка #Н/Д возникает также тогда, когда какая-либо функция поиска не может
найти соответствие.
Глава 21. Инструменты и методы отладки формул 531
Ошибка #имя?
Ошибка #ИМЯ? возникает в следующих случаях.
• Формула содержит отсутствующее имя ячейки или диапазона.
• Формула содержит текст, который Excel интерпретирует как неопределенное имя.
Например, ошибка в написании имени функции приводит к отображению ошибки
#имя?.
• Формула использует функцию рабочего листа, определенную в надстройке, а дан
ная надстройка не установлена.
Примечание
В Excel часто возникаю т проблемы с им енованны м и диапазонам и. Если уда
лить имя ячейки или диапазона, используем ое в ф ормуле, ф ормула и в
дальнейш ем будет прим енять это имя, хоть оно больш е не определено. Как
результат, ф ормула отображ ает ош ибку #имя?. Если вы считаете, что Excel
автом атически преобразует им ена в соотве тствую щ ие ссы лки на ячейки, то
глубоко заблуждаетесь. На сам ом деле в Excel даж е не реализован меха
низм преобразования имен, используем ы х в ф ормуле, в эквивалентны е
ссы лки на ячейки.
Ошибка #ПУСТ01
Данная ошибка возникает, когда формула пытается использовать пересечение двух
диапазонов, которые в действительности не имеют общих ячеек. Оператором пересече
ния областей является пробел между ссылками. К примеру, следующая формула возвра
щает значение #ПУСТО! , так как два указанных диапазона не имеют общих ячеек:
=СУММ(В5: В14 A 1 6 :F 2 0 )
Представленная ниже формула не возвращает значение #ПУСТО I. Вместо этого она
отображает содержимое ячейки В9, являющейся пересечением двух указанных диапазонов.
=СУММ(В5: В14 A 9:F 16)
Ошибка #числО!
Ошибка #ЧИСЛО! возникает в одном из следующих случаев.
• Для функции, принимающей числовой аргумент, задан аргумент другого типа.
• В функцию передан недопустимый аргумент. Например, ошибку #ЧИСЛО! вернет
следующая формула:
=КОРЕНЬ( - 1 )
• Использующая итерации функция не может вычислить результат. К функциям,
использующим итерации, относится, например СТАВКА.
• Формула возвращает слишком большое или слишком малое значение. Excel под
держивает числовые величины в пределах о т - 1 Е - 3 0 7 д о 1 Е + 3 0 7 .
Ошибка «с с ы л к а 1
Ошибка «ССЫЛКА! возникает в случае использования формулой ошибочной ссылки
на ячейку. Данная ошибка может возникнуть в следующих ситуациях.
532 Часть V. Полезные методики применения формул
Ошибка #ЗНАЧ !
Ошибка #ЗНАЧ ! весьма распространена; она встречается в следующих ситуациях.
• В качестве аргумента функции использованы данные несоответствующего типа
или же формула пытается выполнить операцию, используя некорректные данные.
Например, формула, складывающая значение с текстовой строкой, вернет ошибку
#ЗНА Ч !.
• В качестве аргумента функции применяется диапазон, тогда как аргументом
должно быть единственное значение.
• Пользовательская функция на языке VBA не вычислена. В некоторых версиях Excel
вставка или перемещение листов может приводить к возникновению данной ошиб
ки. Для принудительного пересчета воспользуйтесь клавишами <Ctrl+Alt+F9>.
• Пользовательская функция пытается выполнить недопустимую операцию. Напри
мер, она не может изменить среду Excel или внести изменения в другие ячейки.
• При вводе формулы массива вы забыли нажать клавиши <Ctrl+Shift+Enter>.
Если у вас возникают сомнения в вопросах подобного рода (или если вы просто хоти
те сделать выражение более понятным), используйте круглые скобки. Использование
круглых скобок гарантирует выполнение операций в четко определенном порядке.
К примеру, следующая формула умножает ячейку А1 на ячейку А 2, а затем к результату
534 Часть V. Полезные методики применения формул
добавляет 1. Умножение выполняется раньше, так как данная операция имеет более вы
сокий приоритет.
=1+А1*А2
Ниже представлена более наглядная запись данной формулы. Использование скобок
не обязательно, но с ними порядок выполнения действий становится очевидным.
= 1 + (А1*А2)
Обратите внимание на то, что операторы обращения и вычитания выглядят одинако
во, что может приводить к путанице. Рассмотрим две формулы.
= -3"2
=0 -3 ^ 2
Первая формула, как и ожидается, возвращает значение 9; вторая возвращает значе
ние -9 . Возведение в квадрат всегда дает положительный результат, поэтому возникает
вопрос: как же программа получила отрицательное значение?
Дело в том, что в первой формуле знак “минус” является оператором обращения
и имеет более высокий приоритет. Во втором же случае знак “минус” — это оператор
вычитания, имеющий приоритет ниже, чем оператор возведения в степень. Таким обра
зом, значение 3 возводится в квадрат, а затем результат вычитается из нуля, что и дает
отрицательное значение.
Примечание
И нтерпретация оператора об ращ ения в Excel довольно необычна. Д ругие
электронны е таблицы (наприм ер, Lotus 1 -2 -3 или Q uattro Pro) возвращ аю т
- 9 в обеих ф ормулах. Более того, при использовании языка VBA в Excel так
же возвращ ается результат - 9 для этих вы ражений.
Формулы не вычислены
Если в рабочем листе применяются пользовательские функции, написанные на VBA,
может случиться так, что у использующей их формулы возникают проблемы с пересче
том, и формула возвращает неверный результат. Для принудительного пересчета всех
формул используйте комбинацию клавиш <Ctrl+Alt+F9>.
Предупреждение
И спользуйте флажок Задать точность* как на экране с о сторож ностью , четко
понимая механизм е го работы. Его д е й ствие р а спространяется не только на
формулы, но и неп о ср е дстве н н о на вводимые в ячейки значения. Н апример,
если ячейка с о д е р ж ит значение 4 , 68 и отображ ается без десятичны х знаков
(т.е. как 5), установка д а н н о го флажка привед ет к п реобразованию числа
4 , 68 в 5, оо. Д анное изм енение необратимо, поэтом у восстановить прежнее
значение при снятии флажка Задать точность, как на экране невозможно. Го
раздо лучшим реш ением является использование ф ункции округл, которая
округляет значения до заданного количества знаков после запятой (см. гла
ву 10). За все долгие годы работы с програм м ой Excel у меня никогда не воз
никала потребность в установке флажка Задать точность, как на экране.
Ниже приведен еще один пример так называемой “проблемы точности”. Попробуйте
ввести следующую формулу:
=(1,333+1,223)-(1,333-1,234)
Перекрестная ссылка
С ущ ествую т задачи, реш ение которы х треб ует п реднам еренного создания
циклических ссы лок (см. главу 16).
538 Часть V. Полезные методики применения формул
Рис. 21.6. На этом рабочем листе Рис. 21.7. Диалоговое окно Выделение
продемонстрировано отсутствие группы ячеек
единообразия при суммировании
логических значений в Excel
Примечание
Если при откры тии окна Выделение группы ячеек выделен диапазон из не
скольких ячеек, команда будет прим енена только к ним. Если же выбрана
всего одна ячейка, команда прим еняется ко всем у рабочем у листу.
Совет
Вы деление ячеек с ф орм улам и также используется для выявления ещ е о д
ной расп р о стр а н е н н о й ош ибки — случайной замены ф ормулы значением.
Если вы увидите невы деленную ячейку в группе ячеек с ф ормулам и, весьма
вероятно, что такая ячейка содерж ала ф ормулу, которая впоследствии была
зам ещ ена значением.
Просмотр формул
Для того чтобы разобраться в незнакомой рабочей книге, просмотрите формулы, а не
результаты их вычислений. Для этого выберите команду Ф о р м у л ы 1^ З а в и с и м о с т и
ф о р м у л ^ П о к а з а т ь ф о р м у л ы . Можно также перед использованием этой команды соз
Глава 21. Инструменты и методы отладки формул 539
дать для текущей рабочей книги новое окно просмотра. В результате вы будете иметь
возможность одновременно просматривать в одном окне формулы, а в другом — резуль
таты их вычислений. Для открытия нового окна во вкладке В и д выберите команду
Вид Н о в о е окно.
Рис. 21.8. Уменьшение масштаба и выделение всех формул может дать наглядное пред
ставление о структуре рабочего листа
На рис. 21.9 показан пример одновременного отображения рабочей книги в двух окнах.
В верхнем окне используется режим обычного просмотра (результаты вычисления формул),
а в нижнем окне отображаются сами формулы. Для одновременного просмотра двух окон вам
пригодится команда В ид ^ Р ядом , синхронизирующая перемещение по двум окнам.
При включенном режиме просмотра формул Excel выделяет цветом ячейки, исполь
зуемые формулой в активной ячейке. В примере на рис. 21.9 активна ячейка В11.
(прямо или косвенно) формуле. Сделайте активной ячейку, содержащую ошибку, после
чего выберите команду Ф о р м у л ы ^ З а в и с и м о с т и ф о р м у л ^ П р о в е р к а н а л и ч и я о ш и
б о к 1^ И с то ч н и к о ш и б к и . Excel отобразит на рабочем листе стрелки, указывающие на ис
точник ошибки.
Рис. 21.11. Excel может выполнять проверку формул, чтобы найти потенциальные ошибки
Когда фоновая проверка ошибок включена, Excel постоянно следит за рабочим лис
том, в том числе и за его формулами. При обнаружении потенциальной ошибки Excel
помещает в левом верхнем углу “подозрительной” ячейки маленький треугольник. Если
ячейка активизирована, отображается смарт-тег. При щелчке на нем вам предлагается
несколько вариантов дальнейших действий. На рис. 21.12 показаны варианты действий,
которые доступны после щелчка на смарт-теге ячейки, содержащей ошибку # Д Е Л /0 !.
Доступные действия изменяются в зависимости от типа ошибки.
Глава 21. Инструменты и методы отладки формул 543
Рис. 21.13. Использование диалогового окна контроля ошибок для последовательного про
смотра найденных программой потенциальных ошибок
Предупреждение
Важно поним ать, что ср е д ство проверки ош и бок несоверш енно. Нельзя с ч и
тать, что рабочий л и ст полностью лиш ен о ш ибок только на основе того, что
програм м а Excel не выявила источников потенциальной о пасности! Кроме
того, им ейте в виду, что данное ср е д ство не см о ж е т отследить такую часто
встречаю щ ую ся ош ибку, как замена ф ормулы значением.
544 Часть V. Полезные методики применения формул
Проверка формул
В Excel предусмотрено еще одно специальное средство, которое позволяет просмот
реть различные части вложенной формулы, представленные в порядке ее вычисления.
Чтобы использовать эту возможность, выделите содержащую формулу ячейку, а за
тем выберите команду Ф о р м у л ы « ^З а в и с и м о с ти ф о р м у л а В ы ч и с л и т ь ф о р м у л у . От
кроется диалоговое окно, показанное на рис. 21.14.
П редупреж дение
Б удьте о сто р о ж н ы при исп о л ьзо в а н и и э то го прием а, так как случайное
наж атие клавиш и < E n te r> (в м е сто < E s c > ) п р и в е д е т к неж елательной м о
д и ф ика ц ии ф орм улы , в результате чего в ней будут и сп о л ьзо ва ться вы
чи сленны е значения.
Часть
Разработка
пользовательских
функций
В этой части...
Глава 22
В ведение в VBA
Глава 23
Р азработка ф ункций
Глава 24
К онц епци и п р о гр а м м и р о в а н и я на VBA
Глава 25
П рим еры п ользовательски х ф ункций VBA
Глава
Введение в VBA
В этой главе ...
♦ Несколько слов о VBA
♦ Отображение вкладки Разработчик
♦ Безопасность макросов
♦ Сохранение рабочих книг, содержащих макросы
♦ Знакомство с редактором Visual Basic
В этой главе вы познакомитесь с языком Visual Basic for Applications (далее VBA).
VBA представляет собой язык программирования, используемый для создания пользова
тельских функций в офисных приложениях, в частности в Excel. Перед тем как присту
пить к созданию таких функций с помощью VBA, необходимо приобрести базовые зна
ния об этом языке программирования и познакомиться с редактором Visual Basic.
Примечание
В Excel также сущ ествует другой способ создания функций — с помощ ью язы
ка создания макросов XLM. Этот язык считается устаревш им, но все же из с о
ображений обратной совм естим ости продолжает поддерживаться. В данной
книге игнорируется языкХ1_М; мы сф окусируем свое внимание только на язы
ке VBA. Следует отметить, что язык XLM не им еет ничего общ его с языком
XML, предназначенным для хранения структурированны х данных.
548 Часть VI. Разработка пользовательских функций
VBA является сложной темой для обсуждения — достаточно сложной, чтобы полно
стью описать его в данной книге. Поскольку книга посвящена формулам, я обращаю ва
ше внимание только на один из самых важных (и полезных) аспектов VBA — создание
пользовательских функций. Эти функции можно использовать в формулах.
Перекрестная ссылка
Если вы планируете стать экспертом по VBA, этой книги вам будет недостаточно,
она лишь “ подтолкнет” вас в нужнфм направлении. Прочитайте мою книгу
Excel2010: профессиональное программирование на VBA (“Диалектика” ,
2011 г.), в которой подробно освещены все вопросы работы с VBA.
Безопасность макросов
При программировании в Excel особое внимание следует уделять безопасности мак
росов. Дело в том, что макросы — такой мощный инструмент, что могут серьезно по
вредить систему. В Excel включены средства безопасности, предназначенные для устра
нения потенциальных проблем, связанных с макросами.
На рис. 22.2 показан раздел П а р а м е тр ы м а кр о со в диалогового окна Ц е н тр у п р а в л е
ния б е зо п а сн о с ть ю . Для открытия этого окна выберите команду Р а з р а б о т ч и к а К о д ^
Б е з о п а с н о с ть м а кр о со в .
По умолчанию установлен переключатель О т к л ю ч и т ь в с е м а к р о с ы с у в е д о м л е н и
ем. В этом режиме при открытии рабочей книги, содержащей макросы, когда файл не
содержит цифровой подписи и взят из ненадежного источника, Excel отображает над
строкой формул предупреждение системы безопасности (рис. 22.3). Если вы уверены в
безопасности макросов, содержащихся в рабочей книге, щелкните на кнопке В к л ю ч и ть
со д е р ж и м о е .
Глава 22. Введение в VBA 549
Рис. 22.2. Вкладка Параметры макросов диалогового окна Центр управления безо
пасностью
Новинка
Excel 2010 пом нит о том , что макросы были разреш ены . Если в рабочей кн и
ге разреш ить м акросы (с пом ощ ью окна парам етров, а не кнопки Включить
содержимое), то при следую щ ем откры тии да н н о го файла предупреж дение,
показанное на рис. 22.3, не появится.
Предупреждение
Если при откры тии рабочей книги, содерж ащ ей макросы , откры то окно р е
дактора VBA, Excel не отображ ает предупреж дение систем ы безопасности.
В м есто это го отображ ается д и алоговое окно, показанное на рис. 22.4, в ко
тором можно включить или отклю чить м акросы .
Предупреждение
Будьте бдительны, поскольку с помощью всего одного щелчка можно случайно
удалить все сущ ествующ ие макросы рабочей книги. Если в окне предупрежде
ния щелкнуть на кнопке Да вместо Нет, все макросы будут удалены в процессе
сохранения рабочей книги. В то же время в открытой копии рабочей книги мак
росы останутся на месте. Поэтому если вы все же совершили ошибку, но оста
вили открытой рабочую книгу, сразу же сохраните ее в формате . xlsm .
На рис 22.6 показан общий вид окна редактора Visual Basic. Вполне возможно, что
окно редактора, показанное на рисунке, не совсем похоже на окно Visual Basic, отобра
жаемое на экране вашего монитора. Дело в том, что данное окно настраиваемое — в нем
можно открывать и закрывать панели, откреплять и закреплять их, изменять их размеры
и многое другое.
Примечание
Несм отря на то что версия Excel 2010 им еет аб солю тно новы й интерф ейс,
редактор Visual Basic остался в точности таким же, как и в преды дущ их ве р
сиях. В нем п о -п р е ж н е м у используется не лента, а панель ин струм ентов
и систем а каскадных меню.
Строка меню
Строка меню редактора Visual Basic работает так же, как и любая другая строка меню
в обычном приложении Windows. В ее состав входят команды, используемые для работы
с различными компонентами редактора Visual Basic.
Контекстные меню
Характерной особенностью редактора Visual Basic является наличие контекстных ме
ню. Щелчок правой кнопкой мыши на пустом месте окна редактора Visual Basic иниции
рует открытие контекстного меню, предоставляющего доступ к наиболее распростра
ненным командам.
Панели инструментов
Стандартная панель инструментов по умолчанию находится непосредственно под
строкой меню. Это одна из шести доступных панелей инструментов редактора Visual Ва-
552 Часть VI. Разработка пользовательских функций
Окно проекта
Окно проекта (P ro je c t, на рис. 22.6, слева) отображает древовидную схему всех рабо
чих книг, открытых в текущий момент в Excel (включая надстройки и скрытые рабочие
книги). В редакторе Visual Basic каждая рабочая книга называется проектом. Окно про
екта будет детальнее рассмотрено в следующем разделе. Если окно проекта не отобра
жено на экране, нажмите комбинацию клавиш <Ctrl+R>.
Окно свойств
Окно P ro p e rtie s (Свойства) включает в себя перечень всех свойств выделенного объ
екта. Используйте это окно для просмотра и изменения свойств. Окно свойств открыва
ется после нажатия клавиши <F4>.
Окно отладки
Окно отладки (Im m e d ia te ) является наиболее удобным средством для непосредственного
выполнения инструкций VBA, тестирования и отладки кода. Оно может либо отображаться,
либо нет. Если окно отладки отсутствует на экране, нажмите <Ctrl+G>. Для того чтобы за
крыть это окно, щелкните на кнопке Закры ть, находящейся в правом верхнем углу.
ект включает в себя и объект, называемый F orm s (который содержит объекты пользова
тельских форм), и объект C l a s s M o d u le s (состоящий из объектов модулей классов).
В данной книге уделено внимание исключительно стан
дартным модулям VBA; мы не рассматриваем объекты
Microsoft Excel, объекты пользовательских форм и объ
екты модулей классов.
©
Примечание
Проект может состоять из ещ е одного типа
объектов, называемых References (Ссылки).
Этот объект содерж ит перечень ссылок, ко
торы е используются в проекте. Ссылки м ож
но удалить или добавить с помощ ью команды
Tools^R eferences (И нструм енты ^С сы лки).
В отличие от других объектов, представлен
ных в окне проекта, объекты ссы лок не им е
ют связанных с ними модулей кода. Рис. 22.7. Окно проекта, состоя
щее из двух проектов
Переименование проекта
По умолчанию все проекты называются V B A P ro je c t. В окне проекта имя рабочей
книги отображается после име^и проекта. Например, проект может быть представлен
следующим образом:
V B A P rojec t ( b u d g e t . x ls m )
При желании проекту можно присвоить более описательное имя. Для этого выполни
те следующие действия.
1. Выберите проект в окне проектов.
2. Убедитесь, что отображено окно P ro p e rtie s (Свойства). Нажмите <F4>, если оно
скрыто.
3. В окне свойств замените имя VBAPro j e c t на другое.
После внесения изменений в окне проекта будет отображено новое имя.
Предупреждение
При создании функций необходимо следить, чтобы они находились в стандарт
ном модуле VBA, а не в окне кода для объекта листа или рабочей книги. Если код
функции расположен не в модуле VBA, то функция не будет работать. Помеще
ние кода VBA в неверное место является самой распространенной ошибкой но
вичков, которые учатся создавать пользовательские функции.
Переименование модуля
Модули VBA обладают именами, назначенными по умолчанию: M o d u le 1, M o dule2
и т.д. Для того чтобы переименовать модуль VBA, необходимо выбрать его в окне про
екта, а затем изменить имя, используя окно свойств (модуль VBA имеет только одно
554 Часть VI. Разработка пользовательских функций
Рис. 22.8. Для изменения имени модуля VBA используйте окно свойств
Примечание
В данной книге р а ссм отрены исклю чительно модули VBA (иногда их назы
вают стандартными модулями), в которы х хранятся пользовательские ф унк
ции рабочего листа.
Окна кода похожи на окна рабочих листов Excel. Их можно сворачивать, разворачи
вать, скрывать, упорядочивать и т.д. Многие считают, что окно кода, в котором ведется
работа, лучше развернуть. Однако иногда может возникнуть потребность отобразить од
новременно два или больше открытых окон с кодом (например, для сравнения кода двух
модулей или при копировании кода одного модуля в другой).
Сворачивание окна кода изменяет занимаемую им область. Можно щелкнуть на
кнопке З а кр ы ть, находящейся в правом углу заголовка, для того чтобы полностью за
крыть окно кода. Для повторного открытия окна необходимо дважды щелкнуть на соот
ветствующем объекте в окне проекта.
Нельзя закрыть рабочую книгу непосредственно из редактора Visual Basic. Для этого
следует перейти в окно Excel и закрыть его обычным способом.
Сохранение кода
Модуль может содержать три типа кода.
• Процедура. Процедура представляет собой набор инструкций, выполняющих оп
ределенные действия. Например, процедура может скомбинировать несколько
частей рабочей книги в один краткий отчет.
• Ф ункция. Функция представляет собой набор инструкций, которые возвращают
одно значение или массив. Функцию можно использовать в формулах. От проце
дуры функция отличается только тем, что возвращает значение.
556 Часть VI. Разработка пользовательских функций
Примечание
В данной книге р ассм атриваю тся только ф ункции, поскольку они являю тся
единственны м типом кода, которы й м ож но использовать для построения
ф ормул.
Ввод кода
В данном разделе описаны различные способы ввода кода VBA в окне кода. Для
функций окно кода всегда относится к модулю VBA. Добавить код в модуль VBA можно
тремя способами:
• введя его вручную с клавиатуры;
• используя рекордер макросов программы Excel (можно записать макрос и впо
следствии преобразовать его в код VBA);
• скопировать код из другого модуля и вставить его в тот модуль, с которым вы ра
ботаете.
Совет
Как и Excel, редактор Visual Basic с о д е р ж ит м ногоуровневы е команды о тм е
ны д е й ствий и повто р н о го восстановления команд. П оэтому, если вы сл у
чайно удалили важную инструкцию , можете, щ елкнув несколько раз на кн о п
ке Undo (О тмена) или нажав ком бинацию клавиш <C trl+ Z> , вернуть потерю .
Для восстановления преж него варианта после вы бора команды Undo вы бе
рите команду E d it^R e D o Delete (Р е д а ктир о ва н ие м В о сста н о ви ть удаление).
Примечание
М ож ете снова откры ть диало го во е окно парам етров Excel и вернуть имя
пользователя в исход ное состоян ие . То же м ож но сделать и с пом ощ ью VBA.
Для это го д остаточно отредактировать имя в записанном м акросе, после че
го установить курсор в лю бом м есте процедуры и выбрать команду R u n ^
Run Sub/UserForm (В ы п о л н и т ь ^ П р о ц е д у р у /Ф о р м у ) или нажать <F 5>. После
вы полнения м акроса имя пользователя будет изм енено.
Код VBA можно копировать и из других источников. К примеру, нужный текст про
граммы можно найти на веб-странице или в группе новостей. В этом случае следует вы
делить в браузере текст, скопировать его в буфер обмена и затем вставить в модуль.
Сохранение проекта
Как и в любой другой прикладной программе, в редакторе Visual Basic рекомендуется
периодически сохранять изменения. Для этого необходимо выбрать команду F ile ^ S a v e
(Файл^Сохранить), нажать <Ctrl+S> или щелкнуть на кнопке сохранения, расположен
ной на стандартной панели инструментов.
•ч Примечание
При сохранении проекта ф актически сохраняется рабочая книга Excel. И на
об орот, при сохранении рабочей книги Excel автом атически сохраняю тся
изм енения, внесенны е в проекте VBA рабочей книги.
Разработка функций
В этой главе...
♦ Зачем нужны пользовательские функции
♦ Простой пример функции VBA
♦ Создание функций
♦ Диалоговое окно вставки функции
♦ Тестирование и отладка функций
♦ Создание надстроек
Примечание
В им ени пользовательской ф ункции р е ги с тр букв не им еет значения. Для
единообразия реком ендуется прим енять в им енах ф ункций только буквы
верхнего р егистра.
Если код VBA введен правильно, функция U S E R будет выполнена. Кроме того, имя
пользователя будет отображено символами верхнего регистра в ячейке.
Примечание
Если ф ормула возвращ ает значение ош ибки, уб едитесь, что код VBA поль
зовательской ф ункции находится в модуле VBA (м одуль листа или книги не
является объектом). Также необходим о проверить, находится ли модуль
в проекте той книги, в которую вы пы таетесь ввести ф ормулу.
Создание функций
В этом разделе будут рассмотрены некоторые технические особенности применения
пользовательских функций. Будут даны общие инструкции по объявлению функций,
присвоению им имен, использованию функций в формулах и заданию аргументов.
Объявление функции
Для объявления функции используется общепринятый синтаксис.
[P u b lic | P r iv a te ] [ S t a t i c ] F u n c t i o n имя( [ список_аргументов] ) [As тип]
[ инструкции]
[имя = выражение]
[E x it F u n ction ]
[ инструкции]
[имя = выражение]
End F u n c t i o n
• Ключевое слово P u b l i c сообщает о том, что данная функция доступна для дру
гих процедур в других модулях рабочей книги (это слово необязательно).
• Ключевое слово P r i v a t e означает, что данная функция доступна только для дру
гих процедур того же модуля (это слово необязательно). При задании ключевого
слова P r i v a t e функция не будет отображаться в списке автозавершения и диало
говом окне вставки функции.
• Ключевое слово S t a t i c показывает, что значения переменных, объявленные в функ
ции, остаются неизменными между вызовами функции (это слово необязательно).
• F u n c t i o n является ключевым словом, обозначающим начало функции (это сло
во обязательно).
• Имя может быть любым допустимым для переменной именем. Когда функция за
вершает работу, ее результатом является значение, присваиваемое имени функции
(обязательно).
• Список_аргументов — это список нескольких переменных, представляющих
собой аргументы функции. Аргументы заключаются в круглые скобки. Для разде
ления аргументов необходимо использовать точку с запятой (наличие аргументов
необязательно)1.
• Тип показывает тип данных, возвращаемых функцией (необязательно).
• Инструкции являются полноценными инструкциями VBA (они необязательны,
но пустая функция, очевидно, будет бесполезной).
• E x itF u n c t i o n — это инструкция, результат выполнения которой — выход из
функции (необязательная; если ее нет, работа функции завершится при достиже
нии инструкции End F u n c t i o n ) .
• End F u n c t i o n — инструкция, завершающий функцию (обязательный).
1 В рабочей среде Excel разделителем аргументов должен быть символ, определенный в каче
стве разделителя в окне региональных параметров операционной системы Windows. По умолча
нию таким символом для США является запятая, а для России — точка с запятой. В среде VBA в
качестве разделителя аргументов всегда используется запятая, независимо от региональных пара
метров Windows. — Примеч. ред.
Глава 23. Разработка функций 565
Совет
По ум олчанию все проекты получаю т имя V B A P r o je c t — такое имя появля
ется в сп иске доступны х ссы лок в ди алоговом окне References. Чтобы уб е
диться, что выбран правильны й проект в ди алоговом окне ссы лок, п р о сл е
дите за диалоговы м окном , в котором показано имя рабочей книги для вы
б ранного элем ента. Еще лучше изм енить имя проекта на описательное. Для
это го вы берите проект, нажмите <F 4> для отображ ения окна сво йств и п о
том укажите имя проекта, отличаю щ ееся от V B A P r o je c t. Не забывайте, что
имя долж но быть уникальны м.
Аргументы функций
Пользовательские функции, подобно встроенным в Excel функциям, могут изменять
свою работу в зависимости от используемых в них аргументов. Придерживайтесь сле
дующих советов при определении аргументов в функциях VBА:
• функция может не иметь аргументов;
• функция может иметь фиксированное количество обязательных аргументов (от
1 до 60);
• функция может содержать комбинацию обязательных и необязательных аргументов;
• функция может иметь специальный необязательный аргумент с именем Р а г а -
m a rr a y , позволяющий задавать неопределенное число аргументов.
Перекрестная ссылка
В главе 25 будут приведены прим еры ф ункций, использую щ их аргум енты
разного типа.
Примечание
Если не добавить описа н и е ф ункции, в ди алоговом окне вставки будет о то
бражаться текст Справка н е д о с т у п н а .
3. Введите имя функции в поле имени макроса и убедитесь, что не допустили опечаток.
4. Щелкните на кнопке Параметры для отображения диалогового окна параметров
макроса. Если кнопка Параметры неактивна, вероятно, введено неправильное
имя функции.
5. Введите описание функции в поле описания (рис. 23.4). Следует отметить, что
горячие клавиши для вызова функций не используются.
6. Щелкните на кнопке ОК, а затем — на Отмена.
Примечание
При использовании д и а л о го в о го окна вставки ф ункции (см. рис. 23.3) д и а
логовое окно аргум ентов ф ункции появится после щелчка на кнопке ОК. Во
встроенны х ф ункциях в окне аргум ентов ф ункции отображ ается о п исани е
каждого аргумента.
Ф
Новинка
В Excel 2010 введен м етод M a c r o O p t io n s, позволяю щ ий добавлять о п и с а
ние аргум ентов пользовательской ф ункции.
Примечание
Если вы новичок в про гр а м м ир о ва н ии , чтение данной главы будет более
эф ф ективны м, если вы изучите м атериал преды дущ ей главы.
Совет
Для проверки кода в модуле VBA на наличие синтаксических о ш ибок вы бе
рите команду Debug«=>Compile (О тл а д ка ^К о м п и л я ц и я ). В результате на э к
ране появятся сведения о первой встреченной синтаксической ош ибке, е с
ли она сущ ествует. И справьте эту ош ибку и запустите о п ерац ию ещ е раз для
поиска д р уги х ош ибок.
Совет
При те стир о ва н ии пользовательской ф ункции следует использовать ее
только в одной ф ормуле рабочего листа. Если использовать ее более чем в
одной ф ормуле, п рограм м ны й код будет вы полняться в каждой из них, что
сущ ественно затруд нит отладку.
572 Часть VI. Разработка пользовательских функций
При передаче готовой функции в эксплуатацию следует убедиться, что все инструк
ции MsgBox удалены, так как они очень раздражают конечного пользователя.
Совет
Если вас замучили окна соо б щ е н ий , можете прервать вы полнение п р о ц е д у
ры, нажав < C trl+ B re a k>. После это го закройте всплы ваю щ ее д иалоговое о к
но. Щ елкнув на кнопке End (Закончить), м ожно заверш ить вы полнение кода.
Щ елкнув на кнопке D ebug (Отладка), можно вы полнить код по шагам.
Для отображения в окне сообщений более чем одной переменной следует объединить
их и вставить пробел между каждой их парой. Ниже представлена инструкция, отобра
жающая значения трех переменных (х, у и z) в окне сообщений:
MsgBox х & " " & у & " " & z
Если пренебрегать пробелами между переменными, все значения сольются в одно,
и вы не сможете в них разобраться.
В качестве альтернативы можно разделить переменные константой vbN ew L ine,
вставляющей символ разрыва строки. К примеру, при выполнении следующей инструк
ции каждая из переменных будет отображена в отдельной строке окна сообщений:
MsgBox х & vbNew Line & у & vbNew Line & z
Рис. 23.7. Использование окна отладки редактора Visual Basic для отображения резуль
татов во время работы функции
Щелкните на кнопке Debug (Отладка), и редактор Visual Basic выделит цветом инструк
цию, в которой предположительно содержится ошибка (рис. 23.9). Сообщение об ошибке не
объясняет, как ее исправить, но оно позволяет найти место в коде, где произошла ошибка.
После выявления инструкции, содержащей ошибку, ее можно изучить более детально, ис
пользуя окно Immediate (см. ниже) для более точного нахождения причины ошибки.
Примечание
При щелчке на кнопке Debug процедура все еще будет выполняться — она
просто приостанавливается и переводится в режим паузы. После внесения
корректив следует нажать <F5> для продолжения ее выполнения в обычном
режиме или <F8> — в пошаговом. Чтобы завершить выполнение, щелкните
на кнопке Reset (Восстановить).
Совет
Для удаления всех точек останова во всех открытых проектах выберите ко
манду Debug^Clear All Breakpoints (Отладка«=>Очистить все точки прерыва
ния) или нажмите <Ctrl+Shift+F9>.
Создание надстроек
Функции, используемые достаточно часто, можно поместить в файл надстройки. Ос
новное преимущество подобной операции — возможность использовать функции в фор
мулах любой рабочей книги без указания имени файла.
Допустим, у вас есть функция ZAPS PACES, и она находится в файле M yfuncs .x lsm .
Для ее запуска вы должны ввести следующую формулу:
= M y f u n c s . x l s m ! ZAPSPACES(AI: C l 2)
После создания надстройки на основе файла M y fu n c s .x ls m можно пренебречь
ссылкой на файл и ввести формулу следующим образом:
= ZAPS PACES (AI : С12 )
Создание надстроек на основе рабочей книги — достаточно простая задача. Следующие
инструкции описывают процесс создания надстройки из обычного файла рабочей книги.
1. Создайте функции и убедитесь, что они работают надлежащим образом.
2. Активизируйте редактор Visual Basic и выделите рабочую книгу в окне проекта.
Выберите команду Tools*=$имя_проекта Properties (Инструменты■=>имя_проекта
Свойства) и перейдите на вкладку Protection (Защита). Установите флажок Lock
Project for Viewing (Заблокировать проект для просмотра) и дважды введите па
роль. Щелкните на кнопке ОК.
Эту операцию необходимо выполнить только в том случае, если вы решили за
щитить свой макрос от вмешательства других пользователей.
3. Активизируйте окно Excel. Выберите команду Файл^Сведения^Свойства1 ^
Показать область сведений о документе. Над строкой формул будет отображена
578 Часть VI. Разработка пользовательских функций
Ж йь Предупреждение
n lw При использовании функций, сохраненных в надстройках, Excel создает
ссылку на соответствующий файл надстройки. Таким образом, если вы пе
редаете такую рабочую книгу кому-либо, ему нужно передать и копию файла
надстройки. Более того, данная надстройка должна быть сохранена на чу
жом компьютере точно в том же месте, что и оригинал на вашем, поскольку
ссылки хранятся с указанием полного пути к файлу. В результате получате
лю рабочей книги может потребоваться вручную отредактировать ссылки с
помощью команды Данные<=> Подключения ^Изменить связи.
Созданную надстройку можно установить в Excel, используя стандартную процедуру.
1. Выберите команду Файл^Параметры и в открывшемся окне перейдите во
вкладку Надстройки.
2. В раскрывающемся списке Управление выберите элемент Надстройки Excel.
3. Щелкните на кнопке Перейти, чтобы открыть диалоговое окно Надстройки.
4. Щелкните на кнопке Обзор.
5. Найдите нужный файл надстроек с расширением . xlam и щелкните на кнопке ОК.
Концепции
программирования
наУВА
В этой главе...
♦ Пример функции
♦ Использование комментариев в коде
♦ Использование переменных, типов данных и констант
♦ Использование операторов присваивания
♦ Массивы
♦ Встроенные функции VBA
♦ Управление выполнением кода
♦ Работа с диапазонами
Компакт-диск
Большую часть примеров этой главы можно найдти на прилагаемом ком
пакт-диске в файле f u n c t i o n e x a m p l e s . x ls m ( C h a p t e r 2 4 _ R U S . x lsm ).
580 Часть VI. Разработка пользовательских функций
Пример функции
Для начала рассмотрим пример функции. Функция, которая называется RE-
MOVESPACES, принимает текстовый аргумент и возвращает его без пробелов. Например,
в приведенном ниже коде функция REMOVE SPACES возвращает значение Э т о т е к с т .
=REMOVESPACES("Это т е к с т ")
Чтобы создать такую функцию, откройте модуль VBA и в окне кода введите следую
щую процедуру.
F u n c t i o n REMOVESPACES(cell) As S t r i n g
' Удаляет и з т е к с т а ячейки пробелы
Dim C e l l L e n g t h As I n t e g e r
Dim Temp As S t r i n g
Dim i As I n t e g e r
C ellL en g th = L e n ( c e ll)
Temp = ""
For i = l To C e l l L e n g t h
C h a ra cter = M i d ( c e l l , i ,1)
I f C h a r a c t e r <> C h r (3 2 ) Then Temp = Temp& Character
N ext i
REMOVESPACES = Temp
End F u n c t i o n
Рассмотрим подробно каждую строку программного кода.
• Первая строка функции называется строкой объявления. Обратите внимание на то,
что процедура начинается с ключевого слова F u n c t i o n , после которого стоит на
звание функции (REMOVESPACES). В функции используется один аргумент c e l l ;
имя аргумента заключается в круглые скобки. Выражение As S t r i n g определяет
тип возвращаемого функцией значения. Слово As вводить не обязательно.
• Вторая строка является обычным комментарием (необязательная строка) — на это
указывает апостроф, стоящий в начале строки. Комментарий описывает в произ
вольной форме, что делает функция.
• В следующих трех строках ключевое слово Dim применяется для объявления трех
переменных, используемых в функции: C e l l L e n g t h (длина ячейки), Temp
(временная переменная) и i (счетчик цикла). Объявлять переменные не обяза
тельно, но (как будет показано далее) желательно.
• В следующей строке переменной C e l l L e n g t h присваивается значение. Для оп
ределения длины содержимого аргумента c e l l используется функция Len.
• Далее инициируется переменная Temp, которой присваивается пустая строка.
• В следующих четырех строках находится цикл F o r - N e x t. Операции между F o r
и N e x t выполняются столькочраз, сколько задано значением C e l l L e n g t h . На
пример, если аргумент c e l l содержит строку Bob S m ith , операции в цикле по
вторятся девять раз — по одной итерации для каждого символа в строке.
• В теле цикла переменная C h a r a c t e r содержит текущий символ, который извле
кается функцией Mid. Инструкция I f определяет, является ли символ пробелом
(функция C h r в VBA эквивалентна функции СИМВОЛ в Excel, а аргумент 32 соот
ветствует пробелу). Если символ не является пробелом, то он ставится в конец
строки, сохраняемой в переменной Temp; в противном случае переменная Temp
Глава 24. Концепции программирования на VBA 581
Примечание
Функция remove spaces, описанная выше, предназначена только для учеб
ных целей. Того же результата можно достичь при использовании функции
подставить ,, что намного рациональнее. Например, следующая формула
удаляет все пробелы в тексте ячейки a i:
=ПОДСТАВИТЬ(А1;" ";"")
MYFUNC = х
End F u n c t i o n
Созданную функцию можно тестировать, включая в нее дополнительные инструкции.
Не удаляйте впоследствии команды тестирования, а преобразуйте их в комментарий, по
ставив в начале строки апостроф. Во время выполнения процедуры VBA проигнорирует
подобные инструкции. Чтобы преобразовать комментарии обратно в инструкции, будет
достаточно удалить апострофы.
Совет
На панели инструментов Edit (Редактирование) находятся две очень полез
ные кнопки. Выделите группу инструкций и воспользуйтесь кнопкой Com
ment Block (Закомментировать блок), чтобы преобразовать их в коммента
рии. Кнопка Uncomment Block (Раскомментировать блок) преобразует группу
комментариев обратно в команды. Чтобы отобразить эту панель инструмен
тов на экране, воспользуйтесь в редакторе Visual Basic командой View^Tool-
bars^Edit (Вид^Панели инструментов^Редактирование).
Использование переменных,
типов данных и констант
Переменной называется именованное место хранения данных в памяти компьютера.
Переменные могут иметь различные типы данных — от простых значений логического
типа B o o l e a n (TRUE или FALSE) до больших значений с двойной точностью (см. сле
дующий раздел). Термины “тип данных” и “тип переменной” — синонимы. Тип пере
менной влияет на выполняемые над ней операции, например, целочисленные перемен
ные можно умножать, а строковые — нельзя. Переменная получает значение с помощью
оператора присваивания, которым является знак равенства. Значение, присвоенное пере
менной, сохраняется в оперативной памяти компьютера.
Далее приведено несколько примеров использования операторов присваивания для
различных типов переменных. Имена переменных находятся слева от знака равенства,
а значения — справа.
X =1
I n te r e s t R a t e = 0 ,0 7 5
L oan P ayoffA m ou nt = 2 4 3 0 8 9
D ataE ntered = F a ls e
x = x + 1
MyNum = YourNum * 1 , 2 5
H a llO fF a m er = "Тревор Гофман"
D ateS tarted = # 3 /6 /2 0 0 7 #
В VBA существует большое количество зарезервированных слов, которые нельзя ис
пользовать в качестве имен переменных и процедур. Если попытаться использовать одно
из них, будет выведено сообщение об ошибке. Например, несмотря на то что зарезерви
рованное слово N e x t могло бы быть описательным именем переменной, следующая ин
струкция вызовет синтаксическую ошибку:
N e x t = 132
Глава 24. Концепции программирования на VBA 583
Объявление переменных
Переменную перед использованием в процедуре рекомендуется объявить. Если пе
ременная не объявлена явно, она считается объявленной неявно. В явном объявлении пе
ременной указывается ее имя и тип, при этом очевидны два преимущества.
• Процедуры выполняются быстрее, а память используется рациональнее. Ис
пользуемый по умолчанию тип V a r i a n t приводит к многократным проверкам, за
нимающим много времени и памяти. Если в VBA указать специальный тип пере
менной, то интерпретатору не придется постоянно проверять переменную, и под нее
выделяется ровно столько памяти, сколько необходимо для хранения значений.
• Если в заголовке модуля использовать инструкцию O p t i o n E x p l i c i t ,
можно избежать проблем неправильного написания имен переменных. Пред
положим, что была использована необъявленная переменная C u r r e n t R a t e .
В определенном месте процедуры вводится выражение C u r r e n t R a t e = ,0 7 5 .
Так как объявление переменной пропущено, функция может вернуть неправиль
ный результат.
Переменные явно объявляются с помощью ключевого слова Dim. Например, в сле
дующей строке описывается переменная C o u n t типа I n t e g e r :
Dim Count As I n t e g e r
С помощью инструкции Dim можно объявить сразу несколько переменных, например:
Dim х As I n t e g e r , у As I n t e g e r , z As I n t e g e r
Dim F i r s t As Long, L a s t As D o u b le
Предупреждение
В отличие от других языков программирования, VBA не позволяет указать
тип данных для группы переменных, разделяя их запятыми. Например, сле
дующее выражение (хотя оно и правильное) не описывает все переменные
С типом I n t e g e r :
Dim i , j, k As I n t e g e r
В этом выражении только переменная к описана как in te g e r. Чтобы для всех
переменных указать тип in te g e r, следует объявить их следующим образом:
Dim i As I n t e g e r , j As I n t e g e r , k As I n t e g e r
Если тип переменной не указан явно, VBA использует стандартный тип данных
V a r i a n t . Данные, описанные как V a r i a n t , ведут себя как хамелеон: они меняют тип в
зависимости от выполняемых действий. В следующей процедуре показано, как одна пе
ременная принимает различные типы данных.
F u n c t i o n VARIANT_DEMO ()
MyVar = "123"
MyVar = MyVar / 2
MyVar = "Ответ: " & MyVar
VARIANT_DEMO = MyVar
End F u n c t i o n
В функции VAR I ANT_D EMO переменная MyVar сначала неявно объявляется как
трехсимвольная строка, имеющая вид числа. Затем эта “строка” делится на два, и MyVar
приобретает числовой тип данных. После этого MyVar добавляется к строке, что преоб
разует ее снова в строку. Функция возвращает строку — О т в е т : 6 1 ,5 .
Глава 24. Концепции программирования на VBA 585
П рим ечание
Вы, наверное, заметили, что в этой главе я сам не следую собственным со
ветам — во многих примерах я не объявляю используемые переменные.
Я сделал это преднамеренно, чтобы упростить код и дать вам возможность
сфокусировать внимание на рассматриваемых концепциях.
Использование констант
Значение переменной может (причем часто так и происходит) изменяться в процессе
выполнения процедуры (поэтому она и называется переменной). Иногда необходимо со
слаться на имя переменной или строки, которая никогда не меняется; другими слова
ми — на константу.
Константа объявляется инструкцией C o n s t. Ниже приведено несколько примеров
объявления констант.
C o n st N um Quarters a s I n t e g e r = 4
C o n st R a te = .0725, P e r i o d = 12
C o n st CompanyName a s S t r i n g = "Абракадабра"
Во второй строке две переменные объявляются одной инструкцией, но она не указы
вает их тип. Следовательно, обе константы имеют тип V a r i a n t . Поскольку константа
никогда не меняет своего значения, для нее необходимо задать значение при объявлении.
Область определения (иногда ее называют областью видимости) константы зависит от
того, в каком месте модуля она объявлена.
• Чтобы константа использовалась только в одной процедуре, ее следует объявить по
сле ключевых слов Sub и F u n c t i o n ; при этом константа становится локальной.
• Чтобы константа была доступна для всех процедур в модуле, объявите ее перед
первой процедурой модуля.
• Можно сделать константу доступной для всех модулей в рабочей книге. Для этого
примените ключевое слово P u b l i c и объявите константу перед первой процеду
рой модуля. Следующее выражение создает константу, доступную во всех моду
лях VBA в рабочей книге:
P u b l i c AppName As S t r i n g = "Р асчет бюджета"
586 Часть VI. Разработка пользовательских функций
Примечание
Если в процедуре VBA попытаться изменить значение константы, будет вы
ведено сообщение об ошибке, что и должно было произойти. Константа —
это постоянное, а не переменное значение.
Пусть у вас войдет в привычку использовать константы в коде для фиксированных
значений или строк. Например, если процедура ссылается на определенное значение
(скажем, на процентную ставку) несколько раз, то это значение лучше всего описать как
константу и в выражениях вместо значения использовать ее имя. Так код легче читать
и вносить в него изменения — при необходимости придется изменить только одну инст
рукцию, а не несколько.
В VBA и Excel определено множество встроенных констант, которые можно исполь
зовать без объявления. В следующем примере использована константа с именем v b I n
f o r m a t i o n , которая задает вывод значка в окне сообщения:
MsgBox "П ривет!", v b l n f o r m a t i o n
Константа v b ln f o r m a t io n имеет значение 64, но не важно, знаете ли вы об этом
или нет. Если вы будете создавать макросы путем записи своих действий с помощью ре
кордера, то обнаружите в сгенерированном коде множество других констант.
Использование строк
Подобно программе Excel, VBA может оперировать как числами, так и текстом
(строками). В VB А поддерживается два типа строк.
• Строки фиксированной длины объявляются с указанием количества символов.
Максимальная длина составляет 65535 символов.
• Строки переменной длины могут содержать до 2 миллиардов символов.
Каждый символ строки занимает 1 байт памяти. Если длина строки известна заранее
(т.е. строка имеет фиксированную длину), то ее можно указать при объявлении с помо
щью ключевого слова Dim; в противном случае VBA будет определять ее длину динами
чески во время выполнения кода (строка с переменной длиной). В некоторых случаях
память используется более рационально при работе со строками фиксированной длины.
В следующем примере переменная M y S t r i n g объявлена как строка с фиксирован
ной длиной в 50 символов. Переменная Y o u r S t r i n g тоже объявлена с типом строки, но
ее длина не указана явно.
Dim M y S t r in g As S t r i n g * 50
Dim Y o u r S t r i n g As S t r i n g
Работа с датами
Строковую переменную можно использовать для хранения даты, но с ее помощью
нельзя, например, вычислить ту или иную дату, разность дат и т.д. Для работы с датами
воспользуйтесь типом D a t e .
Под переменную, объявленную с типом D a t e , отводится 8 байт памяти; в ней содер
жатся данные в диапазоне с 1 января 0100 года по 31 декабря 9999 года. Этого проме
жутка примерно в десять тысяч лет более чем достаточно даже для самого долгосрочно
го финансового прогноза. В переменной типа D a t e хранится также время. На экране да
ты и время в VBA расположены между двумя знаками решетки (#).
Глава 24. Концепции программирования на VBA 587
Примечание
Диапазон дат, поддерживаемых в VBA, намного больше, чем собственный
диапазон дат в Excel, который начинается с 1 января 1900. Поэтому будьте
внимательны и не используйте даты, которые не входят в диапазон дат, при
емлемых в Excel.
Ниже приведены примеры объявления переменных и констант с типом D a t e .
Dim Today As D a te
Dim S t a r t T i m e As D a te
C o n st F i r s t D a y As D a te = # 1 / 1 / 2 0 0 2 #
C o n st Noon = # 1 2 : 0 0 : 0 0 #
Примечание
Переменные, объявленные с типом D a te , отображают даты в соответствии
с кратким системным форматом даты, а время отображается в соответствии
с системным форматом времени (либо 12-часовым, либо 24-часовым). Сис
темные параметры отображения дат и времени можно изменить с помощью
окна Язык и региональные стандарты операционной системы Windows.
Приоритет выполнения операторов в VBA такой же, как и в Excel, но можно изме
нить его с помощью круглых скобок.
Предупреждение
Оператор отрицания (знак “минус” ) интерпретируется в Excel и VBA по-
разному. Например, в Excel приведенная ниже формула возвращает 25.
=-5"2
Это же выражение в VBA возвращает - 2 5 .
х=-5^2
Это объясняется тем, что в VBA (в отличие от Excel) операция возведения в
степень имеет более высокий приоритет, чем операция отрицания. Изме
нить последовательность выполнения операторов можно с помощью ско
бок. Приведенное ниже выражение VBA возвращает 25.
х = ( - 5 ) ж3
Массивы
Массивом называется группа элементов одного типа с одним именем; обратиться
к отдельнному элементу массива можно с помощью имени массива и индекса элемента.
В качестве примера определим массив из 12 строковых переменных, в котором каждая
переменная является названием одного из 12 месяцев. Если массив назвать M onth-
Names, то к первому элементу можно обратиться, как к MonthNames ( 0) , ко второ
му — MonthNames (1) и т.д. до MonthNames ( 1 1 ) .
Объявление массива
Массив объявляется с помощью ключевого слова Dim или P u b l i c , как и обычная
переменная. В массиве можно объявить сразу несколько элементов. Для этого следует
указать первый индекс, а затем ключевое слово То и последний индекс — все в круглых
скобках. Например, так объявляется массив, состоящий из 100 целых чисел:
Dim M y A r ra y (l То 100) As I n t e g e r
Глава 24. Концепции программирования на VBA 589
При объявлении массива можно указать только индекс последнего элемента, при
этом в VBA (по умолчанию) предполагается, что 0 — индекс первого элемента. Сле
дующие два выражения приведут к одинаковому результату:
Dim MyArray(0 t o 100) As I n t e g e r
Dim MyArray(lOO) As I n t e g e r
В обоих случаях массив состоит из 101 элемента.
Чтобы во всех массивах, в которых при объявлении указан только индекс последнего
элемента, индексом первого элемента была единица, введите перед каждой процедурой
в модуле следующее выражение:
O p tion B ase 1
Если такое выражение присутствует в модуле, то следующие два выражения дадут
одинаковый результат (в обоих объявляется массив из 100 элементов):
Dim M y A r ra y (l t o 100) As I n t e g e r
Dim MyArray(lOO) As I n t e g e r
Совет
Чтобы отобразить список функций VBA во время написания кода, введите vba
и поставьте точку. Редактор VBA отобразит в окне подсказки список всех
функций, включая встроенные и пользовательские (рис. 24.1). Если ничего не
произошло и список не появился, убедитесь, что во вкладкё Editor диалогового
окна параметров редактора VBA установлен флажок Auto List Members
(Автоматическое отображение членов). Кроме функций, в отображенный спи
сок входят встроенные константы. Полезно следующее правило: все, что мож
но вставить в данном месте кода, есть в окне подсказки. Если вставить что-
либо иное, будет сгенерирована ошибка. Встроенные функции VBA подробно
описаны в справочной системе редактора VBA. Чтобы открыть справку о функ
ции, наведите указатель на ее имя и нажмите клавишу <F1 >.
Конструкция I f - Then
Вероятно, наиболее часто используемой управляющей конструкцией в VBA является
I f-T h e n . Это единственный случай, в котором выражению предоставляется возмож
ность выбора. В конструкции I f - T h e n используется следующий синтаксис.
I f условие Then код , выполняемый в случае и с т и н н о с т и условия
[ E l s e код , выполняемый в случае ложности условия]
Конструкция I f-T h e n выполняет одну или несколько команд в зависимости от истин
ности условия. Ключевое слово E ls e вводить не обязательно, однако если он добавлен, это
позволяет выполнить одну или несколько команд в случае, когда условие не выполнено.
В примере следующей функции структура I f - T h e n представлена без ключевого
слова E ls e . Это пример со временем суток. Время суток выражено дробным значением
(например, полдень записывается как 0 , 5). Функция Time в VBA возвращает значение,
которое показывает время суток в системных часах компьютера. В следующем примере
функция начинается с присвоения переменной G reetM e пустой строки. Выражение I f -
Then проверяет время суток. Если это время до полудня, то ветвь Then выполняется,
и функция возвращает строку Д оброе утр о.
F u n c t i o n G r e e t M e ()
GreetMe = ""
592 Часть VI. Разработка пользовательских функций
Создание циклов
Цикл — это процесс повторения группы команд VBA в процедуре. Количество по
вторений (итераций) можно задать самому или определить на основе значений перемен
ных в программе. VBA предлагает несколько конструкций циклов:
• цикл F o r -N e x t;
• цикл Do W h ile;
• цикл Do U n t i l .
Цикл F o r -N e x t
В цикле F o r -N e x t используется следующий синтаксис:
For счетчик = начало То конец [ S t e p шаг ]
[ инструкции]
[ E x i t For]
[ инструкции]
N e x t [ счетчик]
В приведенном ниже примере показано использование цикла F o r -N e x t, в котором
нет необязательного ключевого слова S te p и выражения E x i t For. Функция возвра
щает сумму всех целых чисел в диапазоне, ограниченном двумя аргументами.
F u n ctio n S u m l n t e g e r ( f i r s t , l a s t )
to ta l = 0
For num = f i r s t To l a s t
t o t a l = t o t a l + num
N e x t num
S u m ln teger = t o t a l
End F u n c t i o n
Следующая формула Excel возвращает число 55 — сумму всех целых чисел от 1 до 10.
= S u m In teg e rs(1 ,1 0 )
В этом примере num (счетчик итераций) начинается со значения, переданного в пер
вом аргументе, и увеличивается на единицу в каждой итерации. Цикл завершается, когда
num равно значению последнего аргумента. Переменная t o t a l складывает все значения
num, которые она получала во время выполнения цикла.
Предупреждение
При использовании цикла F o r - N e x t следует иметь в виду, что счетчик цикла —
обычная переменная, а не особый ее тип. Поэтому значение счетчика в цикле кода
между выражениями For и N ex t можно изменять. Однако это не очень хорошая
идея— при ее реализации могут возникнуть проблемы. Будьте внимательны
и следите, чтобы счетчик изменялся только сам по себе, а не другими командами.
Чтобы пропустить определенные итерации цикла, воспользуйтесь ключевым словом
S te p . Ниже приведена функция, вычисляющая сумму чисел между первым и последним
аргументами через одно значение.
F u n ctio n S u m l n t e g e r s 2 ( f i r s t , l a s t )
to ta l = 0
F or num = f i r s t To l a s t S t e p 2
t o t a l = t o t a l + sum
N e x t num
S u m ln te g ers2 = T o t a l
End F u n c t i o n
Глава 24. Концепции программирования на VBA 595
Цикл Do W h ile
Еще одной циклической конструкцией, предлагаемой VBA, является Do W h ile. В от
личие от цикла F o r -N e x t, конструкция Do W h ile выполняется до тех пор, пока не будет
выполнено заданное условие. В цикле Do W h ile используется следующий синтаксис.
Do [W hile условие]
[инструкции]
[ E x i t Do]
[ инструкции]
Loop
596 Часть VI. Разработка пользовательских функций
Или:
Do
[ инструкции]
[ E x i t Do]
[ инструкции]
Loop [W hile условие]
Как видите, в VBA можно поставить условие W h ile в начале или в конце цикла. Разни
ца между представленными выше вариантами синтаксиса заключается во времени провер
ки выполнения условия. Цикл первого варианта синтаксиса может не выполниться ни разу.
Во втором варианте синтаксиса содержимое цикла всегда выполняется хотя бы один раз.
В следующем примере приведена функция R o w O fL a rg e s t, написанная с использо
ванием цикла Do W h ile (первый вариант синтаксиса).
F u n c t i o n R o w O f L a r g e s t (с)
NumRows = R ow s. Count
MaxVal = A p p l i c a t i o n . M a x ( C o l u m n ( с ) )
r = 1
D oW hile C e l l s ( r , c) <> MaxVal
r = r + 1
Loop
R o w O fL argest = r
End F u n c t i o n
Первым значением переменной г является единица, затем это значение увеличивает
ся в цикле Do W h ile . Цикл продолжает выполняться, пока не встретится значение
ячейки, равное M axVal. Затем выполнение цикла прекращается, и функции присваива
ется значение г. Обратите внимание: если максимальное значение расположено в первой
строке, то цикл выполняться не будет.
В приведенной ниже функции использован второй вариант синтаксиса Do W h ile .
Этот цикл всегда выполняется хотя бы один раз.
F u n c t i o n R o w O f L a r g e s t (с)
NumRows = R o w s. Count
MaxVal = A p p l i c a t i o n . M a x ( C o l u m n s ( с ) )
r = 0
Do
r = r + 1
Loop W h ile C e l l s ( r , c) <> MaxVal
R ow O fL argest = r
End F u n c t i o n
В цикле Do W h ile может содержаться один или несколько инструкций E x i t Do.
Когда встречается выражение E x i t Do, цикл сразу прерывается.
Цикл Do U n t il
Структура цикла Do U n t i l напоминает конструкцию Do W h ile . Разница заметна
только при тестировании условия. В цикле Do W h ile инструкции выполняются, пока
условие верно, а в цикле Do U n t i l инструкции выполняются до тех пор, пока усло
вие не станет верным. В цикле Do U n t i l используется следующий синтаксис.
Do [Unt i 1 условие ]
[ инструкции]
[ E x i t Do]
[ инс трукции]
Loop
Глава 24. Концепции программирования на VBA 597
Или:
Do
[ инструкции]
[ E x i t Do]
[ инструкции]
Loop [ U n t i l условие]
В следующем примере продемонстрировано использование первого варианта синтак
сиса цикла Do U n t i l . В этом коде проще разобраться, поскольку в нем нет отрицатель
ного сравнения, используемого в цикле Do W h ile .
F u n c t i o n R o w O f L a r g e s t (с)
NumRows = R ow s. Count
MaxVal = A p p l i c a t i o n . M a x ( C o l u m n s ( c ) )
r = 1
Do U n t i l ( r , c) = MaxVal
r = r + 1
Loop
R ow O fL argest = r
End F u n c t i o n
В следующей функции используется второй вариант синтаксиса цикла Do U n t i l .
F u n c t i o n R o w O f L a r g e s t (с)
NumRows = R ow s. Count
MaxVal = A p p l i c a t i o n . M a x ( C o l u m n ( c ) )
r = 0
Do
r = r + 1
Loop U n t i l C a l l s ( r , c) = MaxVal
R o w O fL arg est = r
End F u n c t i o n
Инструкция On Error
Несомненно, при использовании функций в формулах Excel иногда случается так, что
формула возвращает значение ошибки (например, #ЗНАЧ!). Формула может вернуть
значение ошибки во множестве ситуаций, среди которых встречаются следующие:
• пропущен один или несколько обязательных аргументов;
• использован аргумент неправильного типа (например, текстовый вместо числового);
• аргумент находится за пределами приемлемого числового диапазона (например,
деление на нуль).
Во многих случаях ошибку можно просто проигнорировать. Если не указать правиль
ное значение аргумента, то функция вернет значение ошибки. Устранением ошибки
пользователь занимается вручную. К сожалению, именно так функции рабочего листа
Excel обрабатывают ошибки.
В других случаях необходимо знать о существовании ошибки, чтобы предпринять
определенные действия. Инструкция On E r r o r позволяет идентифицировать и обрабо
тать ошибки в Excel.
Чтобы проигнорировать ошибку, воспользуйтесь следующим выражением:
Or E r r o r Resume N e x t
При использовании этого выражения ошибки выявляются в результате проверки
свойства N um ber объекта E r r . Если это свойство равно нулю, ошибка не выводится.
Если E r r . N um ber равно другому значению, то выводится сообщение об ошибке.
598 Часть VI. Разработка пользовательских функций
Перекрестная ссылка
В главе 25 приведены примеры использования выражения On E r r o r , в том
числе пример, иллюстрирующий способ возвращения функцией фактиче
ского значения ошибки.
Работа с диапазонами
Многие пользовательские функции работают с данными, расположенными в ячейке
или диапазоне ячеек. Диапазоном может быть как одна ячейка, так и группа ячеек.
Глава 24. Концепции программирования на VBA 599
Перекрестная ссылка
В главе 25 приведены практические примеры использования диапазонов. Изу
чение этих примеров поможет разобраться с информацией данного раздела.
Примечание
В предыдущем примере c e l l и m g — это имена переменных. В этих именах нет
ничего необычного; их можно заменить любым допустимым именем переменной.
Ссылка на диапазон
В коде VBA к диапазону можно обратиться с помощью одного из свойств:
• R ange;
• C e lls ;
• O ffs e t.
Свойство R ange
Свойство R an g e служит для прямого обращения к диапазону, при этом используется
адрес или имя ячейки. В следующем примере значение ячейки А1 присваивается пере
600 Часть VI. Разработка пользовательских функций
Свойство C e l l s
Еще одним методом обращения к диапазону является свойство C e l l s . Оно принима
ет два аргумента (номер строки и столбца) и возвращает одну ячейку. В следующем вы
ражении значение ячейки А1 присваивается переменной F i r s t Се 11:
F i r s t C e l l = C e l l s ( 1 , 1 ) .V a lu e
Представленное далее выражение возвращает левую верхнюю ячейку диапазона
С5 : С12.
U p p e r L e f t = R a n g e ( "С5: С 12" ) . C e l l s ( 1 , 1 )
Совет
Если свойство Cells используется без аргумента, то оно возвращает диапа
зон, содержащий все ячейки рабочего листа. В приведенном ниже примере
переменная T o t a l C e l l s содержит общее количество ячеек рабочего листа.
T o t a lC e lls = C e lls.C o u n t
Свойство O f f s e t
Свойство O f f s e t (как и свойства R a n g e и C e l l s ) также возвращает объект R a n g e .
Свойство O f f s e t применяется к диапазону. Оно принимает два аргумента, соответст
вующих относительному расположению левой верхней ячейки объекта R a n g e . Аргумен
ты могут быть положительными, отрицательными или равными нулю. В следующем
примере извлекается значение ячейки, которая расположена на одну строку ниже ячейки
А1 (т.е. А2). Значение ячейки присваивается переменной N e x t C e l l .
N e x t C e l l = R a n g e ( " A l" ) . O f f s e t ( 1 , 0 ) . V a l u e
Следующая функция принимает в качестве аргумента одну ячейку и возвращает сум
му восьми ячеек, распложенных вокруг нее.
F u n ctio n S u m S u r r o u n d in g C e lls (c e ll)
Dim T o t a l As D o u b le
Dim r As Long, с As Long
T otal = 0 ^
For r = - 1 To 1
For с = - 1 To 1 1
T otal = T otal + c e l l .O f fs e t (r , c)
Next с
Next r
S u m S u r r o u n d i n g C e l ls = T o t a l - c e l l
End F u n c t i o n
В этой функции использованы вложенные циклы F o r - N e x t. По этой причине, когда
счетчик цикла г равен - 1 , счетчик с “пробегает” значения от - 1 до 1. При этом сумми
руются девять ячеек, включая ячейку, указанную в аргументе (она имеет смещение Of f -
s e t (0 , 0 )). Заключительная инструкция функции вычитает значение ячейки аргумента
из общей суммы. Если ячейка, на которую указывает смещение, не существует на листе,
функция O f f s e t возвращает ошибку.
Чтобы лучше понять, как работают вложенные циклы, приведем девять инструкций,
выполняющих ту же операцию.
T otal = T o t a l + c e l l . O f f s e t (-.1, - 1 ) 'л е в а я вер хн яя
T otal = T o t a l + c e l l . O f f s e t ( - 1 , 0) 'сл ева
T otal = T otal + c e l l . O f f s e t (-1, 1) 'в ер х н я я правая
T otal = T otal + c e l l . O f f s e t (0 , -1) 'с в е р х у
T otal = T otal + c e l l . O f f s e t (0 , 0) 'с а м а ячейка
T otal = T otal + c e l l . O f f s e t (0 , 1) 'с п р а в а
T otal = T otal + c e l l . O f f s e t (1 , -1) 'нижняя л е в а я
T otal = T o t a l + c e l l . O f f s e t (1 , 0) 'в н и з у
T otal = T otal + c e l l . O f f s e t (1 , 1) 'нижняя правая
Свойство Formula
Свойство F o r m u l a возвращает в виде строки формулу, которая находится в ячейке.
При обращении к свойству F o r m u l a диапазона, содержащего несколько ячеек, возника
ет ошибка. Если в ячейке формула отсутствует, то свойство вернет значение ячейки в та
602 Часть VI. Разработка пользовательских функций
ком виде, в котором оно отображается в строке формул. Следующая функция отображает
формулу левой верхней ячейки диапазона.
F u n c t i o n CELLFORMULA(cell)
CELLFORMULA = c e l l . R a n g e ( "A I" ) . Form ula
End F u n c t i o n
Чтобы выяснить, содержится ли в ячейке формула, используйте свойство Has Form ula.
Свойство A d d ress
Свойство A d d r e ss возвращает адрес диапазона в виде строки. По умолчанию оно
возвращает абсолютную ссылку (например, $А $1:$С $12). Следующая функция, ис
пользуемая не так уж часто, возвращает адрес диапазона.
F u n c t i o n RANGEADDRESS(rng)
RANGEADDRESS = r n g . A d d r e s s
End F u n c t i o n
Следующая формула возвращает строку $ А $ 1 : $С$3:
=RANGEADDRES S (А 1 : СЗ)
Приведенная ниже формула возвращает адрес именованного диапазона MyRange.
=RANGEADDRES S(MyRange)
Свойство Count
Свойство C ount возвращает количество ячеек в диапазоне. Оно демонстрируется
в следующем примере.
F u n ct i o n CELLCOUNT(r n g )
CELLCOUNT = r n g . C o u n t
End F u n c t i o n
Приведенная ниже формула возвращает число 9.
=CELLCOUNT(AI: СЗ)
Предупреждение
Свойство Count объекта Range функционально отличается от функции рабочего
листва счёт. Свойство c o u n t возвращает общее количество ячеек диапазона,
включая пустые и содержащие любые типы данных. Функция рабочего листа
сч ё т возвращает количество ячеек диапазона, содержащих числовые значения.
ч
Новинка
Рабочие листы Excel содержат более 17 миллиардов ячеек, по сравнению с
примерно 17 миллионами в предыдущих версиях. Благодаря такому гигант
скому увеличению, свойство Count, имеющее тип Long, вернет ошибку при
обработке диапазона, содержащего более 2147483647 ячеек. Во избежание
потенциальных ошибок можно использовать новое свойство C ountL arge, од
нако учтите, что в предыдущих версиях программы оно не доступно.
В функции c e l l c o u n t (см. выше) следующий оператор способен обработать
диапазон любого размера (в том числе и все ячейки рабочего листа):
CELLCOUNT=rng. C o u n tL a rg e
Свойство P a r e n t
Свойство P a re n t возвращает объект контейнера текущего объекта. Для объекта Range
свойство P a re n t возвращает объект W orksheet (рабочий лист, содержащий диапазон).
Глава 24. Концепции программирования на VBA 603
Свойство Name
Свойство Name возвращает объект Name ячейки диапазона. Чтобы получить реальное
имя ячейки или диапазона, следует обратиться к свойству Name объекта Name. Если
ячейка или диапазон не имеет имени, то свойство Name вернет ошибку.
Следующая функция извлекает имя ячейки или диапазона, переданного в качестве ар
гумента. Если диапазон или ячейка не имеют имени, функция возвращает пустую строку.
Обратите внимание на использование инструкции On E r r o r R e s u m e N e x t . Благода
ря ей обрабатывается ошибка, возникающая, когда у диапазона отсутствует имя.
F u n c t i o n RANGENAME (rn g)
On E r r o r Resume N e x t
RANGENAME = r n g . Name. Name
I f Err.N um ber <> 0 Then RANGENAME = ""
End F u n c t i o n
Свойство NumberFormat
Свойство NumberFormat возвращает числовой формат ячейки (в виде строки), ко
торый присваивоен ячейке или диапазону. Следующая функция возвращает числовой
формат левой верхней ячейки диапазона.
F u n c t i o n NUMBERFORMAT(cell)
NUMBERFORMAT = c e l l . R a n g e ("A l " ) . NumberFormat
End F u n c t i o n
Свойство Font
Свойство Font возвращает объект F on t диапазона или ячейки. Чтобы сделать что-либо с
помощью объекта Font, необходимо обратиться к его свойствам. Например, объект Font
имеет такие свойства, как B old, I t a l i c , Name, C o lo r и т.д. Следующая функция возвра
щает значение TRUE, если к левой верхней ячейке применено полужирное начертание.
F u n c t i o n I S B O L D ( c e ll)
ISBOLD = c e l 1 . R a n g e ( " A l " ) . F o n t . B o l d
End F u n c t i o n
Совет
Цвет фона ячейки не является частью объекта F o n t, он хранится в объекте
i n t e r i o r . Следующая функция вернет значение t r u e , если верхняя левая
ячейка диапазона окрашена в красный цвет (константа vbRed является
встроенной).
F u n c t i o n ISREDBKGRD(cell)
ISREDBKGRD = c e l l . R a n g e ( " A l" ) . I n t e r i o r . C o l o r = vbRed
End F u n c t i o n
604 Часть VI. Разработка пользовательских функций
Свойство H idden
Свойство H id d e n используется для управления строками и столбцами. Оно возвра
щает значение TRUE, если строка или столбец скрыты. Если применить это свойство
к диапазону, в который не входит целая строка или столбец, возникает ошибка. Приве
денная ниже функция принимает аргумент в виде одной ячейки и возвращает TRUE, если
либо строка, либо столбец с указанной ячейкой скрыты.
F u n c t i o n CELLISHIDDEN(cell)
I f c e l l . E n t i r e R o w . H i d d e n Or c e l l . E n t i r e C o l u m n . H id d en
Then
CELLISHIDDEN = True
E lse
CELLISHIDDEN = F a l s e
End I f
End F u n c t i o n
Эту функцию можно переписать без использования конструкции I f - T h e n - E l s e .
В следующей функции выражение справа от знака равенства возвращает либо TRUE, ли
бо FALSE. Это значение присваивается переменной, возвращаемой функцией.
F u n c t i o n CELLISHIDDEN(cell)
CELLISHIDDEN = c e l l . E n t i r e R o w . H id d en Or _
c e l l . E n t i r e C o l u m n . H id d en
End F u n c t i o n
Примечание
Объект Range существенно отличается от именованного диапазона тем, что
его нельзя использовать в формулах.
Функция Intersect
Функция I n t e r s e c t возвращает диапазон, созданный в результате пересечения
двух диапазонов. Например, диапазоны D3 : D 10 и В5 : F5 (рис. 24.2) имеют одну общую
ячейку (D5). Таким образом, D5 является пересечением диапазонов D3 : D 10 и В5 : F5.
Функция Union
Функция U n i o n объединяет несколько диапазонов в один. В следующем выражении
функция U n i o n используется для создания объекта диапазона, содержащего первый
и третий столбцы рабочего листа:
606 Часть VI. Разработка пользовательских функций
Свойство UsedRange
Свойство U sedR ange возвращает объект R ange, ссылающийся на используемый
диапазон рабочего листа. При нажатии клавиш <Ctrl+End> активизируется правая ниж
няя ячейка используемого диапазона. Свойство U sed R an ge применяется для повыше
ния эффективности выполнения функций.
Рассмотрим следующую функцию, принимающую аргумент диапазона и возвращаю
щую количество ячеек с формулами в диапазоне.
F u n c t i o n FORMULACOUNT(r n g )
Dim c n t As Long
Dim c e l l As Range
cnt = 0
For Each c e l l I n r n g
I f c e l l . H asF orm u la Then c n t = c n t + 1
Next c e l l
FORMULACOUNT = c n t
End F u n c t i o n
В большинстве случаев эта функция прекрасно работает. Но пользователь может вве
сти следующую формулу:
= FORMULACOUNT (А: С)
Трехстолбцовый аргумент содержит 3145728 ячеек. С аргументом, содержащим один
или несколько столбцов, функция будет работать слишком медленно, поскольку она
проходит в цикле по каждой ячейке диапазона, даже если на рабочем листе они не ис
пользуются. Ниже приведена альтернативная функция, в которой исправлен недостаток
предыдущей.
F u n c t i o n FORMULACOUNT (rn g)
Dim c n t As Long
Dim c e l l As Range
cnt = 0
s e t WorkRange = I n t e r s e c t ( r n g , r n g . P a r e n t . U s e d R a n g e )
I f WorkRange I s N o t h i n g Then
FORMULACOUNT = 0
E x it F u n ctio n
End I f
F or Each c e l l I n WorkRange
I f c e l l . H a s F o r m u l a Then c n t = c n t + 1
N ext c e l l
FORMULACOUNT = c n t
End F u n c t i o n
Эта функция создает объект R ange с именем WorkRange, в котором сохраняется
пересечение диапазона, принимаемого в качестве аргумента, а также диапазона рабочего
листа. Другими словами, WorkRange состоит из подмножества аргументов диапазона,
в которое входят ячейки используемого диапазона рабочего листа. Обратите внимание
на инструкцию I f , которая проверяет, не пуст ли диапазон. Это происходит, если аргу
мент функции указывает за пределй используемого диапазона. В этом случае функция
возвращает нуль, и ее выполнение завершается.
Глава
Примеры
пол ьзовател ьских
функций VBA
В этой главе...
♦ Простые функции
♦ Выяснение типа данных в ячейке
♦ Мноцелевая функция
♦ Генерация случайных чисел
♦ Вычисление комиссионных от продаж
♦ Функции управления текстом
♦ Функции подсчета
♦ Функции управления датами
♦ Возвращение последней заполненной ячейки столбца или строки
♦ Функции для работы с несколькими листами
♦ Дополнительные пользовательские функции
Простые функции
Относительно простые функции, представленные в этом разделе, могут оказаться очень
полезными. Многие из них основаны на том факте, что VBA имеет доступ к большому
объему полезной информации, которая обычно не используется в формулах. Например, код
608 Часть VI. Разработка пользовательских функций
Компакт-диск
Примеры этого раздела содержатся в файле s i m p l e f u n c t i o n s .x lsm
(ch a p ter 2 5 _ R U S .x ls m ) на прилагаемом компакт-диске.
F u n c t i o n CELLISHIDDEN(cell) As B o o l e a n
Возвращает TRUE, е с л и ячейка скрыта
Dim U p p e r L e f t As Range
S e t U p p e r L e f t = c e l l . R a n g e ( "A I")
CELLISHIDDEN = U p p e r L e f t . E n t i r e R o w . H id d en Or _
U p p e r L e f t . E n t i r e C o l u m n . H id d en
End F u n c t i o n
F u n c t i o n APPNAME() As S t r i n g
1 Возвращает н а зв а н и е приложения
' для ячейки, содержащей формулу
APPNAME = A p p l i c a t i o n . C a l l e r . P a r e n t . P a r e n t . P a r e n t .N a m e
End F u n c t i o n
ISBOLD = c e l l . R a n g e ( "AI") . F o n t . B o l d
End F u n c t i o n
Предупреждение
В функциях этого раздела используется следующее выражение:
A p p l i c a t i o n . V o l a t i l e True
Такое выражение заставляет функцию проводить перерасчет формул в ра
бочей книге, однако эти функции не всегда возвращают правильные значе
ния. Причина в том, что изменение формата ячеек не приводит к автомати
ческому пересчету рабочего листа. Чтобы все же выполнить общий пере
расчет (и обновить все пользовательские функции), нажмите <Ctr+Alt+F9>.
А эта функция возвращает значение TRUE, если к аргументу ячейки применен кур
сивный шрифт.
F u n c t i o n I S I T A L I C ( c e l l As Range) As B o o l e a n
1 Возвращает TRUE, е с л и т е к с т ячейки в в е д е н курсивом
ISITALIC = c e l l . R a n g e C ' A l " ) . F o n t . I t a l i c
End F u n c t i o n
В обеих приведенных выше функциях есть небольшой недостаток: если к ячейке
применено смешанное форматирование, то функции возвращают ошибку (например, ес
ли полужирное начертание имеют только некоторые символы).
Следующая функция вернет значение TRUE только в том случае, если все символы
в ячейке имеют полужирный шрифт. Если свойство B o ld объекта F o n t содержит пус
тое значение (N u ll), что указывает на смешанное форматирование, инструкция I f гене
рирует ошибку; тогда имени функции не может быть присвоено значение T ru e . Если
имя функции ранее было установлено в F a l s e , именно это значение и вернет функция.
F u n c t i o n ALLBOLD(cell As Range) As B o o l e a n
' Возвращает TRUE, е с л и т е к с т ячейки полностью в в е д е н
' полужирным шрифтом
Dim U p p e r L e f t As Range
S e t U pp erL eft = c e ll.R a n g e C ' A l " )
ALLBOLD = F a l s e
I f U p p e r L e f t . F o n t . B o l d Then ALLBOLD = True
End F u n c t i o n
Следующая функция FILLCOLOR возвращает целочисленное значение, которое соот
ветствует индексу цвета заливки ячейки. Если в ячейке нет заливки, функция возвращает
значение -4 1 4 2 . Свойство C o l o r l n d e x принимает значения в диапазоне от нуля до 56.
F u n c t i o n FILLCOLOR(cell As Range) As I n t e g e r
1 Возвращает ц е л о е ч и с л о , со о т в ет ст в у ю щ ее
' ц в е т у зал ивк и ячейки
FILLCOLOR = c e l l . R a n g e ( "AI") . I n t e r i o r . C o l o r l n d e x
End F u n c t i o n
Примечание
Если ячейка является частью таблицы, использующей какой-либо стиль,
функция f i l l c o l o r вернет неправильный цвет. Аналогично, функция не
вернет цвет заливки, заданный условным форматированием.
612 Часть VI. Разработка пользовательских функций
Компакт-диск
Эта функция содержится на прилагаемом компакт-диске в файле c e l l t y p e
f u n c t i o n . x l s m (Chapter25_R U S .x ls m ).
Глава 25. Примеры пользовательских функций VBA 613
Многоцелевая функция
В данном разделе показана пользовательская функция, которая работает как несколь
ко функций. Эта функция VBA, называемая STATFUNCTION, работает с двумя аргумен
тами — диапазоном (rn g ) и оператором (ор). В зависимости от значения о р , функция
возвращает значение, вычисленное с помощью одной из функций рабочего листа:
СРЗНАЧ, СЧЁТ, МАКС, МЕДИАНА, МИН, МОДА и т.д. Эту функцию можно использовать на
рабочем листе.
=STATFUNCTION ( C l : С12 ; В14 )
Результат формулы зависит от ячейки В14, которая содержит строку (например,
A v e ra g e , C o u n t, Мах и т.д.). Таким же образом можно работать и с другими типами
функций.
F u n c t i o n STATFUNCTION(rng As V a r i a n t , op As S t r i n g ) As V a r i a n t
S e l e c t C ase U C a se (o p )
C ase "SUM"
STATFUNCTION = A p p l i c a t i o n . Sum (rng)
C a se "AVERAGE"
STATFUNCTION = A p p l i c a t i o n . A v e r a g e ( r n g )
C ase "MEDIAN"
STATFUNCTION = A p p l i c a t i o n . M e d ia n ( r n g )
C ase "MODE"
STATFUNCTION = A p p l i c a t i o n . M od e(rng)
C ase "COUNT"
STATFUNCTION = A p p l i c a t i o n . C o u n t ( r n g )
C ase "MAX"
STATFUNCTION = A p p l i c a t i o n . Max(rn g)
C ase "MIN"
STATFUNCTION = A p p l i c a t i o n . M in (r n g )
C a se "VAR"
STATFUNCTION = A p p l i c a t i o n . V a r ( r n g )
C a se "STDEV" /
STATFUNCTION = A p p l i c a t i o n . S t D e v ( r n g )
C a se E l s e
STATFUNCTION = CVErr(xlErrNA)
End S e l e c t
End F u n c t i o n
614 Часть VI. Разработка пользовательских функций
Компакт-диск
Эта функция содержится на прилагаемом компакт-диске в файле s t a t -
f u n c t io n fu n ctio n .x lsm (C h a p te r2 5 _ R U S .x lsm ).
Следующая функция S TAT FUNCTI ON2 имеет более простой вид, но работает так же,
как и функция STATFUNCTION. Для вычисления выражения в ней используется опера
тор E v a l u a t e .
F u n c t i o n STATFUNCTION2(rng a s R an ge, op As S t r i n g ) As D o u b le
STATFUNCTI0N2 = E v a l u a t e ( o p & "(" & _
r n g . A d d r e s s ( e x t e r n a l : =True) & ")")
End F u n c t i o n
Предположим, что аргумент r n g соответствует диапазону С1:С 12, а аргумент ор
является строковым значением Sum. Тогда выражение, используемое в качестве аргу
мента оператора E v a l u a t e , имеет следующий вид.
= S u m (C l: С 12)
Метод E v a l u a t e вычисляет аргументы и возвращает результат. Кроме того, что
данное выражение довольно короткое, преимущество этой версии функции STATFUNC
TION заключается еще и в том, что необязательно перечислять все возможные функции
в конструкции S e l e c t - C a s e .
Использование типов данных имеет как преимущества, так и недостатки. Они могут
применяться для ограничения типа данных, передаваемых в функцию и возвращаемых
из нее. В то же время четкое определение типа данных уменьшает гибкость функций.
Использование типа данных v a r i a n t максимизирует гибкость, но в то же время снижа
ет скорость вычислений.
Одним из возможных значений, возвращаемых функцией s t a t f u n c t i o n , является
значение ошибки (раздел C a se E l s e конструкции S e l e c t C ase). Это значит, что функ
ция может вернуть как число с двойной точностью, так и ошибку. Единственным вари
антом типа данных, который приемлет числа с двойной точностью и ошибки, является
v a r i a n t , поэтому этот тип имеет и функция. С другой стороны, в функции STATFUNC-
TION2 не обеспечен возврат значения ошибки, поэтому ей достаточно более жесткого
типа данных D o u b le . Числовые данные в ячейках трактуются как числа с двойной точно
стью (Double), даже если внешне выглядят как целые числа ( i n t e g e r ) .
Аргументы rn g также вводятся по-разному. Во второй функции используется свой
ство A d d r e s s объекта Range, поэтому в функцию должен передаваться этот же тип
данных; в противном случае будет сгенерирована ошибка. В то же время в первой
функции нет ничего, что требовало бы от аргумента rn g иметь тип Range. Объявляя пе
ременную r n g как v a r i a n t , мы предоставляем пользователю возможность ввода зна
чений в другом виде, отличном от диапазона. Excel попытается преобразовать вводи
мые данные в нечто, что сможет обработать. Если же программе не удастся преобразо
вать передаваемые данные, естественно, будет сгенерирована ошибка. К примеру,
пользователь может ввести следующую формулу и получить правильный результат:
=STATFUNCTION( { 1 2 3 , 4 5 ; 6 4 3 / 8 9 3 , 2 2 } ; "Min")
В данном примере ни один из аргументов не является ссылкой, но Excel принимает
эту запись. Программа с такой же легкостью найдет минимальное значение массива
констант, как и диапазона ячеек. Однако и обрабатываться второй аргумент будет по-
разному. Если передается ссылка на ячейку, Excel попытается преобразовать значение
в строку и с легкостью справится с этой задачей.
В общем случае лучше использовать наиболее ограниченный тип данных, допусти
мый для предоставления пользователю максимальной гибкости в работе.
Компакт-диск
Представленные функции содержатся в файле random fu n c tio n s .x ls m
(ch a p ter 2 5 _ R U S .x ls m ) на прилагаемом компакт-диске.
F u n c t i o n STATICRAND() As D o u b le
' Возвращает п р о и з в о л ь н о е ч и с л о ,
' к о т о р о е не и з м е н я е т с я при п е р е с ч е т е
STATICRAND = Rnd
End F u n c t i o n
В функции STATICRAND используется функция VBA Rnd, которая, как и функция
СЛЧИС, возвращает случайное число в диапазоне от нуля до единицы. В то же время при
использовании STATICRAND случайные числа не изменяются при пересчете листа.
Примечание
При нажатии клавиши <F9> новые значения функции s t a t i c r a n d не гене
рируются; это можно сделать с помощью комбинации клавиш <Ctrl+Alt+F9> ,
(клавиатурное сокращение глобального пересчета в Excel).
Следующая версия функции возвращает случайное целое число из заданного диапа
зона значений. На самом деле эта функция является всего лишь оболочкой встроенной
функции Excel СЛУЧМЕЖДУ (R an d B etw een )1.
F u n c t i o n STATICRANDBETWEEN(lo As Long, h i As Long) As Long
' Возвращает с л у ч а й н о е ц е л о е ч и с л о ,
1 не и зм ен я ем ое при п е р е с ч е т е
STATICRANDBETWEEN = W o r k s h e e t F u n c t i o n . R a n d B e tw e e n ( l o , h i )
End F u n c t i o n
К примеру, если вам нужно получить случайное целое число в диапазоне от 1 до
1000, можете воспользоваться следующей формулой:
=STATICRANDBETWEEN( 1 ; 1 0 0 0 )
1 В этой и других функциях, использующих встроенные функции рабочего листа Excel, назва
ния функций приведены в варианте англоязычной версии Excel. Дело в том, что русификация кос
нулась программы Excel и ее функций, но не языка VBA; в нем используется исключительно анг
лоязычный вариант имен функций. Естественно, это вносит определенную путаницу, но все, что
нам остается, — это принять данный факт к сведению. — Примеч. ред.
Глава 25. Примеры пользовательских функций VBA 617
End S e l e c t
End F u n c t i o n
Приведенная ниже формула рабочего листа возвращает значение 3 000 (объем про
даж $25 ООО соответствует ставке в 12%).
=COMMISSION( 2 5 0 0 0 )
В этой функции легко разобраться. В ней используется константа для хранения став
ки комиссионных и структура S e l e c t C ase для выяснения того, какую ставку следует
использовать.
Примечание
Когда структура S e l e c t C ase пересчитывается, программа выходит из нее,
как только выполнится первый встреченный истинный оператор Case.
Компакт-диск
Эта функция содержится на прилагаемом компакт-диске в файле c o m i s
s i o n f u n c t i o n . x ls m ( C h a p t e r 2 5 _ R U S . x lsm ).
620 Часть VI. Разработка пользовательских функций
Компакт-диск
Функции этого раздела содержатся на прилагаемом компакт-диске в файле
t e x t m a n ip u la tio n fu n c tio n s.x lsm (C h a p te r 2 5 _ R U S .x lsm ).
Обращение строки
Следующая функция REVERSETEXT возвращает текст ячейки в обратном порядке.
F u n c t i o n REVERSETEXT(text) As S t r i n g
1 Возвращ ает реверсивны й ар гум ен т
REVERSETEXT = S t r R e v e r s e (t e x t )
End F u n c t i o n
В этой функции используется функция VBA S t r R e v e r s e . Приведенная ниже фор
мула возвращает строку t f o s o r c i M .
=REVERSETEXT( " M i c r o s o f t ")
Перетасовка текста
Следующая функция возвращает содержимое аргумента, но его символы расположе
ны в случайном порядке. Например, если использовать M i c r o s o f t в качестве аргумен
та, то в результате может получиться o f i c M i c r o или строка с другим порядком пред
ставления символов.
F u n c t i o n SCRAMBLE(text)
' П ерета совы в ает символы а р гу м ен т а
Dim T e x tL e n As I n t e g e r
Dim i As I n t e g e r
Dim RandPos As I n t e g e r
Dim Char As S t r i n g * 1
S e t t e x t = t e x t . R a n g e ( "A I")
T e x tL e n = L e n ( t e x t )
F or i = 1 To T e x tL e n
Char = M i d ( t e x t , i , 1)
RandPos = I n t ( ( T e x t L e n - 1 + 1 ) * Rnd + 1)
M i d ( t e x t , i , 1) = M i d ( t e x t , R and P os, 1)
Глава 25. Примеры пользовательских функций VBA 621
Возвращение аббревиатуры
Функция ACRONYM возвращает первую букву каждого слова аргумента (в верхнем ре
гистре). Например, следующая формула вернет строку IBM:
=ACRONYM(" I n t e r n a t i o n a l B u s i n e s s M a c h in e s" )
Текст функции ACRONYM следующий.
F u n c t i o n ACRONYM(text) As S t r i n g
1 Возвращает а б б р е в и а т у р у для а р г у м е н т а 1
Dim T e x tL e n As I n t e g e r
Dim i As I n t e g e r
te x t = A p p lic a tio n .T r im (tex t)
T e x tL e n = L e n ( t e x t )
ACRONYM = L e f t ( t e x t , 1)
F or i = 2 To T e x tL e n
I f M i d ( t e x t , i , 1) = C h r (3 2 ) Then
ACRONYM = ACRONYM & M i d ( t e x t , i + 1, 1)
End I f
N ext i
ACRONYM = UCase(ACRONYM)
End F u n c t i o n
В этой функции используется функция TRIM, удаляющая лишние пробелы в аргумен
те. Первый символ аргумента всегда является первым символом результата. Цикл F o r -
N e x t проверяет каждый символ. Если символ является пробелом, то символ после про
бела добавляется к результату. Затем результат преобразуется в верхний регистр с по
мощью функции VBA UCase.
Символ Значение
? Соответствует одному символу
★ Соответствует любому количеству символов (в том числе нулевому)
# Соответствует одной цифре
[ список] Соответствует любому символу из списка
[ ! список] Соответствует любому символу, не вошедшему в список
Компакт-диск
Функция E x a c t W o r d l n S t r i n g содержится в файле e x a c t w o rd .x lsm
(Chapter25_RUS . x ls m ) на прилагаемом компакт-диске.
Примечание
Если в качестве символа-разделителя задать пробел, то несколько пробе
лов могут восприниматься как один (почти всегда это так, как и должно
быть). Если п превышает количество элементов в строке, то функция воз
вращает пустую строку.
Код VBA функции EXTRACTELEMENT выглядит следующим образом.
F u n c t i o n EXTRACTELEMENT(T x t , n , S e p a r a t o r ) As S t r i n g
' Возвращ ает n - й эл ем е н т с т р о к и , в к отор о й
' элементы р а зд ел ен ы заданным символом
Dim A l l E l e m e n t s As V a r i a n t
A llE lem en ts = S p li t ( T x t , S ep arator)
EXTRACTELEMENT = A l l E l e m e n t s ( n - 1)
End F u n c t i o n
В этой функции используется встроенная функция VBA S p l i t , которая возвращает
массив V a r i a n t , содержащий все элементы текстовой строки. Массив начинается с 0 (а не
с 1), поэтому для обращения к необходимому элементу следует использовать индекс n - 1.
Компакт-диск
Эта функция содержится на прилагаемом компакт-диске в файле s p e l l -
d o lla r s fu n ctio n .x lsm (C h a p te r2 5 _ R U S .x lsm ).
Глава 25. Примеры пользовательских функций VBA 625
Функции подсчета
В главе 7 были приведены примеры формул подсчета и суммирования ячеек по раз
личным критериям. Если ни одна из формул для подсчета и суммирования не подходит,
значит, следует создать собственную пользовательскую функцию. В этом разделе пред
лагаются четыре функции, выполняющие операции подсчета и суммирования.
Компакт-диск
Функции этого раздела содержатся на прилагаемом компакт-диске в файле
c o u n tin g fu n ctio n .x lsm (C h a p te r2 5 _ R U S .x lsm ).
Примечание
Несмотря на то что в данном разделе мы имели дело с подсчетом, многие из
функций без труда можно преобразовать в функции суммирования. К при
меру, в функции c o untre ds можно изменить строку вычисления перемен-
ной функции следующим образом (предполагается, что названием функции
суммирования будет s u m r e d s ):
SUMREDS=SUMREDS+cell.Value
Глава 25. Примеры пользовательских функций VBA 627
Компакт-диск
Функции этого раздела содержатся на прилагаемом компакт-диске в файле
d a t e f u n c t io n s .x ls m ( C h a p t e r 2 5 _ R U S .x ls m ) .
Примечание
Эта функция возвращает порядковый номер даты. Чтобы отобразить поряд
ковый номер в формате даты, следует изменить формат ячейки, в которой
использована функция.
Если в качестве аргумента, обрабатываемого функцией NEXTMONDAY, использовать
понедельник, функция возвратит значение следующего понедельника. Чтобы функция
вернула значение текущего понедельника, нужно использовать несколько модифициро
ванную версию.
F u n c t io n NEXTMONDAY2(d As D a te ) As D a te
' В озвращ ает д а т у следую щ его п он ед ел ь н и к а или тек ущ его
' п о н ед ел ь н и к а , е с л и ар гум ен т п р е д с т а в л я е т п он едел ь н и к
I f W eekD ay(d) = 2 Then
NEXTMONDAY2 = d
E lse
NEXTMONDAY2 = d + 8 - W eekD ay(d, vbM onday)
End I f
End F u n c t io n
1 День н ед е л и у к а зы в а е т с я числами от 1 до 7
I f d a y < 1 Or d a y > 7 Then
NEXTDAY = CVErr(xlErrNA)
E lse
NEXTDAY = d + 8 - W eekDay(d, day)
End I f
End F u n c t i o n
В функции NEXTDAY используется инструкция I f , обеспечивающая приемлемость
аргумента дня (он должен принадлежать диапазону от 1 до 7). Если аргумент дня являет
ся неприемлемым числом, функция возвращает значение ошибки #Н /Д . Поскольку
функция может возвращать значения, отличные от дат, ее тип описан как V a r i a n t .
Компакт-диск
Функции работы с датами содержатся на прилагаемом компакт-диске в
файле e x t e n d e d d a t e f u n c t i o n . x l s m (Chapter25_R U S .x ls m ). Там же вы
найдете файл h e l p . d o c x , содержащий их описание.
Предупреждение
Эти функции не подстраиваются под изменения, внесенные в календарь в
1582 году. Поэтому результаты функций управления датами до 15 октября
1582 года могут быть не вполне корректными.
Компакт-диск
Функции этого раздела содержатся на прилагаемом компакт-диске в файле
l a s t n o n e m p ty c e l l . x l s m ( C h a p t e r 2 5 _ R U S . x l s m ) .
Функция LASTINCOLUMN
Ниже приведен текст функции LASTINCOLUMN.
F u n c t i o n LASTINCOLUMN(rng As Range)
' Возвращает содерж имое п о с л е д н е й з а п о л н ен н о й ячейки
' столбца
A p p lic a tio n .V o la tile
W ith r n g . P a r e n t
W ith . C e l l s ( . R ow s. C o u n t , rn g .C o lu m n )
I f N ot I s E m p t y ( . V a l u e ) Then
LASTINCOLUMN = . V a l u e
E l s e l f I s E m p t y ( . E n d ( x l U p ) ) Then
LASTINCOLUMN = ""
E lse
LASTINCOLUMN = . E n d ( x l U p ) . V a l u e
End I f
End W ith
End W ith
End F u n c t i o n
Обратите внимание на ссылку P a r e n t диапазона. Она позволяет функции работать с
аргументами, которые ссылаются на различные рабочие листы и книги.
Функция LASTINROW
Ниже приведен текст функции LASTINROW.
F u n c t i o n LASTINROW(rng As Range)
' Возвращ ает содерж имое п о с л е д н е й
' зап о л н ен н о й ячейки ст р ок и
A p p lic a tio n .V o la tile
W ith r n g . P a r e n t
W ith . C e l l s ( r n g . Row, . C o lu m n s . C o u n t )
I f N ot I s E m p t y ( . V a l u e ) Then
LASTINROW = . V a l u e
E l s e l f I s E m p t y ( . E n d ( x l T o L e f t ) ) Then
LASTINROW = ""
E lse
LASTINROW = . E n d ( x l T o L e f t ) . V a l u e
End I f
End W ith
End W ith
End F u n c t i o n
Перекрестная ссылка
В главе 15 рассматривается формула массива, которая возвращает послед
нюю ячейку столбца или строки.
Компакт-диск
Функции этого раздела содержатся на прилагаемом компакгг-диске в файле
m u l t i s h e e t f u n c t i o n s . x ls m ( C h a p t e r 2 5 _ R U S . x ls m ) .
Примечание
Функцию m a x a l l s h e e t s можно настроить для других операций с несколь
кими листами: мин, срзнач, сумм и т .д .
Функция S H E E T O F F S E T
Многие замечания, касающиеся приложения Excel (в том числе и Excel 2010), заклю
чаются в недостаточной поддержке относительных ссылок на листы. Например, предста
вим, что у вас есть рабочая книга с несколькими листами, и на листе Л и с т 2 введена сле
дующая формула:
= Л и с т 1 !А1 + 1
Эта формула прекрасно работает. Однако если скопировать ее на следующий лист
(Л истЗ), то формула будет продолжать ссылаться на Л и ст 1. Если вс!авить лист между
Л и ст1 и Л и ст2, формула все равно продолжит ссылаться на Л и ст1 (хотя по логике она
должна ссылаться на только что вставленный лист). Вам не удастся создать формулу, ко
торая бы ссылалась на рабочие листы относительным образом. Однако можно восполь
зоваться функцией SHEETOFFSET, чтобы избежать этих ограничений.
Приведенная ниже процедура функции VBA называется SHEETOFFSET.
F u n c t i o n SHEETOFFSET(Offset As Long, R ef c e l l As V a r i a n t )
■ Возвращает содерж имое ячейки с указанным смещением л и с т о в
Dim W ksIndex As Long, WksNum As Long
Dim wks As W o r k sh e e t
A p p lic a tio n .V o la tile
I f I s M i s s i n g ( c e l l ) Then S e t c e l l = A p p l i c a t i o n . C a l l e r
WksNum = 1
For Each wks I n A p p l i c a t i o n . C a l l e r . P a r e n t . P a r e n t . W o r k s h e e t s
I f A p p l i c a t i o n . C a l l e r . P a r e n t .N a m e = wks.Name Then
SHEETOFFSET = W orksheets(W ksNum + O f f s e t ) _
. R a n g e ( c e l l( 1 ) .A d d r ess).V a lu e
E x it F u n ctio n
E lse
WksNum = WksNum + 1
End I f
N e x t wks
End F u n c t i o n
Функция SHEETOFFSET принимает два аргумента.
• O f f s e t . Смещение листа, которое может быть положительным, отрицательным
или равным нулю.
• R ef. Ссылка на одну ячейку. Если этот аргумент опущен, то ссылка на ячейку бу
дет такой же, что и ячейка, содержащая формулу.
Следующая формула возвращает значение ячейки А1 листа, который расположен пе
ред листом с формулой.
=SHEETOFFSET( - 1 ; А 1)
Представленная ниже формула возвращает значение ячейки А1 листа, расположенно
го после листа с формулой.
=SHEETOFFSET( 1 ; А 1 )
Глава 25. Примеры пользовательских функций VBA 633
Примечание
Исходная функция r e v e r s e t e x t имела тип s t r i n g , поскольку всегда воз
вращала текстовую строку. В исправленной версии функция описана как
v a r i a n t , потому что теперь она не всегда возвращает строку.
Перекрестная ссылка
Примечание
Нижняя граница массива, созданного с помощью функции A rr a y , по умол
чанию равна нулю. Но ее можно изменить, воспользовавшись инструкцией
O p t i o n B a s e.
Компакт-диск
Функции этого раздела содержатся на прилагаемом компакт-диске в файле
m onthnames . x l s m (Chapter25_R U S .x ls m ).
А ! В ! . С [ D Т Е F j 6 | Н [ Г j J ■*[ К [ _ L
1
2 1янв Фев Мар Апр Май Июн Июл Авг Сен Окт Ноя Дек I
Ш _
Рис. 25.7. Функция m o n th n a m es, введенная формулой массива
Примечание
Как и при работе с формулой массива, для ввода этой формулы следует на
жать клавиши <Ctrl+Shift+Enter>. Не вводите фигурные скобки — Excel доба
вит их самостоятельно.
Функция MONTHNAMES, как уже отмечалось, возвращает горизонтальный массив
размером в одну строку. Чтобы отобразить массив вертикального диапазона в один стол
бец, выделите диапазон и введите следующую формулу:
{ =ТРАНСП(MONTHNAMES( ) ) }
В качестве альтернативы, чтобы выполнить транспонирование, можно изменить и
саму функцию. В следующем примере для возвращения вертикального массива исполь
зуется функция Excel T r a n s p o s e (соответствующая ТРАНСП).
F u n c t i o n VMONTHNAMES() As V a r i a n t
VMONTHNAMES = A p p l i c a t i o n . T r a n s p o s e ( A r r a y ( _
"Янв", "Фев", "Map", "Апр",
"Май", "Июн", "Июл", "Авг", _
"Сен", "Окт", "Ноя", "Дек"))
End F u n c t i o n
1 Н азначени е переменных
RCount = F u n cR a n g e. R ow s. C ount
CCount = F u n cR a n g e. C o lu m n s. C ount
ReDim V (1 To R C ount, 1 To CCount)
ReDim V a lA r r a y ( l To 2 , 1 To C e llC o u n t)
■ З а н е с е н и е произвольны х зн ач ен и й в м асси в V
i = 0
F or г = 1 То RCount
F o r kс = 1 То CCount
i = i + 1
V ( г , с) = V a lA r r a y (2 , i )
Глава 25. Примеры пользовательских функций VBA 637
N ext с
N ext г
RANDOMINTEGERS = V
End F u n c t io n
К ом пакт-диск
Эта функция содержится на прилагаемом компакт-диске в файле random
i n t e g e r f u n c t io n .x ls m ( C h a p t e r 2 5 _ R U S .x ls m ) .
C e llC o u n t = r n g .C o u n t
I f C e llC o u n t > 1000 Then
RANGERANDOMIZE = C V E rr(xlE rrN A )
E x i t F u n c t io n
End I f
RCount = r n g . R ow s. C ount
CCount = r n g . C o lu m n s. C ount
ReDim V (1 To R C ount, 1 To CCount)
ReDim V a lA r r a y ( l To 2 , 1 To C e llC o u n t)
F or i = 1 To C e llC o u n t
V a lA r r a y ( l , i ) = Rnd
V a lA r r a y (2 , i ) = r n g ( i )
N ext i
F or i = 1 To C e llC o u n t
F or j = i + 1 To C e llC o u n t
I f V a lA r r a y (1 , i ) > V a lA r r a y ( l , j ) Then
Tempi = V a lA r r a y (1 , j )
Temp2 = V a lA r r a y (2 , j )
V a lA r r a y (1 , j ) = V a lA r r a y (1 , i )
V a lA r r a y (2 , j ) = V a lA r r a y (2 , i )
V a lA r r a y (1 , i ) = Tempi
V a lA r r a y (2 , i ) = Temp2
End I f
N ext j
N ext i
i = 0
F or r = 1 To RCount
F or с = 1 To CCount
i = i + 1
V ( r , c) = V a lA r r a y (2 , i)
638 Часть VI. Разработка пользовательских функций
N ext с
N ex t г
RANGERANDOMIZE = V
End F u n c t io n
Этот код немного напоминает код функции RANDOMINTEGERS. На рис. 25.9 показа
на данная функция в действии. Формула массива в диапазоне D2.-E17 выглядит сле
дующим образом:
{=RANGERANDOMIZE(А 2 : В 1 7 ) }
Компакт-диск
Эта ф ункция содерж ится на прилагаем ом ко м пакт-диске в файле r a n g e
r a n d o m iz e f u n c t io n .x ls m ( C h a p t e r 2 5 _ R U S .x ls m ) .
USER = U c a s e ( A p p lic a t io n .U s e r N a m e )
E lse
USER = A p p lic a tio n .U s e r N a m e
End I f
End F u n c t io n
Примечание
Если нужно определить, передан ли необязательный аргумент функции, вы
должны объявить его с типом v a r i a n t . После этого можно использовать в
процедуре функцию i s M i s s i n g (это будет продемонстрировано в следую
щем примере).
Если аргумент равен FALSE или пропущен, то имя пользователя возвращается без
каких-либо изменений. Если же аргумент равен TRUE, то имя пользователя преобразует
ся в верхний регистр (с помощью функции VBA UCase) и только после этого отобража
ется на экране. Обратите внимание на то, что в первой инструкции в процедуре исполь
зуется функция VBA I s M i s s i n g для выяснения того, задан ли аргумент. Если аргумент
отсутствует, то инструкция устанавливает переменную U p p e r c a se равной FALSE (это
значение по умолчанию).
Необязательные аргументы также позволяют определить значение по умолчанию не
посредственно в объявлении (вместо тестирования с помощью функции I s M is s in g ) .
Приведенная в качестве примера функция может быть в таком случае переписана в сле
дующем виде.
F u n c t io n U S E R (O p tio n a l U p p e r c a s e As B o o le a n = F a ls e )
' As S t r i n g
I f U p p e r c a s e = T rue Then
USER = U C a s e ( A p p lic a tio n .U s e r N a m e )
E lse
USER = A p p lic a tio n .U s e r N a m e
End I f
End F u n c t io n '
Если аргумент не передается, значение U p p e r c a se автоматически устанавливается
в F a ls e . Этот подход имеет существенное преимущество: вам совершенно не нужно
использовать вместо четко заданного типа тип V a r ia n t. В то же время в данном случае
не существует метода узнать, передал ли пользователь аргумент или же он был подстав
лен по умолчанию.
Все приведенные ниже формулы являются правильными (и первые две выдают оди
наковый результат).
=USER()
=USER(ЛОЖЬ)
=USER(ИСТИНА)
Примечание
Ключевое слово Param A rray можно применить только к последнему аргу
менту процедуры. Он всегда имеет тип v a r i a n t , и это всегда необязатель
ный атрибут (хотя ключевое слово O p t io n a l и не задается).
увидите, что функция не работает, если все аргументы не являются значениями или
ссылкой на диапазон. Если аргумент состоит из целого столбца, то функция работает
очень медленно, поскольку она просчитывает все ячейки, в том числе и пустые.
Далее приведен листинг функции MYSUM, в которой используются все эти типы аргу
ментов.
F u n c t io n MySum(Param A rray a r g s () As V a r ia n t ) As V a r ia n t
' Эмуляция функции р а б о ч е г о л и с т а СУММ
1 Объявления переменных
Dim i As V a r ia n t
Dim TempRange As R an ge, c e l l As R ange
Dim ECode As S t r i n g
Dim m, n
MySum = 0
' О бработка каж дого и з ар гум ен тов
F or i = 0 То U B o u n d (a r g s)
1 Пропуск отсутствую щ их а р гум ен то в
I f N ot I s M i s s i n g ( a r g s ( i ) ) Then
1 Аргумент п р и с у т с т в у е т
S e l e c t C ase T y p e N a m e ( a r g s ( i) )
C ase "Range"
' С оздан и е в р ем ен н ого д и а п а зо н а для о б р а б о т к и
' целых ст р о к и ст о л б ц о в
S e t TempRange = I n t e r s e c t ( a r g s ( i ) . _
P a r e n t . U se d R a n g e , a r g s ( i ))
F or Each c e l l In TempRange
I f I s E r r o r ( c e l l ) Then
MySum = c e l l ' возвращ аем ошибку
642 Часть VI. Разработка пользовательских функций
E x i t F u n c t io n
End I f
I f c e l l = T rue Or c e l l = F a l s e Then
MySum = MySum + 0
E ls e
I f I s N u m e r i c ( c e l l ) Or I s D a t e ( c e l l ) Then _
MySum = MySum + c e l l
End I f
N ext c e l l
C ase " V a r ia n t ()"
n = a r g s (i)
F or m = LB ound(n) To U Bound(n)
MySum = MySum(MySum, n (m )) 'рекурсивны й вызов
N ext m
C ase " N u ll" 'и гн ор и р уем пусты е зн а ч ен и я
C ase "E rror" 'возвр ащ аем ошибку
MySum = a r g s ( i )
E x i t F u n c t io n
C ase " B oolean "
' Проверяем к онстанты T rue и ком п ен си руем их
I f a r g s ( i ) = "True" Then MySum = MySum + 1
C ase "Date"
MySum = MySum + a r g s ( i )
C ase E l s e
MySum = MySum + a r g s ( i )
End S e l e c t
End I f
N ext i
End F u n c t io n
Компакт-диск
Эта функция содержится на прилагаемом компакт-диске в файле mysum
f u n c t io n .x ls m ( C h a p t e r 2 5 _ R U S .x ls m ) .
Приложения
В этой части...
Приложение А
О писание функций Excel
Приложение Б
Пользовательские числовые форматы
Приложение В
Дополнительные ресурсы , посвящ енные Excel
Приложение Г
С одержимое прилагаем ого ком пакт-диска
Приложение
Описание
функций Excel
В этом приложении вы найдете полный список функций рабочего листа Excel (кроме
текстовых функций, работающих с экзотическими алфавитами, типа фуригана, катакана,
таиландского и др.). Все функции перечислены в алфавитном порядке и разбиты на кате
гории, используемые в диалоговом окне вставки функции. Для каждой категории выде
лена отдельная таблица.
Чтобы получить более подробную информацию о конкретной функции, в том числе
о ее аргументах, выделите ее в списке диалогового окна вставки функции и щелкните на
ссылке Справка по этой функции.
Поскольку названия функций в русской и английской версиях разные, а при использова
нии функций рабочего листа в пользовательских функциях VBA требуется исключительно
английский вариант, в таблицах приводятся оба варианта названия функции. Ряд функций су
ществует только в английском варианте (в частности, это касается математических функций).
Звездочкой отмечены функции, введенные в Excel 2010.
Компакт-диск
Список функций Excel приведен также в рабочей книге w o r k s h e e t fu n c
t i o n s . x l s x на прилагаемом компакт-диске.
Окончание табл. А. 1
Функция Описание
Г А М М А О Б Р (GAMMAINV) Возвращает обратное интегральное гамма-распределение
Г А М М А Р А С П (GAMMADIST) Возвращает гамма-распрепределение
ГИ П ЕРГЕО М ЕТ Возвращает гипергеометрическое распределение
(HYPGEOMDIST)
Д И С П (VAR) Оценивает дисперсию по выборке, игнорируя логические значе
ния и текст
Д И С П Р (VARP) Вычисляет дисперсию для генеральной совокупности
Д О В Е Р И Т (CONFIDENCE) Возвращает доверительный интервал для среднего значения по
генеральной совокупности
К В А Р Т И Л Ь ( QUARTILE) Возвращает квартиль набора данных
К О В А Р (COVAR) Возвращает ковариацию, т.е. среднее произведений парных
отклонений
КР И ТБ И Н О М (CRITBINOM) Возвращает наименьшее значение, для которого интегральное
биномиальное распределение равно заданному условию или
меньше его
Л О Г Н О Р М О Б Р (LOGINV) Возвращает обратное логнормальное распределение
Л О ГН О Р М Р А С П Возвращает логнормальное интегральное распределение
(LOGNORMDIST)
М О Д А (MODE) Возвращает наиболее частое значение в наборе данных
Н О Р М О Б Р (NORMINV) Возвращает обратное нормальное интегральное распределение
Н О Р М Р А С П (NORMDIST) Возвращает нормальное интегральное распределение
Н О Р М С Т О Б Р (NORMSINV) Возвращает обратное значение стандартного нормального инте
грального распределения
Н О Р М С Т Р А С П (NORMSDIST) Возвращает стандартное нормальное интегральное распределение
ОТРБИНОМ РАСП Возвращает отрицательное биномиальное распределение
(NEGBINOVDIST)
ПЕРСЕНТИ ЛЬ Возвращает k-ю персентиль для значений диапазона
(PERCENTILE)
ПРОЦЕН ТРАН Г Возвращает процентную норму значения в наборе данных
(PERCENTRANK)
П У А С С О Н (POISSON) Возвращает распределение Пуассона
Р А Н Г (RANK) Возвращает ранг числа в списке чисел
С Т А Н Д О Т К Л О Н (STDEV) Оценивает стандартное отклонение выборки
С Т А Н Д О Т К Л О Н П (STDEVP) Вычисляет стандартное отклонение по генеральной совокупности
С Т Ь Ю Д Р А С П (TDIST) Возвращает t -распределение Стьюдента
С Т Ь Ю Д Р А С П О Б Р (TINV) Возвращает обратное t-распределение Стьюдента
Т Т Е С Т (TTEST) Возвращает вероятность, соответствующую t-тесту Стьюдента
Ф Т Е С Т (FTEST) Возвращает результат F-теста
ХИ20БР (CHIINV) Возвращает обратное значение односторонней вероятности
распределения хи-квадрат
Х И 2 Р А С П (CHIDIST) Возвращает одностороннюю вероятность распределения
хи-квадрат
Х И 2 Т Е С Т (CHITEST) Возвращает результат тестирования независимости выборок по
критерию хи-квадрат
Э К С П Р А С П (EXPONDIST) Возвращает експоненциальное распределение
Приложение А. Описание функций Excel 649
Все функции категории Недавно использовались имеют в Excel 2010 новую версию с
другим именем. Все новые версии приведены в категории статистических функций.
Окончание табл. А. 5
Функция Описание
ДВ. В . ВОСЬМ (BIN20CT) Преобразует двоичное число в восьмеричное
ДВ.В.ДЕС (BIN2DEC) Преобразует двоичное число в десятичное
ДВ. В . ШЕСТИ (BIN2HEX) Преобразует двоичное число в шестнадцатеричное
ДЕЛЬТА (DELTA) Проверяет, равны ли два значения
ДЕС. В . ВОСЬМ (DEC20CT) Преобразует десятичное число в восьмеричное
ДЕС.В.ДВ (DEC2BIN) Преобразует десятичное число в двоичное
ДЕС. В . ШЕСТИ (DEC2HEX) Преобразует десятичное число в шестнадцатеричное
ДФОШ(ERFC)* Возвращает дополнительную функцию ошибки
ДФОШ. ТОЧНО Возвращает дополнительную функцию ошибки, проинтегриро
(ERFC.PRECISE) ванную от текущего значения до бесконечности
КОМПЛЕКСИ (COMPLEX) Преобразует действительный и мнимый коэффициенты в ком
плексное число
МНИМ.ABS (IMABS) Возвращает абсолютное значение (модуль) комплексного числа
МНИМ.COS (IMCOS) Возвращает косинус комплексного числа
МНИМ.EXP (IMEXP) Возвращает экспоненту комплексного числа
МНИМ. LN (IMLN) Возвращает натуральный логарифм комплексного числа
МНИМ. LOG10 (IMLOG10) Возвращает десятичный логарифм комплексного числа
МНИМ. LOG2 (IMLOG2) Возвращает двоичный логарифм с комплексного числа
МНИМ.SIN (IMSIN) Возвращает синус комплексного числа
МНИМ.АРГУМЕНТ Возвращает аргумент q — угол, выраженный в радианах
(IMARGUMENT)
МНИМ. ВЕЩ (IMREAL) Возвращает коэффициент вещественной части комплексного числа
МНИМ.ДЕЛ (IMDIV) Возвращает частное двух комплексных чисел
МНИМ.КОРЕНЬ (IMSQRT) Возвращает квадратный корень комплексного числа
МНИМ. ПРОИЗВЕЛ Возвращает произведение двух комплексных чисел
(IMPRODUCT)
МНИМ.РАЗН (IMSUB) Возвращает разность двух комплексных чисел
МНИМ.СОПРЯЖ Возвращает сопряженное комплексное число
(IMCONJUGATE)
МНИМ.СТЕПЕНЬ Возвращает комплексное число, возведенное в степень целого
(IMPOWER) числа
МНИМ. СУММ (IMSUMM) Возвращает сумму комплексных чисел
МНИМ. ЧАСТЬ Возвращает мнимую часть комплексного числа
(IMAGINARY)
ПОРОГ (GESTEP) Проверяет, больше ли число, чем пороговое значение
ПРЕОБР(CONVERT) Преобразует число из одной системы исчисления в другую
ФОШ(ERF) Возвращает функцию ошибки
ФОШ. ТОЧНО Возвращает точную функцию ошибки
(ERF. PRECISE)*
ШЕСТИ. В . ВОСЬМ Преобразует шестнадцатеричное значение в восьмеричное
(НЕХ20СТ)
ШЕСТИ. В . ДВ (HEX2DEC) Преобразует шестнадцатеричное значение в двоичное
ШЕСТИ. В . ДЕС (HEX2DEC) Преобразует шестнадцатеричное значение в десятичное
652 Часть VII. Приложения
Продолжение табл. А. 6
Функция Описание
МДЛИТ (MDURATION) Возвращает модифицированный срок действия Макалея для
ценных бумаг с номинальной стоимостью 100 рублей
НАКОПДОХОД(ACCRINT) Возвращает накопленный доход по ценным бумагам с периоди
чески выплачиваемым процентом
НАКОПДОХОДПОГАШ Возвращает накопленный доход для активов, процент с которых
(ACCRINTM) выплачивается в конце срока
НОМИНАЛ (NOMINAL) Возвращает годовую номинальную процентную ставку
ОБЩДОХОД (CUMPRINC) Возвращает кумулятивную сумму основного долга между двумя
периодами
ОБЩПЛАТ(CUMIPMT) Возвращает суммарный процент, выплаченный между двумя
периодами
ОСПЛТ (РРМТ) Возвращает величину выплат по основной сумме инвестиции за
данный период на основе постоянной процентной ставки и пе
риодических платежей
ПЛТ (РМТ) Возвращает величину выплаты за один период годовой ренты на
основе постоянной процентной ставки и периодических платежей
ПОЛУЧЕНО(RECEIVED) Возвращает сумму, полученную по истечении срока за полно
стью инвестированные ценные бумаги
ПРОЦПЛАТ(ISPMT) Возвращает проценты, выплачиваемые за определенный инве
стиционный период
ПРПЛАТ(IPMT) Возвращает сумму выплат процентов от инвестирования за оп
ределенный период
ПС (PV) Возвращает приведенную к настоящему моменту стоимость ин
вестиции, т.е. общую сумму, которая на данный момент равно
ценна сумме будущих выплат
ПУО (VDB) Возвращает величину амортизации имущества для заданного
периода при использовании метода двойного уменьшения ос
татка или иного явно указанного метода
РАВНОКЧЕК(TBILLEQ) Возвращает эквивалентный облигации доход по казначейскому
векселю
РУБЛЬ. ДЕС(DOLLARDE) Преобразует цену в рублях в виде дроби в цену в рублях в виде
десятичного числа
РУБЛЬ. ДРОБЬ Преобразует цену в рублях в виде десятичного числа в цену в
(DOLLARFR) рублях в виде дроби
СКИДКА(DISC) Возвращает ставку дисконтирования для ценных бумаг
СТАВКА(RATE) Возвращает процентную ставку за один период
ФУО (DB) Возвращает величину амортизации актива для заданного перио
да, рассчитанную методом фиксированного уменьшения остатка
ЦЕНА (PRICE) Возвращает цену за 100 рублей номинальной стоимости ценных
бумаг, по которым выплачивается периодический процент
ЦЕНАКЧЕК(TBILLPRICE) Возвращает цену за номинальную стоимость 100 рублей по ка
значейскому векселю
ЦЕНАПЕРВНЕРЕГ Возвращает цену ценных бумаг номинальной стоимостью 100
(ODDFPRICE) рублей с нерегулярным первым периодом
ЦЕНАПОГАШ(PRICEMAT) Возвращает цену за 100 рублей номинальной стоимости ценных
бумаг с выплатой процента в срок погашения
654 Часть VII. Приложения
Окончание табл. А. 6
Функция Описание
ЦЕНАПОСЛНЕРЕГ Возвращает цену ценных бумаг номинальной стоимостью 100
(ODDLPRICE) рублей с нерегулярным последним периодом
ЦЕНАСКИДКА Возвращает цену за 100 рублей номинальной стоимости ценных
(PRICEDISC) бумаг, на которые сделана скидка
ЧИСЛКУПОН (COUPNUM) Возвращает количество облигаций, подлежащих оплате, между
расчетным днем по фьючерсному контракту и окончанием срока
ЧИСТВНДОХОД(XIRR) Возвращает внутреннюю ставку доходности для графика денеж
ных потоков
ЧИСТНЗ (XNPV) Возвращает чистую приведенную стоимость для графика де
нежных потоков
ЧПС (NPV) Возвращает величину чистой приведенной стоимости инвести
ций на основе серий периодических денежных потоков и дис
контных ставок
ЭФФЕКТ(EFFECT) Возвращает эффективную (фактическую) годовую процентную
ставку
Окончание табл. А. 10
Функция Описание
О К Р У Г Л В В Е Р Х (R O U N D U P) Округляет число в сторону увеличения его абсолютного значения
О К Р У Г Л В Н И З (ROUNDDOWN) Округляет число до определенного количества разрядов
в сторону нуля
О К Р У Г Л Т (MROUND) Возвращает число, округленное до указанного разряда
О С Т А Т (MOD) Возвращает остаток от деления
О Т Б Р (TR U N C ) Урезает число до целого
ПИ ( P I ) Возвращает число к
П Р О И З В Е Л (P R O D U C T ) Умножает аргументы *
П Р О М Е Ж У Т О Ч Н Ы Е .И Т О Г И Возвращает промежуточную сумму списка или базы данных
(S U B TO TA L)
Продолжение табл. А. 11
Функция Описание
F . РАСП. ПХ Возвращает правый хвост F-распределения вероятности для двух
( F .D I S T .R T ) * наборов данных
F . T E C T ( F . T E S T )* Возвращает результат F-теста
Z . T E C T (Z . T E S T )* Возвращает двустороннее Р-значение z-теста
БЕТА . ОБР ( B E T A . IN V )‘ Возвращает обратную функцию к интегральной функции плотно
сти бета-вероятности
БЕТА. РАСП Возвращает интегральную функцию плотности бета-вероятности
( B E T A . D IS T )*
Продолжение табл. А. 11
Функция Описание
КОВАРИАЦИЯ.Г Возвращает ковариацию — среднее произведений парных откло
(COVARIANCE.S)* нений
КОРРЕЛ (CORREL) Возвращает коэффициент корреляции между двумя наборами данных
ЛГРФПРИБЛ (LOGEST) Возвращает параметры экспоненциального тренда
ЛИНЕЙН (LINEST) Возвращает параметры линейного тренда
ЛОГНОРМ.ОБР Возвращает инверсию логарифмически нормального распределения
(LOGNORM.INV)*
ЛОГНОРМ.РАСПР Возвращает интегральное логарифмическое нормальное распре
(LOGNORM. D 1ST)* деление
МАКС (МАХ) Возвращает максимальное значение из списка аргументов, про
пуская логические и текстовые значения
МАКСА (МАХА) Возвращает максимальное значение из списка аргументов, учиты
вая логические и текстовые значения
МЕДИАНА (MEDIAN) Возвращает медиану из заданных значений
МИН (MIN) Возвращает минимальное значение из списка аргументов, про
пуская логические и текстовые значения
МИНА (MINA) Возвращает минимальное значение из списка аргументов, учиты
вая логические и текстовые значения
МОДА.НСК Возвращает вертикальный массив из наиболее часто встречаю
(MODE.MULT)* щихся значений в массиве или диапазоне данных
МОДА.ОДН Возвращает значение моды множества данных
(MODE.SNGL)*
НАИБОЛЬШИЙ (LARGE) Возвращает к-е наибольшее значение в наборе данных
НАИМЕНЬШИЙ (SMALL) Возвращает к-е наименьшее значение набора данных
НАКЛОН (SLOPE) Возвращает наклон линейной регрессии
НОРМ.ОБР (NORM.INV)* Возвращает инверсию интегрального нормального распределения
НОРМ.РАСП Возвращает нормальное интегральное распределение
(NORM.d i s t )*
НОРМ.СТ.ОБР Возвращает инверсию стандартного нормального интегрального
(NORM.S .INV)* распределения
НОРМ.С Т .РАСП Возвращает стандартное нормальное интегральное распределение
(NORM.S .DIST)*
НОРМАЛИЗАЦИЯ Возвращает нормированное значение
(STANDARDIZE)
ОТРБИНОМ.РАСП Возвращает отрицательное биномиальное распределение
(NEGBINOM.DIST)*
ОТРЕЗОК (INTERCEPT) Возвращает отрезок линии регрессии
ПЕРЕСТ(PERMUT) Возвращает количество перестановок данного числа объектов
ПЕРСЕНТИЛЬ.ВКЛ Возвращает к-й персентиль значений диапазона
(PERCENTILE. INC)*
ПЕРСЕНТИЛЬ.ИСКЛ Возвращает /с-й персентиль значений диапазона, не включая к
(PERCENTILE. ЕХС)* (значение от 0 до 1)
ПИРСОН (PEARSON) Возвращает коэффициент корреляции Пирсона
ПРЕДСКАЗ (FORECAST) Возвращает значение по линейной тенденции
660 Часть VII. Приложения
Продолжение табл. А. 11
Функция Описание
ПРОЦЕНТРАНГ.ВКЛ Возвращает процентную ставку значения в наборе данных
(PERCENTRANK. INC)*
ПРОЦЕНТРАНГ.ИСКЛ Возвращает процентную ставку значения в наборе данных от 0
(PERCENTRANK. ЕХС)‘ до 1, исключая эти числа
ПУАССОН. РАСП Возвращает распределение Пуассона
(POISSON.DIST)*
РАНГ. РВ (RANK.EQ)* Возвращает ранг числа в списке чисел
РАНГ. СР (RANK.AVG)* Возвращает ранг числа в списке чисел; если несколько значений
имеют одинаковый ранг, возвращает среднее
РОСТ (GROWTH) Возвращает значения по экспоненциальному тренду
СКОС (SKEW) Возвращает асимметрию распределения
СРГАРМ (HARMEAN) Возвращает среднее гармоническое значение
СРГЕОМ (GEOMEAN) Возвращает среднее геометрическое значение
СРЗНАЧ (AVERAGE) Возвращает среднее аргументов
СРЗНАЧА (AVERAGEA) Возвращает среднее аргументов с учетом текст овых и логических
значений
СРЗНАЧЕСЛИ Возвращает среднее значение ячеек, удовлетворяющих заданно
(AVERAGE IF)* му критерию
СРЗНАЧЕСЛИМН Возвращает среднее значение ячеек, удовлетворяющих множест
(AVERAGE IFS)* ву критериев
СРОТКЛ (AVEDEV) Возвращает среднее абсолютных отклонений в данных, опреде
ленных пользователем
СТАНДОТКЛОН . В Вычисляет стандартное отклонение на основе выборки, исключая
(STDEV. S)* текстовые и логические значения
СТАНДОТКЛОН. Г Вычисляет стандартное отклонение на основе генеральной сово
(STDEV. Р)* купности, исключая текстовые и логические значения
СТАНДОТКЛОНА Вычисляет стандартное отклонение на основе выборки, учитывая
(STDEVA) текстовые и логические значения
СТАНДОТКЛОНПА Вычисляет стандартное отклонение по генеральной совокупности,
(STDEVPA) включая числа, текст и логические значения
СТОШУХ (STEYX) Возвращает стандартную ошибку заданного у-значения для каж
дого х в регрессии
СТЬЮДЕНТ. ОВР Возвращает обратное распределение Стьюдента как функцию
(Т. INV)* вероятности и числа степеней свободы
СТЬЮДЕНТ.ОБР.2Х Возвращает обратное распределение Стьюдента
(T.INV.2T)*
СТЬЮДЕНТ. РАСП Возвращает процентные точки распределения Стьюдента
(T.DIST)*
СТЬЮДЕНТ. РАСП. 2Х Возвращает процентные точки распределения Стьюдента при ма
(T.DIST. 2Т)‘ лом объеме выборки
СТЬЮДЕНТ. РАСП. ПХ Возвращает процентные точки правостороннего распределения
(T.DIST.RT)* Стьюдента
СТЬЮДЕНТ. ТЕСТ Возвращает вероятность, соответствующую критерию Стьюдента
(Т. TEST)*
СЧЁТ (COUNT) Определяет количество чисел в списке аргументов
Приложение А. Описание функций Excel 661
Окончание табл. А. 11
Функция Описание
СЧЁТЕСЛИ (COUNTIF) Подсчет количества ячеек, которые удовлетворяют заданному
в аргументе критерию
СЧЁТЕСЛИМН Подсчет количества ячеек, удовлетворяющих множеству аргументов
(COUNTIFS)
СЧЁТЗ (COUNTA) Вычисляет, сколько значений в списке аргументов
СЧИТАТЬПУСТОТЫ Подсчет пустых ячеек в списке аргументов
(COUNTBLANK)
ТЕНДЕНЦИЯ (TREND) Возвращает значения линейного тренда
УРЕЗСРЕДНЕЕ Возвращает среднее внутренней части множества данных
(TRIMMEAN)
ФИШЕР (FISHER) Возвращает преобразование Фишера
ФИШЕРОБР Возвращает обратное преобразование Фишера
(FISHERINV)
ХИ2 . ОБР (CHISQ . INV)* Возвращает интегральную функцию плотности бета-вероятности
ХИ2.ОБР.ПХ Возвращает инверсию односторонней вероятности распределе
(CHISQ.INV.RT)* ния хи-квадрат
ХИ2. РАСП Возвращает плотность бета-вероятности
(CHISQ.DIST)*
ХИ2. РАСП. ПХ Возвращает одностороннюю вероятность распределения хи-квадрат
(CHISQ.DIST. RT)*
ХИ2.ТЕСТ Выполяет проверку на независимость выборок
(CHISQ. TEST)*
ЧАСТОТА (FREQUENCY) Возвращает частоту распределения в виде вертикального массива
ЭКСП. РАСП Возвращает экспоненциальное распределение
(EXPON.DIST)*
ЭКСЦЕСС (KURT) Возвращает критическое значение в наборе данных >
Окончание табл. А. 12
Функция Описание
ПРОПИСН(UPPER) Преобразует текст в верхний регистр
ПРОПНАЧ (PROPER) Отображает первую букву каждого слова текста как заглавную
ПСТР (MID) Возвращает определенное количество символов из текстовой
строки, начиная с указанной точки
РУБЛЬ (DOLLAR) Преобразует число в текст с помощью денежного формата
СЖПРОБЕЛЫ (TRIM) Удаляет пробелы из текста
СИМВОЛ (CHAR) Возвращает символ, определенный кодом
СОВПАД (EXACT) Проверяет, совпадают ли два текстовых значения
СТРОЧН (LOWER) Преобразует текст в нижний регистр
СЦЕПИТЬ Объединяет несколько элементов текста в один текстовый элемент
(CONCATENATE)
Т (Т) Преобразует аргументы в текст
ТЕКСТ (TEXT) Форматирует числа и преобразует их в текст
ФИКСИРОВАННЫЙ Форматирует число как тёкст с фиксированным количеством деся
(FIXED) тичных цифр
Приложение
Пользовательские
числовые форматы
Существенным преимуществом Excel является возможность создавать пользователь
ские числовые форматы. Несмотря на то что в Excel предлагается значительное разнооб
разие встроенных числовых форматов, вам может так и не подойти ни один из них.
В этом приложении описано, как создать собственный числовой формат, при этом при
ведено множество примеров.
Числовое форматирование
По умолчанию во всех ячейках используется числовой формат Общий. Часто он ин
терпретируется следующим образом: “что ввел, то и получишь”. Если ячейка не доста
точно широкая, чтобы вместить все число, то формат Общий округляет его, используя
десятичную запятую и экспоненциальную запись значения. В большинстве случаев ячей
ку следует отформатировать с помощью другого формата.
При форматировании чисел главное помнить, что оно влияет только на внешний вид числа
в ячейке. Само число остается неизменным, и в формулах, в которых фигурирует отформати
рованное число, используется его фактическое значение, не зависящее от формата.
Примечание
Исключение составляет случай, когда в разделе При пересчете этой книги
вкладки Дополнительно окна параметров программы установлен флажок
Задать точность, как на экране. В этом случае в формулах будут использо
ваться значения, реально отображенные в ячейках. На практике не реко
мендуется использовать этот прием, поскольку при этом изменяются фак
тические значения рабочего листа, после чего восстановит^ исходные
значения невозможно.
Запомните: если используется диалоговое окно Найти и заменить (для его открытия
нужно выбрать команду Главная ^Редактирование*^ Найти и выделить«=>Заменить),
то дополнительные символы, отображаемые в результате числового форматирования
(например, символ валюты), не могут быть объектами поиска.
664 Часть VII. Приложения
Примечание
При желании можно воспользоваться флажком отключения автоматическо
го форматирования процентных значений. Откройте окно параметров Excel
и перейдите во вкладку Дополнительно. Если в разделе Параметры правки
установлен флгркок Автоматический ввод процентов (а по умолчанию это так
и есть), значит, можно вводить в отформатированную ячейку обычное зна
чение, и оно будет отображено как процент (например, введите 12,5 и полу
чите 12,5% ). Если этот флажок не установлен, то значения следует вводить
в виде десятичных чисел (например, 0,125 для 1 2 , 5%).
Совет
Чтобы отменить автоматическое форматирование числа при вводе значе
ния, задайте заранее желаемый формат ячейки или поставьте перед числом
апостроф (в последнем случае получится текстовый формат, и числовое
форматирование к ячейке применяться не будет).
Примечание
Некоторые их этих кнопок на самом деле применяют к выделенным ячейкам
предопределенные стили. Доступ к стилям открывается с помощью галереи
Excel (группа Стили вкладки Главная).
Примечание
Если в ячейке отображаются знаки решетки (##########), это обычно ука
зывает на тот факт, что столбец не достаточно широк, чтобы отобразить
значение с использованием выбранного формата. Сделайте шире столбец
или измените формат ячейки. Символы решетки также могут означать, что в
ячейке содержится некорректное время или дата.
Приложение Б. Содержимое прилагаемого компакт-диска 667
©
Совет
Пользовательские числовые форматы сохраняются вместе с рабочим листом,
на котором определены. Чтобы такой формат был доступен в других рабочих
книгах, скопируйте ячейку, в которой он используется, в другую рабочую книгу.
Форматирование числа задается путем определения последовательности кодов фор
матирования в виде строки формата. Эта последовательность вводится в поле Тип по
сле выбора категории (все форматы) во вкладке Число диалогового окна Ф ормат яче
ек. Ниже приведен пример простого числового формата:
О, ООО
Компакт-диск
Примеры пользовательских числовых форматов содержатся в файле num
b e r f o r m a t s . x l s x на прилагаемом компакт-диске.
Перекрестная ссылка
Чтобы форматирование ячеек выполнялось автоматически в зависимости от
содержимого ячейки (например, чтобы изменялся цвет текста или фона),
лучше воспользоваться функцией условного форматирования (см. главу 19).
Чтобы не форматировать весь рабочий лист, можно изменить формат числа в стиле
Обычный (если не определено иначе, то для всех ячеек используется стиль Обычный).
Измените обычный стиль, открыв галерею стилей (команда Главная^Стиль ячеек).
Щелкните правой кнопкой на стиле Обычный и выберите в контекстном меню пункт Из
менить. В открывшемся диалоговом окне Стиль щелкните на кнопке Формат, а затем
выберите числовой формат, который будет использоваться для стиля Обычный.
Масштабирование
Пользовательский формат можно применять для масштабирования числа. Например,
при работе с очень большими числами иногда требуется отображать числа в тысячах или
миллионах, а не единицах (т.е. отобразить число 1000000 как 1000). В расчетах, конечно
же, будет использоваться реальное число, которое находится в ячейке. Форматирование
влияет только на внешний вид числа.
Н1
о
о
о
1 0 0
о
о
9890 98, 90
о
о
СП
500
о
о
о
о
СП
-500
о
о
о
о
о
о
о
о
0 0 " , " 0 0
Ниже приведен вариант этой строки с десятичными значениями. Значение имеет вид
разделенного на 1000000 и округленного до двух цифр после запятой.
# [пробел]# # # , 0 0 [ пробел] [ пробел]
Существует еще один вариант. В этом случае добавляется буква М в конце значения.
# [ пробел]### [ пробел] [ пробел] М
Следующий формат немного сложнее. Он добавляет букву М в конце значения и ото
бражает отрицательные значения в скобках.
# [пробел]# # # , 0 [пробел] [пробел]"М"_) ; ( # [пробел]# # # , 0 [пробел]
[пробел]"М)";0,0ММ"_)
В табл. Б.7 приведены примеры использования этих строк форматирования.
о
о
о
о
Окончание табл. Б. 7
Значение Формат числа Отображение
1000000 # [пробел]# # # , 0 [пробел] 1 ,ом
[пробел]"М "_); # [п р о б е л ]# # # , 0 [пробел]
[п робел]"М )" ; 0 ,0 " М"_)
5000000 # [п р о б е л ]# # # , 0 [пробел] 5, ОМ
[п робел]"М "_); # [п р о б е л ]# # # , 0 [пробел]
[п робел]"М )" ; 0 , 0 "М"_)
-500 0 0 0 0 # [п р о б е л ]# # # , 0 [пробел] ( 5 , ОМ)
[п робел]"М "_); # [п р о б е л ]# # # , 0 [пробел]
[пробел]"М )";0,0"М "_)
0 # [п р о б е л ]# # # , 0 [пробел]
о
о
2
[пробел] "М"_); # [ пробел] # # # , 0 [пробел]
[пробел]"М)";0,0"М "_)
Сокрытие нуля
В следующем формате третий элемент строки пуст, что обусловит отображение ячеек
с нулевыми значениями как пустых:
О сн овной/О сновной;;@
В данном формате используется элемент О сновн ой для положительных и отрица
тельных значений. При необходимости его можно заменить на другой элемент.
674 Часть VII. Приложения
Отображение дробей
Excel поддерживает несколько встроенных форматов дробных чисел (выберите кате
горию Дробный в диалоговом окне Формат ячейки). Например, чтобы отобразить зна
чение , 12 5 в виде дроби со знаменателем 8, выберите в списке Тип параметр Восьмы
ми долями (4/8).
Пользовательский формат можно использовать для создания других форматов дро
бей. Например, следующий формат отображает значение в 50-х долях от целого:
# " [ пробел]" ? ? /5 0
Следующий формат представляет значение в виде дробного доллара. Например, зна
чение 154,87 будет отображено как 1 5 4 и 8 7 / 1 0 0 д о л л а р о в .
0 " и [пробел]"? ? /1 0 0 "долларов"
В приведенном ниже примере представлено значение в шестнадцатеричном виде с
кавычками справа. Этот формат используется при работе с дюймами (например, 2/16").
#" " ? ? /1 б \"
Примечание
В строке условного форматирования можно указать до трех условий — два
из них явные, а третье — неявное. Условия заключаются в квадратные скоб
ки и состоят из простых числовых сравнений.
В следующем примере в зависимости от значения ячейки в ней отображается разный
текст. Этот формат разделяет числа на три группы: меньшие либо равные 4, большие ли
бо равные 8, и все остальные.
[<=4]"Малые"* 0 ; [ > = 8 ] "Большие"* 0 ; "Средние"* 0
Следующий формат используется для представления телефонных номеров. Значения
больше 9999999 (т.е. номера с кодами городов) отображаются в виде (ххх) х х х -х х х х .
Другие значения (номера без кодов городов) будут представлены как х х х -х х х х .
[>9999999] (0 0 0 ) 0 0 0 -0 0 0 0 ;0 0 0 -0 0 0 0
676 Часть VII. Приложения
Выделение цветом
Пользовательские форматы могут отображать содержимое ячейки различными цве
тами. Скажем, приведенный ниже формат выделяет положительные значения красным
цветом, отрицательные — зеленым, нули — черным, а текст — синим.
[К расн ы й ]О сн ов н ой;[Зел ен ы й ]О сн овн ой ;[Ч ерн ы й ]О сн ов н ой ;
[Синий]Основной
В следующем примере показана еще одна строка формата, в которой задаются цвета.
Положительные значения отображаются, как обычно; отрицательные значения и текст
представлены текстом Ошибка 1 красного цвета.
О сновной;[К расн ы й]"О ш и бк а!" ;0;[К р асн ы й ]" О ш и б к а !"
При использовании следующего формата значения, которые меньше двух, отобража
ются красным цветом. Значения больше четырех выделяются зеленым цветом. Все ос
тальное (текст и значения между 2 и 4) представлено черным цветом.
[К р а с н ы й ][< 2 ]О сн о в н о й ;[З ел ен ы й ][> 4 ]О сн о в н о й ;[Ч ер н ы й ]О сн о в н о й
Как показано в предыдущих примерах, Excel распознает такие имена цветов, как
[Красный] и [С и н и й ]. Также можно использовать другие цвета. Например, следую
щий формат представляет содержимое ячейки с использованием шестнадцатого цвета
палитры:
[Ц вет16]О сновной
Примечание
Стандартные средства условного форматирования Excel предоставляют го
раздо более простой и наглядный способ раскрашивания содержимого яче
ек в зависимости от значения.
Перекрестная ссылка
Более подробно о системе представления дат и времени в виде порядковых
чисел рассказывалось в главе 6.
<NULL>
" [NULL]"
Примечание
Помните, что при использовании квадратных скобок их необходимо заклю
чать в кавычки.
Перекрестная ссылка
Более подробно создание пользовательских функций рабочих листов с по
мощью VBA описано в части VI.
Дополнительные ресурсы,
посвященные Excel
Если я хорошо справился со своей задачей, то информация, содержащаяся в этой
книге, обязательно будет вам полезной. Однако в одной книге невозможно раскрыть все
темы, заслуживающие внимания. Поэтому я составил список дополнительных ресурсов,
которые могут пригодиться в обучении. Эти ресурсы я условно разделил на четыре кате
гории: справочная система Excel, техническая поддержка компании Microsoft, группы
новостей в Интернете и веб-сайты.
Примечание
Кнопка Поиск на самом деле представляет собой раскрывающийся список,
позволяющий уточнить, что и где искать.
Справочная система Excel несовершенна. Зачастую она дает только поверхностную
информацию, игнорируя некоторые важные вопросы. Однако если вы оказались в за
труднительной ситуации, быстрый поиск в справочной системе может стать спасатель
ным кругом.
Варианты поддержки
Варианты поддержки компании Microsoft постоянно изменяются. Чтобы узнать, какая
поддержка доступна в текущий момент (как платная, так и бесплатная), зайдите на сайт
h t t p : / / s u p p o r t . m i c r o s o f t . com.
Примечание
Интернет — динамичная среда, которая стремительно меняется. Веб-сайты
часто реорганизуются, поэтому тот или иной адрес URL, приведенный в
этом приложении, может оказаться в нужный вам момент недоступным.
Следует обратить внимание, что при переходе к любой странице Microsoft
сайт считывает региональные параметры вашего компьютера, и язык ин
терфейса изменяется автоматически.
Форумы в Интернете
Сеть U senet— это интернет-служба, предоставляющая доступ к некоторым специ
альным группам новостей по интересам, в которых можно пообщаться с другими поль
зователями на определенные темы. Форумы работают по принципу досок с информаци
онными объявлениями. В них можно поместить сообщение или вопрос, и (как правило)
несколько человек ответят на него.
Приложение В. Содержимое прилагаемого компакт-диска 683
Окончание табл. В. 1
Форум Тема
m icro so ft.p u b lic.e xce l.p ro g ra m m in g Программирование в Excel с помощью VBA
m ic r o s o f t . p u b lic . e x c e l. tem plates Шаблоны рабочих листов и прочие файлы XLT
m ic r o s o ft.p u b lic . e x c e l.w o rksh e e t. Функции рабочих листов
fu n c tio n s
Поиск на форумах
Самый быстрый способ получения ответа на интересующий вопрос — это организа
ция поиска по сообщениям в форуме. Довольно часто такой подход является достойной
альтернативой отправке в форум своего вопроса, поскольку ответ можно получить не
медленно. Если вы столкнулись с распространенной проблемой, велика вероятность, что
кто-то уже задавал ваш вопрос раньше и уже получал ответы. Лучшим средством поиска
в сообщениях групп новостей является сайт Google Groups, доступный по адресу
h ttp ://g r o u p s .g o o g le .r u .
Вам интересно, как работает поиск? Предположим, у вас возникают сложности при
определении уникальных значений в диапазоне ячеек. Поиск можно осуществить с по
мощью таких ключевых слов: E x c e l, д и а п а з о н и у н и к ал ьн ы й . Поисковое средство
Google найдет довольно много сообщений на форуме по этой теме.
Приложение В. Содержимое прилагаемого компакт-диска 685
Если число результатов поиска слишком велико, уточните вопрос, введя дополни
тельные ключевые слова. Чтобы просмотреть все найденные сообщения, может потребо
ваться не один час, но у вас появляется прекрасная возможность найти ответ на постав
ленный вопрос. На самом деле по моим оценкам 90% вопросов, посылаемых в группы
новостей Excel, уже задавались, и ответ на них с легкостью можно получить, выполнив
поиск в Google.
Веб-сайты
Всемирная паутина хранит в себе десятки прекрасных сайтов, посвященных Excel. Я
перечислю только некоторые из них.
Консультации Пирсона
На этом сайте, поддерживаемом Чипом Пирсоном (Chip Pearson), содержатся десятки
примеров кода VBA и остроумных приемов создания формул. Его адрес следующий:
h t t p : //www. c p e a r s o n . с о т / e x c e l . htm
Contextures
Э т о т сайт поддерживается Деборой Далглиш (Deborah Dalgleish) и содержит много
полезной информации об Excel и Access,
www. c o n t e x t u r e s . com
686 Часть VII. Приложения
Мистер Excel
Мистер Excel, также известный как Билл Джелен (Bill Jelen), поддерживает обшир
ный сайт, посвященный Excel. На этом сайте доступна и доска объявлений. Его адрес
следующий:
www. m r e x c e l . com
Содержимое
прилагаемого
компакт-диска
В этом приложении рассматриваются следующие вопросы:
• системные требования для компакт-диска;
• работа с компакт-диском;
• содержимое компакт-диска (программы и файлы примеров);
• устранение проблем.
Системные требования
Для работы с компакт диском необходимо следующее:
• компьютер с установленными операционной системой Windows и программой Ex
cel 2010;
• привод CD-ROM.
Использование компакт-диска
Для установки файлов с компакт-диска на жесткий диск выполните следующие
действия.
1. Вставьте компакт-диск в привод CD-ROM.
2. В открывшемся окне проводника выделите папки с файлами и программами
(подробнее они будут описаны далее), щелкните на выделении правой кнопкой
и выберите в контекстном меню пункт К о п и р о в а ть .
3. Перейдите в папку, в которой собираетесь хранить файлы на жестком диске,
щелкните правой кнопкой и выберите в контекстном меню пункт В с та в и т ь .
688 Часть VII. Приложения
Обзор компакт-диска
В следующих разделах подробно рассмотрено содержимое компакт-диска.
Ниже приведен список глав книги с кратким описанием файлов примеров, содержа
щихся в соответствующих папках компакт-диска. Названия папок примеров имеют сле
дующий вид: c h a p t e r ном ер_главы > например c h a p t e r 01.
Глава 1
• w o r k s h e e t c o n t r o l s . x s l x . Демонстрация использования элементов управ
ления непосредственно на рабочем листе.
• C h a p te r0 1 _ R U S . x lsm . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 2
• C h a p te r 0 2 _ R U S .x ls x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 3
• C h a p te r0 3 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 5
• c h a r a c t e r s e t . x l s x . Отображает все символы выбранного шрифта.
• t e x t f o r m u l a e x a m p le s . x l s x . Содержит примеры формул управления тес
том, описанные в этой главе.
• t e x t h i s t o g r a m . x l s x . Создает гистограмму с помощью символов текста, а не
средств построения диаграмм.
• C h a p te r0 5 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 6
• d a y o f t h e w eek c o u n t . x l s . Вычисляет номер каждого дня недели в опре
деленном году.
• gm t c o n v e r s i o n . x l s . Формула преобразования всемирного времени в локальное.
• h o l i d a y s . x l s . Формула, которая вычисляет даты различных праздников.
• j o g g i n g l o g . x l s . Формула для отслеживания времени и даты забегов.
• o r d i n a l d a t e s . x l s . Содержит формулу, которая выражает дату в виде поряд
кового номера.
• t i m e s h e e t . x l s . Рабочая книга (с макросами VBA) для отслеживания отрабо
танных часов за неделю.
• w o rk d a y s . x l s . Вычисление количества рабочих дней.
• C h apter05__R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 7
• a d ju s ta b le b i n s . x l s x . Демонстрирует формулу, создающую частотное рас
пределение.
690 Часть VII. Приложения
Глава 8
• b a s ic lo o k u p e x a m p le . x l s x . Примеры основных формул поиска.
• s p e c ia liz e d lo o k u p e x a m p l e . x l s x . Примеры специализированных фор
мул поиска.
• C h ap ter0 8 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 9
• d a t a b a s e f o r m u l a s . x l s x . Функции работы с базами данных.
• n e s t e d s u b t o t a l s . x l s x . Использование функции ПРОМЕЖУТОЧНЫЙ. ИТОГ.
• r e a l e s t a t e d a t a b a s e . x l s x . Рабочая книга, которая содержит базу данных
недвижимости. Применяется для демонстрации методов расширенной фильтрации
• r e a l e s t a t e t a b l e . x l s x . Рабочая книга, которая содержит таблицы с ин
формацией о недвижимости. Используется для демонстрации методов расширен
ной фильтрации.
• t a b l e f o r m u l a s . x l s x . Использование структурированных ссылок на данные
таблицы.
• C h a p te r0 9 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 10
• s i m u l t a n e o u s e q u a t i o n s . x l s x . Формулы для решения системы уравнений
с двумя и тремя переменными.
• s o l v e r i g h t t r i a n g l e . x l s x . Формулы для вычисления различных элемен
тов прямоугольного треугольника.
Приложение Г. Содержимое прилагаемого компакт-диска 691
Глава 11
• b a s i c f i n a n c i a l f o r m u l a s . x l s x . Демонстрация различных финансовых
функций: ПС, БС, ПЛТ, СТАВКА и КПЕР.
• b o n d c a l c u l a t i o n s . x l s x . Демонстрация функций ЦЕНА и ДОХОД.
• e x t e n d i n g b a s i c f u n c t i o n s . x l s x . Демонстрация совместной работы раз
личных финансовых функций.
• p a y m e n t c o m p o n e n ts . x l s x . Демонстрация функций ПРПЛТ и ОСПЛТ.
• ra te c o n v e r s i o n . x l s x . Демонстрация функций НОМИНАЛ и ЭФФЕКТ.
• C h a p te r ll_ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 12
• d e p r e c ia tio n .x ls . Формулы, демонстрирующие методы использования
функций амортизации.
• f v s c h e d u l e . x l s x . Демонстрация функции БЗРАСПИС.
• in te rn a l ra te o f r e t u r n . x l s x . Демонстрация функции ВСД.
• i r r e g u l a r c a s h f l o w s . x l s x . Демонстрация функций ЧИСТНЗ и ЧИСТВНДОХОД.
• m u ltip le i r r . x l s x . Демонстрация функции МВСД.
• n e t p r e s e n t v a l u e . x l s x . Демонстрация функции ЧПС.
• C h a p te rl2 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 13
• a m o r t i z a t i o n . x l s x . Простой график выплат по займу.
• f i n a n c i a l s t a t e m e n t s . x l s x . Примеры различных типов финансовых операций.
• i n d i c e s . x l s x . Демонстрация создания индексов.
• l o a n d a t a t a b l e s . x l s x . Демонстрация одномерных и двумерных таблиц данных.
• C h a p te rl3 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 14
• C h a p te rl4 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
692 Часть VII. Приложения
Глава 15
• a r r a y f o r m u la c a l e n d a r . x l s x . Формула массива, представляющая календарь.
• m u lti-c e ll a rra y f o r m u l a s . x l s x . Примеры формул массива для не
скольких ячеек.
• s in g le -c e ll arra y f o r m u l a s . x l s . Примеры формул массива для одной
ячейки.
• y e a r l y c a l e n d a r . x l s x . Создание календаря с помощью многоячеечной фор
мулы массива.
• C h a p te rl5 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 16
• i t e r a t i v e c h a r t a n i m a t i o n . x l s x . Пример анимированной диаграммы,
основанной на преднамеренных циклических ссылках.
• n e t p r o f i t ( c i r c u l a r ) . x l s x . Формула вычисления чистой прибыли с ис
пользованием циклической ссылки.
• n e t p r o f i t ( n o t c i r c u l a r ) . x l s x . Формула вычисления чистой прибыли
без циклической ссылки.
• r e c u r s i v e e q u a t i o n s . x l s x . Использование циклической ссылки для реше
ния рекурсивных уравнений.
• s i m u l t a n e o u s e q u a t i o n s . x l s x . Использование циклической ссылки для
решения системы уравнений.
• u n i q u e ra n d o m i n t e r e s t . x l s x . Показывает, как генерировать уникальные
случайные целые числа с помощью циклической ссылки.
• C h a p te r l6 _ R U S . x lsm . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 17
• b o x p l o t . x l s x . Демонстрирует окно диаграммы для суммирования данных по
группам.
• c h a r t f rom combo b o x . x l sx. Использует списки выбора данных для диаграммы.
• c l o c k c h a r t . x l s m . Альтернативная версия аналоговых часов на основе мак
роса VBA вместо формулы.
• clo ck _ R U S . x lsm . Аналоговые часы в русифицированном варианте.
• c o m p a ra tiv e h is to g ra m , x ls x . Строит сравнительную гистограмму
(пирамида популяции).
• c o n d i t i o n a l c o l o r s . x l s x . Демонстрация создания гистограммы с цветами,
зависящими от значений точек данных.
• f u n c t i o n p l o t 2 D .x l s x . График общего назначения для зависимости с одной
переменной.
Приложение Г. Содержимое прилагаемого компакт-диска 693
Глава 18
• b a n k a c c o u n t s . x l s x . База данных рабочего листа, используемая в нескольких
примерах.
• c a lc u la te d f i e l d and i t e m . x l s x . Создание вычисляемых полей и эле
ментов в сводной таблице.
• c o u n t y d a t a . x l s x . Пример сводной таблицы.
• e m p lo y e e 1 i £ t . x l s x . Пример группировки в сводной таблице.
• h o u r l y r e a d i n g s . x l s x . Пример сводной таблицы с группировкой по времени.
• in c o m e a n d e x p e n s e . x l s x . Пример ссылок на сводную таблицу.
• m u s ic l i s t . x l sx . Пример отчета сводной таблицы.
• n o r m a l i z e d d a t a . x l s x . Пример нормализованных данных, пригодных для
создания сводной таблицы.
• p i v o t c h a r t s l i c e r . x l s x . Макрос VBA для преобразования итоговой таб
лицы в нормализованные данные.
• s a l e s b y d a t e . x l s x . Группирование элементов сводной таблицы по датам.
• te s t s c o r e s . x l s x . Пример сводной таблицы с распределением частот.
• C h a p te r l8 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
694 Часть VII. Приложения
Глава 19
• a n i m a t e d c o l o r s c a l e . x l s m . Макрос VBA, анимирующий цветовую схему
условного форматирования.
• c o l o r s c a l e e x a m p l e . x l s x . Демонстрация условного форматирования на
основе цветовой схемы.
• c o n d itio n a l fo r m a ttin g e x a m p le s . x l s x . Примеры условного формати
рования.
• c o n d itio n a l f o r m a ttin g f o r m u l a s . x l s x . Демонстрация формул услов
ного форматирования.
• c o n d i t i o n a l f o r m a t t i n g w i t h VBA f u n c t i o n s . x lsm . Демонстрация
условного форматирования с помощью функций VBА.
• d a t a b a r s e x a m p le s . x l s x . Демонстрация условного форматирования с по
мощью линейчатых диаграмм.
• d a t a v a l i d a t i o n e x a m p l e s . x l s x . Примеры проверки корректности данных.
• e x tr e m e c o l o r s c a l e . x l s x . Демонстрация условного форматирования с
помощью цветовой шкалы.
• i c o n s e t e x a m p le s . x l s x . Демонстрация условного форматирования с ис
пользованием значков.
• C h ap terl9_JR U S .x ls m . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 20
• c r e d i t c a r d v a l i d a t i o n . x l s x . Мегаформула для проверки действительно
сти кредитной карточки.
• nam e g e n e r a t o r . x l sx . Мегаформула, генерирующая случайные имена.
• n o m id d le n a m e . x l s x . Мегаформула для удаления среднего имени или отчества.
• p o s i t i o n o f l a s t s p a c e . x l s . Мегаформула для возвращения положения
последнего символа в строке
• t i m e t e s t i n t e r m e d i a t e . x l s x . Использование промежуточных формул для
удаления отчеств и вторых имен.
• t i m e t e s t m e g a f o rm u la . x l s x . Использование мегаформулы для удаления
отчеств и вторых имен.
• t i m e t e s t nam ed m e g a f o r m u la . x l s x . Использование именованной мега
формулы для удаления отчеств и вторых имен.
• t o t a l i n t e r e s t . x l s x . Простой пример мегаформулы.
• C h a p te r 2 0 _ R U S .x ls x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 21
• C h a p te r 2 1 _ R U S .x ls x . Файл с русифицированными и адаптированными при
мерами из главы.
Приложение Г. Содержимое прилагаемого компакт-диска 695
Глава 23
• C h a p te r2 3 _ R U S . x l s x . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 24
• f u n c t i o n e x a m p le s .x ls m . Примеры функций VBA.
• C h a p te r2 4 _ R U S . x lsm . Файл с русифицированными и адаптированными при
мерами из главы.
Глава 25
• c e l l t y p e f u n c t i o n . x l s m . Демонстрирует функцию, которая описывает со
держимое ячейки.
• c o m m is s io n f u n c t i o n . x ls m . Демонстрирует функцию, которая вычисляет
комиссионные с продаж.
• c o u n tin g f u n c t i o n s .x ls m . Показывает работу функций подсчета и сумми
рования.
• d a t e f u n c t i o n s . x lsm . Демонстрирует функции для работы с датами.
• e x a c t w o r d . x lsm . Поиск точного слова функцией VBА.
• e x t e n d e d d a t e f u n c t i o n s .x ls m . Содержит функции VBA, работающие с
датами до 1900 года.
• e x te n d e d d a te f u n c tio n s h e l p . d o c x . Описание функций VBA, рабо
тающих с датами до 1900 года.
• l a s t n o n e m p ty c e l l . x l s m . Функции, возвращающие последнюю непустую
ячейку столбца или строки.
• m o n th n a m e s . x lsm . Функция, возвращающая массив.
• m u ltis h e e t f u n c t i o n s .x ls m . Функции, обрабатывающие несколько рабо
чих листов
• ran d o m f u n c t i o n s . x lsm . Функция VBA, работающая со случайными числами.
• ra n d o m i n t e g e r s f u n c t i o n . x l s m . Функция VBA, которая возвращает мас
сив уникальных случайных чисел.
• r a n g e r a n d o m iz e f u n c t i o n . x ls m . Функция VBA, которая возвращает мас
сив случайным образом выбранных ячеек.
• s i m p l e f u n c t i o n s . x lsm . Рабочая книга, содержащая простые функции VBA.
• s p e l l d o l l a r s f u n c t i o n s .x ls m . Функция VBA, которая пишет прописью
числовое значение.
• s ta tfu n c tio n f u n c t i o n . x l s m . Функция VBA для статистической обработ
ки данных.
• sum f u n c t i o n e m u l a t i o n .x l s m . Эмуляция функции СУММ с помощью мак
роса VBA.
• t e x t m a n i p u l a t i o n f u n c t i o n s . x lsm . Функции управления текстом.
696 Часть VII. Приложения
Приложение А
• w o r k s h e e t f u n c t i o n s . x l sx . Интерактивный список функций Excel 2010.
Приложение Б
• n u m b e r f o r m a t s . x l s x . Примеры пользовательских числовых форматов.
Устранение проблем
Если при установке каких-либо материалов компакт-диска вы столкнулись с пробле
мами, попробуйте решить их следующим способом.
• Отключите все запущенное антивирусное программное обеспечение. Инстал
ляторы иногда имитируют деятельность вирусов, и антивирусная программа мо
жет принять их за реальные вирусы. После установки можете снова включить ан
тивирусные программы.
• Закройте все запущенные программы. Чем больше программ запущено, тем
меньше памяти остается в распоряжении других программ. Инсталляторы также
имеют свойство обновлять программы и файлы; ерли некоторые программы за
пущены, работа программ установки может пойти некорректно.
• Обратитесь к файлу Readme. Этот файл находится в корневой папке компакт-
диска. В нем содержится самая свежая информация, доступная на момент публи
кации книги.
Предметный указатель
А д
Дата, 158
Абсолютная ссылка, 76 Денежный поток, 326
Автозаверщение, 67; 81; 129 Диаграмма, 43; 58; 409
Автозаполнение, 168 Ганта, 420
Автокоррекция, 527 статическая, 412
Автосумма, 191 Диапазон, 599
Автофильтр, 250 именованный, 115
Актив, 346 условий, 260
Активный лист, 41 Динамическая сортировка, 391
Амортизация, 328 Дисконт, 311
Аргумент, 125 Дисперсия, 251
Диспетчер
Б имен, 92
сценариев, 61
База данных, 60; 237
Достоверность аппроксимации, 439
База знаний, 682
Безопасность макросов, 548
Будущая стоимость, 295 з
Бухгалтерский баланс, 346 Зависимая ячейка, 540
Запись, 238
В Зарезервированное слово, 582
Защита данных, 62
Високосный год, 164
Вкладка, 44
контекстная, 46 и
Разработчик, 548 Иерархия объектов, 41
Файл, 46 Иллюстрация, 56
Влияющая ячейка, 539
698 Предметный указатель
м п
Макрос, 58; 548 Пакет анализа, 206
Массив, 117; 128; 357; 588 Панель задач, 49
вертикальный, 362 Пароль, 6(3; 578
горизонтальный, 361 Переменная, 582
двухмерный, 362 объявление, 584
динамический, 589 Пересечение, 102
многомерный, 589 Перетаскивание, 50
размерность, 361 План погашения кредита, 333
Мастер текстов, 155 Подбор параметра, 85; 295
Мегаформула, 509 Поиск решения, 62
Мини-панель инструментов, 47 Поле, 238
Модуль VBA, 553 Пользовательская функция, 548; 561
Пользовательский формат, 669
Порядковое число, 158
Приведенная стоимость, 291
Предметный указатель 699