Загрузил piskunova_eu

Формулы в Microsoft Excel 2010 ( PDFDrive.com )

реклама
Формулы
®
в Microsoft
Excel 2010
Excel* 2010
Formulas
by John Walkenbach
WILEY
Wiley Publishing, Inc.
Формулы
в Microsoft
Excel* 2010
Джон Уокенбах
ДИА Л ЕКТИ КА
М осква • Санкт-Петербург • Киев
2011
ББК 32.973.26-018.2.75
У62
УДК 681.3.07
Компьютерное издательство “Диалектика”
Главный редактор С.Н. Тригуб
Зав. редакцией В. Р. Гинзбург
Перевод с английского и редакция канд. техн. наук А.Г. Сысонюка
По общим вопросам обращайтесь в издательство “Диалектика” по адресу:
info @dialektika.com, http://www.dialektika.com
Уокенбах, Джон.
У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.11.2010. Формат 70x100/16
Гарнитура Times. Печать офсетная
Уел. печ. л. 56,76. Уч.-изд. л. 38,06
Тираж 1500 экз. Заказ № 24792.
Отпечатано по технологии CtP
в ОАО “Печатный двор” им. А. М. Горького
197110, Санкт-Петербург, Чкаловский пр., 15
ООО “И. Д. Вильямс”, 127055, г. Москва, ул. Лесная, д. 43, стр. 1
ISBN 978-5-8459-1704-1 (рус.)
ISBN 978-0-470-47536-2 (англ.)
© Компьютерное изд-во “Диалектика”, 2011,
перевод, оформление, макетирование
© Wiley Publishing, Inc., 2010
Оглавление
Об авторе
25
Введение
26
Часть I. Основные сведения___________________________________________ 33
Глава 1. Знакомство с Excel
35
Глава 2. Знакомство с формулами
65
Глава 3. Имена
89
Часть II. Использование функций в формулах________________________ 121
Глава 4. Знакомство с функциями рабочего листа
123
Глава 5. Работа с текстом
137
Глава 6. Дата и время
157
Глава 7. Способы суммирования и подсчета данных
189
Глава 8. Поиск данных
217
Глава 9. Базы данных и таблицы листа
237
Глава 10. Дополнительные виды вычислений
275
Часть III. Финансовые формулы__________________________
287
Глава 11. Знакомство с финансовыми формулами
289
Глава 12. Формулы дисконтирования и амортизации
311
Глава 13. Финансовые планы
333
Часть IV. Формулы массивов_________________________________________ 355
Глава 14. Знакомство с массивами
357
Глава 15. Магия формул массива
377
Часть У. Полезные методики применения формул____________________ 395
Глава 16. Умышленные циклические ссылки
397
Глава 17. Диаграммы
409
Глава 18. Сводные таблицы
445
Глава 19. Условное форматирование и проверка данных
481
Глава 20. Создание мегаформул
509
Глава 21. Инструменты и методы отладки формул
525
6
Часть VI. Разработка пользовательских функций
Оглавление
54§
Глава 22. Введение в VBA
547
Глава 23. Разработка функций
561
Глава 24. Концепции программирования на VBA
579
Глава 25. Примеры пользовательских функций VBA
607
Часть V I. Приложения_______________________________________________ 645
Приложение А. Описание функций Excel
647
Приложение Б. Пользовательские числовые форматы
663
Приложение В. Дополнительные ресурсы, посвященные Excel
681
Приложение Г. Содержимое прилагаемого компакт-диска
687
Предметный указатель
697
Содержание
Об авторе
Введение
25
~
26
Часть I. Основные сведения___________________________________________ 33
Глава 1. Знакомство с Excel
35
Краткая история Excel
Все началось с VisiCalc
Затем появилась Lotus
И вот на рынок вышла Microsoft
Версии Excel
Концепция объектной модели
Рабочие книги
Рабочий лист
Листы диаграмм
Листы макросов и диалоговых окон
Интерфейс пользователя Excel 2010
Новый интерфейс пользователя
Лента
Вкладка Файл
Контекстные меню и мини-панель инструментов
Настройка пользовательского интерфейса
Смарт-теги
Панель задач
Перетаскивание данных
Комбинации клавиш
Настройка отображения элементов интерфейса
Ввод данных в ячейки
Выделение ячеек и других объектов
Справочная система
Форматирование ячеек
Числовое форматирование
Стилевое форматирование
Таблицы
Формулы и функции электронных таблиц
Объекты графического слоя
Фигуры
Иллюстрации
Объекты связанных рисунков
Элементы управления
Диаграммы
Спарклайны
36
36
36
36
37
41
41
42
43
43
43
43
44
46
47
48
49
49
50
50
51
51
#
53
53
53
54
54
55
55
56
56
56
56
57
58
58
8
Содержание
58
58
59
59
Пользовательская настройка Excel
Макросы
Надстройки
Средства Интернета
Средства анализа
Доступ к базам данных
Структура таблицы
Управление сценариями
Сводные таблицы
Средства проверки данных
Надстройка “Поиск решения”
Средства защиты
Защита формулы от перезаписи
Защита структуры рабочей книги
Защита рабочей книги паролем
60
60
61
62
62
62
62
62
63
63
Глава 2. Знакомство с формулами
65
Ввод и редактирование формул
Элементы формул
Ввод формул
Вставка имен
Пробелы и разрывы строк
Допустимый размер формулы
Примеры формул
Редактирование формул
Использование операторов в формулах
Операторы ссылки
Примеры формул с операторами
Приоритет операторов
Вложенные скобки
Порядок вычисления формул
Ссылки на ячейки и диапазоны ячеек
Создание абсолютных и смешанных ссылок
Создание ссылок на ячейки других листов и книг
Создание точной копии формулы
Преобразование формул в значения
Сокрытие формул
Ошибки в формулах
Работа с циклическими ссылками
Функция подбора параметра
Пример подбора параметра
Еще несколько слов о подборе параметра
65
67
67
68
68
69
70
71
71
72
73
75
76
76
78
79
80
81
82
83
85
85
86
Глава 3. Имена
89
Что такое имя
Область действия имен
Ссылки на имена
89
90
90
60
66
66
Содержание
Ссылка на имена другой рабочей книги
Конфликты имен
Диспетчер имен
Создание имен
Редактирование имен
Удаление имен
Способы присвоения имен ячейкам и диапазонам
Присвоение имен в окне Присвоение имени
Присвоение имени с помощью поля Имя
Автоматическое присвоение имен
Имена столбцов и строк
Имена, созданные программой Excel
Создание многолистовых имен
Работа с именами диапазонов и ячеек
Создание списка имен
Использование имен в формулах
Использование операторов пересечения
Использование оператора диапазона
Ссылка на отдельную ячейку именованного диапазона
Применение имен в уже существующих формулах
Автоматическое применение имен при создании формул
Отмена применения имени
Имена с ошибками
Просмотр именованных диапазонов
Использование имен в диаграммах
Поддержка имен ячеек и диапазонов
Вставка строки^ или столбца
Удаление строки или столбца
Вырезание и вставка именованного диапазона
Потенциальные проблемы с именами
Проблемы, возникающие при копировании рабочих листов
Проблемы, возникающие при удалении рабочих листов
Ключ к пониманию термина “имя”
Присвоение имени константе
Присвоение имени текстовым константам
Использование функций рабочего листа в именованных формулах
Использование ссылок на ячейки и диапазоны в именованных формулах
Использование именованных формул с относительными ссылками
Решение сложных задач с помощью формул
Функция ДВССЫЛ и именованный диапазон
Использование функции ДВССЫЛ для создания именованного диапазона
с фиксированным адресом
Использование массивов в именованных формулах
Создание формулы с динамическим размером
9
91
91
92
93
93
93
94
94
95
95
97
98
99
100
100
101
102
103
103
104
104
105
105
105
106
106
106
106
107
107
107
108
109
110
111
111
112
113
115
115
116
117
118
10
Часть II. Использование Функций в Формулах
Содержание
121
Глава 4. Знакомство с функциями рабочего листа
123
Что такое функция
У прощение формулы
Вычисления, невозможные без функций
Ускорение при выполнении задач редактирования
Принятие решений
Еще несколько слов о функциях
Типы аргументов функций
Использование имен в качестве аргументов
Использование столбцов и строк в качестве аргументов
Использование литералов в качестве аргументов
Использование выражений в качестве аргументов
Использование других функций в качестве аргументов
Использование массивов в качестве аргументов
Способы ввода функций в формулу
Ввод функции вручную
Вставка функций из библиотеки
Команда Вставить функцию
Несколько полезных советов по вводу функций
Категории функций
Финансовые функции
Функции даты и времени
Математические и тригонометрические функции
Статистические функции
Функции ссылок и массивов
Функции работы с базами данных
Текстовые функции
Логические функции
Информационные функции
Пользовательские функции
Инженерные функции
Аналитические функции
Функции совместимости
Прочие категории функций
123
124
124
124
124
125
125
126
127
127
127
128
128
128
129
130
130
132
133
133
134
134
134
134
134
134
135
135
135
135
135
135
135
Глава 5. Работа с текстом
137
Несколько слов о самом тексте
Количество символов в ячейке
Числа, отформатированные как текст
Текстовые функции
Проверка наличия текста в ячейке
Работа с кодами символов
Проверка идентичности строк
Объединение нескольких ячеек
Отображение значений как текста
137
137
138
138
139
139
141
142
143
Содержание
11
Отображение денежных значений, отформатированных как текст
Удаление пробелов и непечатных символов
Подсчет символов в строке
Повторяющиеся символы и строки
Создание текстовой гистограммы
Добавление к числу заданных символов
Изменение регистра символов
Извлечение заданных символов из строки
Замена одного текста другим
Поиск в строке
Поиск и замена в строке
Расширенные текстовые формулы
Подсчет заданных символов в ячейке
Подсчет строк, содержащихся в ячейке
Удаление замыкающих символов минуса
Отображение заданного числа в виде порядкового числительного
Определение литеры столбца по заданному номеру
Извлечение имени файла из заданного маршрута
Извлечение первого слова строки
Извлечение последнего слова строки
Извлечение всех слов строки, кроме первого
Извлечение имени, отчества и фамилии
Удаление титулов и званий из имен
Подсчет количества слов в ячейке
144
144
144
145
145
146
147
148
148
149
150
150
151
151
151
152
152
153
153
153
154
154
155
156
Глава 6. Дата и время
157
Принципы управления датами и временем в Excel
Представление даты как порядкового числа
Ввод даты
Представление времени как порядкового числа
Ввод времени
Форматирование значений даты и времени
Проблемы, связанные с датами
Функции управления датами
Отображение текущей даты
Отображение произвольных дат
Создание последовательности дат
Преобразование строки в дату
Вычисление количества дней между двумя датами
Вычисление количества рабочих дней между двумя датами
Вычисление даты по графику рабочих дней
Вычисление количества лет между двумя датами
Вычисление возраста человека
Вычисление дня года
Вычисление дня недели
Вычисление даты прошлого воскресенья
Вычисление дня недели, следующего после заданной даты
157
158
159
160
161
162
163
165
166
167
167
169
169
170
171
172
172
173
173
174
174
12
Содержание
Вычисление даты n-го дня недели в заданном месяце
Вычисление количества заданных дней недели в месяце
Отображение даты в текстовом виде
Вычисление праздничных дат
Вычисление даты последнего дня месяца
Проверка високосного года
Вычисление квартального периода
Отображение года римскими цифрами
Функции управления временем
Отображение текущего времени
Отображение произвольного времени
Суммирование значений времени, превышающих 24 часа
Вычисление разницы между двумя временными значениями
Преобразование “военного времени”
Преобразование часов, минут и секунд в десятичном исчислении
в значение времени
Добавление часов, минут или секунд к заданному времени
Работа с часовыми поясами
Округление значений времени
Работа со значениями, не имеющими отношения ко времени суток
174
175
176
176
178
179
179
179
179
180
180
181
183
184
185
185
186
187
187
Глава 7. Способы суммирования и подсчета данных
189
Подсчет и суммирование ячеек электронной таблицы
Подсчет и суммирование записей в базах данных и сводных таблицах
Основные формулы подсчета
Подсчет общего количества ячеек
Подсчет пустых ячеек
Подсчет непустых ячеек
Подсчет ячеек, содержащих числовые значения
Подсчет ячеек, отображающих нетекстовые значения
Подсчет ячеек, содержащих текстовые значения
Подсчет логических значений
Подсчет ошибок в диапазоне
Расширенные формулы подсчета ячеек
Подсчет ячеек с помощью функции СЧЁТЕ СЛИ
Подсчет ячеек, удовлетворяющих множеству условий
Подсчет наиболее часто встречающихся записей
Подсчет количества вхождений заданного текста
Подсчет количества уникальных значений
Распределение частот
Формулы суммирования
Суммирование всех ячеек диапазона
Накопительная сумма
Суммирование заданного количества наибольших или наименьших значений
Условное суммирование по одному критерию
Суммирование только отрицательных значений
Суммирование значений на основе диапазона Разница
189
192
192
193
193
194
194
194
194
194
194
195
195
195
199
200
202
203
209
209
210
210
211
212
212
Содержание
13
Суммирование значений на основе сравнения текста
Суммирование значений на основе сравнения дат
Условные суммы на основе нескольких критериев
Применение оператора И
Применение оператора ИЛИ
Комбинирование условий И и ИЛИ
213
213
213
213
215
215
Глава 8. Поиск данных
217
Знакомство с формулами поиска данных
Функции^применяемые для поиска данных
Базовые формулы поиска
Функция ВПР
Функция ГПР
Функция ПРОСМОТР
Комбинирование функций П0ИСКП03 и ИНДЕКС
Специальные формулы поиска
Поиск точного значения
Поиск значения слева
Поиск с учетом регистра
Поиск значения во множестве таблиц
Вычисление оценки по количеству набранных баллов
Вычисление средней оценки
Поиск на пересечении строк и столбцов
Поиск информации в двух столбцах
Определение местонахождения значения в диапазоне
Поиск значения, максимально приближенного к заданному
Поиск значения методом линейной интерполяции
217
218
219
219
220
221
222
224
225
226
226
227
228
229
230
231
232
232
233
Глава 9. Базы данных и таблицы листа
237
Таблицы и терминология
Пример базы данных листа
Пример таблицы
Назначение баз данных и таблиц листа
Работа с таблицами
Создание таблиц
Изменение внешнего вида таблицы
Навигация и выделение в таблице
Добавление строк и столбцов в таблицу
Удаление строк и столбцов
Перемещение таблицы
Настройка параметров таблицы
Удаление дублирующихся строк из таблицы
Сортировка и фильтрация в таблице
Работа со строкой итогов
Использование формул в таблице
Ссылки на данные таблицы
Преобразование таблицы в диапазон
237
238
239
240
241
241
242
243
244
244
245
245
246
247
251
253
255
258
14
Содержание
Расширенная фильтрация
Создание диапазона условий
Применение расширенного фильтра
Снятие расширенного фильтра
Определение условий расширенного фильтра
Определение одного критерия
Определение множества условий
Задание вычисляемых условий
Функции баз данных
Вычисление промежуточных итогов
259
260
261
262
262
263
265
268
269
271
Глава 10. Дополнительные виды вычислений
275
Преобразование единиц измерения
Решение задач для прямоугольных треугольников
Вычисление длин, площадей и объемов
Площадь и периметр квадрата
Площадь и периметр прямоугольника
Площадь круга и длина окружности
Площадь трапеции
Площадь треугольника
Площадь поверхности и объем шара
Площадь поверхности и объем куба
Площадь поверхности и объем конуса
Объем цилиндра
Объем пирамиды
Решение систем линейных уравнений
Округление чисел
Основные формулы округления
Округление до ближайшего кратного числа
Округление денежных значений
Работа с дробными значениями денежных единиц
Использование функций ЦЕЛОЕ и О ТБР
Округление до четного и нечетного целого
Округление значения до п-го разряда значащих цифр
275
277
278
278
279
279
280
280
280
280
280
280
281
281
282
283
284
284
284
285
286
286
Часть 111. Финансовые Ф о р м у л ы ______________________________________ 287
Глава 11. Знакомство с финансовыми формулами
289
Финансовые концепции
Стоимость денег во времени
Входящий и исходящий потоки
Соответствие временных периодов
Выбор времени первого платежа
Основные финансовые функции Excel
Вычисление приведенной стоимости
Вычисление будущей стоимости
Вычисление сумм платежей
289
289
290
291
291
291
291
295
297
Содержание
15
Вычисление процентной ставки
Вычисление количества периодов
Вычисление компонентов процентной ставки и основных выплат
Использование функций ОСПЛТ и ПРПЛТ
Использование функций ОБЩДОХОД и ОБЩПЛАТ
Преобразование процентных ставок
Методы ограничения процентных ставок
Формулы преобразования
Ограничения финансовых функций Excel
Отсроченное начало ряда регулярных выплат
Оценка серии различных по сумме платежей
Вычисления, связанные с облигациями
Оценка облигаций
Вычисление доходности
298
299
301
302
303
304
304
304
305
306
307
307
308
308
Глава 12. Формулы дисконтирования и амортизации
311
Использование функции ЧПС
Определение функции ЧПС
Примеры использования функции ЧПС
Использование функции ЧПС для вычисления накопительных величин
Использование функции ВСД
Вычисление нормы доходности
Вычисление средней геометрической нормы прибыли
Проверка результатов
Несколько ставок в функциях ВСД и МВСД
Множество процентных ставок
Разделение потоков
Использование баланса вместо потоков
Нерегулярные денежные потоки
Чистая приведенная стоимость
Внутренняя ставка доходности
Использование функции БЗРА С П И С
Вычисление годового дохода
Вычисление амортизации
311
312
313
318
320
320
321
322
323
323
324
325
326
326
327
327
327
328
Глава 13. Финансовые планы
333
Создание финансовых планов
Создание планов погашения кредита
Простой план погашения кредита
Динамический план погашения кредита
Использование таблиц платежей и процентных ставок
Расчеты по кредитной карточке
Сведение параметров займа в таблицу данных
Создание односторонней таблицы данных
Создание двусторонней таблицы данных
Финансовые отчеты и коэффициенты
Основные финансовые отчеты
333
333
334
336
339
341
342
342
344
345
346
16
Анализ коэффициентов
Создание индексов
Содержание
349
351
Часть IV. Формулы массивов_________________________________________ 355
Глава 14. Знакомство с массивами
357
Концепция формул массива
Многоячеечная формула массива
Одноячеечная формула массива
Создание массива констант
Элементы массива констант
Концепция размерности массива
Одномерные горизонтальные массивы
Одномерные вертикальные массивы
Двухмерные массивы
Присвоение имен массивам констант
Работа с формулами массива
Ввод формулы массива
Выделение диапазона формулы массива
Редактирование формулы массива
Расширение или сокращение формулы массива
Использование многоячеечных формул массива
Создание массива на основе значений диапазона
Создание массива констант на основе значений диапазона
Выполнение операций над массивом
Использование функций в операциях с массивами
Транспонирование массива
Генерирование массива последовательных целых чисел
Использование одноячеечных формул массива
Подсчет количества символов в диапазоне
Сложение трех наименьших элементов диапазона
Подсчет количества текстовых ячеек в диапазоне
Устранение промежуточных формул
Использование массива вместо диапазона ссылок
357
358
359
360
361
361
361
362
362
363
364
364
364
365
365
366
366
367
367
368
369
370
370
370
371
372
373
374
Глава 15. Магия формул массива
377
Работа с одноячеечными формулами массива
Суммирование в диапазоне, содержащем ошибки
Подсчет количества Ошибок в диапазоне
Суммирование п наибольших значений в диапазоне
Вычисление среднего без учета нулевых значений
Поиск значения в диапазоне
Подсчет отличающихся значений в двух диапазонах
Местоположение максимального значения диапазона
Поиск номера строки, в которой находится л-е значение, совпадающее
с заданным
Получение самого длинного текста в диапазоне
377
378
379
379
380
380
381
382
382
382
Содержание
Определение допустимых значений диапазона
Вычисление суммы цифр числа
Суммирование округленных значений
Суммирование каждого л-го значения в массиве
Удаление нечисловых символов из текстовой строки
Поиск ближайшего значения в диапазоне
Получение последнего значения в столбце
Получение последнего значения в строке
Упорядочение данных с помощью формулы массива
Работа с многоячеечными формулами массива
Извлечение положительных значений из диапазона
Извлечение непустых ячеек из диапазона
Изменение порядка следования элементов в диапазоне на противоположный
Динамическая сортировка значений диапазона
Возвращение списка уникальных значений диапазона
Отображение календаря в диапазоне
17
383
383
384
385
386
387
387
388
388
389
389
390
391
391
392
392
Часть У. Полезные методики применения формул____________________ 395
Глава 16. Умышленные циклические ссылки
397
Что такое циклическая ссылка
Исправление случайных циклических ссылок
Косвенные циклические ссылки
Преднамеренное использование циклических ссылок
Определение параметров итераций
Примеры формул, в которых используются циклические ссылки
Генерация уникальных случайных чисел
Решение рекурсивного уравнения
Решение системы уравнений с помощью циклических ссылок
Анимация диаграмм с помощью итераций
Потенциальные проблемы, связанные с циклическими ссылками
397
398
399
399
401
402
403
404
405
406
407
Глава 17. Диаграммы
409
Понятие формулы ряда
Использование имен в функции РЯД
Отсоединение ряда диаграммы от данных
Создание ссылок на ячейки
Добавление ссылки заголовка
Добавление ссылок для подписей осей
Добавление ссылок к подписям данных
Добавление текстовых ссылок
Добавление связанного рисунка в диаграмму
Примеры диаграмм
График выполнения работ
Создание диаграмм измерений
Отображение условных цветов на гистограммах
Создание гистограммы сравнения
409
411
412
414
414
414
414
415
415
416
416
417
418
419
18
Содержание
Создание диаграммы Ганта
Создание диаграммы разброса данных
Построение каждой п-й точки данных
Отображение последних п точек данных
Выбор ряда в раскрывающемся списке
Построение диаграмм математических функций
Рисование окружности
Создание диаграммы часов
Создание причудливых форм
Тренды
Линейные тренды
Нелинейные тренды
420
422
424
425
426
427
431
433
435
436
437
440
Глава 18. Сводные таблицы
445
О сводных таблицах
Пример сводной таблицы
Данные, пригодные для создания сводных таблиц
Создание сводной таблицы
Указание расположения данных
Определение местонахождения сводной таблицы
Компоновка сводной таблицы
Форматирование сводной таблицы
Модификация сводной таблицы
Другие примеры сводных таблиц
Вопрос 1
Вопрос 2
Вопрос 3
Вопрос 4
Вопрос 5
Вопрос 6
Вопрос 7
Группировка элементов сводной таблицы
Пример ручной группировки
Просмотр сгруппированных данных
Примеры автоматической группировки
Распределение частот
Создание вычисляемых полей и элементов
Создание вычисляемого поля
Вставка в сводную таблицу вычисляемого элемента
Фильтрация сводных таблиц с помощью срезов
Ссылки на ячейки сводной таблицы
Еще один пример сводной таблицы
Создание отчета на основе сводной таблицы
445
446
448
452
452
452
453
454
455
457
457
457
457
459
460
460
460
461
462
463
463
466
467
469
470
472
475
476
478
Глава 19. Условное форматирование и проверка данных
481
Условное форматирование
Определение условного форматирования
481
483
Содержание
19
Условное форматирование, использующее графику
Применение условных форматов на листе
Создание правил, основанных на формулах
Проверка данных
Определение критерия достоверности данных
Типы возможных условий для проверки вводимых значений
Создание раскрывающихся списков
Использование формул в условиях проверки вводимых значений
Создание зависимого списка
485
491
493
501
501
502
504
505
507
Глава 20. Создание мегаформул
509
Что такое мегаформула
Создание мегаформул: простой пример
Примеры мегаформул
Использование мегаформулы для удаления отчеств и промежуточных
инициалов
Использование мегаформулы для поиска позиции последнего пробела в строке
Использование мегаформулы для проверки номера кредитной карточки
Генерация случайных имен
Преимущества и недостатки мегаформул
509
510
512
512
516
519
522
523
Глава 21. Инструменты и методы отладки формул
525
Что такое отладка формул
Проблемы в формулах и их устранение
Непарные скобки
Ячейки заполнены знаками # # # # # # # # # #
Пустые ячейки на самом деле не пусты
Лишние символы пробела
Формула возвращает ошибку
Проблемы с абсолютными и относительными ссылками
Проблемы приоритета операторов
Формулы не вычислены
Реальные и отображаемые значения
Ошибки плавающей запятой
Ошибки “висящих” ссылок
Ошибки логических значений
Ошибки циклических ссылок
Средства аудита Excel
Нахождение ячейки определенного типа
Просмотр формул
Отслеживание связей ячейки
Отслеживание ошибочных значений
Исправление ошибок циклической ссылки
Фоновая проверка ошибок
Проверка формул
525
526
527
527
528
528
529
533
533
534
534
535
536
537
537
538
538
538
539
541
542
542
544
20
Содержание
Часть VI. Разработка пользовательских функций
_______545
Глава 22. Введение в VBA
547
Несколько слов о VBA
Отображение вкладки Разработчик
Безопасность макросов
Сохранение рабочих книг, содержащих макросы
Знакомство с редактором Visual Basic
Запуск редактора Visual Basic
Компоненты редактора Visual Basic
Использование окна проекта
Использование окна кода
Ввод кода
Сохранение проекта
547
548
548
550
550
550
551
552
554
556
559
Глава 23. Разработка функций
561
Зачем нужны пользовательские функции
Простой пример функции VBA
Создание функций
Объявление функции
Выбор имени функции
Использование функций в формулах
Аргументы функций
Диалоговое окно вставки функции
Добавление описания функции
Определение категории функции
Добавление описания аргумента
Тестирование и отладка функций
Использование окна сообщений VBA
Использование инструкции D e b u g .P r in t в коде
Вызов функции из процедуры
Задание точек останова в функции
Создание надстроек
561
562
564
564
565
565
566
567
567
568
570
571
572
573
573
576
577
Глава 24. Концепции программирования на VBA
579
Пример функции
Использование комментариев в коде
Использование переменных, типов данных и констант
Определение типов данных
Объявление переменных
Использование констант
Использование строк
Работа с датами
Использование операторов присваивания
Массивы
Объявление массива
Объявление многомерных массивов
580
581
582
583
584
585
586
586
587
588
588
589
Содержание
21
Встроенные функции VBA
Управление выполнением кода
Конструкция I f - T h e n
Конструкция S e l e c t C a s e
Создание циклов
Инструкция On E r r o r
Работа с диапазонами
Конструкция F o r E a c h - N e x t
Ссылка на диапазон
Некоторые полезные свойства диапазонов
Ключевое слово S e t
Функция I n t e r s e c t
Функция U n i o n
Свойство U s e d R a n g e
589
591
591
593
594
597
598
599
599
601
604
605
605
606
Глава 25. Примеры пользовательских функций VBA
607
Простые функции
Проверка, содержит ли ячейка формулу
Возвращение формулы ячейки
Проверка, скрыта ли ячейка
Возвращение имени рабочего листа
.
Возвращение имени рабочей книги
Возвращение имени приложения
Возвращение версии Excel
Возвращение информации о форматировании ячейки
Выяснение типа данных в ячейке
Многоцелевая функция
Генерация случайных чисел
Генерация неизменяемых случайных чисел
Выбор случайной ячейки
Вычисление комиссионных от продаж
Функция для начисления комиссионных
Функция для более сложного метода начисления комиссионных
Функции управления текстом
Обращение строки
Перетасовка текста
Возвращение аббревиатуры
Проверка соответствия текста шаблону
Проверка, содержит ли ячейка заданное слово
Проверка наличия текста в ячейке
Извлечение п-го элемента строки
Написание числа прописью
Функции подсчета
Подсчет ячеек, соответствующих заданному шаблону
Подсчет листов рабочей книги
Подсчет слов в диапазоне
Подсчет ячеек с определенным цветом шрифта
607
608
608
608
609
609
609
610
610
612
613
615
615
617
618
618
619
620
620
620
621
621
622
623
623
624
625
625
625
626
626
_
22
Содержание
Функции управления датами
Расчет следующего понедельника
Вычисление следующего дня недели
Определение недели в месяце
Работа с датами до 1900 года
Возвращение последней заполненной ячейки столбца или строки
Функция LASTINCOLUMN
Функция LASTINROW
Функции для работы с несколькими листами
Возвращение максимального значения ячейки из всех рабочих листов
Функция SHEETOFFSET
Дополнительные пользовательские функции
Возвращение значения ошибки
Возвращение массива из функции
Возвращение массива неповторяющихся случайных целых чисел
Перетасовка значений диапазона
Использование необязательных аргументов
Использование неопределенного количества аргументов
627
627
627
628
628
629
630
630
630
631
632
633
633
634
635
637
638
639
Часть V I. Приложения_______________________________________________ 645
Приложение А. Описание функций Excel
647
Приложение Б. Пользовательские числовые форматы
663
Числовое форматирование
Автоматическое числовое форматирование
Форматирование чисел с помощью ленты
Использование горячих клавиш для форматирования чисел
Использование диалогового окна Формат ячеек для форматирования чисел
Создание пользовательского числового формата
Компоненты строки формата
Коды пользовательских форматов
Примеры пользовательских форматов
Масштабирование
Сокрытие нуля
Отображение ведущих нулей
Отображение дробей
Отображение Н /Д для текста
Отображение текста в кавычках
Повтор текста в ячейке
Отображение знака “минус” справа
Условное форматирование чисел
Выделение цветом
Форматирование значений даты и времени
Отображение текста с числами
Отображение нулей с помощью прочерков
Использование специальных символов
663
664
664
665
665
667
668
669
670
671
673
674
674
674
674
675
675
675
676
676
677
677
678
Содержание
Устранение определенных типов элементов
Заполнение ячейки повторяющимися символами
Отображение ведущих точек
23
678
678
679
Приложение В. Дополнительные ресурсы, посвященные Excel
681
Справочная система программы
Техническая поддержка Microsoft
Варианты под держки
База знаний Microsoft
Домашняя страница Microsoft Excel
Домашняя страница Microsoft Office
Форумы в Интернете
Доступ к форумам с помощью программы чтения новостей
Доступ к форумам с помощью браузера
Поиск на форумах
Веб-сайты
Страница электронных таблиц
Дневная доза Excel
Страница Йона Пелтиера
Консультации Пирсона
Contextures
Страница Дейвида Макритчи
Мистер Excel
681
681
682
682
682
682
682
683
683
684
685
685
685
685
685
685
686
686
Приложение Г. Содержимое прилагаемого компакт-диска
687
Системные требования
Использование компакт-диска
Обзор компакт-диска
Электронная версия книги
Примеры из глав книги
Устранение проблем
687
687
688
688
688
696
Предметный указатель
697
Об авторе
Джон Уокенбах — один из ведущих специалистов в области программного обеспече­
ния для электронных таблиц, глава консалтинговой компании J-Walk and Associates Inc.
Начиная с 2000 года Джон регулярно получает награды МУР от компании Microsoft за по­
пуляризацию ее программных продуктов. Из-под его пера вышло более полусотни книг,
посвященных электронным таблицам, а также более трехсот статей и обзоров в различных
изданиях, включая PC World, InfoWorld, PC Magazine, Windows и PC/Computing. Он под­
держивает весьма популярный сайт The Spreadsheet Page (www. s p r e a d s h e e t p a g e . com)
и является разработчиком ряда утилит Excel, включая Power Utility Рак. Джон окончил уни­
верситет штата Миссури и получил степень доктора наук в университете штата Монтана.
Введение
К работе над проектом я приступил с единственной целью: написать максимально
подробное руководство по использованию формул в Excel, адресованное широкому кру­
гу пользователей. Поставленная задача была не из легких. Однако отзывы читателей о
первых трех изданиях книги позволяют мне с уверенностью сказать: я с ней справился.
Excel — лидер среди приложений электронных таблиц, и не только благодаря пра­
вильной маркетинговой политике компании Microsoft. Просто Excel— действительно
лучшая из существующих на сегодняшний день программ для электронных таблиц.
Формулы — это та область, в которой преимущества Excel перед другими подобными
программными продуктами наиболее очевидны. В арсенале Excel огромное количество
специальных средств работы с формулами. Очень скоро вы увидите, что формулы Excel
позволят делать то, что недоступно в других редакторах электронных таблиц.
Могу поспорить, что не более десяти процентов пользователей Excel знают, как эф­
фективно использовать формулы в таблицах. Надеюсь, что эта книга поможет вам по­
полнить ряды избранных. Итак, вы готовы?
Что необходимо знать
Эта книга не предназначена для начинающих пользователей Excel. Если у вас нет
опыта работы с этой программой, то данная книга для вас не самая подходящая (если,
конечно, вы не относитесь к той редкой породе людей, которые могут освоить новую
программу в одно мгновение).
Чтобы книга принесла максимальную пользу, вы должны иметь некоторый опыт работы
в Excel. В частности, предполагается, что вы умеете выполнять следующие операции:
•
создавать рабочие книги Excel, вставлять листы, сохранять файлы и выполнять
другие основные операции;
•
перемещаться по рабочей книге;
•
использовать ленту Excel и диалоговые окна программы;
•
использовать основные средства Windows, в частности, уметь работать с файлами,
а также знать базовые методы копирования и вставки.
Рекомендации читателям
Эта книга написана исключительно для версии Excel 2010. Если у вас установлена ка­
кая-либо из более старых версий, рекомендую отложить книгу и взять в руки одно из
ранних изданий. Изменения, произошедшие в Excel с выходом версии 2010, весьма су­
щественны, поэтому в старой версии вам вряд ли удастся применить материал настояще­
го издания.
Для использования примеров, содержащихся на компакт-диске книги, вам потребует­
ся привод CD-ROM. Примеры, содержащиеся на прилагаемом компакт-диске, будут опи­
саны далее.
27
Введение
Примечание
Я работаю исключительно в Excel для Windows, а не Macintosh. По этой при­
чине я не могу гарантировать, что все примеры будут работать в Excel для
Macintosh. Для Excel характерна достаточно неплохая, но все же не идеаль­
ная кроссплатформенная совместимость.
Чем быстрее работает ваша система, тем лучше. И естественно, большой объем опе­
ративной памяти сделает вашу работу более удобной. Настоятельно рекомендую: на­
стройте монитор на работу в режиме высокого разрешения. А еще лучше — установите
два монитора.
Соглашения
Потратьте немного времени на этот раздел, и вы узнаете, какие соглашения и услов­
ные обозначения используются в книге1.
Работа с клавиатурой
Клавиатура нужна для того, чтобы вводить формулы. Кроме того, с ее помощью
можно работать с меню и диалоговыми окнами. Этот метод значительно ускорит вашу
работу, особенно если вы хорошо владеете техникой слепой печати.
Листинги формул
Формулы обычно располагаются в отдельной строке и выделяются моноширинным
шрифтом. Ниже приведен пример формулы.
= В П Р (Н ом ерК атегории;П райс-лист; 2 ; ЛОЖЬ)
При описании синтаксиса функций используются подстановки, т.е. названия аргумен­
тов, вместо которых должны быть подставлены конкретные значения. Подстановки вы­
делены курсивом. Например, приведенная ниже запись означает, что функция ИНДЕКС
принимает аргументы м а с с и в , н о м е р _ с т р о к и и н о м ер _ ст о лб ц а .
ИНДЕКС (массив; номер_строки; номер_столбца)
Курсивом выделяются также специальные термины Excel, определение которых при­
водится в тексте.
Excel поддерживает такой специфический тип формул, как формулы массивов. После
ввода такой формулы нажмите <Ctrl+Shift+Enter> (а не просто <Enter>). Excel заключает
такую формулу в фигурные скобки, таким образом напоминая вам о том, что это форму­
1В книге предполагается, что на вашем компьютере в окне региональных стандартов Windows
установлен русский формат отображения дат, времени, разделителей' денежных значений и т.п.
Если установить формат США, приведенные на компакт-диске примеры будут работоспособны
(Excel автоматически изменит все формулы), но вам будет тяжело читать книгу. Например, в каче­
стве разделителей элементов списка в книге, согласно русскому формату, используются точки
с запятыми, а на экране вы будете видеть запятые. В качестве десятичных разделителей в книге
используются запятые, а на экране вы будете видеть точки. Чтобы в диалоговых окнах и формулах
на экране все было как в книге, обязательно установите русский формат отображения данных. Од­
нако учитывайте, что в кодах VBA всегда используется только формат США. Например, в качест­
ве десятичных разделителей всегда используются точки. Параметры форматов, установленные
в окне региональных стандартов Windows, на коды VBA не влияют. — Примеч. ред.
28
Введение
ла массива. Когда я привожу листинг формулы массива, я также заключаю ее в фигурные
скобки, например:
{ = С У М М (Д Л С Т Р ( А 1 :А 1 0 ) ) }
Примечание
Создавая формулу массива, не вводите фигурные скобки вручную — Excel
сделает это автоматически.
Листинги программного кода VBA
Эта книга содержит примеры программного кода VBA. Каждый листинг выделяется
моноширинным шрифтом, а каждая строка кода располагается в отдельной строке лис­
тинга. Для того чтобы код легче воспринимался, я обычно использую несколько уровней
отступов с помощью символов табуляции. Отступы не являются обязательными, но они
помогают визуально разделить код на связанные блоки.
Если инструкция VBA не помещается в одной строке листинга, используется стан­
дартное для VBA обозначение продолжения строки: пробел, за которым следует символ
подчеркивания. Это означает, что инструкция продолжается на следующей строке лис­
тинга. Например, две строки приведенного ниже листинга содержат одну инструкцию.
I f R i g h t ( c e l l . V a l u e , 1) = "!" Then c e l l . V a l u e _
= L e f t ( c e l l . V a l u e , L e n ( c e l l . V a l u e ) - 1)
Приведенный выше код можно ввести как в двух строках, так и в одной строке без
символа подчеркивания. Оба варианта приводят к одному и тому же результату.
Названия клавиш
Названия клавиш клавиатуры приводятся обычным шрифтом и заключаются в угло­
вые скобки, например <Alt>, <Home>, <PgDn> и <Ctrl>. Если необходимо нажать две
клавиши одновременно, они объединяются знаком “плюс”, например <Ctrl+G>.
Функции, процедуры, именованные диапазоны
Все функции рабочего листа Excel приведены в верхнем регистре, например: “Для то­
го чтобы просуммировать значения в столбце А, используйте функцию СУММ”.
Имена макросов и процедур приводятся моноширинным шрифтом, например:
“Выполните процедуру В с т а в к а С у м м ”. Я часто использую в именах символы верхнего
и нижнего регистра, что упрощает их чтение. Именованные диапазоны также выделены
моноширинным шрифтом: “Выделите диапазон В в о д и м ы е З н а ч е н и я ”.
Программа Excel не чувствительна к регистру вводимых символов, если дело не каса­
ется текста, заключенного в кавычки. Иными словами, две приведенные ниже формулы
вернут одинаковый результат.
= С У М М ( А 1 : А5 0 )
= с у м м ( а 1 : а5 0)
В то же время программа автоматически преобразует символы второй формулы
к верхнему регистру.
Работа с мышью
В книге используется стандартная терминология для обозначения действий, выпол­
няемых с помощью мыши: вы можете “указывать”, “щелкать кнопкой мыши”, “щелкать
правой кнопкой мыши”, “перетаскивать” и т.д.
29
Введение
Мышь — главный инструмент запуска команд с помощью ленты. Команды ленты от­
мечаются в книге специальным рубленым шрифтом. Вы часто будете встречать записи
примерно такого вида: Вид^Окно^ Новое окно. Это означает, что на ленте нужно от­
крыть вкладку Вид и в группе Окно щелкнуть на кнопке Новое окно. Этим же шрифтом
отмечаются все названия элементов интерфейса, которые вы видите на экране, например
“флажок Включить итеративные вычисления” .
Пиктограммы
В этой книге пометки располагаются над абзацами, к которым они относятся. Отме­
ченные абзацы выделены специальным шрифтом. Пометки предназначены для того, что­
бы обратить ваше внимание на материал, имеющий важное значение.
Новинка
Данная пометка указывает на нововведения, появившиеся в Excel 2010.
Примечание
Данная пометка привлекает ваше внимание к определенной информации.
Например, в примечании может быть описан новый подход, который помо­
жет вам справиться со сложным заданием, или же основополагающий
принцип, необходимый для четкого понимания темы.
Совет
Советы укажут вам новый эффективный путь решения задачи.
Компакт-диск
Эта пометка указывает на то, что прилагаемый к книге компакт-диск содер­
жит соответствующий данной теме файл.
Предупреждение
Материал, отмеченный этой пометкой, предостерегает вас от потенциаль­
ных ошибок, которые могут возникнуть, если не прочитать данный абзац.
Перекрестная ссылка
Перекрестные ссылки указывают на другие главы, в которых вы найдете бо­
лее подробную информацию по рассматриваемой теме или информацию,
имеющую какое-либо отношение к ней.
Структура книги
Систематизируя материал книги, я решил разделить информацию на шесть основных
частей плюс Приложения/Приложения содержат дополнительную информацию, которая
может оказаться весьма полезной.
30
Введение
Часть I. Основные сведения
Эта часть функционально является вводной. Глава 1 предлагает краткий обзор основ­
ных характеристик Excel. Она адресована пользователям, имеющим опыт работы с при­
ложениями электронных таблиц, но ранее не работавшим в Excel. Глава 2 содержит ос­
новные сведения о формулах. Если вы хотите полностью освоить материал книги, обяза­
тельно ознакомьтесь с этой главой. Глава 3 посвящена именам. Если до прочтения этой
главы вы думали, что только ячейки и диапазоны обладают именами, то поймете, что за­
блуждались.
Часть II. Использование функций в формулах
В данную часть включены главы с 4 по 10. Глава 4 содержит основные сведения о
функциях таблиц в формулах. Последующие главы посвящены конкретным темам. Про­
читав главу 5, вы научитесь работать с текстом. Глава 6 содержит информацию о работе
со значениями даты и времени, а глава 7 повествует о различных методах вычислений. В
главе 8 мы обсудим различные типы формул, предназначенных для поиска данных. Гла­
ва 9 посвящена базам данных и таблицам, а в главе 10 рассматриваются такие виды вы­
числений, как перевод одних единиц в другие и округление.
Часть III. Финансовые формулы
Часть III состоит из трех глав (с 11 по 13), посвященных созданию финансовых фор­
мул. В этой части книги вы найдете полезные примеры, которые можно адаптировать к
конкретным практическим задачам.
Часть IV. Формулы массивов
Эта часть состоит из глав 14 и 15. Большинство пользователей Excel знают о форму­
лах массивов очень мало или вообще ничего о них не знают; мне же данная тема очень
близка. По этой причине я посвятил целую часть книги этому чрезвычайно мощному и
полезному инструменту, который пока применяется крайне редко.
Часть V. Полезные методики применения формул
Часть V состоит из глав с 16 по 21. Эти главы посвящены целому ряду задач, причем
некоторые из них, на первый взгляд, не имеют никакого отношения к формулам. Гла­
ва 16 демонстрирует преимущества циклических ссылок. Прочитайте главу 17, и вы уз­
наете, как применить формулы при построении диаграмм. Глава 18 объяснит, какое от­
ношение формулы имеют к сводным таблицам. В главе 19 вы найдете несколько инте­
ресных (и полезных) формул, которые можно использовать в Excel при выполнении
условного форматирования и для проверки правильности данных. Глава 20 посвящена
так называемым “мегаформулам”. Мегаформула — это формула, включающая в себя не­
сколько промежуточных формул. А что делать, если формулы работают некорректно?
Ответ на этот вопрос вы найдете в главе 21, в которой описаны методы отладки формул.
Часть VI. Разработка пользовательских функций
Эта часть включает главы с 22 по 25 и посвящена Visual Basic for Application (VBA) —
инструментальному пакету, предназначенному для разработки пользовательских функций.
31
Введение
Глава 22 ознакомит вас с языком и редактором VBA, а глава 23 предоставит основную ин­
формацию о пользовательских функциях. Глава 24 освещает некоторые аспекты програм­
мирования, а в главе 25 вы найдете примеры пользовательских функций, которые сможете
применить в исходном виде или адаптировать к собственным задачам.
Часть VII. Приложения
В книге четыре приложения, которые содержат краткий справочник функций Excel,
советы по применению пользовательских числовых форматов, а также ссылки на ресур­
сы Интернета, посвященные Excel. В заключительном приложении описаны все файлы,
содержащиеся на компакт-диске книги.
Как пользоваться книгой
Вы можете читать эту книгу, как вам вздумается. При желании можете прочесть кни­
гу от корки до корки, лежа на солнечном пляже где-нибудь на Канарах. Но, скорее всего,
вы будете держать эту книгу под рукой, в поте лица трудясь над очередным заданием.
Учитывая тематику книги, последовательность ее изучения не важна. Большинство
читателей, вероятно, будут читать книгу выборочно, находя материал, необходимый для
выполнения той или иной задачи. Данное издание содержит огромное количество при­
меров, которые помогут быстро найти формулу, имеющую отношение к интересующей
вас теме. Если в данный момент вас интересует конкретная тема, просмотрите предмет­
ный указатель в конце книги. Так вы узнаете, сможет ли книга оказаться полезной в дан­
ной ситуации.
Компакт-диск книги
Эта книга содержит множество примеров, файлы которых собраны на прилагаемом
компакт-диске. Примеры организованы в папки, соответствующие конкретным главам. В
каждой из таких папок вы найдете авторские, а также адаптированные к русскоязычной
версии 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
А теперь, не тратя времени даром, переверните страницу и начните повышать свою
квалификацию.
Ждем ваших отзывов!
Вы, читатель этой книги, и есть главный ее критик. Мы ценим ваше мнение и хотим
знать, что было сделано нами правильно, что можно было сделать лучше и что еще вы
хотели бы увидеть изданным нами. Нам интересны любые ваши замечания в наш адрес.
Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумаж­
ное или электронное письмо либо просто посетить наш веб-сервер и оставить свои заме­
чания там. Одним словом, любым удобным для вас способом дайте нам знать, нравится
ли вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более
интересными для вас.
Отправляя письмо или сообщение, не забудьте указать название книги и ее авторов,
атакже свой обратный адрес. Мы внимательно ознакомимся с вашим мнением и обяза­
тельно учтем его при отборе и подготовке к изданию новых книг.
Наши электронные адреса:
E-mail:
in f o @ d ia le k tik a .c o m
WWW:
h t t p : //w w w . d i a l e k t i k a . com
Наши почтовые адреса:
в России:
в Украине:
127055, г. Москва, ул. Лесная, д. 43, стр. 1
03150, Киев, а/я 152
Часть
Основные сведения
В этой части...
Глава 1
Знакомство с Excel
Глава 2
Знакомство с формулами
Глава 3
Имена
Глава
Знакомство с Excel
В этой главе...
♦ Краткая история Excel
♦ Концепция объектной модели
♦ Рабочие книги
♦ Интерфейс пользователя Excel 2010
♦ Справочная система
♦ Форматирование ячеек
♦ Таблицы
♦ Формулы и функции электронных таблиц
♦ Объекты графического слоя
♦ Пользовательская настройка Excel
♦ Средства Интернета
♦ Средства анализа
♦ Средства защиты
Microsoft Excel по праву считается самым лучшим из всех приложений электронных
таблиц. Можете соглашаться с этим или нет, однако никто не может отрицать тот факт,
что Excel — одно из самых старых приложений для Windows, которое за все годы своего
существования постепенно приобретало все более и более современный вид. Интерфейс
последней версии этой программы — Excel 2010 — полностью отличается от того, к че­
му вы могли привыкнуть в предыдущих версиях. Тем не менее, несмотря на это, многие
ключевые элементы Excel долгие годы оставались неизменными, разумеется, претерпе­
вая только существенное расширение возможностей.
Эта глава представляет собой краткий обзор основных средств, которыми обладают
современные версии Excel, при этом особое внимание уделено Excel 2010. Материал
этой главы служит основой для освоения последующих глав и предназначен преиму­
щественно для пользователей, которые длительное время не повышали свое мастерст­
во в Excel.
36
Часть I. Основные сведения
Краткая история Excel
Вы, наверное, не ожидали обнаружить в этой книге исторический экскурс, когда по­
купали ее. Однако предлагаемая информация может вас заинтересовать. По крайней ме­
ре, у вас будет возможность блеснуть эрудицией перед коллегами.
Электронные таблицы — важная часть крупного бизнеса, хотя мы воспринимаем су­
ществование подобных объектов как часть нашего повседневного окружения. Во време­
на, когда программ работы с электронными таблицами не существовало, люди использо­
вали громоздкие вычислительные машины или калькуляторы и тратили много часов на
задачи, решение которых благодаря электронным таблицам сегодня занимает всего не­
сколько минут.
Все началось с VisiCalc
В конце 70-х годов, когда люди еще не знали, что такое персональный компьютер
вофисе, Дэн Бриклин и Боб Фрэнкстон создали VisiCalc — первую в мире электронную
таблицу. Программа VisiCalc была написана для компьютеров типа Apple II, которые
всвете современных стандартов кажутся просто детской игрушкой. Очень скоро VisiCalc
стала довольно известной, и особо “дальновидные” компании приобретали компьютеры
Apple II с единственной целью — планировать бюджет с помощью программы VisiCalc.
Поэтому многие считают, что своим успехом в то время компьютеры Apple II в значи­
тельной мере обязаны VisiCalc.
Затем появилась Lotus
В 1982 году на сцену вышла компания IBM, выпустив на рынок персональные ком­
пьютеры семейства PC. Компания VisiCorp оперативно отреагировала на это, адаптиро­
вав VisiCalc к новой аппаратной среде. Стремясь превзойти успех VisiCalc, небольшая
группа программистов из Кембриджа (штат Массачусетс) усовершенствовала концепцию
электронных таблиц. Объединившись в небольшую компанию во главе с Митчем Капо­
ром и Джонатаном Заксом, эти энтузиасты создали новый программный продукт — Lo­
tus. Впервые в истории создания программных средств была проведена широкомасштаб­
ная рекламная кампания по продвижению нового продукта на рынок.
Программа Lotus 1-2-3, появившаяся в 1983 году, пользовалась неизменным успехом
в течение многих лет. Несмотря на высокую цену — $495 (да, в те времена люди дейст­
вительно платили за программу такие деньги), — новая программа быстро превзошла
VisiCalc по объему продаж. Долгое время Lotus имела одни из самых высоких показате­
лей торговой активности.
И вот на рынок вышла Microsoft
Не многие знают о том, что компания Microsoft выпустила свой первый процессор
электронных таблиц в начале 80-х. Первый программный продукт этого типа — MultiPlan — вышел в 1982 году. Программа MultiPlan, созданная для компьютеров с операци­
онной системой СР/М, была впоследствии адаптирована и для таких платформ, как
Apple И, Apple III, XENIX и MS-DOS. При создании программы MultiPlan не были со­
блюдены общепринятые стандарты пользовательского интерфейса. Кроме того, научить­
ся работать с MultiPlan было нелегко, да и пользоваться ею было неудобно. По этим при­
Глава 1. Знакомство с Excel
37
чинам данная программа не стала популярной в США. Не удивительно, что 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 получала наи­
лучшие отзывы во всех отраслевых изданиях.
Часть I. Основные сведения
38
Рис. 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. Кроме того, в нее добавлен
ряд новых средств, о которых будет подробно рассказано в соответствующих главах.
Часть I. Основные сведения
40
Новинка
Ниже перечислены новые средства, добавленные в Excel 2010.
•
64-разрядная версия. Если ваш компьютер 64-разрядный, можете установить
64-разрядную версию Excel 2010. Она позволит создавать рабочие книги больших
размеров. Кроме того, увеличится быстродействие операций, интенсивно загру­
жающих процессор.
•
Спарклайны. Небольшие диаграммы, располагаемые в ячейках и графически
представляющие диапазоны данных.
•
Срезы сводных таблиц. Новый способ отображения и фильтрации данных всводных таблицах.
•
Средства форматирования сводных таблиц. Добавлены средства, позволяю­
щие изменять внешний вид данных в отчетах сводных таблиц.
•
Вкладка Файл. Заменила кнопку Office, которая в Excel 2007 была расположена
влевом верхнем углу экрана. При щелчке на корешке вкладки Файл открывается ок­
но, позволяющее выполнить ряд операций над рабочей книгой, открыть окно
справки, настроить параметры программы, просмотреть свойства документа и т.д.
• Черновой режим диаграмм. Если вы работаете со многими отформатированны­
ми диаграммами, то для повышения производительности можете применить чер­
новой режим их отображения.
•
Дополнительные средства условного форматирования. Форматировать ячей­
ки теперь можно с помощью гистограмм данных со сплошной заливкой.
•
Улучшение функций. Многие статистические функции усовершенствованы для
повышения точности и достоверности результатов. Старые версии функций попрежнему доступны, но перемещены в категорию устаревших.
•
Расширенные средства редактирования изображений. Пользователям пре­
доставлено больше контроля над внешним видом изображений, вставленных врабочую книгу.
•
Предварительный просмотр вставки. При копировании диапазона команда вставки
предоставляет ряд вариантов действий, включая предварительный просмотр.
•
•
Настройка ленты. Пользователь может добавлять на ленту новые вкладки и группы.
Редактор формул. Создание и отображение невычисляемых математических вы­
ражений в текстовых полях.
•
Повышенное быстродействие. Компания Microsoft существенно изменила вычисли­
тельный драйвер Excel, в результате чего файлы загружаются заметно быстрее.
•
Новые средства безопасности. Рабочие книги, загруженные из Интернета или
вложений электронных писем, открываются в режиме защищенного просмотра.
Рабочую книгу можно отметить как безопасную, не загружая ее в специальную
безопасную папку.
•
Новая версия надстройки “Поиск решения”. Позволяет найти оптимальное зна­
чение в целевой ячейке с формулой с учетом ограничений на значения в других
ячейках.
•
Расширение VBA. Многие операции, в которых использовались макросы XML, те­
перь можно выполнять непосредственно с помощью команд VBA.
Глава 1. Знакомство с Excel
41
Концепция объектной модели
Если вы не первый день знакомы с компьютерами, то вам, скорее всего, приходилось
встречать термин объектно-ориентированное программирование. Под словом объект
подразумевается элемент программы, которым программист может манипулировать. Ра­
ботая в Excel, иногда удобно мыслить именно категориями объектов. При этом совсем не
обязательно быть программистом. Объектно-ориентированный подход поможет вам
увидеть рассматриваемые элементы в перспективе.
Рабочая среда Excel содержит следующие объекты:
•
программу Excel;
•
рабочую книгу Excel;
•
электронную таблицу в рабочей книге;
•
диапазоны на рабочих листах;
•
кнопку на рабочем листе;
•
элемент списка на пользовательской форме;
•
лист диаграммы;
•
диаграмму на листе;
•
ряды диаграммы.
Обратите внимание на иерархию объектов. Объект Excel содержит объекты рабочих
книг, в которых находятся объекты таблиц. Объекты таблиц, в свою очередь, содержат
объекты диапазонов. Эта иерархия называется объектной моделью Excel. Другие про­
граммные продукты Microsoft имеют собственные объектные модели. Концепция объект­
ной модели играет важную роль при разработке макросов VBA. Но даже если вы не соби­
раетесь работать с макросами, навыки мышления на уровне объектов вам пригодятся.
Рабочие книги
Основным документом Excel является рабочая книга. Все, что вы делаете в Excel,
происходит именно в рабочей книге.
Начиная с версии Excel 2007 файлы рабочих книг фактически являются сжатыми
папками. Если вы когда-либо открывали файл с расширением . z i p , то, наверное, уже
знакомы с концепцией сжатия. Внутри файла . z i p хранится несколько файлов, в кото­
рых находится вся информация рабочей книги, в том числе диаграммы, макросы, форма­
тирование и данные ячеек.
Рабочая книга Excel может содержать любое количество листов (их количество огра­
ничено только объемом памяти). Существует четыре типа листов:
•
рабочие листы;
•
листы диаграммы;
•
листы макросов Excel 4.0 (устаревшие, но все еще поддерживаемые);
•
листы диалоговых окон Excel 5.0 (также устаревшие, но все еще поддерживаемые).
Можно открыть любое количество книг (каждую в отдельном окне), но активной кни­
гой в текущий момент может быть только одна из них. Аналогично, только один лист книги
может быть активным листом. Для того чтобы активизировать другой лист, щелкните на
42
Часть I. Основные сведения
соответствующей вкладке, которая расположена в нижней части окна, нажмите <Ctrl+PgUp>
(чтобы активизировать следующий лист) или <Ctrl+PgDn> (чтобы активизировать преды­
дущий лист). Если нужно изменить имя листа, щелкните на соответствующей вкладке два­
жды и введите новое имя. Щелкнув на вкладке правой кнопкой мыши, вы откроете контек­
стное меню, с помощью которого осуществляются дополнительные операции с листами.
Вы можете скрыть окно книги. Для этого выберите команду Вид^Окно1^Скрыть
окно. Скрытое окно книги остается открытым, но невидимым. При необходимости
скрытое окно можно снова развернуть на экране. Одна и та же книга может отображать­
ся в нескольких окнах; при этом в разных окнах могут отображаться разные диапазоны
ячеек. Чтобы создать еще одно окно, выберите команду Вид^Окно^Новое окно.
Рабочий ли ст
Наиболее распространенный тип листа — это рабочий лист. Его мы чаще всего под­
разумеваем, говоря об электронной таблице. Каждый рабочий лист Excel 2010 имеет
16 384 столбцов и 1 048 576 строк. После многих лет запросов сообщества пользовате­
лей компания Microsoft наконец-то соблаговолила существенно увеличить число доступ­
ных строк и столбцов.
Примечание
Рабочие листы версий программы, предшествовавших Excel 2007, поддер­
живали только 256 столбцов и 65 536 строк. Если открыть такой файл, Ex­
cel 2010 перейдет в режим совместимости с предыдущими версиями, и вы
сможете работать с рабочим листом такого размера. Чтобы расширить та­
кой рабочий лист до новых размеров, вам придется сохранить файл в фор­
мате Excel 2010, затем закрыть рабочую книгу и снова открыть ее.
Насколько велик рабочий лист
Довольно интересно на минутку остановиться и поразмыслить над тем, насколько ве­
лик рабочий лист. Выполните простую арифметическую операцию 16 384x1 048 576 и вы
получите результат 17 179 869 184— именно такое количество ячеек содержит рабочий
лист. Заметим, что в одной рабочей книге может содержаться много таких листов.
Если вы используете разрешение экрана 1600x1200, одновременно на экране вы
сможете увидеть 24 столбца и 49 строк, т.е. 1 176 ячеек. Это всего 0,0000068% рабоче­
го листа. Другими словами, на одном рабочем листе содержится более 14,6 миллионов
экранов информации. Если вводить в каждую ячейку всего одну цифру и затрачивать на
это около одной секунды, то на заполнение всего рабочего листа вам потребуется бо­
лее 500 лет. После этого для вывода на печать результата этой многовековой работы
вам потребуется около 36 миллионов листов бумаги — стопка высотой около 4 кило­
метров (около 10 небоскребов Empire State Building, поставленных друг на друга).
Основное преимущество использования нескольких рабочих листов состоит не в том,
чтобы предоставить в ваше распоряжение больше ячеек, а, скорее, в повышении эффек­
тивности организации рабочей среды. В те далекие времена, когда файл электронной
таблицы состоял из одного листа, разработчикам приходилось тратить немало времени
и сил на то, чтобы должным образом разместить информацию в таблице. В настоящее
время можно хранить информацию на любом количестве листов и в любой момент полу­
чать доступ к таблице.
Глава 1. Знакомство с Excel
43
Вы имеете полный контроль над видимыми размерами ячеек, можете даже скрывать
их. Содержимое ячеек может отображаться как вертикально, так и под заданным углом.
Ячейка может содержать несколько строк. Кроме того, ячейки можно объединять, полу­
чая таким образом одну большую ячейку.
Примечание
По умолчанию каждая новая рабочая книга состоит из трех рабочих листов.
Добавить новый рабочий лист можно в любой момент, поэтому начинать но­
вую книгу с трех рабочих листов нет необходимости. Можно изменить уста­
новленное по умолчанию количество листов таким образом, чтобы каждая
новая книга состояла всего из одного рабочего листа. Для этого выберите
команду Файл^Параметры Excel, перейдите во вкладку Общие и измените
значение в поле Число листов.
Листы диаграмм
Лист диаграммы состоит из одной диаграммы. Многие пользователи предпочитают
создавать вместо листов диаграмм внедренные диаграммы, которые хранятся на графи­
ческом слое обычного рабочего листа с данными. Разумеется, вовсе не обязательно ис­
пользовать листы диаграмм, однако с их помощью проще распечатать диаграмму на от­
дельной странице, что особенно важно при подготовке презентаций. Внедренные (или
плавающие) диаграммы описаны далее.
Листы макросов и диалоговых окон
Лист макросов Excel 4.0 (также известен как лист макросов XLM) на самом деле
представляет собой обычный рабочий лист, но имеющий некоторые параметры, уста­
новленные по умолчанию. XLM — это система макросов, использовавшаяся в Excel вер­
сии 4.0. Данная система в версии 5.0 была заменена языком VBA, поэтому в мы не будем
уделять ей внимание.
Лист диалогового окна Excel 5.0 представлял собой сетку рисования, способную со­
держать текст и элементы управления. В версиях Excel 5 и Excel 95 они использовались
для создания пользовательских диалоговых окон. Пользовательские формы, введенные
в версии Excel 97, заменили эти типы листов.
Интерфейс пользователя Excel 2010
Интерфейс пользователя (User Interface, UI) — это совокупность средств, с помо­
щью которых конечный пользователь взаимодействует с компьютерной программой.
Пользовательский интерфейс состоит из таких элементов, как лента, контекстные меню,
диалоговые окна, панели инструментов, комбинации клавиш, а также функций, обеспе­
чивающих операции перетаскивания.
Новый интерфейс пользователя
Практически во все программах под Windows, с которыми вам приходилось сталки­
ваться, использовался стандартный интерфейс с меню и панелями инструментов. Они
находились в верхней части окна программы, при этом меню содержало практически все
доступные в программе команды. Под меню находилась одна или несколько панелей ин­
44
Часть I. Основные сведения
струментов, обеспечивающих быстрый доступ к наиболее часто используемым коман­
дам. Для Excel и большинства других программ пакета Microsoft Office время существо­
вания меню и панелей инструментов закончилось.
Новый интерфейс пользователя Excel состоит из ленты, кнопки Файл и панели быст­
рого доступа.
Лента
Лента представляет собой основной элемент интерфейса Excel. Она заменила собой
систему меню и большинство панелей инструментов, существовавших в предыдущих
версиях. Это самое значительное отступление от стандартного интерфейса, свойственно­
го Windows-программам.
Все в одном месте
Компания Microsoft приняла к сведению то, что число команд, содержащихся в ста­
рой системе меню и панелей инструментов, стало настолько велико, что возникла на­
сущная потребность в новом типе пользовательского интерфейса. Одной из главных це­
лей создания ленты было предоставить пользователю место, где он мог бы найти средст­
ва определенного назначения. Все наиболее часто используемые в Excel команды теперь
содержатся на ленте (или в открывающихся с ее помощью диалоговых окнах). Компании
Microsoft удалось поместить на ленту большинство доступных команд, из-за чего она
стала огромной и сложной системой.
Несмотря на то что лента появилась уже несколько лет назад (в Office 2007), она все
еще вызывает противоречивые чувства. Некоторые пользователи ненавидят ее, а другие
страстно любят. Неприязнь части пользователей к ленте доходит до того, что они не пе­
рестают искать надстройки к Excel, которые обеспечили бы отображение традиционных
меню и панелей инструментов. Не прекращается поток петиций в Microsoft с требова­
ниями восстановить прежний интерфейс. Тем не менее лента осталась и, видимо, оста­
нется навсегда. Когда вы к ней привыкнете, вам будет легче работать с ней, чем с меню
и панелями инструментов.
Примечание
Некоторые команды все же не поместились на ленте, и у вас может сложиться
впечатление, будто их не стало. Однако вся хитрость заключается в том, что
они существуют, но пользователю нужно знать, где их искать. Щелкните пра­
вой кнопкой мыши на панели быстрого доступа и выберите в контекстном ме­
ню пункт Настройка панели быстрого доступа. Откроется диалоговое окно со
списком команд, которые можно разместить на панели быстрого доступа. Не­
которые из этих команд недоступны ни в каком другом месте интерфейса
пользователя. Можно также добавить команды на ленту. Для этого щелкните
правой кнопкой мыши на ленте и выберите пункт Настройка ленты.
Вкладки, группы и инструменты
Лента представляет собой место размещения инструментов, расположенное в верхней
части окна программы. Размер по вертикали ленты составляет примерно три высоты
старой стандартной панели инструментов. Лента содержит несколько вкладок, в том чис­
ле Главная, Вставка, Разметка страницы и некоторые другие. В каждой из вкладок
содержится несколько групп, в каждой из которых собраны родственные инструменты.
Глава 1. Знакомство с Excel
45
Кпримеру, во вкладке Главная вы найдете группы Буфер обмена, Шрифт и Выравни­
вание и др.
Значки команд (инструментов), которые вы встретите во вкладках и группах ленты,
аналогичны тем, которые существовали на панелях инструментов старых версий програм­
мы, с одним существенным отличием: они имеют разные размеры. Инструменты, исполь­
зуемые чаще, больше по размерам, чем те, которые используются реже. Например, поло­
вину группы Буфер обмена занимает большой значок Вставить, а инструменты Выре­
зать, Копировать и Формат по образцу по размеру значительно меньше. Компания
Microsoft определила, что именно команда вставки используется чаще остальных.
Лента и все ее элементы динамически изменяют свои размеры при изменении разме­
ров окна Excel по горизонтали. В небольших окнах инструменты сворачиваются в сжа­
тые группы и вкладки. Таким образом, даже в небольших окнах Excel все инструменты
ленты остаются доступными — просто для доступа к ним придется пару раз дополни­
тельно щелкнуть мышью.
На рис. 1.2 показана вкладка Главная: динамика трех постепенно уменьшающихся
по горизонтали размеров.
Рис. 1.2. Лента динамически уменьшается в размерах в зависимости от размеров по горизон­
тали окна Excel
Навигация
Навигацию по ленте легче всего осуществлять с помощью мыши. Щелкните на
вкладке, а затем — на нужном инструменте. Если вы предпочитаете использовать кла­
виатуру, эту возможность компания Microsoft для вас сохранила. Нажав клавишу <Alt>,
вы увидите под вкладками буквы “горячих” клавиш, с помощью которых можно будет их
“открыть”. В открывшейся вкладке будут отображены горячие клавиши, соответствую­
щие конкретным командам. При нажатии клавиши будет выполнена соответствующая
команда. Нажатие клавиши <Esc> отменяет предыдущее нажатие клавиши.
К примеру, нажатие клавиш <Ак+Я+И+1+Ж> (<Alt+H+B+B>) приведет к добавле­
нию границы в нижней части выделенного фрагмента. В данном случае клавиша <Alt>
46
Часть I. Основные сведения
включает отображение горячих клавиш, <Я> обеспечивает переход во вкладку Главная,
<И+1> открывает меню выбора типа рамки, а <Ж> позволяет выбрать одинарную рамку
вдоль нижней границы. Следует заметить, что при нажатии букв горячих клавиш не обя­
зательно удерживать клавишу <Alt>.
Контекстные вкладки
Лента содержит несколько вкладок, которые отображаются только тогда, когда в них
возникает потребность. Обычно они отображаются тогда, когда на рабочем листе выде­
лен элемент или диапазон со специфичными характеристиками (например, диаграмма
или сводная таблица.) Типичным примером является контекстная вкладка Средства ри­
сования. Если выделить фигуру или объект WordArt, эта вкладка становится видимой
и активной. В ней содержится множество инструментов, которые применимы только к
фигурам (например, средства форматирования фигур).
Экранные подсказки и значки диалоговых окон
Если поместить указатель мыши над некоторым значком, будет отображена экранная
подсказка, описывающая команду, которая запускается в результате щелчка на значке.
Внастоящей версии экранные подсказки больше по размерам и содержат больше инфор­
мации, чем их собратья в предыдущих версиях.
В правом нижнем углу некоторых групп находится маленький значок в виде квадра­
тика со стрелкой, направленной в нижний правый угол. Щелчок на этом значке приводит
к открытию диалогового окна, связанного с данной группой. Пользователям предыдущих
версий Excel эти окна хорошо знакомы — большинство из них осталось в прежнем виде.
Некоторые значки приводят к открытию одних и тех же окон, но с разными активными
вкладками. К примеру, щелчок на таком значке в группе Шрифт приводит к открытию
окна Формат ячейки с активной вкладкой Шрифт, а в группе Выравнивание — к от­
крытию того же окна, но уже с активной вкладкой Выравнивание. Теперь интерфейс
ленты позволяет использовать диалоговые окна гораздо реже, поскольку большую часть
того, что можно сделать в этих окнах, выполняется непосредственно на ленте.
Галереи и оперативный просмотр
Галерея представляет собой набор инструментов, внешне выглядящих так, как и резуль­
тат их применения. Если вы использовали предыдущие версии Excel, то, наверное, замети­
ли, что названия шрифтов в раскрывающемся списке панели инструментов форматирова­
ния были отображены с помощью именно этих шрифтов. Галереи в значительной мере
расширили эту функциональность. К примеру, в галерее Стили не только перечислены на­
звания стилей, но и отображены примеры форматирования в указанных стилях.
Галереи дают представление о том, как обычно выглядят объекты при выборе соот­
ветствующего инструмента, тогда как оперативный просмотр предоставляет пользова­
телю возможность увидеть, как будет выглядеть конкретный объект, который он собира­
ется обработать. Если поместить указатель мыши над соответствующим элементом гале­
реи, выделенный фрагмент приобретет вид, который он будет иметь после применения
соответствующего форматирования.
Вкладка Файл
Большая круглая кнопка Office, которая была в Excel 2007, в Excel 2010 заменена
вкладкой Файл. При щелчке на корешке вкладки Файл открывается окно, показанное
Глава 1. Знакомство с Excel
47
на рис. 1.3. В нем можно выполнять большинство операций над документом Excel, таких
как создание рабочей книги, открытие и сохранение файлов, печать и т.д.
Рис. 1.3. Содержимое вкладки Файл
На левой панели вкладки Файл приведен список категорий (часто их тоже называют
вкладками). Например, при щелчке на категории Последние открывается список откры­
вавшихся документов со значками рядом с каждым элементом списка. С помощью знач­
ка документ можно закрепить в верхней части списка, где он будет оставаться независи­
мо от того, сколько других файлов было открыто или закрыто.
В нижней части списка категорий приведен пункт Параметры. При щелчке на нем
открывается диалоговое окно Параметры Excel, предназначенное для настройки рабо­
чей среды Excel.
Контекстные меню и мини-панель инструментов
Программа Excel также вооружена добрым десятком контекстных меню. Эти меню
открываются при щелчке правой кнопкой после выделения одного или нескольких объек­
тов. Содержание этих меню зависит от контекста. Другими словами, открывающееся ме­
ню зависит от того, где находился указатель мыши во время щелчка правой кнопкой. Вы
можете щелкнуть правой кнопкой практически где угодно: в ячейке, на границе столбца
и строки, в заголовке рабочей книги и т.д.
При щелчке правой кнопкой на некоторых объектах наряду с контекстным меню от­
крывается и мини-панель инструментов. Это плавающая панель инструментов, содер­
жащая десяток самых популярных команд форматирования, полезных в данной ситуа­
ции. На рис. 1.4 показано контекстное меню и мини-панель инструментов, открываемые
при щелчке правой кнопкой на выделенном диапазоне ячеек.
48
Часть I. Основные сведения
Рис. 1.4. При щелчке правой кнопкой на диапазоне ячеек открывается контекстное меню и ми­
ни-панель инструментов
Настройка пользовательского интерфейса
Панель быстрого доступа содержит набор инструментов, состав которых можно на­
строить. По умолчанию эта панель содержит три инструмента: Сохранить, Отменить
и Вернуть. Если некоторую команду ленты вы используете особенно часто, щелкните на
ней правой кнопкой мыши и выберите в контекстном меню пункт Добавить на панель
быстрого доступа. Можно внести и другие изменения в панель быстрого доступа. Для
этого используется вкладка Панель быстрого доступа диалогового окна Параметры
Excel. Чтобы открыть эту вкладку, щелкните правой кнопкой мыши на панели быстрого
доступа и выберите в контекстном меню пункт Настройка панели быстрого доступа.
В Excel 2010 добавлены средства изменения ленты. Они приведены во вкладке На­
стройка ленты диалогового окна Параметры Excel. Изменить ленту можно следую­
щими способами:
•
добавление новой вкладки;
•
добавление новой группы в существующую вкладку;
•
добавление команды в группу;
•
удаление группы из вкладки;
Глава 1. Знакомство с Excel
•
удаление команды из пользовательской группы;
•
изменение последовательности вкладок;
•
изменение последовательности групп во вкладке;
•
изменение названия вкладки;
•
изменение названия группы;
•
перенос группы в другую вкладку;
•
восстановление исходного состояния ленты.
49
Как видите, список того, что можно сделать, довольно длинный. Но все же есть опе­
рации, которые нельзя выполнить:
•
удаление встроенной вкладки (впрочем, ее можно скрыть);
•
удаление команды из встроенной группы;
•
изменение последовательности команд во встроенной группе.
Смарт-теги
.Смарт-тег — это небольшой значок, который автоматически отображается на рабо­
чем листе после выполнения некоторых действий. Щелчок на этом значке приводит
к открытию меню, содержащего несколько команд.
К примеру, если вы скопировали и вставили диапазон ячеек, Excel отображает смарттег под вставляемым диапазоном (рис. 1.5). В Excel встроено также много других смарттегов; некоторые смарт-теги поставляются сторонними производителями.
Рис. 1.5. Этот смарт-тег отображается при вставке скопиро­
ванного диапазона ячеек
Панель задач
В версии Excel 2002 была впервые представлена панель задач. Это элемент интер­
фейса пользователя, который обычно прикрепляется к правой границе окна Excel (при
50
Часть I. Основные сведения
желании вы можете перетащить ее в другое место). Панель задач используется для мно­
жества целей, в том числе для отображения буфера обмена Office, обеспечения помощи
в исследованиях, отображения полей сводной таблицы и данных XML. На рис. 1.6 пока­
зана панель задач, открываемая при вставке клипов.
Рис. 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>,
в данном случае будет открыто диалоговое окно консолидации данных.
Рис. 1.7. Нажатие комбинации клавиш <Alt+L> приводит к отображе­
нию экранной подсказки
Настройка отображения элементов интерфейса
Excel предоставляет вам возможность решать, какие элементы интерфейса (строка со­
стояния, строка формул, панели инструментов и т.д.) следует отображать на экране. На­
пример, если вы выберете команду Вид^Режимы просмотра книги^Полноэкранный
режим, то избавитесь от всех дополнительных элементов, что позволит обозревать макси­
мальное количество данных рабочего листа. Кроме данных таблицы будет отображаться
только строка заголовка программы. Когда потребуется выйти из полноэкранного режима
в обычный, просто нажмите клавишу <Esc> или щелкните правой кнопкой и выберите в кон­
текстном меню пункт Вернуть обычный режим. Можно также нажать клавиши <Ctrl+Fl>,
чтобы скрыть или отобразить ленту.
Настраивать можно также строку состояния, расположенную в нижней части экрана.
Щелкните на ней правой кнопкой, и вы увидите массу информации, которая может ото­
бражаться в строке состояния.
Прочие параметры интерфейса можно настроить во вкладке Дополнительно диало­
гового окна параметров программы.
Ввод данных в ячейки
Вводить данные в ячейки Excel достаточно просто. Программа интерпретирует каж­
дый вводимый элемент как один из следующих объектов:
• значение (включая дату и время);
• текст;
• булево значение (ИСТИНА или ЛОЖЬ);
• формула.
52
Часть I. Основные сведения
Примечание
Формулы всегда начинаются со знака равенства (=).
Советы по вводу данных в ячейки
Ниже приведен список советов, которые помогут пользователям перейти на Excel
сдругих процессоров электронных таблиц.
•
Если хотите вводить данные и при этом не пользоваться клавишами со стрелками,
установите флажок Переход к другой ячейке после нажатия на клавишу ВВОД, рас­
положенный во вкладке Дополнительно диалогового окна параметров программы.
Затем в раскрывающемся списке задайте направление перехода к другой ячейке.
•
Иногда удобно выделить диапазон ячеек, перед тем как вводить данные. Если вы
поступите таким образом, то сможете перемещаться в пределах выделенного диа­
пазона с помощью клавиши <ТаЬ>,
•
Для того чтобы ввести одни и те же данные во все ячейки диапазона, выделите
диапазон, введите данные в активную ячейку, а затем нажмите комбинацию клавиш
<Ctrl+Enter>.
•
Чтобы скопировать содержимое активной ячейки во все ячейки выделенного диа­
пазона, нажмите сначала клавишу <F2>, а затем — клавиши <Ctrl+Enter>.
•
Для того чтобы все последующие значения диапазона прирастить на единицу, на­
жмите <Ctrl> и перетаскивайте маркер выделения диапазона (он располагается
в нижнем правом углу текущей ячейки).
•
Чтобы создать пользовательский список автозавершения, щелкните на кнопке Из­
менить списки (Edit Custom Lists) вкладки Дополнительно диалогового окна пара­
метров программы.
•
Чтобы скопировать ячейки без приращения, переместите маркер выделения диа­
пазона в правом нижнем углу ячейки. Можно также нажать <Ctrl+D> для копирова­
ния в соседнюю ячейку снизу или <Ctrl+R> — справа.
•
Если необходимо сделать вводимый текст более удобочитаемым, можете ввести раз­
рыв строки в ячейку. Для того чтобы ввести в ячейку символ возврата каретки, нажмите
<Alt+Enter>. В результате содержимое ячейки будет перенесено в новую строку.
•
Чтобы ввести дробное число, введите 0, пробел, а затем дробь (символ косой чер­
ты). Excel преобразует значение в формат дробного числа.
•
Для того чтобы применить к ячейке денежный формат, введите соответствующий
символ валюты до или после числового значения.
•
Если необходимо задать величину в процентах, введите символ процента после чи­
слового значения. Можно также использовать принятый в вашей стране раздели­
тель разрядов (например, 123,434).
•
Для того чтобы ввести текущую дату, используйте комбинацию клавиш <Ctrl+;>. Ес­
ли нужно ввести текущее время, нажмите <Ctrl+Shift+;>.
•
Если нужно, чтобы ячейка или диапазон принимали только данные определенного
типа (или значения, находящиеся в определенных пределах), выделите диапазон
ивыберите команду Данные1^Работа с данными^Проверка данных.
Глава 1. Знакомство с Excel
53
Выделение ячеек и других объектов
В целом, выделение объектов в Excel происходит так же, как и в других приложениях
Windows. Выделить диапазон ячеек можно с помощью клавиатуры (нажимая клавишу
<Shift> и клавиши со стрелками) или мыши (щелкнув кнопкой и переместив указатель).
Для того чтобы выделить большой диапазон, не поместившийся на экране, щелкните
водном из углов диапазона, затем нажмите клавишу <Shift> и щелкните на ячейке в про­
тивоположном углу диапазона.
Чтобы выделить всю таблицу, нужно нажать клавиши <Ctrl+*> (звездочка). Когда
выделен большой диапазон ячеек, с помощью клавиш <Ctrl+.> (точка) можно переходить
к углам диапазона.
Если вы работаете с таблицей (созданной с помощью команды Вставка ^Таблицы1^
Таблица), то обнаружите, что комбинация клавиш <Ctrl+A> работает совсем не так, как
в версиях до 2007. Чтобы выделить всю таблицу, нажмите эту комбинацию клавиш один
раз. Если вы нажмете эту же комбинацию клавиш еще раз, то выделите всю таблицу вме­
сте с заголовками и итогами. Если вы нажмете эту комбинацию третий раз, будет выде­
лен весь рабочий лист.
Для выделения объекта, находящегося на рабочем листе, просто наведите на него
указатель и щелкните мышью. Единственным исключением может быть только объект,
ккоторому добавлен макрос. В этом случае щелчок на объекте приведет к выполнению
макроса. Для выделения нескольких объектов или несмежных ячеек при щелчках мы­
шью удерживайте нажатой клавишу <Ctrl>.
Справочная система
Одной из наиболее важных особенностей Excel 2010 является мощная справочная
система. Значок справки в виде голубого круга с вопросительным знаком находится
в правом верхнем углу окна программы. Щелчок на этом значке или нажатие
клавиши <F1> приводит к отображению окна справки, показанного на рис. 1.8.
Два основных метода навигации по справочной системе сводятся к использова­
нию текстового поля Поиск и пункта Оглавление. Ввод ключевых слов в поле по­
иска и щелчок на кнопке Поиск приведет к отображению в главном окне соответст­
вующих статей справочной системы. В оглавлении перечислено множество связан­
ных по темам статей справочной системы. Окно оглавления, когда оно не
используется, может быть скрыто. Обратите внимание, что кнопка Поиск на самом
деле представляет собой элемент раскрывающегося списка. Щелкните на маленькой
стрелке, и вы сможете выбрать тип необходимой справки. По умолчанию содержи­
мое справки загружается с сайта Microsoft Office Online. Если у вас нет доступа к
Интернету или вы хотите ограничиться статьями справки, установленными на вашем
компьютере, щелкните на кнопке Автономная работа в правом нижнем углу окна
справки (см. рис. 1.8). Откроется небольшое меню, которое позволит определить,
какая именно справочная система будет использоваться. В этом же меню содержит­
ся значок, открывающий справку по справочной системе (странное словосочетание
“справка о справке” в данном случае вполне уместно).
54
Часть I. Основные сведения
Форматирование ячеек
В Excel существует два типа форматов ячеек: числовой и стилевой.
Числовое форматирование
От числового форматирования зависит то, как значение будут представлено в ячейке.
В Excel существует целый ряд стандартных числовых форматов. Кроме того, во вкладке
Число диалогового окна Формат ячейки можно создавать и собственные числовые
форматы. Для активизации этого диалогового окна щелкните на кнопке со стрелкой
в правом конце заголовка группы Число вкладки Главная.
Рис. 1.8. Окно справочной системы 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. Основные сведения
Формулы и функции электронных таблиц
Формула— один из основополагающих элементов электронной таблицы, и в этом
программа Excel преуспела. Все последующие главы доказывают этот тезис.
Функции рабочего листа позволяют производить вычисления или иные операции. Ex­
cel имеет в своем арсенале огромное количество встроенных функций, включая десятки
новых функций, добавленных в Excel 2010.
Перекрестная ссылка
Функции рабочего листа подробно описаны в главе 4.
Все электронные таблицы позволяют назначать имена ячейкам и диапазонам ячеек.
Работа с именами в Excel имеет свои особенности. Имя представляет собой идентифика­
тор, который позволяет обращаться к ячейке, диапазону, значению или формуле. Ис­
пользование имен значительно упрощает работу с формулами.
Перекрестная ссылка
Глава 3 полностью посвящена именам.
Объекты графического слоя
Как уже отмечалось, каждый рабочий лист имеет невидимый графический слой, в ко­
тором содержатся все фигуры, диаграммы, графики, рисунки и элементы управления
(такие как кнопки и списки). В следующих разделах речь пойдет об основных объектах
графического слоя.
Фигуры
У вас есть возможность вставить на рабочий лист множество разнообразных фигур.
Их выбор выполняется с помощью командной кнопки Фигуры, расположенной в группе
Иллюстрации вкладки Вставка. После вставки фигуры на лист ее можно модифициро­
вать, выделяя ее и перетаскивая отображаемые маркеры. К фигурам также можно приме­
нять стили, эффекты заполнения и трехмерные эффекты, а группирование множества фи­
гур в единый графический объект облегчает изменение его размеров и местоположения.
Иллюстрации
Изображения, клипы и объекты SmartArt можно вставить из группы Иллюстрации
вкладки Вставка. На рис. 1.9 показаны некоторые объекты графического слоя рабочего
листа, включая объекты группы Иллюстрации.
Объекты связанных рисунков
Связанный рисунок — это объект фигуры, отображающий диапазон. Когда диапазон
изменяется, вместе с ним изменяется и объект фигуры. Для использования этого объекта
выделите диапазон, нажмите клавиши <Ctrl+C> и выберите команду Главная1^ Буфер
обмена^Вставить^Связанный рисунок. Эта команда окажется полезной, если нужно
распечатать набор диапазонов. Можно сделать “снимки” диапазонов, а затем поместить
эти рисунки вместе в одной области, которую затем вывести на печать.
Глава 1. Знакомство с Excel
57
Рис. 1.9. Объекты графического слоя рабочего листа
Элементы управления
На рабочий лист можно вставить множество различных элементов управления. Формаль­
но их можно разделить на две категории: элементы управления форм и элементы ActiveX.
Использование элементов управления способно значительно повысить эффективность работы
с листом, часто даже без использования макросов. Чтобы вставить элемент управления, выбе­
рите на ленте команду РазработчикаЭлементы управления^Вставить. На рис. 1.10 по­
казан рабочий лист с несколькими элементами управления (флажок, две группы переклю­
чателей, полоса прокрутки и др.), добавленными на лист.
Рис. 1.10. Excel позволяет добавить на графический слой рабочего листа
множество элементов управления
58
Часть I. Основные сведения
Примечание
Вкладка Разработчик по умолчанию не отображается. Для отображения этой
вкладки откройте окно параметров программы и во вкладке Настройка лен­
ты установите флажок Разработчик.
Компакт-диск
Для того чтобы увидеть элементы управления в работе (см. рис. 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).
Пользовательская настройка Excel
В этом разделе описаны средства, позволяющие настроить Excel в соответствии с ва­
шими требованиями. Среди них основными являются макросы и надстройки.
Макросы
Язык программирования V B A — мощный инструмент, позволяющий Excel выпол­
нять такие задачи, осуществить которые иными средствами чрезвычайно сложно или во­
обще невозможно. С помощью VBA создаются следующие основные типы макросов:
•
макросы, автоматизирующие операции в Excel;
•
макросы, которые функционируют в качестве пользовательских функций и при­
меняются при вычислении формул на рабочем листе.
Глава 1. Знакомство с Excel
59
Рис. 1.11. Образцы спарклайнов
Перекрестная ссылка
Часть 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 имеется целый ряд других средств, предназна­
ченных для проведения анализа. Об этих средствах речь пойдет в следующих разделах.
Доступ к базам данных
Средства Excel, связанные с базами данных, условно можно разделить на две категории.
•
Табличная база данных. Хранится на рабочем листе, что строго ограничивает ее
размеры. Табличная база данных Excel может иметь не более 1 048 575 записей
(поскольку верхняя строка предназначена для названий полей) и 16 384 полей (по
одному на столбец).
•
Внешняя база данных. Данные хранятся вне Excel, например в файле программы
Access или базе данных SQL Server.
Если указатель наведен на ячейку рабочего листа табличной базы данных, Excel рас­
познает ее и по возможности отображает названия полей. Например, если навести указа­
тель ячейки на базу данных рабочего листа и выбрать команду Данные^Сортировка и
фильтр^Сортировка, Excel позволит выбрать столбцы, на основе которых будут сор­
тироваться записи.
Особенно полезна функция фильтрации. Она позволяет отображать только те записи,
которые нужны в данный момент. Когда режим фильтрации включен, вы можете от­
фильтровать данные, выбрав значения из раскрывающихся списков. Для вывода списков
фильтрации выберите команду Данные^Сортировка и фильтр^Фильтр. Строки, ко­
торые не удовлетворяют критерию фильтра, скрываются. Пример выполнения фильтра­
ции показан на рис. 1.12.
Если хотите, можете воспользоваться традиционным расширенным фильтром Excel,
использующим диапазон условий. Для этого в группе Сортировка и фильтрация
вкладки Данные щелкните на кнопке Дополнительно.
Перекрестная ссылка
В главе 9 приведена дополнительная информация о списках и базах данных
рабочего листа.
Excel может автоматически вставлять (а также удалять) формулы промежуточных
итогов в таблицах, настроенных как база данных. Кроме того, Excel автоматически фор­
мирует структуру данных, чтобы вы могли видеть только промежуточные итоги на нуж­
ном уровне детализации.
Структура таблицы
Режим структуры таблиц особенно удобен при работе с иерархически упорядочен­
ными данными, например бюджетными сведениями. Excel может создать подходящую
структуру автоматически, исходя из формул таблицы (для этого используется команда
Глава 1. Знакомство с Excel
61
Промежуточный итог, находящаяся в группе Структура вкладки Данные). После того
как структура будет создана, ее можно сворачивать и разворачивать, чтобы отображать
различные уровни детализации. На рис. 1.13 показан пример структуры рабочего листа.
Рис. 1.12. Функция фильтрации облегчает просмотр записей, которые удовлетворяют задан­
ному критерию
Рис. 1.13. Excel может автоматически вставлять промежуточные форму­
лы и создавать структуру данных
Управление сценариями
Управление сценариями — это процесс сохранения входных величин, которые со­
ставляют определенную модель. Например, вы подготовили прогноз сбыта продукции.
Этот прогноз может включать сценарии наиболее благоприятного, наименее благопри­
ятного и наиболее вероятного сценариев развития событий.
Наиболее эффективно управление сценариями осуществляет диспетчер сценариев.
Учитывайте, что Excel может решать только самые простые задачи управления сцена­
62
Часть I. Основные сведения
риями. Тем не менее использовать функцию управления сценариями Excel гораздо удоб­
нее, чем пытаться согласовать несколько сценариев вручную.
Сводные таблицы
Сводные таблицы — довольно мощное инструментальное средство Excel. Они позво­
ляют отображать сводные данные в любой форме. Данные для сводной таблицы можно
взять из табличной или внешней базы данных и хранить в специальном кеше. В резуль­
тате программа быстро пересчитает данные в случае изменения сводной таблицы.
Перекрестная ссылка
Глава 18 содержит дополнительную информацию о сводных таблицах.
“Спутником” сводных таблиц являются сводные диаграммы. Они позволяют связы­
вать диаграмму со сводной таблицей.
Средства проверки данных
Excel предоставляет возможность проверки данных. Проверка поможет выявить
ошибки или разобраться в неизвестной таблице. Воспользоваться этой функцией можно
с помощью команды Формулы^Зависимости формула Проверка наличия ошибок.
Перекрестная ссылка
Более полная информация о функциях проверки данных программы Excel
содержится в главе 21.
Надстройка “Поиск решения”
Для выполнения специализированных линейных и нелинейных задан служит надстрой­
ка “Поиск решения”. Она занимается разрешением вопросов, связанных с анализом ситуа­
ций типа “что-если”, основываясь на изменяемых ячейках, целевых ячейках и, возможно,
ячейках, значения которых должны быть минимизированы или максимизированы.
Средства защиты
В Excel существует несколько средств защиты данных. Например, можно защитить
формулы от перезаписи или изменения, защитить структуру рабочей книги, а также за­
щитить код VBA.
Защита формулы от перезаписи
Нередко возникает необходимость защитить формулы от перезаписи или изменения.
Для этого нужно разблокировать ячейки, для которых вы собираетесь разрешить измене­
ния, а затем защитить рабочий лист. Вначале выделите ячейки, которые разрешено изме­
нять, и выберите команду Главная^Ячейки^Формат^Блокировать ячейку, чтобы раз­
блокировать выделенные ячейки. Затем выберите команду Главная^Ячейки^Формат^
Защитить лист. Откроется диалоговое окно Защита листа, в котором при желании мож­
но задать пароль.
63
Глава 1. Знакомство с Excel
Примечание
По умолчанию все ячейки являются заблокированными. Однако блокировка
и разблокировка ячеек бессмысленна, если не защищен рабочий лист.
Когда вы защищаете рабочий лист, диалоговое окно Защита листа (рис. 1.14) позво­
ляет выбрать и те элементы, которые не должны защищаться. Например, можно разре­
шить пользователям сортировать данные или использовать автофильтр при работе с за­
щищенным листом (в предыдущих версиях программы это было невозможно).
Рис. 1.14. В этом диалоговом окне
выберите, какие элементы следует
защитить
Существует возможность скрыть формулы так, чтобы они не отображались в строке
формул Excel, когда ячейка активна. Для этого выделите ячейки с формулами и нажмите
клавиши <Ctrl+l>. В открывшемся диалоговом окне Формат ячейки перейдите во
вкладку Защита и установите флажок Скрыть формулы.
Защита структуры рабочей книги
Защитить структуру рабочей книги означает запретить добавление и удаление листов.
Для этого выберите команду Рецензирование^Изменения^Защитить книгу. В от­
крывшемся диалоговом окне (рис. 1.15) установите флажок структуру. Если также уста­
новить флажок окна, станет невозможным перемещение и изменение размеров окна ра­
бочей кйиги.
©
Предупреждение
Не забывайте о том, что функции защиты Excel несовершенны. Даже если
установлен пароль, защитить компоненты книги удастся только от рядовых
пользователей. Тот, кто действительно заинтересован в том, чтобы взло­
мать защиту вашей книги, скорее всего, добьется желаемого результата
с помощью существующих программ взлома паролей.
Защита рабочей книги паролем
В дополнение к защите отдельных листов и структуры книги можно установить пароль
на ее открытие. Для этого выберите команду Файл^Сведения^Защитить книгу^
64
Часть I. Основные сведения
Зашифровать паролем. В открывшемся диалоговом окне (рис. 1.16) задайте пароль
открытия рабочей книги.
Рис. 1.15. Диалоговое окно За­
щита структуры и окон
Рис. 1.16. В диалоговом окне Шифро­
вание документа рабочую книгу можно
защитить паролем
Глава
Знакомство
с формулами
В этой главе...
♦ Ввод и редактирование формул
♦ Использование операторов в формулах
♦ Порядок вычисления формул
♦ Ссылки на ячейки и диапазоны ячеек
♦ Создание точной копии формулы
♦ Преобразование формул в значения
♦ Сокрытие формул
♦ Ошибки в формулах
♦ Работа с циклическими ссылками
♦ Функция подбора параметра
Эта глава является своего рода введением в такую обширную тему, как использова­
ние формул в Excel. Несмотря на то что изложенная информация в первую очередь адре­
сована начинающим пользователям Excel, некоторые сведения могут оказаться полез­
ными даже опытным пользователям.
Ввод и редактирование формул
В данном разделе описаны основные элементы формул. Кроме того, вы ознакомитесь
с различными способами ввода и редактирования формул.
Часть I. Основные сведения
66
Элементы формул
Формула, вводимая в ячейку, может состоять из пяти типов элементов.
•
Операторы. Символы, такие как “+” (сложение) и
(умножение).
•
С сы лки на ячейки. В эту категорию входят именованные ячейки и диапазоны,
относящиеся к текущему рабочему листу, ячейкам другого листа текущей книги и
даже ячейкам листа другой рабочей книги.
•
Значения и текстовы е строки. Например, 7 , 5 или " Р е з у л ь т а т ы н а к о н е ц
года".
•
Ф ункции и аргументы функций. К этой категории относятся такие функции, как
СУММ, СРЗНАЧ и др., а также их аргументы.
•
Скобки. Задают порядок выполнения операций в формуле.
Ввод формул
Когда вы вводите в пустую ячейку знак равенства, программа воспринимает следующую
за этим знаком запись как формулу. В Excel формулы всегда начинаются со знака равенства.
В начале формулы допускается также использование знаков “плюс” и “минус”. Однако Excel
автоматически вставит знак равенства, как только вы закончите вводить формулу.
Excel также воспринимает символы, привычные для пользователей Lotus 1-2-3
(например, “собачка” — @). Этот символ может открывать формулу, которая начинается
с функции. Например, программа распознает обе приведенные ниже формулы:
=СУММ(А 1 :А2 0 0)
@СУММ(А 1 :А2 0 0)
Однако после ввода второй формулы программа автоматически заменит символ @ на
знак равенства. Ввести формулу в ячейку можно двумя способами: вручную или указав
ссылки на ячейки. Оба метода описаны в следующих разделах.
Ручной ввод формул
Ручной ввод формул означает, что вы просто активизируете ячейку и вводите в ней знак
равенства (=), а за ним — саму формулу. Вводимые символы одновременно отображаются в
ячейке и в строке формул. При вводе формул, конечно же, можно использовать клавиши,
предназначенные для редактирования. Закончив вводить формулу, нажмите <Entei>.
Примечание
Исключение составляют формулы массивов. По окончании ввода формул
массива следует нажать комбинацию клавиш <Ctrl+Shift+Enter>. О формулах
массивов речь пойдет в части IV.
После нажатия клавиши <Enter> в ячейке будет отображаться результат выполнения
формулы. Сама же формула будет отображена в строке формул, когда активизирована
соответствующая ячейка.
Ввод формул с указанием ссылок на ячейки
Этот способ также предполагает ручной ввод некоторых элементов. Вместо того что­
бы вводить номера ячеек вручную, можно указать ячейки. Например, чтобы ввести фор­
мулу =А1+А2 в ячейку АЗ, необходимо выполнить следующее.
Глава 2. Знакомство с формулами
67
1. Выделите ячейку АЗ.
2. Введите знак равенства (=). Обратите внимание на то, что в левой части строки
состояния Excel отображается слово Ввод.
3. Дважды нажмите клавишу <Т>, в результате чего вокруг ячейки появится дви­
жущаяся рамка. Ссылка на ячейку А1 будет отображена в ячейке АЗ и в строке
формул. Обратите внимание и на слово Укажите в строке состояния.
Если вы предпочитаете использовать мышь, наведите указатель на ячейку А1
и щелкните мышью.
4. Введите знак “плюс” (+)• Движущаяся рамка исчезнет, а в строке состояния снова
появится Ввод.
5. Еще раз нажмите клавишу со стрелкой “вверх”. К формуле будет добавлено слово А2.
Если вы предпочитаете использовать мышь, наведите указатель на ячейку А2
и щелкните кнопкой мыши.
6. Завершив ввод формулы, нажмите <Enter>. Как и при ручном вводе, результат
выполнения формулы будет отображен в ячейке. Формула отображается в строке
формул, когда ячейка с формулой активна.
Если длинная формула не помещается в строке формул, наведите указатель на
значок с изображением “галочки”, расположенный рядом со строкой формул,
и щелкните на нем. Строка формул будет развернута.
Задавать ссылки на ячейки менее утомительно, чем вводить номера ячеек вручную,
к тому же практически всегда это позволяет избежать неточностей.
Вставка имен
В главе 3 речь пойдет о том, как присвоить имя ячейке или диапазону. Например,
чтобы присвоить имя ячейке, щелкните на ней правой кнопкой мыши и выберите коман­
ду Присвоить имя. Если в формуле используются именованные ячейки или диапазоны,
то можно задать имя вместо адреса. Имя следует выбрать из списка, тогда программа
автоматически вставит его в формулу.
Для вставки имени в формулу поместите курсор в то место формулы, в котором
должно находиться имя, а затем воспользуйтесь любым из следующих методов.
•
Нажмите клавишу <F3>, чтобы открыть диалоговое окно вставки имени. Выбери­
те имя из списка и щелкните на ОК.
•
Выберите команду Формулы^Определенные именам Использовать в формуле.
В открывшемся списке имен выберите нужное имя, и оно будет вставлено в формулу.
•
Воспользуйтесь преимуществами функции автозавершения. При вводе очередной
буквы во время ввода формулы программа Excel отображает список подходящих
вариантов имен и функций. С помощью клавиши <i> выберите нужное имя, а за­
тем нажмите <ТаЬ>, чтобы вставить имя в формулу.
Пробелы и разрывы строк
Чаще всего формулы не имеют пробелов. Однако при вводе формул все же можно
использовать пробелы и даже разрыв строки. Пробелы и разрывы строк упрощают чте­
Часть I. Основные сведения
68
ние данных и при этом не влияют на результат формулы. Для того чтобы задать разрыв
строки, нажмите комбинацию клавиш <Alt+Enter>. На рис. 2.1 показана формула, в ко­
торой использованы пробелы и разрывы строк.
Рис. 2.1. В этой формуле использованы пробелы
и разрывы строки
Совет
Чтобы в строке формулы отображалось несколько строк, перетащите ее
нижнюю границу вниз.
Допустимый размер формулы
Формула не может содержать более чем 8000 символов. Если необходима формула,
количество символов в которой превышает предельно допустимое, разделите ее на не­
сколько формул. При желании можете создать пользовательскую функцию на языке
VBA, количество символов в которой не ограничено.
Перекрестная ссылка
О том, как создавать пользовательские функции, читайте в части 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
В следующей формуле используется функция СУММ, с помощью которой склады­
ваются значения ячеек диапазона А 1 : А12:
=СУММ(А1:А 1 2 )
•
А эта формула сравнивает значения ячеек А1 и С12 с помощью оператора =. Если
значения обеих ячеек равны, формула возвратит результат ИСТИНА; в противном
случае результатом будет ЛОЖЬ.
=А1=С12
•
Эта формула вычитает значение ячейки ВЗ из значения ячейки В2, а затем умно­
жает результат вычитания на значение ячейки В4:
= (В 2-В З )*В 4
Редактирование формул
Если необходимо внести изменения в рабочий лист, вам, возможно, придется редак­
тировать формулы. Если же формула возвращает одно из значений ошибки (описанных
далее), то ее необходимо исправить. Отредактировать формулу можно так же, как и зна­
чение любой другой ячейки.
Режим редактирования ячейки активизируется несколькими способами.
•
Дважды щелкните на ячейке. Это позволит внести изменения непосредственно
в ячейке. Данный способ работает только в том случае, если во вкладке Дополни­
тельно диалогового окна параметров программы установлен флажок Разрешить
•
Щелкните на ячейке и нажмите клавишу <F2>. В результате вы сможете ре­
дактировать содержимое непосредственно в ячейке. Если же флажок Разрешить
редактирование в ячейках снят, редактирование будет осуществляться в строке
формул.
•
Выделите ячейку с формулой, подлежащей редактированию, и щелкните мы­
шью в строке формул. После этого приступайте к редактированию в строке формул.
редактирование в ячейках.
В режиме редактирования формулы можно выделить несколько символов, проведя по
ним указатель мыши. То же можно сделать, нажимая клавиши стрелок при нажатой клави­
ше <Shift>. Если нужно выделить фрагмент формулы от положения курсора до начала или
конца текущей строки, нажмите, соответственно, клавиши <Shift+Home> или <Shift+End>.
Совет
Предположим, в длинной формуле присутствует ошибка. Программа не по­
зволит работать с данной формулой. Не сможете вы также перейти к другой
ячейке, потому что при каждой попытке выйти из ячейки будет появляться
диалоговое окно с сообщением об ошибке. В таком случае рекомендуется
преобразовать формулу в текст и вернуться к ней позже. Для того чтобы
преобразовать формулу в текст, просто удалите знак равенства (=). Когда вы
захотите разобраться с этой формулой, снова вставьте знак равенства,
и содержимое ячейки будет автоматически преобразовано в формулу.
70
Часть I. Основные сведения
Использование строки формул в качестве калькулятора
Если необходимо выполнить вычисления, можете использовать строку формул в ка­
честве калькулятора. Например, введите в ячейку следующую формулу:
=(145*1,05)/12
Такая формула всегда возвращает один и тот же результат, поэтому имеет смысл
сохранить результат вычисления, а не саму формулу. Нажмите <F2> и отредактируйте
содержимое ячейки. Затем нажмите <F9> и <Enter>. Excel сохранит результат вычис­
ления ( 1 2 , 6 8 7 5 ) , а не саму формулу. Этот прием работает и в том случае, если в фор­
муле используются ссылки на ячейки.
Применение описанного подхода особенно эффективно при работе с функциями
рабочего листа. Например, для того чтобы поместить в ячейку квадратный корень из
2 2 1 , введите = к о р е н ь ( 2 2 1 ) , нажмите <F9> и <Enter>. Excel вернет результат:
1 4 , 8 6 6 0 6 8 7 4 7 3 1 8 5 . Таким способом вы можете вычислить значение определенной
части формулы. Рассмотрим такой пример:
= ( 1 4 5 * 1 , 0 5 ) /А1
Если хотите заменить выражение в скобках определенным значением, войдите в ре­
жим редактирования ячеек и выделите ту часть формулы, значение которой необходимо
вычислить. В данном случае следует выделить 1 4 5 * 1 , 0 5 . Затем нажмите <F9> и <Enter>.
Excel изменит формулу таким образом:
= ( 1 5 2 , 2 5 ) / А1
Использование операторов в формулах
Как уже отмечалось, оператор — основной элемент формулы. Оператор — это символ,
обозначающий операцию. В табл. 2.1 перечислены поддерживаемые в Excel операторы.
Таблица 2.1. Операторы в формулах Excel
Символ Оператор
+
/
★
%
&
л.
=
>
<
>=
<=
О
Сложение
Вычитание
Деление
Умножение
Процент
Конкатенация (объединение последовательностей символов в одну строку)
Возведение в степень
Логическое сравнение (равно)
Логическое сравнение (больше)
Логическое сравнение (меньше)
Логическое сравнение (больше или равно)
Логическое сравнение (меньше или равно)
Логическое сравнение (не равно)
Символ процента (%) не является оператором, но в Excel его функциональность аналогич­
на оператору. Ввод символа процента после числа приводит к делению этого числа на 100.
Если значение не является частью формулы, ячейке будет присвоен процентный формат.
Глава 2. Знакомство с формулами
71
Операторы ссылки
Excel поддерживает еще один класс операторов — так называемые операторы ссыл­
ки. Операторы ссылки, перечисленные в табл. 2.2, используются в ссылках на ячейки.
Таблица 2.2. Операторы ссылки
Символ
Оператор
: (двоеточие)
Оператор диапазона. Используется для ссылки на все ячейки ме­
жду крайними ячейками диапазона включительно.
Оператор объединения. Объединяет несколько ссылок на ячейки
или диапазоны в одну ссылку.
Оператор пересечения. Создает ссылку на ячейки, общие для
двух ссылок.
; (точка с запятой)
(одиночный пробел)
Примеры формул с операторами
В представленных далее примерах формул использованы различные операторы.
•
Приведенная ниже формула объединяет две строки текста в новую строку
Ч а с т ь - 2 3 А. Операция объединения строк называется конкатенацией.
= иЧасть-"&"23А"
•
Следующая формула объединяет содержимое ячеек А1 и А 2 :
=А1&А2
•
Обычно конкатенация применяется при управлении текстовыми строками. Однако
этот оператор может быть использован и для объединения цифровых значений.
Например, если ячейка А1 содержит значение 1 2 3 , а ячейка А2 — значение 4 5 6 ,
приведенная выше формула вернет значение 1 2 3 4 5 6 . Обратите внимание: фор­
мально результат представляет собой текстовую строку, и тем не менее эта строка
воспринимается программой Excel как числовое значение (если будет использова­
на в математической формуле). В то же время многие функции Excel будут игно­
рировать это “число”, поскольку они настроены на игнорирование текста.
•
В следующей формуле оператор возведения в степень используется для возведе­
ния 6 в третью степень. Результат операции — 216.
=бАз
•
Приведенная выше формула имеет и более удобный вариант, в котором вместо
константы используется ссылка на ячейку. В следующем примере значение ячейки
А1 возводится в третью степень:
=А1а З
•
Данная формула возвращает кубический корень из 216 (т.е. число 6):
=2 1 6 А ( 1 / 3 )
•
Следующая формула возвращает значение ИСТИНА, если значение ячейки А1
меньше значения ячейки А2. В противном случае результат — ЛОЖЬ.
=А1<А2
Операторы логического сравнения могут быть использованы и при работе с тек­
стом. Если А1 содержит значение А льф а, а А2 — значение Гамма, данная фор­
72
Часть I. Основные сведения
мула вернет значение ИСТИНА, поскольку в алфавитном порядке значение Альфа
предшествует значению Гамма.
•
Следующая формула возвращает ИСТИНА, если значение ячейки А1 меньше или
равно значению ячейки А2. В противном случае результат будет ЛОЖЬ.
=А1 <= А2
•
Следующая формула возвращает ИСТИНА, если значение ячейки А1 не равно зна­
чению ячейки А2. В противном случае результатом будет ЛОЖЬ.
=А1< >А2
•
В отличие от некоторых других электронных таблиц (например, Lotus 1-2-3), в Ex­
cel нет логических операторов И и ИЛИ. Вместо них используются одноименные
функции. К примеру, следующая формула возвращает значение ИСТИНА, если
ячейка А1 содержит значение 100 или 1000:
=ИЛИ(А1 = 1 0 0 ; А1 = 1 0 0 0 )
•
Последняя формула возвращает значение ИСТИНА только в том случае, если обе
ячейки — А1 и А2 — содержат значения, меньшие 100.
= И (А 1<100;А 2 < 1 0 0 )
Приоритет операторов
В формулах можно (и рекомендуется) использовать скобки, чтобы контролировать
порядок выполнения вычислений. В качестве примера рассмотрим следующую формулу,
которая содержит ссылки на именованные ячейки:
=Доход-Расход*Налог
Эта формула предназначена для того, чтобы вычесть значение расходов из значения
доходов и затем умножить результат на величину налоговой ставки. Если вы введете
формулу в том виде, в котором она приведена выше, Excel выдаст некорректный резуль­
тат. Программа умножит расходы на процентную ставку, а результат вычтет из дохода.
Правильный результат вернет формула, записанная следующим образом:
= (Доход-Расход)*Налог
Для того чтобы понять принцип, в соответствии с которым следует расставлять скоб­
ки, необходимо ознакомиться понятием приоритетов. Приоритет операторов — это на­
бор правил, определяющих последовательность выполнения операций. Изучив табл. 2.3,
вы узнаете, какой приоритет имеет каждый из операторов Excel. Чем выше в табл. 2.3
приведен оператор, тем выше его приоритет. К примеру, умножение выполняется рань­
ше вычитания.
Таблица 2.3. Приоритет операторов Excel
Символ
Оператор
: (двоеточие)
, (запятая)
(пробел)
%
Оператор ссылки
Отрицательное значение
Процент
Возведение в степень
Глава 2. Знакомство с формулами
73
Окончание табл. 2.3
Символ
Оператор
* и/
+и &
=, с, >, <=, >=, И о
Умножение и деление
Сложение и вычитание
Объединение строк (конкатенация)
Сравнение
Скобки используются для изменения последовательности выполнения операций. Воз­
вращаясь к приведенному выше примеру, заметим, что вычисления в формуле без скобок
выполняются согласно правилам приоритета операторов Excel. Операция умножения
имеет более высокий приоритет, чем операция вычитания, поэтому программа вначале
умножает расходы на ставку налога, после чего вычитается результат из дохода. В ре­
зультате формула возвращает некорректный результат.
В правильном варианте формулы используются скобки, что и позволяет контролиро­
вать порядок выполнения действий. Вначале всегда выполняются те части формулы, ко­
торые заключены в скобки. В данном примере значение расходов вычитается из значе­
ния доходов, после чего результат умножается на величину налоговой ставки.
Вычитание и отрицательное значение
Символ “минус” (-) может ввести в заблуждение по той причине, что он обозначает
два разных оператора: вычитание и отрицательное значение числа. Рассмотрим сле­
дующую формулу:
=- 3 * 2
Формула возвращает значение 9, а не - 9 . В данном случае знак “минус” обозначает
отрицательное значение и обладает более высоким приоритетом, чем возведение в
степень (согласно табл. 2.3). Таким образом, отрицательное число возводится в квад­
рат, в результате чего получается положительное число. Чтобы эта формула была более
понятной, ее можно записать так:
=(-3)*3
Если же нужно, чтобы сначала был выполнен оператор возведения в квадрат, запи­
шите формулу так:
=-(3*2)
Данный пример демонстрирует важность использования скобок, даже если они не
влияют на результат, возвращаемый формулой.
Вложенные скобки
Скобки в формулах можно вкладывать, т.е. помещать внутрь других скобок. Если
в формуле используются вложенные скобки, Excel вычислит сначала выражение, нахо­
дящееся внутри скобок с наибольшей глубиной вложения. Ниже приведен пример фор­
мулы со вложенными скобками.
= ( ( В 2 * С 2 ) + ( В З * С З ) + ( В 4 * С 4 ) ) *В6
В этой формуле четыре пары скобок, три из которых вложены в четвертую. Про­
грамма вычисляет значения выражений, находящихся во вложенных скобках, суммирует
эти значения, а затем умножает результат на значение ячейки Вб.
74
Часть I. Основные сведения
Скобки в формулах рекомендуется' использовать даже в том случае, когда нет необ­
ходимости изменять порядок вычислений, определяемый приоритетами операторов.
Скобки разъясняют порядок выполнения операций, делая формулу более понятной. На­
пример, если нужно прибавить единицу к результату умножения значений двух ячеек,
следующая формула, конечно же, справится с задачей:
=А1*А2+1
Однако порядок выполнения действий в следующем варианте записи формулы
(с лишними скобками) будет более очевиден:
= (А1*А2)+1
©
Совет
Каждая открывающая (левая) скобка, естественно, должна иметь парную ей
закрывающую (правую) скобку. Если в формуле присутствует несколько
скобок разной глубины вложения, контролировать пары скобок нелегко.
К счастью, Excel поможет проследить за скобками в формулах. Соответст­
вующие друг другу скобки выделяются одинаковым цветом. Правда, если
существует множество пар вложенных скобок, различие в цветах будет
сложно проследить. Кроме того, если над некоторой скобкой в формуле по­
местить указатель мыши, Excel на мгновение выделяет ее и соответствую­
щую ей парную скобку полужирным начертанием. Этот эффект длится
меньше секунды, так что будьте внимательны.
Если в формуле имеются непарные скобки, Excel в некоторых случаях может пред­
ложить варианты исправления ошибки. На экране иногда даже появляется функция ав­
томатического исправления ошибок в формулах (рис. 2.2).
Рис. 2.2. Функция автоматического исправления ошибок Excel предлагает
методы устранения ошибок в формулах
Ф
Предупреждение
Внимательно проверяйте предлагаемую в диалоговом окне коррекцию форму­
лы. Во многих случаях предлагаемая формула, несмотря на свою синтаксиче­
скую корректность, может оказаться логически некорректной. В примере, ис­
пользованном для получения рис. 2.2, в формуле была пропущена закрывающая
скобка после имени диапазона квартал1. На рис. 2.2 программа предложила
следующее исправление формулы: =сумм(квартал 1 / сумм(г о д ) ). Совершен­
но очевидно, что корректной формулой вычисления доли доходов в первом
квартале в доходах за год является следующая:
=СУММ(квартал!)/СУММ(год)
Глава 2. Знакомство с формулами
75
Не задавайте жестко закодированных значений
Создавая формулу, дважды подумайте, прежде чем использовать в ней константы.
Например, если формула предназначена для вычисления суммы 7,5-процентного нало­
га с оборота, вы можете записать ее так:
=А1*, 0 7 5
Однако разумнее ввести значение процентной ставки в ячейку и, вместо цифрового
значения, использовать ссылку на эту ячейку. Это упростит корректировку и дальней­
шую работу с листом. Например, если процентная ставка изменится до 7,75%, вам не
придется изменять каждую формулу, в которой было использовано устаревшее значе­
ние. Найти все такие формулы — непростая задача. Если же значение процентной став­
ки хранится в ячейке, все, что нужно будет сделать, — это изменить значение однойединственной ячейки. В результате будут обновлены все формулы, в которых использу­
ется ссылка на эту ячейку.
Порядок вычисления формул
Вероятно, вы заметили, что вычисление формулы происходит сразу же после ее вво­
да. Если изменить значения ячеек, используемых в формуле, то последняя отобразит но­
вый результат без малейших усилий с вашей стороны. Но так происходит только в том
случае, если в раскрывающемся списке Формулы^Вычисление^Параметры вычис­
лений установлено значение Автоматически. При вычислении формул в этом режиме
(установленном по умолчанию) Excel следует таким правилам.
•
Когда пользователь вносит изменения (например, вводит или редактирует данные
или формулы), Excel сразу же пересчитывает те формулы, которые зависят от но­
вых или измененных данных.
•
Производя длительные расчеты, Excel временно приостанавливает вычисление
в том случае, если пользователь выполняет какие-либо действия в программе; вы­
числение возобновляется, когда пользователь заканчивает свои действия.
•
Формулы вычисляются в естественном порядке. Например, если формула, распо­
ложенная в ячейке D12, зависит от результата вычисления формулы ячейки D11,
ячейка D11 будет вычисляться раньше ячейки D12.
Иногда необходимо управлять процессом пересчета формул. Например, если вы соз­
даете рабочий лист с тысячами сложнейших формул, вам придется ждать целую веч­
ность, пока Excel вычислит значения всех формул. В этом случае целесообразно вклю­
чить ручной режим вычисления. Для этого в упомянутом выше раскрывающемся списке
Параметры вычислений выберите значение Вручную.
В ручном режиме вычисления Excel отображает в строке состояния слово Вычислить;
однако это происходит только в том случае, если в рабочем листе остались не вычисленные
формулы. В группе Вычисление вкладки Формулы для пересчета предназначены две ко­
манды: Пересчет и Произвести вычисления. Первая из команд выполняет пересчет всей
книги, а вторая— только активного рабочего листа. Также для пересчета формул можно
использовать следующие комбинации клавиш.
•
<F9>. Вычисляет формулы во всех открытых рабочих книгах (аналогично коман­
де Пересчет).
•
<Shift+F9>. Вычисляет формулы только активного рабочего листа. Другие листы той
же книги не пересчитываются (аналогично команде Произвести вычисления).
76
Часть I. Основные сведения
•
<Ctrl+Alt+F9>. Производит полный пересчет во всех открытых рабочих книгах.
Используйте эту комбинацию клавиш, если Excel по той или иной причине воз­
вращает неправильные значения.
•
<Ctrl+Shift+Alt+F9>. Перепроверяет все зависимые формулы, а затем производит
полный пересчет во всех открытых рабочих книгах.
Предупреждение
Режим вычисления Excel относится не только к тому рабочему листу, при работе
с которым был применен, — изменение режима отражается на всех открытых
рабочих книгах, а не только на активной. Исходным режимом вычисления стано­
вится тот режим, который сохранен в первой открытой вами рабочей книге.
Ссылки на ячейки и диапазоны ячеек
Во многих формулах используются ссылки на одну или несколько ячеек. В ссылке
указывается адрес (номер) ячейки или диапазона. Также можно указать имя, если это
именованная ячейка или диапазон. Существует четыре типа ссылок. Различить их помо­
жет знак доллара.
•
Относительные: ссылка полностью относительна. При копировании формулы
ссылка на ячейку обновляется в соответствии с новыми ячейками. Пример: А1.
•
Абсолютные: ссылка полностью абсолютна. При копировании формулы в другую
ячейку ссылка не изменяется. Пример: $А$1.
•
Абсолютная строка: ссылка частично абсолютна. При копировании формулы
изменяется только часть ссылки, относящаяся к столбцу. Та часть, которая отно­
сится к строке, остается неизменной. Пример ГА$1.
•
Абсолютный столбец: ссылка частично абсолютна. При копировании формулы
изменяется только часть ссылки, относящаяся к строке. Та часть, которая отно­
сится к столбцу, остается неизменной. Пример: $А1.
Создание абсолютных и смешанных ссылок
При создании формулы все ссылки на ячейки и диапазоны в ней по умолчанию явля­
ются относительными. Для того чтобы ссылка стала абсолютной, вам придется вручную
расставить знаки доллара. Существует еще один способ: когда вводите адреса ячеек или
диапазонов, используйте клавишу <F4>. С ее помощью можно перебирать все возмож­
ные режимы ссылки.
Характер ссылки целесообразно изменять только в том случае, если вы планируете
копировать формулу.
На рис. 2.3 приведен пример использования абсолютных ссылок в формуле. В ячейке
D2 содержится формула, которая умножает количество (ячейка В2) на цену (ячейка С2)
и на ставку НДС (ячейка В7).
=В2*С2*$В$7
Ссылка на ячейку В7 является абсолютной. Когда формула из ячейки D2 копируется
в нижние ячейки, абсолютная ссылка $В$7 всегда указывает на ячейку со ставкой НДС.
Использование относительной ссылки В 7 привело бы при копировании к некорректным
результатам.
Глава 2. Знакомство с формулами
77
Рис. 2.3. Пример использования абсолютных ссылок в формуле
На рис. 2.4 продемонстрировано использование смешанных ссылок. Обратите внима­
ние на формулу в ячейке С 4 :
=$ВЗ*С$2
Эта формула вычисляет площадь для различной ширины (значения перечислены в
столбце В) и длины (значения перечислены в строке 2). Введенная формула может затем
быть скопирована вниз по столбцу и вдоль строки. Поскольку в формуле использованы
абсолютные ссылки на строку 2 и столбец В, каждая скопированная формула возвращает
правильный результат. Если бы в формуле применялись относительные ссылки, то при
копировании они бы изменились и был бы получен неправильный результат.
Рис. 2.4. Пример использования смешанной ссылки
Сравнение типов ссылок А1 и R1C1
По умолчанию Excel использует тип ссылок А1. Адрес каждой ячейки состоит из буквы
столбца и номера строки. Однако программа поддерживает и другую систему записи —
R1С1. В соответствии с этой системой, ячейка А1 имеет адрес R1С1, А2 — R2C1 и т.д.
Если необходимо использовать систему записи R1C1, откройте окно параметров
Excel, перейдите во вкладку Формулы и установите флажок Стиль ссылок R1C1. Теперь
обратите внимание, что столбцы в этом режиме обозначаются не буквами, а цифрами.
Изменятся также все ссылки на ячейки и диапазоны в формулах.
Обратите внимание на примеры записи формул в стандартной системе и в системе
R1C1. Предполагается, что формула расположена в ячейке В1 (или же R1C2).
Стандартная система
R1C1
=A1 + 1
=$А$1+1
=$А1+1
=А$1+1
=СУММ(А 1 :А10)
=СУММ($А$1: $А$10)
=RC[-1] +1
=R1C1+1
=RC1+1
=R1C[ - 1 ] + 1
=СУММ(RC [-1 ] :R [ 9 ] С [-1] )
=СУММ(R1C1:R10C1)
Часть I. Основные сведения
78
Если система R1C1 окончательно вас заОутала, вы не одиноки. Тип ссылок R1C1
удобно использовать при работе с абсолютными ссылками, чего нельзя сказать об от­
носительных.
Числа в скобках означают относительное расположение ссылок. К примеру,
R [ - 5 ] с [ - з ] указывает на то, что ячейка находится на пять строк выше и на три столбца
левее. Соответственно, R [ 5 ] c [ 3 ] ссылается на ячейку, расположенную на пять строк
ниже и на три столбца правее. Если опустить какую-либо из скобок, запись будет озна­
чать ячейку в том же столбце или строке. Например, R [ 5 ] с указывает на ячейку, распо­
ложенную на пять строк ниже в том же столбце.
Вполне возможно, что вы не будете использовать R1C1 в качестве основной системы
представления ячеек. Однако эта система имеет, по крайней мере, одно преимущество:
BR1C1 очень легко обнаружить формулу с ошибкой. При копировании формула в R1C1
остается неизменной независимо от типа ссылок (относительная, абсолютная или сме­
шанная). Поэтому советуем включить режим R1C1 для проверки скопированных формул.
Если одна из формул отличается от остальных, она, возможно, содержит ошибку.
Можно воспользоваться функцией фоновой проверки формул, которая помечает по­
тенциально некорректные формулы. О фоновой проверке формул речь пойдет в главе 21.
Создание ссылок на ячейки других листов и книг
В формуле могут использоваться ссылки на ячейки и диапазоны ячеек, расположенные
в других рабочих листах. Для того чтобы задать ссылку на ячейку другого листа, располо­
жите перед адресом ячейки имя листа и восклицательный знак. Рассмотрим следующий
пример формулы со ссылкой на ячейку другого рабочего листа с именем Л и с т 2:
= Л и с т 2 !А1+1
Можно создавать формулы и со ссылками на ячейки другой рабочей книги. Для этого
перед ссылкой на ячейку введите имя рабочей книги (в квадратных скобках), затем —
имя листа и восклицательный знак:
= [Бюджет. x l s ] Л и ст1 1А1+1
Если в имени рабочей книги присутствует один или несколько пробелов, имя книги
(и имя рабочего листа) следует заключить в одинарные кавычки, например:
= ' [Анализ бю дж ета. x l s ] Л и с т 1 ' !А1+1
Если рабочая книга, на которую задается ссылка, закрыта, необходимо добавить пол­
ный путь к файлу этой книги:
= ' С : \ M S O f f i c e \ E x c e l \ [Анализ бю дж е та. x l s ] Л и с т 1 ' IA1 + 1
Создать внешние ссылки можно также путем простого указания мышью на ячейки
(о данном методе говорилось ранее). Для этого файл источника должен быть открыт.
Создать формулу можно, указав результаты в относительных ссылках на ячейки. Но ко­
гда с помощью этого метода вы обращаетесь к ячейке другой рабочей книги, Excel соз­
дает абсолютные ссылки. Если планируете копировать формулу в другие ячейки, ссылки
необходимо преобразовать в относительные.
©
Предупреждение
При работе с внешними ссылками могут возникнуть неожиданные трудно­
сти. Например, если применить команду Файл^Сохранить как для того, что­
бы создать резервную копию книги-источника, связанные формулы автома­
тически изменятся, и ссылка будет указывать на новый файл (не тот, кото-
Глава 2. Знакомство с формулами
79
рый вам нужен). Путаница со ссылками может возникнуть и в случае пере­
именования файла книги-источника.
Создание точной копии формулы
При копировании формулы Excel автоматически изменяет ссылки на ячейки, когда
вы вставляете формулу в новую ячейку. Именно это чаще всего и нужно пользователю.
Однако бывают случаи, когда необходимо сделать точную копию формулы. Для этого
следует преобразовать относительные ссылки в абсолютные, как было описано ранее. Но
данный способ не всегда эффективен.
Удобнее выделить формулу в режиме редактирования, а затем скопировать ее в бу­
фер обмена как обыкновенный текст. Существует несколько способов выполнения этой
задачи. Выполнив следующую пошаговую инструкцию, вы создадите точную копию
формулы, расположенной в ячейке А1, и вставите ее в ячейку А2.
1. Дважды щелкните на ячейке А1 (или щелкните один раз и нажмите <F2>); вклю­
чится режим редактирования.
2. Для того чтобы выделить всю формулу, нажмите клавишу <Ctrl+Home>, а за­
т ем — комбинацию <Ctrl+Shift+End>. В результате будет выделен весь текст
формулы. Можно также провести по формуле указателем мыши, выделив таким
образом всю формулу. Следует отметить, что при выделении многострочных
формул нужно удерживать нажатой клавишу <Ctrl>.
3. Щелкните на кнопке Копировать вкладки Главная (или нажмите комбинацию
клавиш <Ctrl+C>). Выделенный текст будет скопирован в буфер обмена.
4. Для выхода из режима редактирования нажмите <Esc>.
5. Активизируйте ячейку А 2 .
6. Нажмите клавишу <F2>, чтобы переключиться в режим редактирования.
7. Щелкните на кнопке Вставить вкладки Главная (или нажмите комбинацию кла­
виш <Ctrl+V>). В результате точная копия формулы будет вставлена в ячейку А2.
Этот прием также используется и для копирования части формулы, которую можно
применить при создании другой формулы. Просто выделите ту часть формулы, которую
следует скопировать. Для этого проведите указателем мыши или используйте клавишу
<Shift> одновременно с клавишами стрелок. Затем выделенную часть формулы скопи­
руйте в буфер обмена любым из описанных выше способов. И наконец, вставьте текст
в другую ячейку.
Ссылки в формулах (или частях формул), скопированных таким образом, останутся
неизменными при вставке в другую ячейку, поскольку формула (или фрагмент формулы)
копируется как текст.
Существует еще один способ получения точной копии формулы. Отредактируйте
формулу, удалив знак равенства. В результате формула будет преобразована в текст.
Этот текст следует скопировать в новую ячейку, а затем добавить знаки равенства в ис­
ходную формулу и ее копию.
Часть I. Основные сведения
80
Преобразование формул в значения
Если на вашем рабочем листе используется набор формул, которые всегда возвраща­
ют один и тот же результат (это так называемые “мертвые формулы”), разумно преобра­
зовать их в значения. Для этого используется команда Вставить1^ Вставить значения
вкладки Главная.
Предположим, что диапазон А 1 : А7 содержит формулы, возвращающие неизменный
результат. Для того чтобы преобразовать эти формулы в значения, выполните следующее.
1. Выделите диапазон А 1 : А7.
2. Щелкните на кнопке Копировать вкладки Главная (или нажмите <Ctrl+C>).
3. Выберите команду Главная«=>Буфер обмена^Вставить^Вставить значения.
Таким образом вы вставляете копию в исходное место, но результатом вставки
будут не формулы, а значения.
4. Отмените режим вставки, нажав <Enter> или <Esc>.
Также можно воспользоваться услугами смарт-тега. В этом случае третьим пунктом
приведенной выше последовательности будет нажатие клавиш <Ctrl+V>. В правом ниж­
нем углу диапазона появится смарт-тег. Щелкните на нем и в разделе Вставить значе­
ния выберите элемент Значения (рис. 2.5).
Рис. 2.5. В Excel после вставки данных по­
является смарт-тег
Этот прием особенно эффективен в тех случаях, когда формулы используются для
преобразования ячеек. Предположим, в столбце А содержитоя список имен в верхнем ре­
гистре, а вы хотите, чтобы эти имена были записаны в нижнем регистре. Для этого необ­
ходимо создать формулы в отдельном столбце, затем преобразовать эти формулы в зна­
чения и заменить ими исходные значения столбца А. Чтобы достичь поставленной цели,
выполните следующее.
1. Вставьте новый столбец после столбца А.
2. В ячейку В1 поместите следующую формулу:
=ПРОПИСН(А 1 )
Глава 2. Знакомство с формулами
81
3. Скопируйте формулу вниз по столбцу В столько раз, сколько элементов содержит
столбец А. Теперь столбец В содержит значения столбца А, но в нужном регистре.
4. Выделите все имена столбца В.
5. Щелкните на кнопке Копировать, расположенной во вкладке Главная.
6. Выделите ячейку А1.
7. Выберите команду Главная1^ Буфер обмена^Вставить^Вставить значения.
8. Нажмите <Enter> или <Esc>, чтобы выйти из режима вставки.
9. Удалите столбец В.
Когда использовать автозавершение вместо формул
Функция автозавершения Excel позволяет быстро копировать содержимое ячейки
в смежные ячейки. Кроме того, она применяется не только для копирования в смежные
ячейки; в некоторых случаях автозавершение может заменить формулу. Удивляет тот
факт, что многие опытные пользователи Excel не применяют автозавершение, хотя эта
функция помогает сэкономить немало времени.
Например, создать список значений от 1 до ю о в диапазоне A i:A ioo можно, ис­
пользовав формулу. В ячейку А1 введите число 1, в ячейку А2 — формулу = a i+ i, а затем
скопируйте эту формулу в оставшиеся 98 ячеек диапазона.
Используя функцию автозавершения, иногда можно создавать ряды данных вообще
без формул. Для того чтобы заполнить упомянутый диапазон последовательностью от 1
до ю о, введите 1 в ячейку А1, а в ячейку А2 — 2. Затем выделите диапазон a i : А2 и пе­
ремещайте маркер автозавершения вниз до ячейки а ю о . (Маркер автозавершения —
это небольшой квадратик в правом нижнем углу активной ячейки или диапазона.) Когда
вы выполняете автозавершение таким образом, Excel анализирует содержимое выде­
ленных ячеек и использует полученную информацию для заполнения остальных ячеек
диапазона. Если ячейка a i содержит 1, а ячейка А2 — з, программа улавливает прин­
цип, по которому составляется последовательность, и заполняет остальные ячейки та­
ким образом: 5 , 7 , 9 и т.д. Тот же прием используется и для создания убывающих по­
следовательностей ( ю , 9 , 8 и т.д.) и списков дат. Если же программе не удается уста­
новить принцип, по которому составляется последовательность, Excel выполняет
линейную регрессию и вставляет значения в соответствии с полученным трендом.
Excel распознает такие общеизвестные списки, как названия месяцев года и дней
недели. Если вы введете Понедельник и начнете перемещать маркер автозавершения,
программа автоматически вставит в ячейки дни недели по порядку. Excel позволяет
создавать пользовательские списки автозавершения. Для этого в разделе Общие
вкладки Дополнительно окна параметров программы следует щелкнуть на кнопке Изме­
нить списки. И наконец, при перетаскивании маркера автозавершения с помощью пра­
вой кнопки мыши появляется контекстное меню, в котором можно выбрать необходи­
мую команду автозавершения.
Сокрытие формул
В некоторых случаях может возникнуть необходимость скрыть формулы (например,
чтобы никто не увидел специально разработанную вами формулу, использование кото­
рой приносит вашей компании прибыль). Скрыть формулы можно с помощью диалого­
вого окна Формат ячеек.
82
Часть I. Основные сведения
Для того чтобы сделать невозможным просмотр одной или нескольких формул, сле­
дуйте приведенной ниже инструкции.
1. Выделите формулу или формулы.
2. Щелкните правой кнопкой и выберите в контекстном меню команду Формат
ячеек (или нажмите <Ctrl+l>).
3. В открывшемся диалоговом окне перейдите во вкладку Защита.
4. Установите флажок Скрыть формулы (рис. 2.6).
5. Во вкладке Рецензирование ленты выберите команду Защитить лист.
Чтобы гарантировать прочность защиты, не забудьте в открывшемся диалоговом окне
установить пароль; в противном случае снять защиту сможет любой пользователь.
По умолчанию все ячейки заблокированы. Если лист защищен, никто не сможет из­
менить блокировку ячейки. Следовательно, перед тем, как защитить лист, вы должны
будете разблокировать ячейки, предназначенные для ввода информации пользователями.
Предупреж дение
Вы должны знать о том, что существуют программы взлома паролей рабочих
листов Excel. Следовательно, метод сокрытия формул не может гарантиро­
вать того, что защищенные формулы не увидит абсолютно никто.
Рис. 2.6. Скрыть формулы можно в диалоговом окне Формат ячеек
Ошибки в формулах
Нередко программа обнаруживает ошибку во вводимых формулах. В табл. 2.4. пере­
числены типичные ошибки, которые могут появиться в ячейке, содержащей формулу.
Формулы могут возвращать значения ошибки и в том случае, если в ячейке, ссылку
на которую содержит эта формула, присутствует значение ошибки. Это так называемый
эффект домино: одна-единственная ячейка, содержащая ошибку, может повлиять на
другие ячейки, в которых расположены зависимые от нее формулы.
Таблица 2.4. Типичные ошибки в Excel
Значение ошибки
#д е л / о
!
Пояснения
Формула пытается совершить операцию деления на нуль (что на
нашей планете строго запрещено). Это значение ошибки возни­
кает и в том случае, если формула пытается разделить значение
на пустую ячейку
Глава 2. Знакомство с формулами
83
Окончание табл. 2.4
Значение ошибки
Пояснения
#имя?
В формуле использовано имя, которое Excel не понимает. Это
может произойти в случае, если имя, используемое в формуле,
было удалено или в записи имени была допущена опечатка
Формула обращается (прямо или косвенно) к ячейке, в которой
используется функция нд, что служит сигналом обнаружения не­
определенных данных. Такое значение ошибки может появиться и
в том случае, если функция поиска не находит соответствия
Данная ошибка появляется в том случае, когда задано пересече­
ние двух диапазонов, в действительности не имеющих общих
ячеек (см. далее)
В формуле возникла проблема со значением. Например, отрица­
тельное значение введено там, где должно быть положительное
Ошибка появляется, когда используется недопустимая ссылка на
ячейку. Происходит это, например, когда ячейка, на которую ссы­
лается формула, удалена из рабочего листа
Ошибка появляется, когда используется недопустимый тип аргумен­
та или операнда. Операнд обращается к значению или ссылке на
ячейку, которые используются в формуле для вычисления значения
#н/д
#п у с т о
!
#числО!
#ссыл!
#з н а ч
!
Примечание
Если ячейка заполняется символами “решеток” (##########), то это, как
правило, означает, что ширина столбца не позволяет разместить значение.
В этом случае можно увеличить ширину столбца или изменить цифровой
формат ячейки. Символы “решетки” появляются в ячейке и в том случае, ко­
гда формула, находящаяся в ней, возвращает ошибочное время или дату.
Иногда радом с формулой, содержащей ошибку, отображается смарт-тег. Щелкнув на
нем, можно узнать, какая ошибка была допущена, и на каком этапе вычислений она поя­
вилась. Подробную информацию о смарт-тегах вы найдете в главе 21.
Работа с циклическими ссылками
Когда вы вводите формулы в Excel, программа может выдать сообщение, показанное
на рис. 2.7. Это сообщение говорит о том, что формула, которую вы только что ввели,
привела к появлению циклической ссылки.
Рис. 2.7. Таким образом Excel сообщает о наличии циклической ссылки
Циклическая ссылка появляется в случае, если формула содержит прямую или кос­
венную ссылку на собственное значение. Например, если в ячейку АЗ ввести значение
84
Часть I. Основные сведения
=А1, в ячейку ВЗ значение =АЗ, а в ячейку А1 значение =ВЗ, то будет создана цикличе­
ская ссылка, поскольку формулы образуют своеобразное кольцо, в котором каждая фор­
мула зависит от предыдущей. Каждый раз, когда вычисляется значение для АЗ, оно
влияет на формулу для ВЗ, что, в свою очередь, влияет на формулу для А1. Значение А1
повлияет на значение АЗ, и круг замкнется. Таким образом, вычисление будет происхо­
дить бесконечно долго, и формула никогда не сможет вернуть окончательный результат.
Если ввести формулу, содержащую циклическую ссылку, и нажать клавишу <Enter>,
чтобы зафиксировать формулу, Excel отобразит диалоговое окно с двумя кнопками: ОК
и Отмена (см. рис. 2.7).
Чтобы исправить циклическую ссылку, щелкните на кнопке ОК. После этого Excel
вставит на рабочий лист стрелки трассировки и откроет статью справки по циклическим
ссылкам. В строке состояния будет отображено Циклические ссылки:АЗ. Чтобы разре­
шить проблему циклической ссылки, выберите команду Формулы^Зависимости формул^Проверка наличия ошибок1^ Циклические ссылки и вы увидите список ячеек,
“вовлеченных” в циклические ссылки. Щелкните на каждой из ячеек и попытайтесь най­
ти ошибку. Если не можете определить, является ли данная ячейка причиной цикличе­
ской ссылки, перейдите к следующей ячейке в этом подменю. Продолжайте проверку
ячеек, пока в строке состояния не исчезнет сообщение Циклические ссылки.
Перекрестная ссылка
В редких случаях циклические ссылки вводятся преднамеренно. Некоторые
примеры использования циклических ссылок приведены в главе 16.
Совет
Вместо последовательного перехода по ячейкам в подменю Циклические
ссылки, щелкайте на стрелках трассировки, чтобы быстро переходить между
ячейками.
Если не отреагировать на замечание программы о появлении циклической ссылки
и щелкнуть на кнопке Отмена, Excel позволит зафиксировать формулу. В строке со­
стояния будет присутствовать сообщение, напоминающее о существовании циклической
ссылки. Если после этого начать работу в другом рабочем листе или книге, в напомина­
нии будет отсутствовать ссылка на ячейку.
Предупреждение
Если во вкладке Формулы окна параметров Excel установлен флажок Вклю­
чить итеративные вычисления, Excel не оповещает пользователя о появле­
нии циклической ссылки. Когда этот флажок установлен, Excel выполняет
циклические вычисления столько раз, сколько задано в поле Предельное
число итераций, или же пока изменение значения поля не станет меньше,
чем о, 001 (или любого другого значения, указанного в поле Относительная
погрешность). Рекомендую не устанавливать флажок Включить итеративные
вычисления. Тогда программа будет предупреждать вас о появлении цикли­
ческих ссылок. Ведь чаще всего существование циклической ссылки свиде­
тельствует об ошибке, которую необходимо исправить.
Как правило, причина циклической ссылки бывает очевидна — это ссылка ячейки са­
мой на себя; исправить такую ошибку достаточно легко. Для такого типа циклической
ссылки Excel не отображает стрелки трассировки. Но иногда вы будете сталкиваться
Глава 2. Знакомство с формулами
85
с косвенными циклическими ссылками, когда формула ссылается на другую формулу,
которая ссылается на третью формулу, содержащую ссылку на исходную формулу. В та­
ких случаях найти “виновника” циклической ссылки помогут стрелки трассировки.
Функция подбора параметра
Многие электронные таблицы содержат формулы, которые позволяют задавать во­
просы типа: “Какова будет сумма общей прибыли, если объем продаж вырастет на 20
процентов?”. Если формула задана правильно, то можно изменить значение одной ячей­
ки и увидеть, как изменится значение объема продаж в другой ячейке.
Функция подбора параметра достаточно эффективна при совместном применении
с формулами. Если известно, какой должен быть результат, программа сама подскажет
значения ячеек, необходимых для достижения этого результата. Иными словами, можно
задать такой вопрос: “На сколько процентов должен вырасти объем продаж, чтобы об­
щая прибыль составила 1,2 миллиона долларов?”.
Подбор параметра для одной ячейки — задача несложная. Excel определяет непо­
средственно в ячейке, какое значение должно быть введено в формулу, чтобы получился
ожидаемый результат. Ознакомиться с работой этой функции программы лучше всего,
рассмотрев конкретный пример.
Пример подбора параметра
На рис. 2.8 представлена таблица, предназначенная для расчета суммы займа. В этой
таблице— четыре ячейки для ввода данных (В 4:В 7) и четыре ячейки с формулами
(B IO : В 14). Формулы вычисляют различные значения, используя ячейки для ввода зна­
чений. В ячейках расположены следующие формулы.
Рис. 2.8. Эта таблица — пример исполь­
зования функции подбора параметра
Часть I. Основные сведения
86
Предположим, вы решили купить новую машину. Максимальная сумма, которой вы
располагаете, — 12000 рублей в виде ежемесячного платежа. Также известно, что заем
вам могут выдать с фиксированной ставкой — 6%, основываясь на процентном соотно­
шении суммы займа к стоимости заложенного имущества, составляющем 80% (размер
займа на 20 процентов меньше стоимости имущества). Вопрос состоит в следующем:
“Какова максимальная цена, по которой вы сможете купить новую машину?”. Иными
словами, какое значение в ячейке В4 приведет к результату 12 000 в ячейке В 12?
Можно подставлять разные значения в ячейку В4 до тех пор, пока в ячейке В 1 2 не поя­
вится результат 12 000. Однако лучше всего поручить подбор значения программе.
Для получения ответа на поставленный вопрос выберите команду Данные^Работа
с данными1^Анализ “что-если”1^ Подбор параметра. Откроется диалоговое окно, по­
казанное на рис. 2.9. Заполните это окно в следующей последовательности. Введите це­
левое значение 12 000, задайте в поле Установить в ячейке адрес В 1 2 (либо введя
ссылку, либо указав на ячейку мышью). Введите в поле Изменяя значение ячейки
ссылку на ячейку В 4. Щелкните на ОК, чтобы начать процесс подбора параметра.
Рис. 2.9. Диалоговое окно Подбор параметра (приведенный слева
результат появится после завершения работы с этим окном)
Excel практически мгновенно сообщит о том, что решение найдено, и откроет окно
Результат подбора параметра. В этом окне вы увидите подбираемое и текущее значе­
ния. В данном примере программа нашла точное значение. Оно автоматически помеще­
но в ячейку В4 (2 5 0 1 8 7 4 , 2 2 р .) . В результате получается желаемая оплата 12 ты­
сяч рублей в месяц. Диалоговое окно Результат подбора параметра предоставляет
следующие варианты выбора:
•
щелкните на кнопке О К, чтобы заменить исходное значение найденным;
•
щелкните на кнопке Отмена, и ваша таблица вернется к своему исходному состоя­
нию, в котором она находилась до использования функции подбора параметра.
Еще несколько слов о подборе параметра
Excel не всегда находит параметр, удовлетворяющий заданным условиям; иногда
подходящего значения просто не существует. В таком случае окно Результат подбора
параметра информирует о невозможности подбора параметра. Впрочем, Excel иногда
выводит сообщение о невозможности подбора параметра и в том случае, когда вы увере­
ны, что такой параметр существует. Тогда можно заменить текущее значение в изменяв-
Глава 2. Знакомство с формулами
87
мой ячейке на значение, более приближенное к решению, а затем применить команду
повторно. Если подобрать параметр не удается со второй попытки, то, скорее всего, вы
ошиблись в своих предположениях. Проверьте, действительно ли формула зависит от
ячейки с изменяемым значением.
Как и любая другая программа, Excel обеспечивает ограниченную точность вычисле­
ний. Для того чтобы в этом убедиться, введите в ячейку А2 формулу =А1 * 2 . Затем вы­
берите команду Анализ “что-если”1^ Подбор параметра и найдите такое значение
ячейки А1, чтобы результатом вычисления стало число 16. Excel вернет значение
4, 00002269, что лишь приблизительно равно квадратному корню из 16. Изменить точ­
ность вычислений можно во вкладке Формулы диалогового окна Параметры Excel
(следует уменьшить значение в поле Относительная погрешность).
В некоторых случаях желаемый результат дают несколько значений изменяемой
ячейки. Например, формула =А1>Ч2 возвращает 16, если ячейка А1 содержит либо -4 ,
либо +4. Если существует несколько подходящих значений параметра, Excel отображает
то из них, которое имеет тот же знак, что и текущее значение в ячейке, или то, которое
наиболее приближено к этому значению.
Пожалуй, самым существенным ограничением команды Подбор параметра являет­
ся то, что с ее помощью можно подобрать значение только для одной ячейки. Например,
программа не сможет рассчитать и максимальную цену, и процентную ставку при задан­
ной месячной оплате. Если нужно одновременно подобрать значения двух переменных,
используйте надстройку “Поиск решения”.
Глава
Имена
В этой главе...
♦ Что такое имя
♦ Область действия имен
♦ Диспетчер имен
♦ Способы присвоения имен ячейкам и диапазонам
♦ Создание многолистовых имен
♦ Работа с именами диапазонов и ячеек
♦ Поддержка имен ячеек и диапазонов
♦ Потенциальные проблемы с именами
♦ Ключ к пониманию термина “имя”
♦ Решение сложных задач с помощью формул
Большинство пользователей Excel знакомо с такими понятиями, как именованные ячей­
ки и диапазоны. Их использование дает значительные преимущества. Прочитав эту главу,
вы узнаете о различных типах имен, которые могут быть использованы в Excel. Возможно,
вы и не подозреваете о том, как именованные ячейки смогут помочь вам в работе.
Что такое имя
Имя можно рассматривать как идентификатор какого-либо элемента рабочей книги.
Имя присваивается таким элементам, как ячейка, диапазон, диаграмма, фигура и т.д.
Имя, присвоенное, например, диапазону, может затем использоваться в формулах. Пред­
положим, что диапазон В2 : В2 0 0 рабочего листа содержит информацию о дневном обо­
роте компании. В ячейке С1 задана ставка комиссионного сбора с продажи. В следую­
щей формуле сумма дневного оборота умножается на ставку комиссионного сбора:
=СУММ
(В2 : В2 0 0 ) *С1
Такая формула будет работать, однако смысл ее не очевиден. Для того чтобы форму­
ла стала понятной, следует назначить описательные имена диапазону, содержащему ин­
Часть I. Основные сведения
90
формацию о дневном обороте, и ячейке, в которой указана ставка комиссионного сбора.
Например, диапазону В 2:В 200 можно присвоить имя Д н е в н ы е П р о д а ж и , а ячейке
С1 — имя С т а в к а К о м и с с и о н н ы х . Теперь формулу необходимо переписать, используя
имена вместо адресов диапазона и ячейки.
=СУММ(ДневныеПродажи)*СтавкаКомиссионных
Как видите, формулу, в которой вместо ссылок на ячейки используются имена, по­
нять значительно легче.
Применение именованных ячеек и диапазонов имеет ряд преимуществ.
•
Имена облегчают понимание и применение формулы. Это особенно важно для
тех, кто не участвовал в создании рабочего листа. Очевидно, что такую формулу,
как, например, =Д о х о д ы - Н а л о г и , понять значительно легче, чем =D20-D40.
•
Описательное имя диапазона (например, О б щ и й _ д о х о д ) запоминается легче, чем
адреса ячеек (например, А21). Кроме того, вероятность опечатки при написании
имени меньше, чем при вводе адреса ячейки или диапазона.
•
С помощью имен легко перемещаться по рабочему листу, используя поле Имя, рас­
положенное слева строки формул. Щелкните на кнопке со стрелкой, и появится спи­
сок всех назначенных имен. Перейти от одного элемента листа к другому можно,
выбрав команду ГлавнаяОРедактирование^Найти и выделить«=>Перейти или
нажав клавишу <F5>. В открывшемся диалоговом окне следует ввести имя диапазо­
на или ячейки.
•
Если выделить именованную ячейку или диапазон, ее (его) имя появится в поле Имя.
•
Вам будет легче записывать формулы, используя имена ячеек и диапазонов. Эти
имена можно вставить в формулу, выбрав команду Использовать в формуле во
вкладке Формулы и выбрав в открывшемся списке нужное имя.
•
Использование имен вместо адресов ячеек и диапазонов облегчит создание макро­
сов и дальнейшую работу с ними.
Область действия имен
Перед тем как перейти к теме создания имен и работе с ними, важно осознать, что все
имена имеют свою область действия. Под областью действия понимается множество
мест, где может использоваться имя. В зависимости от области действия имена делятся
на две категории.
•
Имена на уровне рабочей книги. Могут использоваться в любом рабочем листе
данной книги. Этот уровень присваивается именам по умолчанию.
•
Имена на уровне рабочего листа. Могут использоваться только на рабочем лис­
те, на котором они определены (если перед именем объекта не указано имя рабо­
чего листа). В рабочей книге может быть много разных объектов с идентичными
именами на уровне листа. Естественно, они должны находиться на разных листах.
Ссылки на имена
Ссылки на имена уровня книги позволяют применять их на любом листе книги.
Ссылки на имена уровня листа должны предваряться именем соответствующего листа,
если, конечно, используются на листе, отличном от того, на котором определены.
Глава 3. Имена
91
Для примера предположим, что рабочая книга содержит два листа: Л и с т 1 и Л и с т 2.
В этой рабочей книге определены следующие имена: О бщ и еП р одаж и (имя уровня кни­
ги), П р о д а ж и В Е в р о п е (имя уровня листа Л и с т 1 ) и П р о д а ж и В А м е р и к е (имя уровня
листа Л и с т 2 ). На обоих листах книги можно обратиться к имени О бщ иеП р одаж и сле­
дующим образом:
=ОбщиеПродажи
На листе Л и с т 1 к объекту П р о д а ж и В Е в р о п е тоже можно обратиться только по
имени, так как оно определено именно на этом листе.
=ПродажиВЕвропе
Однако, если на листе Л и с т 1 нужно обратиться к имени П р о д а ж и В А м е р и к е , вам
придется проделать немного больше работы. Л и с т 1 не “видит” это имя, поскольку оно
определено на другом листе. Л и с т 1 может “видеть” только имена, определенные на нем.
Для обращения к имени П р о д а ж и В А м е р и к е на листе Л и с т 1 его придется предварить
именем рабочего листа и восклицательным знаком.
=Лист2! ПродажиВАмерике
Совет
Если имя листа содержит пробел, заключите его в одинарные кавычки при об­
ращении к имени, определенном на нем, например = 1мой Л и с т 1 шоеимя.
В общем случае рекомендуется задавать именам как можно более узкую область дей­
ствия. Если имя используется только на одном листе, ограничьте его область действия
только этим листом. Если же имя используется на многих листах рабочей книги, более
подходящей будет область действия уровня книги.
Примечание
В поле Имя отображаются только имена уровня текущего рабочего листа. Ана­
логично, только имена уровня текущего рабочего листа отображаются в спи­
ске команды Формулы«=>Определенные именам Использовать в формуле.
Ссылка на имена другой рабочей книги
В главе 2 рассказывалось о том, как создавать ссылки на ячейки и диапазоны других
рабочих книг. Те же правила применяются и к ссылкам на имена, заданные в другой ра­
бочей книге.
Например, в следующей формуле используется имя Е ж е м е с я ч н ы е П р о д а ж и , опре­
деленное в рабочей книге под именем Бю дж ет . x l s x (предполагается, что эта рабочая
книга открыта):
=СРЗНАЧ(Бюджет. x l s x ! ЕжемесячныеПродажи)
Если имя Е ж е м е с я ч н ы е П р о д а ж и определено на уровне листа Л и с т 1 , последнюю
формулу нужно записать так:
=СРЗНАЧ( [Бюджет . x l s x ] Л и с т 1 ! ЕжемесячныеПродажи)
Конфликты имен
Использование имен уровня листа может быть несколько запутанным, поскольку Ex­
cel разрешает на листах создавать те же имена, которые уже определены на уровне кни­
92
Часть I. Основные сведения
ги. В этом случае имена уровня листа имеют приоритет, но тодько в пределах листа, на
котором определены.
К примеру, можно определить имя И т о г уровня книги для некоторой ячейки листа
Л и с т 1 . Одновременно можно определить имя уровня листа Л и с т 2 ! И т о г . Когда акти­
вен лист Л и с т 2 , идентификатор И т о г будет ссылаться на имя уровня листа. Когда же
активен какой-либо другой лист, И т о г будет ссылаться на имя уровня книги. Запутанно,
не правда ли? Для облегчения жизни рекомендуется избегать использования одних и тех
же имен на уровнях книги и листа.
Один из способов устранения такой путаницы основан на соглашениях об именова­
нии. Само имя должно содержать информацию о том, на каком уровне оно определе­
но. К примеру, во всех именах уровня рабочей книги можно использовать префикс рк,
а в именах уровня рабочего листа — р л . Используя это соглашение, вы никогда не
спутаете имена р л И т о г и р к И т о г .
Диспетчер имен
Теперь, когда вы поняли концепцию области действия имен, можно приступить к их
созданию и применению. Excel предлагает удобный способ управления именами — дис­
петчер имен (рис. 3.1).
Рис. 3.1. Диалоговое окно диспетчера имен
Для открытия окна диспетчера имен выберите команду Формулы ^Определенные
имена^Диспетчер Имен или нажмите клавиши <Ctrl+F3>. В этом диалоговом окне
можно просматривать, создавать, редактировать и удалять имена. В главном окне дис­
петчера имен отображается текущее значение каждого имени, ячейка или диапазон, на
которую оно ссылается, область действия имени, а также комментарии, если вы их соз­
давали. Имена можно сортировать, а ширину столбцов изменять. Если используется
много имен, можно применить к списку некоторый предопределенный фильтр, чтобы не
загромождать список ненужными именами.
Следует обратить внимание, что размеры диалогового окна диспетчера имен можно
изменять; перетаскивая за правый нижний угол, это диалоговое окно можно сделать ши­
ре или выше.
Глава 3. Имена
93
Создание имен
Диспетчер имен содержит кнопку Создать, при
щелчке на которой открывается диалоговое окно, по­
казанное на рис. 3.2.
В диалоговом окне создания имени можно задать
имя, область действия и диапазон, на который ссыла­
ется имя. При желании можно сопроводить имя ком­
ментарием, который поможет впоследствии понять
назначение имени. Поле Диапазон позволяет вы­
брать ячейки с помощью мыши или ввести диапазон
вручную, аналогично тому, как это выполняется в Рис. 3.2. Диалоговое окно создания
строке формул.
имени
Редактирование имен
При щелчке на кнопке Изменить откроется диалоговое окно Изменение имени,
внешне идентичное окну Создание имени. В этом окне можно изменить любое свойст­
во имени, за исключением области действия. При изменении имени диапазона все фор­
мулы рабочей книги, на него ссылающиеся, будут автоматически обновлены.
Совет
Для изменения области действия имя нужно вначале удалить, а затем вос­
создать. Если при этом точно ввести то же имя, все формулы, его исполь­
зующие, останутся работоспособными.
Диалоговое окно Изменение имени является не единственным местом редактирова­
ния имен. Если единственное свойство, которое нужно изменить, — диапазон, то можно
сделать это непосредственно в главном окне диспетчера имен. В нижней части диалого­
вого окна находится поле Диапазон. Выберите в списке нужное имя и измените ссылку
в поле Диапазон.
Совет
При редактировании содержимого поля Диапазон вручную в строке состоя­
ния отображается слово Укажите. Если попытаетесь использовать при ре­
дактировании этого поля клавиши навигации, такие как стрелки, клавиши
<Н оте> или <End>, то увидите, что перемещаетесь по рабочему листу, а не
редактируете поле. Для переключения из режима указания в режим редак­
тирования нужно нажать клавишу <F2>, в результате чего в строке состоя­
ния будет отображаться слово Правка.
Удаление имен
Щелчок на кнопке Удалить удаляет выделенное имя из рабочей книги. Естественно,
Excel предупредит вас о том, что данную операцию нельзя будет отменить. К сожале­
нию, программа недостаточно услужлива, чтобы заменить все ссылки на удаленное имя
соответствующими диапазонами ячеек. В результате все формулы, использующие уда­
ленное имя, будут отображать ошибку #ИМЯ?.
94
Часть I. Основные сведения
Способы присвоения имен ячейкам
и диапазонам
В Excel существует несколько способов присвоения имен ячейкам и диапазонам, отлич­
ных от использования диспетчера имен. В данном разделе эти методы будут описаны.
Кроме того, вы найдете и другую полезную информацию, имеющую отношение к именам.
Присвоение имен в окне Присвоение имени
Для того чтобы присвоить имя ячейке или диапазону, сначала выделите нужную ячейку
или диапазон. Затем выберите команду Формулы ^Определенные имена^Присвоить
имя ^Присвоить имя. Появится диалоговое окно, функционально и внешне идентичное
окну Создание имени, открытому с помощью диспетчера имен (см. рис. 3.2).
Правила создания имен
Что касается назначаемых вами имен, Excel — достаточно неприхотливая програм­
ма. И все же существуют некоторые правила создания имен.
• Имена не могут содержать пробелов. Для разделения слов внутри имени можно
использовать символ подчеркивания или точку (например, Еж е го д н ы й и т о г или
Еж егодны й. И т о г ).
• В качестве имени можно использовать любую комбинацию букв и цифр. Од­
нако имя обязательно должно начинаться с буквы или символа подчеркивания. Имя
не может начинаться с цифры (как, например, зй к в ар тал ) или выглядеть как ссыл­
ка на ячейку (как, например, кз).
• Для разделения слов внутри имени используются только символы подчерки­
вания и точки. Этот момент не оговорен в документации к программе, однако Excel
воспринимает и такие символы, как обратная косая черта (\) и вопросительный знак
(?). Однако отмечу, что имя не может начинаться с этих символов.
• Количество символов имени не должно превышать 255. Этого вполне достаточ­
но. Использовать имена даже такой длины не имеет смысла. Применение чрезмерно
длинных имен лишает всякого смысла операцию присвоения имени диапазону.
• В качестве имени можно использовать отдельные буквы (кроме ‘R* и ‘С’).
Однако я бы не рекомендовал давать такие имена, поскольку имя должно нести
информацию о содержимом ячейки или диапазона.
•
При вводе имен регистр значения не имеет. Ежегодныйитог значит то же са­
мое, что и еж егодны йитог. Excel сохраняет имя точно в таком же виде, в каком вы
вводите его первоначально. Но, записывая имя в формуле, можно использовать
любой регистр.
Excel использует несколько так называемых внутренних имен. Внутренние имена Excel мож­
но присваивать ячейкам и диапазонам. Однако делать так не рекомендуется. Присваивая
имя, избегайте следующих имен: Обла сть__пе ча ти , З а г о л о в о к _ п е ч а т и , О б л а с т ь _ к о н с о л и д а ц и и , База_данны х, Кри те р ий , Ф и л ь т р и Н а з в а н и е _ л и с т а .
Примечание
Количество имен ячеек и диапазонов не ограничено. Excel позволяет при­
сваивать одному и тому же элементу сразу несколько имен, однако делать
этого не следует. Если выделенная ячейка или диапазон имеет несколько
имен, в поле Имя всегда будет появляться первое из них по алфавиту.
95
Глава 3. Имена
Имя можно присвоить и несмежному диапазону ячеек. Выделить все ячейки и диапа­
зоны несмежного диапазона можно с помощью мыши, удерживая клавишу <Ctrl>.
Присвоение имени с помощью поля Имя
В поле Имя можно присвоить имя ячейке или диапазону значительно быстрее. Поле
Имя — это раскрывающийся список, расположенный в левой части строки формул. Для
того чтобы присвоить имя, выделите нужную ячейку или диапазон, затем щелкните в по­
ле Имя и введите имя. Для подтверждения выбранного имени нажмите <Enter>. Если та­
кое имя уже существует, то поле Имя нельзя использовать для другого диапазона или
ячейки. Если попытаться сделать это, программа выделит исходный диапазон. Назначить
существующее имя другому диапазону или ячейке можно только с помощью диалогово­
го окна диспетчера имен.
jm b
Предупреждение
« ы
Создавая имя в поле Имя, не забудьте нажать <Enter>. Если ввести имя, а
затем щелкнуть в области рабочего листа, новое имя не будет создано.
Поле Имя выполняет еще одну функцию. С его помощью можно быстро выделить
именованную ячейку или диапазон, как показано на рис. 3.3. Для этого щелкните в поле
Имя и выберите нужное имя в списке. Будет выделена соответствующая ячейка или диа­
пазон. Как ни странно, для активизации поля Имя не предусмотрена комбинация кла­
виш. Иными словами, вы не получите доступ к этому полю с помощью клавиатуры; сде­
лать это можно, только используя мышь. После щелчка в поле Имя для указания имени
достаточно использовать клавиши со стрелками и <Enter>.
Рис. 3.3. Используя поле Имя, можно быстро акти­
визировать именованную ячейку или диапазон
Совет
Имена, созданные в поле Имя, по умолчанию имеют область действия уровня рабочей книги. Для того чтобы создать имя уровня рабочего листа, пред­
варите его именем рабочего листа и восклицательным знаком (например,
Л и с т 2 ' И т о г ) . Так как поле Имя работает только с текущим выделенным
диапазоном, ввод имени листа, отличного от текущего, приведет к ошибке.
Автоматическое присвоение имен
Содержимое ячеек можно использовать для автоматического создания имен смежных
ячеек или диапазонов. На рис. 3.4 показан пример такого листа. Текст, находящийся
96
Часть I. Основные сведения
в столбце А, можно использовать для создания имен ячеек столбца В. Решить эту задачу
в Excel достаточно просто.
Рис. 3.4. Excel позволяет создавать
имена на основе текста, содержа­
щегося в смежных ячейках
Для того чтобы присвоить имена, используя текст смежных ячеек, выделите данный
текст и ячейки, которым должно быть присвоено имя (это могут быть как отдельные
ячейки, так и диапазоны ячеек). Текст имен должен находиться в смежных ячейках отно­
сительно ячеек, которым вы хотите назначить имена. Можно создать несколько выделе­
ний. Выберите команду Формулы ^Определенные имена^Создать из выделенного
или нажмите комбинацию клавиш <Ctrl+Shift+F3>. Откроется диалоговое окно Созда­
ние имен из выделенного диапазона (рис. 3.5).
Рис. 3.5. Автоматическое создание имен
Флажки в диалоговом окне расставлены на основе проведенного программой анализа
выделенного диапазона. Например, если Excel обнаруживает текст в первой строке вы­
деленного диапазона, программа предлагает создать имена в строке выше. Если Excel
приняла неправильное решение, измените предложенный вариант вручную. Щелкните на
кнопке ОК, и Excel создаст имена. Обратите внимание на следующий факт: когда Excel
создает имена, используя текст смежных ячеек, ячейки с текстом не включаются в име­
нованный диапазон.
Если в результате использования текста смежной ячейки получится некорректное
имя, Excel изменит его на правильное. Например, если ячейка содержит текст Общ ий
д о х о д (его использование в качестве имени некорректно, поскольку присутствует про­
бел), Excel преобразует пробел в символ подчеркивания и создаст имя О б щ и й д о х о д .
Глава 3. Имена
97
Если же вместо текста смежная ячейка содержит значение или формулу, программа не
сможет создать корректное имя. В таком случае Excel просто не создаст никакого имени.
Предупреждение
Внимательно проверяйте имена, автоматически создаваемые программой.
Иногда диалоговое окно Создание имен из выделенного диапазона работает
не совсем логично. На рис. 3.6 показана небольшая таблица с текстом и зна­
чениями. Выделите всю таблицу, выберите команду Создать из выделенного
и примите вариант, предложенный программой (флажки в строке выше и в
столбце слева). В результате имя товары будет относиться не к диапазону
А2 : Аб, как вы ожидали, а к диапазону В2 : Сб. Если верхняя левая ячейка выде­
ленного диапазона содержит текст и установлены флажки в строке выше и в
столбце слева, Excel использует это имя для всего набора данных, исключая
верхнюю строку и левый столбец. Поэтому, прежде чем принять предложения
программы, убедитесь, что она правильно поняла ваш замысел.
Рис. 3.6. Создание имен на основе данных такой таблицы может привести
к неожиданным результатам
Имена столбцов и строк
Иногда имеет смысл назначить имя целому столбцу или строке. Нередко рабочий
лист используется для хранения информации, которая вводится не каждый день. На
рис. 3.7 приведен пример такого листа. Если создать имя не для всего столбца В, то при­
дется изменять ссылку на диапазон, которому назначено это имя, каждый раз, когда вво­
дятся новые данные. В таком случае целесообразно присвоить имя целому столбцу.
Рис. 3.7. В этой таблице, содержащей
данные о дневном объеме продаж, ис­
пользуется именованный диапазон, ко­
торый состоит из целого столбца
98
Часть I. Основные сведения
Компакт-диск
Все приводимые в настоящей главе примеры содержатся в файле chapt e r 3 _ R U S . x s l x на прилагаемом компакт-диске.
Столбец В можно назвать, например, Д н е в н ы е П р о д а ж и . Если этот диапазон распо­
ложен на рабочем листе Л и с т З , ссылка будет выглядеть следующим образом:
=Л истЗ ! $ В : $В
Чтобы присвоить имя целому столбцу, выделите его, щелкнув на его букве. Введите
нужное имя в поле Имя и нажмите клавишу <Enter>. Можно также применить для этого
диалоговое окно Создание имени.
Назначив имя, можно использовать его в формуле. Следующая формула, например,
возвращает сумму всех значений столбца В:
=СУММ(ДневныеПродажи)
Имена, созданные программой Excel
Excel создает и свои собственные имена. Например, если задать область печати для лис­
та, Excel создаст имя О б л а е т ь _ п е ч а т и . Если назначить повторяющиеся строки или
столбцы, которые должны быть напечатаны, программа создаст имя З а г о л о в к и _ п е ч а т и
на уровне рабочего листа. Когда выполняется запрос, который возвращает данные в рабо­
чий лист, Excel назначает этим данным свои имена. Ряд надстроек, входящих в пакет Excel,
создает скрытые имена.
Вы вправе изменить ссылки на любые имена, автоматически создаваемые програм­
мой. Однако следует четко представлять себе, к чему эти изменения приведут.
Скрытые имена
Некоторые макросы и надстройки 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
Создание многолистовых имен
Имена ячейкам и диапазонам могут быть присвоены в нескольких рабочих листах с по­
мощью “трехмерной” ссылки. Но для этого нельзя просто выделить диапазон и ввести имя
в поле Имя. Чтобы назначить имя в нескольких листах, необходимо использовать диалого­
вое окно Создание имени. Формат такой ссылки будет выглядеть следующим образом:
ПервыйЛист:ПоследнийЛист! СсылкаНаДиапазон
На рис. 3.8 продемонстрирован пример, в котором имя КубДанных, назначенное
диапазону А 1 : СЗ, распространяется на листы Л и с т 1 , Л и с т 2 и Л и с т З .
Рис. 3.8. Присвоение имени в нескольких листах
Разумеется, можно просто ввести трехмерную ссылку на диапазон в поле Диапазон.
Но если нужно создать имя, отметив диапазон мышью, могут возникнуть некоторые
трудности. Даже если попытаться выделить диапазон, распространяющийся на несколь­
ко рабочих листов, Excel не сможет использовать адрес выделенного диапазона в диало­
говом окне Создание имени.
Для того чтобы назначить имя К уб Д ан ны х диапазону А1 :СЗ, который распростра­
няется на листы Л и с т 1 , Л и с т 2 и Л и с т З , следуйте приведенным ниже инструкциям.
1. Активизируйте лист Л и с т 1.
2. Во вкладке Формулы выберите команду Диспетчер имен или нажмите комби­
нацию клавиш <Ctrl+F3>. В открывшемся диспетчере имен щелкните на кнопке
Создать. Откроется диалоговое окно Создание имени.
3. Введите КубДанных в текстовом поле Имя.
4. Активизируйте поле Диапазон и нажмите клавишу <Del>, чтобы удалить суще­
ствующую ссылку на диапазон.
5. Выделите диапазон А 1 : СЗ на листе Л и с т 1 . В поле Диапазон появится следую­
щая запись:
= Л и с т 1 ! $ А $ 1 : $С$3
6. Удерживая нажатой клавишу <Shift>, щелкните на вкладке Л и с т З . Вы заметите,
что программа по непонятным причинам заменяет ссылку на диапазон ссылкой
на одну ячейку. На данном этапе запись будет выглядеть так:
= ' Л и с т ! :Л и с т З 1 ! $А$1
100
Часть I. Основные сведения
7. Выделите диапазон А 1 : СЗ на листе Л и с т 1 еще раз. На этот раз в поле Диапазон
появится следующая запись:
= 'Л и с т 1 :Л и с т З ' ! $ А $ 1 : $С$3
8. Теперь, когда поле Диапазон содержит нужную ссылку, щелкните на кнопке ОК.
Диалоговое окно Создание имени будет закрыто.
Задав имя, можно использовать его в формулах. Например, следующая формула вер­
нет сумму значений диапазона, который носит имя К уб Данных:
=СУММ(КубДанных)
Примечание
Многолистовые имена не отображаются ни в поле Имя, ни в диалоговом ок­
не Переход (это окно отображается при выборе команды Главная^Редактирование^Найти и выделить^Перейти). Иными словами, Excel позволяет
назначать такие имена, но вы не сможете автоматически выделить ячейки, к
которым они относятся. Тем не менее, многолистовые имена отображаются
в списке автозавершения при вводе формул.
Если вставить новый лист в рабочую книгу, в которой используются имена, относя­
щиеся к нескольким листам, имена будут распространяться на новый лист только в том
случае, если этот лист находится между первым и последним листом, заданным в опре­
делении имени. В предыдущем .примере рабочий лист, вставленный между Л и ст1
и Л и с т 2 , оказывается в диапазоне К убД ан н ы х. Лист, вставленный перед Л и с т 1 или
после Л и с т З , не включается в диапазон.
Если удалить первый или последний лист, включенный в определение имени, Excel
автоматически изменит запись в поле Диапазон. В рассматриваемом нами примере уда­
ление Л и с т 1 приведет к следующим изменениям в поле Диапазон имени КубДанны х:
= 1Л ист2 : Л и с т З ' !$А $1:$С $3
Областью действия имен, распространяющихся на множество листов, должна быть
рабочая книга. Если они определены на уровне рабочего листа, то будут функциониро­
вать корректно, однако в диалоговом окне диспетчера имен будет отображаться ошибка.
Работа с именами диапазонов и ячеек
Создав имена диапазонов и ячеек, можно выполнять над ними целый ряд операций.
В этом разделе вы узнаете о том, как выполнять основные операции над именами диапа­
зонов и ячеек.
Создание списка имен
Если вы создали достаточно большое количество имен, может возникнуть необходи­
мость наглядно отобразить, к какому диапазону относится каждое из них. В дальнейшем
это поможет выявить ошибки или документировать свою работу.
Вероятно, вы захотите создать список всех имен (и соответствующих им адресов) рабо­
чей книги. Для того чтобы создать такой список, сначала выделите ячейку в пустой области
рабочего листа (если создать список имен, состоящий из двух столбцов, то он будет ото­
бражаться поверх находящейся в ячейках информации), а затем выберите команду Формулы^Определенные именам Использовать в формуле^ Вставить имена (или нажми­
Глава 3. Имена
101
те клавишу <F3>). Откроется диалоговое окно Вставка имени (рис. 3.9), в котором будут
перечислены все заданные имена. Для того чтобы вставить список имен, щелкните на
кнопке Все имена.
ЖЯк,
н
Предупреждение
В список имен не входят имена уровня рабо­
чего листа (кроме имен активного листа),
а также скрытые имена.
Список имен, вставленный в рабочий лист, состоит из
двух столбцов. В первом столбце перечислены имена,
а во втором — адреса соответствующих диапазонов. Ад­
реса диапазонов, расположенные во втором столбце спи­
ска, представляют собой строки текста, которые напоми­ Рис. 3.9. Диалоговое окно Встав­
ка имени
нают формулы. Преобразовать такую строку в формулу
можно, отредактировав ячейку (нажмите <F2>, а затем
<Enter>). В результате строка становится формулой. Если имя относится к отдельной
ячейке, формула отображает текущее значение этой ячейки. Если же имя относится
к диапазону, формула возвращает ошибку #ЗН А Ч !.
Перекрестная ссылка
Ошибки в формулах, такие как # з н а ч !
в главе 21.
и
# с с ы л к а ! , рассматриваются
Использование имен в формулах
Задав имя ячейки или диапазона, можно использовать его в формулах. Следующая
формула, например, вычисляет сумму значений диапазона П р о д а н о Е д и н и ц :
= СУМ М (П р о д а но Е д и н и ц )
Когда имя, заданное на уровне рабочего листа, используется в формуле того листа,
в котором оно было задано, имя рабочего листа не следует указывать перед именем диа­
пазона. Если такое имя используется в другом листе рабочей книги, необходимо задать
полное имя (имя рабочего листа, восклицательный знак и имя диапазона). Например, ес­
ли П р о д а н о Е д и н и ц — имя, заданное на уровне рабочего листа Л и с т 1 , то формула для
вычисления суммы диапазона на любом другом рабочем листе будет выглядеть так:
= С У М М (Л и с т 1 ! П р о д а н о Е д и н и ц )
Ввод знака равенства активизирует функцию автозавершения, как при вводе от­
крывающей скобки в функции рабочего листа. При этом под активной ячейкой откры­
вается список определенных имен и функций рабочего листа. Для использования
функции автозаполнения вводите имя, пока оно не будет выделено в списке, а затем
нажмите <ТаЬ>, чтобы зафиксировать имя. Можно также использовать клавишу <>1>,
чтобы выбрать имя в списке.
Если в формуле используется несуществующее имя, Excel отобразит ошибку #ИМЯ?,
указывающую на то, что программа не может найти имя, которое вы пытаетесь исполь­
зовать. Зачастую причиной такой ошибки является просто опечатка.
102
Часть I. Основные сведения
Использование операторов пересечения
В качестве оператора пересечения диапазонов в Excel служит единичный символ
пробела. Например, следующая формула используется для вычисления суммы ячеек на
пересечении двух диапазонов — В 1 : С2 0 и А8 : D8:
=СУММ( В 1 : С 2 0 A 8 : D 8 )
Данные диапазоны пересекаются в ячейках В8 и С8.
Оператор пересечения работает и с именованными диапазонами. На рис. 3.10 показана
таблица, содержащая именованные диапазоны для столбцов и строк таблицы. Например, имя
Январь относится к диапазону В2 :Е 2 , а имя С е в е р — к диапазону В2 :В 1 3 . Следующая
формула возвращает содержимое ячейки на пересечении диапазонов Я нварь и С ев ер :
=Январь Север
Рис. 3.10. Эта таблица содержит именованные диапазоны, в которых заданы
названия для столбцов и строк
Используя символ пробела для разделения двух ссылок на диапазоны, вы задаете так
называемое явное пересечение. Это означает, что вы приказываете Excel явно определить
пересечение диапазонов. Программа может находить и неявные пересечения. Неявное
пересечение происходит в том случае, когда Excel выбирает значение из многоячеечного
диапазона, основываясь на строке или столбце формулы, имеющей ссылку. Для того
чтобы разобраться с пересечениями такого типа, рассмотрим конкретный пример. На
рис. 3.11 показана таблица, содержащая именованный диапазон В З : В 8 . В ячейке D5
отображается простая формула, приведенная ниже:
=МоиДанные
Обратите внимание на то, что в ячейке D5 отображено значение из диапазона
МоиДанные, соответствующее строке, в которой расположена формула. Аналогично,
если ввести ту же формулу в строки с 3 по 8, формула вернет соответствующее значение
из диапазона МоиДанные. Excel выполняет неявное пересечение, используя диапазон
МоиДанные и строку, содержащую формулу. Это действие подобно вычислению сле­
дующей формулы:
=МоиДанные 5 : 5
Если ввести формулу в строку, не принадлежащую диапазону МоиДанные, то формула
вернет ошибку, поскольку неявное пересечение в таком случае произойти не может.
Глава 3. Имена
103
Рис. 3.11. Диапазон вз : В8 этого рабочего лис­
та имеет имя МоиДанные. Ячейка D5 демонст­
рирует неявное пересечение
Между прочим, неявные пересечения работают не только с именованными диапазо­
нами. В рассматриваемом нами примере мы получим тот же результат, если в ячейке D5
будет находиться следующая формула (в которой не используется имя диапазона):
=$В$2: $В$8
Если применить имя МоиДанные в качестве аргумента функции, неявное пересече­
ние вычисляется, только когда аргумент состоит из одного значения. Например, если
ввести приведенную ниже формулу в ячейку D3, произойдет неявное пересечение и
формула вернет значение 64 (т.е. два в шестой степени).
=СТЕПЕНЬ (2 ; МоиДанные)
Но если в эту же ячейку ввести следующую формулу, неявного пересечения не будет,
и формула вернет сумму всех значений диапазона МоиДанные:
=СУММ(МоиДанные)
Использование оператора диапазона
Работая с именованными диапазонами, можно использовать оператор диапазона,
в качестве которого в Excel применяется символ двоеточия (:). Вернемся к примеру на
рис. 3.10. Следующая формула возвращает сумму значений ячеек в прямоугольнике, со­
стоящем из столбцов от С е в е р до З а п а д и строк от Я н в а р ь до Март:
=СУММ( (Север Я н в а р ь ) : (З ап а д М а р т ))
Ссылка на отдельную ячейку именованного диапазона
Для того чтобы вернуть значение ячейки диапазона, можно использовать функцию
Excel ИНДЕКС. Предположим, диапазон А 1 : А 5 0 имеет название Д и а п а з о н Д а н н ы х .
Следующая формула возвращает второе значение (значение ячейки А2) диапазона
ДиапазонДанны х:
=ИНДЕКС(ДиапазонДанных;2)
Второй и третий аргументы функции ИНДЕКС — необязательные, однако один из них
всегда должен быть задан. Второй аргумент (используемый в приведенной формуле)
обозначает смещение строки в диапазоне Д и а п а з о н Д а н н ы х .
Если диапазон Д и а п а з о н Д а н н ы х состоит из нескольких ячеек, расположенных в
одной строке, используйте следующую формулу, в которой пропущен второй аргумент
104
Часть I. Основные сведения
функции ИНДЕКС, но задан третий аргумент, определяющий смещение столбца в диапа­
зоне Д и а п а з о н Д а н н ы х .
=ИНДЕКС(ДиапазонДанных;;2)
Если же диапазон состоит из нескольких строк и столбцов, необходимо применить оба
аргумента функции ИНДЕКС. Следующая формула, например, возвращает значение ячейки,
расположенной в четвертой строке и пятом столбце диапазона Д и а п а зо н Д а н н ы х :
=ИНДЕКС(ДиапазонДанных; 4 ; 5 )
Применение имен в уже существующих формулах
После создания имени ячейки или диапазона Excel не будет автоматически заменять
именами ссылки на эту ячейку или диапазон в формулах, созданных ранее. Тем не менее
можно приказать программе использовать новое имя в тех или иных формулах.
Для этого выделите диапазон, содержащий формулы, которые должны быть преобра­
зованы. Затем выберите команду Формулы^Определенные имена^Прйсвоить имя*=>
Применить имена. Откроется диалоговое окно Применение имен (рис. 3.12). В нем
выберите имена, которые нужно использовать в формулах. В формулах будут использо­
ваны только те имена, которые вы указали.
Совет
Для того чтобы применить новое имя ко
всем формулам рабочего листа, выделите
одну ячейку, перед тем как выполнить ко­
манду Применить имена.
Флажок Игнорировать тип ссылки отвечает за то,
как Excel заменяет адрес диапазона именем. Обычно
имя ячейки или диапазона задается как абсолютная
ссылка. Если флажок Игнорировать тип ссылки ус­
тановлен, Excel применит имя только в том случае, ес­
ли ссылка в формуле полностью соответствует типу
диапазона. В большинстве случаев, когда вы приме­
няете имена, удобнее игнорировать тип ссылки.
Если флажок Использовать имена строк и столб- Рис. 3.12. Диалоговое окно Примецов установлен, то при применении имен в формулах нение имен
Excel использует оператор пересечения. Не имея воз­
можности использовать точные имена ячеек, Excel для ссылок на ячейки использует
имена строк и столбцов. Для того чтобы объединить имена, Excel использует оператор
пересечения. Щелчком на кнопке Параметры можно задать несколько дополнительных
параметров, но только при условии, что флажок Использовать имена строк и столб­
цов установлен.
Автоматическое применение имен
при создании формул
Если вставить в формулу ссылку на ячейку или диапазон, указав этот элемент табли­
цы мышью, Excel автоматически заменит адрес ячейки или диапазона именем (в том
случае, если данному элементу присвоено имя).
Глава 3. Имена
105
Иногда это свойство программы очень помогает в работе. Но если вы захотите ис­
пользовать адрес ячейки, а не ее имя, это свойство будет только мешать. К сожалению,
отключить данную функцию невозможно. Если вы решили использовать адрес ячейки
или диапазона, введите его вручную (не указывайте элемент таблицы мышью).
Отмена применения имени
В Excel не предусмотрен специальный метод отмены применения имени. Иными сло­
вами, вы не сможете автоматически заменить имя ячейки или диапазона обычной ссыл­
кой на этот элемент таблицы. Однако существует прием, с помощью которого можно за­
менить имя ссылкой. Для этого нужно установить режим вычислений по правилам
Lotus 1-2-3. Откройте окно параметров программы и перейдите во вкладку Дополни­
тельно. В разделе Совместимость с Lotus установите флажок Клавиши перемеще­
ния, использовавшиеся в Lotus 1-2-3, после чего щелкните на кнопке ОК.
Затем нажмите <F2> для того, чтобы отредактировать формулу, содержащую одно или
несколько имен ячеек или диапазонов. Нажмите <Enter>, и редактирование ячеек будет за­
вершено. Затем вернитесь в диалоговое окно параметров программы и снимите флажок
Клавиши перемещения, использовавшиеся в Lotus 1-2-3. Отредактированная таким
образом ячейка вместо имен будет содержать относительные ссылки на диапазоны.
Примечание
Описанный выше прием не документирован и может работать не во всех
случаях, так что внимательно проверяйте результат.
Имена с ошибками
Если удалить строку или столбец, содержащий именованный диапазон или ячейку,
само имя как таковое удалено не будет. Вместо этого в имени будет содержаться некор­
ректная ссылка. К примеру, если ячейка А1 листа Л и с т 1 имеет имя Д и с к о н т , а вы уда­
лили столбец А или строку 1, имя Д и с к о н т будет содержать ссылку = Л и с т 1 ! #ССЫЛ!
(т.е. ошибочную ссылку). Если при этом имя Д и с к о н т используется в какой-либо фор­
муле, результатом формулы тоже будет #ССЫЛ!.
Чтобы не было такой ошибки, нужно в диспетчере имен удалить имя. Кроме того,
можно переопределить имя так, чтобы оно указывало на корректную ячейку.
Совет
Диспетчер имен позволяет фильтровать отображаемые имена, используя
предопределенные фильтры. Один из этих фильтров специально предна­
значен для отображения только тех имен, которые имеют ошибочные ссыл­
ки. Это позволяет быстро локализовать проблемные имена.
Просмотр именованных диапазонов
Если изменить масштаб изображения до 39% и меньше, вокруг именованных диапа­
зонов появятся имена и границы, отображенные синим цветом (рис. 3.13). На печать эти
имена и границы не выводятся — они предназначены только для того, чтобы вы могли
увидеть именованные диапазоны на экране.
106
Часть I. Основные сведения
Рис. 3.13. Отображение имен диапазонов
Использование имен в диаграммах
При создании диаграммы каждая последовательность данных имеет соответствую­
щую формулу РЯД. Формула РЯД содержит ссылки на диапазоны, используемые в диа­
грамме. Если в диаграмме используется именованный диапазон, можно отредактировать
формулу РЯД, заменив ссылку именем диапазона.
Перекрестная ссылка
Дополнительная информация о диаграммах приведена в главе 17.
Поддержка имен ячеек и диапазонов
В процессе редактирования рабочего листа Excel автоматически поддерживает соз­
данные вами имена ячеек и диапазонов. В следующих примерах мы будем рассматривать
рабочий лист Л и с т 1 , который содержит имя М о й Д и а п а з о н , ссылающееся на диапазон
из девяти ячеек и заданное на уровне рабочей книги:
= Л и с т 1 ! $ С $ 3 : $Е$5
Вставка строки или столбца
При вставке строки выше именованного диапазона или столбца слева от именованно­
го диапазона Excel автоматически изменяет ссылку на этот диапазон так, чтобы она со­
ответствовала новому адресу диапазона. Например, если вставить новую строку 1, имя
М о й Д и а п а з о н будет ссылаться на = Л и с т 1 ! $С $4 : $Е$6.
Если вставить новую строку или столбец в именованный диапазон, этот диапазон расши­
рится и будет включать в себя новые строки или столбцы. Например, если вставить новый
столбец слева от столбца Е, имя М ой Д и ап азон будет относиться к = Л и с т 1 ! $С$3 : $F$5.
Удаление строки или столбца
При удалении строки, расположенной выше именованного диапазона, или столбца
слева от именованного диапазона Excel автоматически изменяет ссылку на этот диапазон
так, чтобы она соответствовала новому адресу диапазона. Например, если удалить стро­
ку 1, имя М о й Д и а п а з о н будет относиться к = Л и с т 1 ! $С $2 : $ Е $ 4 .
Глава 3. Имена
107
Если удалить строку или столбец внутри именованного диапазона, этот диапазон изме­
нится соответствующим образом. Например, если удалить столбец D, имя М о й Д и а п а з о н
будет относиться к = Л и с т 1 1$С $3 : $D $5.
Если удалить все строки и ячейки, составляющие именованный диапазон, именован­
ный диапазон будет продолжать существовать, однако ссылка на него будет содержать
ошибку. Например, удалите столбцы С, D, Е, и имя М о й Д и а п а з о н будет ссылаться на
= Л и с т 1 ! #ССЫЛКА! . Все формулы, в которых использовалось это имя, тоже будут воз­
вращать ошибки.
Вырезание и вставка именованного диапазона
Когда вы вырезаете и вставляете именованный диапазон целиком, Excel изменяет
ссылку соответствующим образом. Например, переместите диапазон М о й Д и а п а з о н
в другую часть листа, начинающегося с ячейки А1, и имя М о й Д и а п а з о н будет сопос­
тавлено ссылке = Л и с т 1 ! $ А $ 1 : $С $3. Если вырезать и вставить только часть именован­
ного диапазона, ссылка не изменится.
Потенциальные проблемы с именами
Имена часто используются для создания таблиц. Однако некоторые проблемы могут
возникать с ними и при работе в книге. В этом разделе речь пойдет о тех моментах, о ко­
торых вы должны помнить, работая с именами в рабочих книгах.
Проблемы, возникающие при копировании
рабочих листов
Как вы, вероятно, знаете, Excel позволяет копировать рабочие листы в пределах ра­
бочей книги, а также в другую рабочую книгу. Прежде всего, мы рассмотрим пример ко­
пирования рабочего листа в пределах рабочей книги. Если копируемый лист содержит
имена, заданные на уровне рабочего листа, те же имена будут присутствовать и в копии
этого листа, причем в ссылках используется имя нового рабочего листа. Это именно то,
чего вы ожидаете. Если же рабочая книга содержит имя, заданное на уровне рабочей
книги, и данное имя относится к ячейке или диапазону копируемого рабочего листа, то
оно также будет присутствовать и в копии. Однако это имя будет преобразовано в имя,
заданное на уровне рабочего листа (чего вы, скорее всего, не ожидаете).
Рассмотрим рабочую книгу, содержащую один лист (Л и с т 1 ) . В ней присутствует имя
ИмяКниги, назначенное ячейке А1 на уровне рабочей книги. Кроме того, существует
еще одно и м я — Л и с т 1 ! Л о к а л ь н о е И м я , назначенное ячейке А2 на уровне рабочего
листа. Если создать копию листа Л и с т 1 в пределах рабочей книги, новый лист будет на­
зываться Л и с т 1 ( 2 ) . Скопируйте лист, и вы обнаружите, что теперь рабочая книга со­
держит четыре имени (рис. 3.14).
Такое увеличение количества имен при копировании листа не только сбивает с толку,
но и может привести к ошибкам, найти причину возникновения которых бывает непро­
сто. Если в рассматриваемом нами примере ввести следующую формулу в скопирован­
ный лист, формула вернет содержимое ячейки А1 скопированного листа:
=ИмяКниги
108
Часть I. Основные сведения
Рис. 3.14. Копирование рабочего листа приводит к созда­
нию дубликатов имен
Иными словами, используется вновь созданное на уровне рабочего листа имя (а не
исходное имя, заданное на уровне рабочей книги).
Если скопировать лист рабочей книги, которая содержит имя диапазона, относящего­
ся к нескольким листам, вместе с этим рабочим листом будет скопировано и имя диапа­
зона. В поле Диапазон появится сообщение об ошибке #ССЫЛКА!.
Если же лист копируется в другую рабочую книгу, все имена исходной рабочей кни­
ги, относящиеся к ячейкам копируемого листа, будут скопированы в новую книгу. Это
касается как имен, заданных на уровне рабочей книги, так и имен, заданных на уровне
рабочего листа.
Примечание
Копирование и вставка ячеек из одного рабочего листа в другой не приводит
к копированию имен даже в том случае, когда копируемый диапазон содер­
жит именованные ячейки.
Какой можно сделать вывод? Копируя листы рабочей книги, содержащей имена,
будьте очень внимательны. Скопировав лист, проверьте все имена и удалите те, которые
были скопированы случайно.
Проблемы, возникающие при удалении рабочих листов
При удалении листа, который содержит ячейки, используемые в заданном на уровне
рабочей книги имени, имя не удаляется. Оно остается в рабочей книге, но ссылка на
ячейку или диапазон в поле Формула будет содержать ошибку.
На рис. 3.15 показано диалоговое окно диспетчера имен, в котором присутствует имя
с ошибкой. Исходная рабочая книга содержала лист Л и с т 1 и ячейку А1 с именем
ИмяКниги, заданным на уровне рабочей книги. После удаления листа Л и с т 1 имя
ИмяКниги осталось в рабочей книге. Однако в поле Диапазон диалогового окна При­
своение имени появилось следующее выражение:
=#ССЫЛКА! $А$1
Обычно ошибочные имена в рабочей книге не вызывают каких-либо проблем, и все же
рекомендуется удалять или корректировать все имена, содержащие ошибочные ссылки.
Глава 3. Имена
109
Рис. 3.15. Удаление листа, содержащего диапазон М о й ­
Диапазон, приводит к появлению ошибочной ссылки
Именование объектов
Когда вы добавляете на рабочий лист объект, присваиваемое ему по умолчанию имя
отражает ТИП объекта (например, Прямоугольник!.).
Чтобы изменить имя объекта, выделите нужный объект, введите новое имя в поле
Имя и нажмите <Enter>. Исключение составляют диаграммы. В этом случае необходи­
мо выделить диаграмму, и в контекстной вкладке Работа с диаграммами^Макет вы­
брать команду Свойства.
Поле Имя в Excel имеет некоторые особенности: с его помощью можно переимено­
вать объект, однако список объектов в этом окне не отображается. Более того, Excel по­
зволяет задавать диапазонам имена, уже присвоенные объектам, при этом несколько
объектов могут иметь одно и то же имя. В диалоговом окне Диспетчер имен имена объ­
ектов не отображаются.
Ключ к пониманию термина “имя”
Пользователи Excel час^го обращаются к именованным ячейкам и именованным диа­
пазонам. В этой главе мы постоянно оперируем этими понятиями, однако данные терми­
ны не совсем точны.
Что мы подразумеваем под термином имя! Присваивая имя, вы в действительности
создаете именованную формулу. В отличие от обычной формулы, именованная формула
хранится не в ячейке, а в памяти Excel.
Если вы будете исходить из такой формулировки, вам будет легче овладеть сложны­
ми приемами, о которых пойдет речь в следующих разделах.
При работе в диалоговом окне диспетчера имен поле Диапазон содержит формулу,
а поле Имя — ее имя. Вы уже заметили, что содержимое поля Диапазон всегда начина­
ется со знака равенства, что свойственно формулам.
Как видно на рис. 3.16, рабочая книга содержит имя С т а в к а , присвоенное ячейке В1
листа Л и с т 1 . В поле Диапазон присутствует следующая запись:
=Лист1! $В$1
При обращении к имени С т а в к а Excel в действительности вычисляет формулу, ко­
торая носит это имя, и возвращает результат. Например, можно ввести в ячейку следую­
щую формулу:
=Ставка*1, 0 5
110
Часть I. Основные сведения
Оценивая эту формулу, Excel, прежде всего, анализирует формулу, которая носит имя
С т а в к а (оно существует только в памяти программы, а не в ячейке). Затем Excel умно­
жает результат именованной формулы на 1 , 0 5 и возвращает результат. Разумеется,
приведенная выше формула равноценна формуле, в которой вместо имени используется
ссылка на ячейку:
= Л и с т 1 ! $ В $ 1 * 1 , 05
Возникает вопрос: можно ли создать такую именованную формулу, которая бы не со­
держала ссылок на ячейки? Ответ на него вы найдете в следующем разделе.
Присвоение имени константе
Рассмотрим таблицу, с помощью которой создается счет и вычисляется сумма налога
для указанного объема продаж. Ставку налога с оборота вставьте в ячейку и ссылку на
эту ячейку используйте в различных формулах. Для того чтобы было понятно, что за ве­
личина указана в ячейке, присвойте этой ячейке имя С т а в к а Н а л о г а .
Существует еще один способ. На рис. 3.17 представлен результат выполнения сле­
дующих инструкций.
1. Выберите команду Формулы«=>Определенные именам Присвоить имя^Присвоить имя. Откроется диалоговое окно Создание имени.
2. Введите имя (в данном случае С т а в к а Н а л о г а ) в поле Имя.
3. Перейдите в поле Диапазон, удалите содержащуюся в нем запись и вместо нее
введите простую формулу, такую как = 0 , 0 7 5 .
4. Щелкните на кнопке ОК, для того чтобы закрыть диалоговое окно.
Рис. 3.16. Формально имя Ставка
представляет собой именованную
формулу, а не именованную ячейку
Рис. 3.17. Присвоение имени константе
В результате выполнения приведенных инструкций создается именованная формула,
в которой не используются ссылки на ячейки. Чтобы проверить все вышеизложенное на
практике, введем в любую ячейку такую формулу:
=СтавкаНалога
Эта простая формула возвращает 0 , 0 7 5 — результат именованной формулы
С т а в к а Н а л о г а . Поскольку именованная формула всегда возвращает один и тот же ре­
зультат, ее можно считать именованной константой. Эта константа может быть исполь­
зована и в более сложных формулах, например:
=А1*СтавкаНалога
111
Глава 3. Имена
Если не изменять область действия, установленную по умолчанию на уровень книги,
то можно использовать константу С т а в к а Н а л о г а на всех листах рабочей книги.
Присвоение имени текстовым константам
В предыдущем примере константа представляла собой числовое значение. Однако
константа может также состоять из текста. Например, можно определить константу для
названия компании. Для создания следующей формулы, которая называется MS, исполь­
зуется диалоговое окно Создание имени:
= " M ic r o s o f t C o r p o r a t i o n "
Теперь в любой ячейке можно использовать такую формулу:
="Годовой о т ч е т :
"&MS
Данная формула вернет текст Г о д о в о й о т ч е т : M i c r o s o f t C o r p o r a t i o n .
Примечание
Имена, не относящиеся к диапазонам, не отображаются в поле Имя и в диа­
логовом окне Переход (которое можно вызвать нажатием клавиши <F5>).
И это логично, поскольку константы отсутствуют в ячейках рабочего листа.
Константы отображаются в диалоговом окне Вставка имени, и это тоже ло­
гично, поскольку имена констант используются в формулах.
Как вы, вероятно, догадываетесь, значение константы может быть изменено в любой
момент в диалоговом окне Изменение имени. Все, что нужно сделать, — это изменить
значение в поле Диапазон. После того как диалоговое окно будет закрыто, Excel пересчи­
тает все формулы, в которых фигурирует данная константа, на основе нового значения.
Описанный выше прием очень эффективен во многих ситуациях, однако изменение
значения занимает некоторое время. Если константу разместить в ячейке, изменить ее
значение будет значительно легче. Если значение действительно является константой,
изменять его вам не придется.
Использование функций рабочего листа
в именованных формулах
На рис. 3.18 приведен еще один пример именованной формулы. В данном случае
формула будет называться Т е к ущ и й М ес я ц и иметь следующий вид:
=МЕСЯЦ(СЕГОДНЯ( ) )
В формуле, показанной на рис. 3.16, были использованы две функции рабочего листа.
Функция СЕГОДНЯ возвращает текущую дату, а функция МЕСЯЦ — номер месяца аргу­
мента даты. Таким образом, вы можете ввести в ячейку следующую формулу, которая
будет возвращать номер текущего месяца. Например, если текущий месяц— апрель,
формула будет возвращать 4.
=ТекущийМесяц
Более эффективная именованная формула будет возвращать название месяца в тек­
стовой форме. Такая формула, называющаяся И м яМ есяца, будет выглядеть следующим
образом:
=ТЕКСТ(СЕГОДНЯ( ) ; "ММММ")
112
Часть I. Основные сведения
Перекрестная ссылка
Детально функция
т е к с т
()
рассматривается в главе 5.
Теперь эту формулу можно ввести в ячейку, и она будет возвращать название текуще­
го месяца в текстовой форме. В апреле формула будет возвращать текст А п р е л ь .
= И м я М е с я ц а
Использование ссылок на ячейки и диапазоны
в именованных формулах
На рис. 3.19 приведен еще один пример создания именованной формулы. На этот раз
в формуле используется ссылка на ячейку. Эта формула, которая называется П ервы йСимвол, возвращает первый символ, содержащийся в ячейке А1 листа Л и ст1. Имено­
ванная формула выглядит так:
= Л Е В С И М В ( Л и с т ! ! $ А $ 1 ;1 )
Рис. 3.18. Создание именованной
формулы, в которой используются
функции рабочего листа
Рис. 3.19. Создание именованной
формулы, в которой используется
ссылка на ячейку
Создайте такую именованную формулу, и вы сможете ввести ее в ячейку. Формула
всегда возвращает первый символ, содержащийся в ячейке А 1 листа Л и с т 1 .
=ПервыйСимвол
В следующей именованной формуле, которую мы рассмотрим, используется ссылка
на диапазон. На рис. 3.20 показано диалоговое окно Создание имени, в котором задана
именованная формула под именем И т о г .
= С У М М ( Л и с т 1 !$ А $ 1 :$ D $ 4 )
Создав такую именованную формулу, можно ввести ее в ячейку любого рабочего
листа. Формула возвращает сумму значений ячеек диапазона А 1 :D 4 листа Л и с т 1 .
= И т о г
Обратите внимание на то, что в двух предыдущих формулах использовались абсо­
лютные ссылки. По умолчанию все ссылки на ячейки и диапазоны, используемые в име­
нованных формулах, являются абсолютными и включают название рабочего листа. Про­
читайте следующий раздел, и вы узнаете, какие интересные именованные формулы мож­
но создавать, применяя относительные ссылки.
Глава 3. Имена
113
Использование именованных формул
с относительными ссылками
Как уже отмечалось, если для создания именованной формулы со ссылками на ячейки
или диапазоны применяется диалоговое окно Создание имени, ссылки в поле Диапазон
всегда абсолютны и включают название рабочего листа. В этом разделе речь пойдет об ис­
пользовании в именованных формулах относительных ссылок на ячейки и диапазоны.
Использование относительной ссылки на ячейку
Начнем с простого примера. Для того чтобы создать именованную формулу с относи­
тельной ссылкой на ячейку, выполните следующее.
1. Откройте пустой рабочий лист.
2. Выделите ячейку А1 (этот шаг очень важен).
3. Откройте диалоговое окно Создание имени.
4. В поле Имя открывшегося окна введите ЯчейкаСправа.
5. Удалите содержимое поля Диапазон и введите следующую формулу (не указы­
вая ячейку рабочего листа мышью):
= Л и с т 1 ! В1
6. Щелкните на кнопке ОК, чтобы закрыть диалоговое окно Создание имени.
7. Введите в ячейку В1 необходимую информацию.
8. В ячейку А1 введите следующую формулу:
=ЯчейкаСправа
Вы обнаружите, что формула, расположенная в ячейке А1, возвращает содержи­
мое ячейки В1.
Теперь скопируйте формулу ячейки А1 в несколько ячеек, расположенных под ней,
и введите произвольные значения в столбец В. Вы увидите, что формула, находящаяся
в столбце А, возвращает содержимое ячейки, расположенной справа. Иными словами,
именованная формула Я ч е й к а С п р а в а имеет относительный характер.
Имя Я ч е й к а С п р а в а может быть использовано в любой ячейке (а не только в ячей­
ках столбца А). Например, если ввести = Я ч е й к а С п р а в а в ячейку D 12, эта ячейка будет
возвращать содержимое ячейки Е 12.
Для того чтобы убедиться в том, что в именованной формуле Я ч е й к а С п р а в а дейст­
вительно используется относительная ссылка на ячейку, активизируйте любую ячейку,
кроме А1, и откройте диалоговое окно Присвоение имени (рис. 3.21). В списке выбери­
те Я ч е й к а С п р а в а и обратите внимание на содержимое поля Диапазон. Вы увидите,
что изменение формулы зависит от активной в данный момент ячейки. Например, если
активна ячейка Е5, формула в диалоговом окне будет выглядеть так:
=Лист1! F5
Если имя Я ч е й к а С п р а в а используется в другом рабочем листе, формула все равно
будет ссылаться на ячейку, расположенную справа. Но это будет ячейка с соответствую­
щим адресом на листе Л и с т 1 . Дело в том, что именованная формула содержит ссылку
на рабочий лист. Для того чтобы формула правильно работала на любом рабочем листе,
измените ее, следуя инструкциям.
114
Часть I. Основные сведения
Рис. 3.20. Создание именованной
формулы, в которой используется
ссылка на диапазон
Рис. 3.21. Формула под именем Ячейизменяется в зависимо­
сти от того, какая ячейка активна в
данный момент
каСправа
1. Активизируйте ячейку А1 рабочего листа Л и с т 1 .
2. Откройте диалоговое окно Диспетчер имен.
3. В списке диалогового окна диспетчера имен выберите элемент Я ч е й к а С п р а в а .
4. Удалите содержимое поля Диапазон и введите следующую формулу:
= ! В1
5. Щелкните на ОК, чтобы закрыть диспетчер имен.
Измените ссылку таким образом, и вы убедитесь, что теперь формула под именем
Я ч е й к а С п р а в а корректно работает во всех листах рабочей книги.
Примечание
Именованная формула ЯчейкаСправа не будет работать, если она исполь­
зуется в формуле, расположенной в столбце x f d , поскольку в этом случае
формула ссылается на несуществующую ячейку (справа от столбца xfd
столбцов больше нет).
Использование относительной ссылки на диапазон
Следующий пример основан на предыдущем. Речь пойдет о создании именованной
формулы, которая возвращает сумму десяти ячеек, расположенных справа от определен­
ной ячейки. Для того чтобы создать такую именованную формулу, следуйте приведен­
ным ниже инструкциям.
1. Активизируйте ячейку А1 .
2. Откройте диалоговое окно Создание имени.
3. В поле Имя открывшегося окна введите СуммаЮЯчеек.
4. Введите следующую формулу в поле Диапазон:
=СУММ(!В1: !К1)
Создав именованную формулу, можно ввести следующую формулу в любую ячейку лю­
бого листа, и эта формула будет возвращать сумму десяти ячеек, расположенных справа:
=Сумма1ОЯчеек
Например, если ввести такую формулу в ячейку D12, она будет возвращать сумму
значений диапазона Е12 : N12, состоящего из десяти ячеек.
Глава 3. Имена
115
Обратите внимание на то, что, когда вы создавали именованную формулу, активной
была ячейка А1, поэтому относительные ссылки в определении формулы заданы относи­
тельно ячейки А1. Заметьте также, что в формуле не использовано имя рабочего листа.
Отсутствие имени рабочего листа (при условии, что в формулу включен восклицатель­
ный знак) говорит о том, что эту формулу можно использовать на любом листе.
Если активизировать ячейку D12, а затем открыть диалоговое окно Создание име­
ни, то в поле Диапазон для формулы под именем СуммаЮ Ячеек будет приведена сле­
дующая запись:
=СУММ( ! Е12 : 1N12)
Примечание
Именованная формула СуммаЮЯчеек не будет работать, если ввести ее
в ячейку, которая располагается в столбце, следующем за столбцом х е т .
В таком случае формула становится ошибочной, поскольку в ней появляется
ссылка на несуществующую ячейку, расположенную за пределами столбца x f d .
Использование смешанных ссылок на диапазоны
Как уже отмечалось в главе 2, ссылка может быть абсолютной, относительной или
смешанной. Смешанная ссылка на ячейку может состоять из следующих элементов:
•
абсолютная ссылка на столбец и относительная ссылка на строку (например, $А1);
•
относительная ссылка на столбец и абсолютная ссылка на строку (например, А$ 1).
Смешанные ссылки могут использоваться в именованных формулах. Применим такую
ссылку на практике. Активизируйте ячейку В1. В диалоговом окне Создание имени создай­
те формулу под именем ПерваяВСтроке. Определение формулы должно выглядеть так:
=! $А1
В этой формуле использована абсолютная ссылка на столбец и относительная ссылка
на строку. Следовательно, формула всегда возвращает значение, заданное в столбце А.
Строка зависит от того, в какой ячейке введена формула. Например, если ввести сле­
дующую формулу в ячейку F12, она вернет значение ячейки А12:
=ПерваяВСтроке
©
Примечание
Формулу ПерваяВСтроке нельзя использовать в столбце а , поскольку будет
создана циклическая ссылка. Формула в данном случае будет ссылаться са­
ма на себя.
Решение сложных задач с помощью формул
В этом разделе будет приведено несколько примеров решения усложненных задач
с использованием имен. Все эти примеры предполагают, что вы уже знакомы с приема­
ми, описанными в предыдущих разделах.
Функция двссыл и именованный диапазон
Функция ДВССЫЛ позволяет определять адрес ячейки косвенно. Например, если ячейка А1
содержит текст " С4 5 11, следующая формула будет возвращать содержимое ячейки С4 5:
=ДВССЫЛ (А1)
116
Часть I. Основные сведения
Функция ДВССЫЛ может использоваться и в работе с именованными диапазонами. На
рис. 3.22 представлена таблица с 12 именами диапазонов, соответствующими названиям
месяцев года. Например, имя Я н в а р ь относится к диапазону В 2 : Е 2 . Ячейка В 16 со­
держит такую формулу:
=СУММ(ДВССЫЛ(А16))
Эта формула возвращает сумму именованного диапазона, имя которого задано в тек­
стовой форме в ячейке А16.
Рис. 3.22. Использование функции двссыл при работе
с именованным диапазоном
Совет
Команду Данные1^Работа с данными^Проверка данных можно использовать
для вставки раскрывающегося списка в ячейку А1б. В поле Тип данных от­
крывшегося окна выберите пункт Список, а в поле Источник введите диапа­
зон А2 : А 13 . Теперь пользователь сможет выбрать название месяца из спи­
ска, а итоговое значение для месяца будет отображаться в ячейке В16.
Используя функцию ДВССЫЛ, можно ссылаться и на имена уровня рабочего листа.
Предположим, что вы работаете с рабочими листами О б л а с т ь 1, О б л а с т ь 2 и т.д. Каж­
дый лист содержит имя И т о г и П р о д а ж , заданное на уровне рабочего листа. Следующая
формула извлекает значение из соответствующего рабочего листа, используя имя листа,
заданное в ячейке А1:
=ДВССЫЛ (А1&" !ИтогиПродаж")
Использование функции ДВССЫЛ д ля создания
именованного диапазона с фиксированным адресом
В Excel можно создать имя, которое всегда ссылается на одну и ту же ячейку или
диапазон даже в том случае, если вы вставите новые строки или столбцы. Предположим,
нужно создать диапазон под именем Л е в ы й В е р х н и й , который всегда ссылается на
ячейку А1. Если создать имя обычным способом, вставка новой строки 1 приведет к то­
му, что диапазон Л е в ы й В е р х н и й будет ссылаться на ячейку А2. Вставка нового столбца
приведет к тому, что диапазон Л е в ы й В е р х н и й будет ссылаться на ячейку В2. Для соз­
Глава 3. Имена
117
дания именованного диапазона, который имеет фиксированный адрес, необходимо за­
дать именованную формулу, содержащую в поле Диапазон следующее выражение:
=ДВССЫЛ ( " $А$ 1" )
Если создать такую формулу, диапазон Л е в ы й В е р х н и й будет ссылаться на ячейку
А1 даже после вставки новых строк и столбцов. Функция ДВССЫЛ предыдущей формулы
позволяет задать адрес ячейки косвенно с помощью текстового аргумента. Поскольку
аргумент заключен в кавычки, он никогда не изменяется.
Использование массивов в именованных формулах
Массив— это набор элементов. Массив может быть вертикальным (состоящим из
одного столбца) или горизонтальным (состоящим из одной строки). Массивом может
быть также совокупность нескольких столбцов и строк.
Перекрестная ссылка
В части IV подробно описаны массивы и формулы массивов. Однако эта те­
ма имеет отношение и к именам.
Задать массив можно с помощью фигурных скобок. Каждый элемент массива отделя­
ется запятой или точкой с запятой. Запятая используется для разделения элементов, рас­
положенных вертикально, а точка с запятой — для разделения элементов, находящихся
горизонтально.
В диалоговом окне Создание имени можно создать формулу И м е н а М е с я ц е в , ко­
торая имеет такое определение:
= { "Я н в 11; " Ф е в " ; "Мар" ; " А п р " ; "М ай" ; "Июн" ; "Июл" ; " А в г " ;
"Сен"; "Окт"; "Ноя"; "Дек"}
Эта формула определяет массив, который состоит из 12 текстовых строк, располо­
женных горизонтально.
Примечание
Вводя такую формулу, не забудьте о фигурных скобках. В диалоговое окно
Создание имени формула массива вводится не так, как в ячейку.
Определив формулу И м е н а М е с я ц е в , ее можно использовать в других формулах.
Однако в конечной формуле необходимо обозначить, какой из элементов массива ис­
пользуется. Для этого рекомендуется применить функцию ИНДЕКС. К примеру, следую­
щая формула возвращает текст " А в г 11:
= И НДЕКС(Им енаМ есяцев; 8 )
Можно отобразить и весь массив, состоящий из 12 элементов, но для этого потребу­
ется 12 смежных ячеек. Для того чтобы ввести 12 элементов массива в диапазон А 1 : L1,
следуйте приведенным ниже инструкциям.
1. В диалоговом окне Создание имени создайте формулу с именем И м е н а М есяцев.
2. Выделите диапазон А 1 : L1.
3. В строку формул введите =ИменаМесяцев.
4. Нажмите комбинацию клавиш <Ctrl+Shift+Enter>.
118
Часть I. Основные сведения
При нажатии <Ctrl+Shift+Enter> Excel вставляет формулу массива в выделенный диа­
пазон. В данном случае формула будет введена в 12 смежных ячеек (рис. 3.23). Про­
грамма заключает формулу массива в скобки, напоминая вам, что это специфическая
формула. В каждой из 12 ячеек диапазона A I : L1 формула будет иметь следующий вид:
{ =ИменаМесяцев}
Рис. 3.23. Именованную формулу, которая содержит массив из 12 элементов, можно
разместить в 12 смежных ячейках
Создание формулы с динамическим размером
Динамическая формула — это формула, относящаяся к диапазону, размер которого
не фиксирован. Вероятно, осмыслить новое понятие непросто. Рассмотрим пример.
Обратите внимание на таблицу, показанную на рис. 3.24. Эта таблица содержит све­
дения об объеме продаж за период с января по май.
Предположим, нужно присвоить имя О б ъ е м П р о д а ж
диапазону данных, расположенных в столбце В. При этом
имя не должно относиться к пустым ячейкам. Иными
словами, ссылка на диапазон О б ъ е м П р о д а ж будет ме­
няться каждый месяц, по мере ввода новых данных. Ра­
зумеется, можно изменять ссылку вручную каждый месяц
с помощью диалогового окна Создание имени, однако
гораздо эффективнее использовать динамическую фор­
мулу, которая будет автоматически меняться с каждым
последующим вводом данных.
Рис. 3.24. Динамическая фор­
Прежде чем задать динамическую формулу, создайте мула может использоваться для
таблицу, показанную на рис. 3.24. Затем выполните сле­ ввода данных в столбец в
дующие действия.
1. Откройте диалоговое окно Создание имени.
2. В поле Имя введите ОбъемПродаж.
3. В поле Диапазон введите следующую формулу:
=СМЕЩ(Лист1! $ В $ 1 ; 0 ; 0 ; СЧЁТЗ(Лист1! $ В : $ В ) ;1)
4. Щелкните на кнопке ОК, чтобы закрыть диалоговое окно Создание имени.
В результате выполнения этих действий создается формула, в которой используются
функции СМЕЩ и СЧЁТЗ.
Примечание
В формуле предполагается, что диапазон не содержит пустых ячеек. Напри­
мер, если ячейка В2 пустая, функция с ч ё т з пропустит ее и в результате
функция счёт вернет неправильный диапазон.
Глава 3. Имена
119
Для того чтобы проверить, как работает эта формула, введите следующую формулу
в любую ячейку, которая не расположена в столбце В:
=СУММ(ОбъемПродаж)
Эта формула вернет сумму значений столбца В. Обратите внимание на то, что О бъемПродаж не отображается ни в поле Имя, ни в диалоговом окне Переход. Для того чтобы
выбрать диапазон, откройте диалоговое окно Переход и введите ОбъемПродаж вручную.
Напрашивается вопрос: зачем все эти трудности? Ведь и простая формула, приведен­
ная ниже, сделает все, что необходимо:
=СУММ( В : В)
Эффективность работы именованных формул с динамическим размером становится
очевидной при создании диаграмм. С помощью таких формул можно создать диаграмму
с наборами данных, которые автоматически изменяются при вводе новых сведений.
Перекрестная ссылка
Использование таблиц для хранения данных часто устраняет необходимость
создания динамических диапазонов. Таблицы рассматриваются в главе 9.
Часть
Использование функций
в формулах
В этой части...
Глава 4
Знакомство с функциями рабочего листа
Глава 5
Работа с текстом
Глава 6
Дата и время
Глава 7
Способы суммирования и подсчета данных
Глава 8
Поиск данных
Глава 9
Базы данных и таблицы листа
Глава 10
Дополнительные виды вычислений
Глава
Знакомство с функциями
рабочего листа
Вэтой главе...
♦ Что такое функция
♦ Типы аргументов функций
♦ Способы ввода функций в формулу
♦ Категории функций
Для того чтобы в совершенстве овладеть искусством работы с формулами в Excel,
вам придется досконально изучить тему функций. В этой главе представлен обзор функ­
ций, которые могут использоваться в формулах.
Что такое функция
Функция — это встроенный инструмент вычисления, используемый в формуле. Она
принимает один или несколько аргументов и возвращает результат. Функция СУММ, на­
пример, принимает аргумент диапазона и возвращает сумму его значений.
С помощью функций можно выполнять следующие действия:
• упрощать формулы;
• производить вычисления, которые невозможно осуществить без функций;
• ускорять выполнение некоторых задач редактирования; .
• реализовать условное выполнение формул.
Примеры, приведенные в следующих разделах, иллюстрируют эти положения.
124
Часть II. Использование функций в формулах
Упрощение формулы
Иногда использование встроенных функций позволяет существенно упростить формулу.
Предположим, нужно вычислить среднее арифметическое значений десяти ячеек ( А 1 : А10).
Без использования функций вам пришлось бы создать примерно следующую формулу:
= (А1+А2+АЗ+А4+А5+А6+А7+А8+А9+А10) / 1 0
Громоздко, не правда ли? Более того, если впоследствии диапазон суммируемых зна­
чений будет увеличен, вам придется редактировать эту формулу. Однако ее можно заме­
нить более простой, в которой будет использована одна из встроенных функций рабочего
листа Excel. В приведенной ниже формуле используется функция СРЗНАЧ:
=СРЗНАЧ(А1:А 1 0 )
Вычисления, невозможные без функций
Функции позволяют выполнять такие вычисления, которые без их использования не­
возможны. Допустим, требуется определить наибольшее значение диапазона. Формула,
в которой не используются функции, не сможет решить такую задачу. В следующем
примере функция МАКС используется для возвращения формулой наибольшего значения
диапазона А 1 : D10 0:
=МАКС(А 1 : D10 0)
Ускорение при выполнении задач редактирования
В некоторых случаях функции позволяют избежать редактирования вручную. Предпо­
ложим, что в ячейках диапазона А 1 : А 1 0 0 0 содержится 1000 имен, каждое из которых
полностью записано символами верхнего регистра. Увидев такой список имен, ваш началь­
ник заявит, что в письме, которое должно содержать эти имена, запись имени символами
верхнего регистра совершенно неприемлема. Например, вместо “JOHN F. CRANE” должно
быть “John F. Crane”. Вы, конечно, можете посвятить остаток рабочего дня редактирова­
нию каждого из имен вручную. Однако намного проще создать формулу, в которой ис­
пользуется функция ПРОПНАЧ — она преобразует текст ячейки А1 в нужный формат:
=ПРОПНАЧ(А1)
1. Введите эту формулу в ячейку В1, а затем скопируйте ее в следующие 999 строк.
2. Выделите диапазон В 1 : В 1 0 0 0 и скопируйте его в буфер обмена с помощью ко­
манды Копировать вкладки Главная или нажав клавиши <Ctrl+C>.
3. Активизируйте ячейку А1 и преобразуйте формулы в значения, выбрав команду
Главная^ Буфер обмена^Вставить^Вставить значения.
4. Удалите столбец В.
Таким образом, в приведенном примере использование встроенной функции Excel
позволило сэкономить несколько часов драгоценного времени.
Принятие решений
Функции предоставляют формулам возможность принятия решений. Предположим, у
вас есть таблица, предназначенная для вычисления комиссионных с продажи. Если ме­
неджер продает товар на сумму, превышающую 100 тысяч долларов, ставка комиссион­
Глава 4. Знакомство с функциями рабочего листа
125
ного вознаграждения равна 7,5%. В противном случае комиссионное вознаграждение со­
ставляет 5,0% от суммы продаж. Если вы не примените функцию, вам придется создать
две разные формулы, и затем для каждого отдельного случая решать, какую формулу
следует использовать. Обратите внимание на следующую формулу, в которой использу­
ется функция ЕСЛИ. Формула проверяет значение в ячейке А1, а затем производит соот­
ветствующие вычисления:
=ЕСЛИ( А1<10 0 0 0 0 ; А 1 * 5 % ; А 1 * 7 ,5%)
Функция ЕСЛИ принимает три аргумента, разделенные точками с запятыми. Это
входные аргументы функции. Благодаря функции формула принимает решение: если
первый аргумент равен значению ИСТИНА, возвращается второй аргумент, в противном
случае — третий.
Еще несколько слов о функциях
Как уже отмечалось, в Excel встроено более 300 функций. Если вам этого недоста­
точно, то можете приобрести дополнительные специальные функции у сторонних произ­
водителей и даже создать свои собственные функции с помощью языка VBA (такие
функции называются пользовательскими).
Перекрестная ссылка
Создание пользовательских функций на VBA рассматривается в части VI.
В таком огромном количестве функций можно очень быстро запутаться, к тому же
обычно в работе используется лишь пара десятков из них. Группа Библиотека функций
вкладки Формулы (описанная далее) позволяет легко найти и вставить нужные функции,
даже если они редко используются.
Перекрестная ссылка
В приложении А содержится полный список функций Excel с кратким описа­
нием каждой из них.
Типы аргументов функций
При рассмотрении приведенных эыше примеров вы, наверняка, заметили, что в каж­
дой из функций используется пара скобок. Информация, приведенная в скобках, называ­
ется аргументами функции. Количество аргументов в разных функциях не одинаково.
Функция может:
• не иметь ни одного аргумента;
• иметь один аргумент;
• иметь фиксированное количество аргументов;
• иметь неограниченное количество аргументов;
• иметь необязательные аргументы.
Например, функция СЛЧИС, которая возвращает случайное число между нулем
и единицей, не имеет аргументов. Но даже при отсутствии аргументов необходимо вве­
сти пустую пару скобок:
=слчис ()
Часть II. Использование функций в формулах
126
Если функция имеет больше одного аргумента, то все они отделяются друг от друга
точкой с запятой. В функции НАИБОЛЬШИЙ, которая возвращает и-ое по величине значе­
ние из множества данных, используются два аргумента. Первый из них задает диапазон
значений, а второй — значение п. Приведенная ниже формула возвращает третье по ве­
личине значение ячеек диапазона А 1 : А100:
=НАИБОЛЬШИЙ(А 1 :А10 0 ; 3 )
Примечание
Символы разделителей определяются в окне региональных стандартов Win­
dows. Если в этом окне установлен русский формат, разделителем списка
служит точка с запятой, а десятичным разделителем — запятая. Если же ус­
тановлен формат США, разделителем списка будет запятая, а десятичным
разделителем — точка. Переключите формат в Windows, и вы увидите, что
символы разделителей в формулах автоматически изменятся. Обязательно
переключите формат обратно, потому что в данной книге предполагается,
что установлен русский формат. Кроме разделителей, установленный фор­
мат влияет на отображение дат, времени, денежных значений и т.д.
В примерах, приведенных в начале главы, аргументами служили ссылки на ячейки и
диапазоны. Однако следует заметить, что в отношении аргументов функций Excel доста­
точно демократична. В следующих разделах будут описаны другие типы аргументов
функций.
В помощь пользователям, работавшим в Lotus 1-2-3
Если вам приходилось работать в одной из версий Lotus 1-2-3 (или Quattro Pro ком­
пании Corel), то вы, наверное, помните, что в этих электронных таблицах перед именем
функции должен стоять символ @. Excel — достаточно сообразительная программа —
она способна распознать функцию и без отличительного символа.
От старых привычек трудно избавиться, и поэтому Excel воспринимает символы @
при вводе формул. Как только вы введете формулу, символ @будет удален.
В качестве оператора ссылки на диапазон в Lotus 1-2-3 и Quattro Pro используются
две точки ( . . ) , например A i . . а ю . Excel позволяет использовать такой оператор при
вводе формулы. Однако как только формула будет введена, Excel заменит его собст­
венным оператором ссылки на диапазон — двоеточием (:).
На этом уступки пользователям, которые еще не успели адаптироваться к Excel, за­
канчиваются. В Excel могут использоваться только стандартные имена функций; про­
грамма не воспринимает и не преобразует имена, принятые в аналогичных средствах
создания электронных таблиц. Например, если ввести используемую в Lotus 1-2-3
функцию @a v g , Excel сгенерирует сообщение об ошибке (в Excel аналогичная функция
носит название с р з н а ч ).
Использование имен в качестве аргументов
В качестве аргументов функций могут использоваться имена, т.е. ссылки на ячейки
и диапазоны. Выполняя вычисления, Excel просто использует текущее содержимое ячейки
или диапазона. Функция СУММ возвращает сумму своих аргументов (или аргумента). На­
пример, вычислить сумму значений диапазона А 1 : А20 можно с помощью такой формулы:
=СУММ(А1:А 2 0 )
Глава 4. Знакомство с функциями рабочего листа
127
Если диапазон А 1 : А2 0 имеет имя (например, Продажи), то оно может быть исполь­
зовано вместо ссылки на диапазон:
=СУММ(Продажи)
Перекрестная ссылка
За подробной информацией о том, как определять и применять имена, об­
ратитесь к главе 3.
Использование столбцов и строк в качестве аргументов
Иногда в качестве аргумента функции удобно использовать строку или столбец пол­
ностью. К примеру, следующая формула возвращает сумму всех значений столбца В:
=СУММ(В : В)
Ссылки на целую строку или столбец особенно эффективны в тех случаях, если диа­
пазон, сумму значений которого следует вычислить, постоянно изменяется (например,
если в таблицу периодически вносятся новые данные об объемах продаж). Прежде чем
использовать ссылку на целую строку или столбец, убедитесь в том, что они не содержат
данных, которые не должны быть включены в сумму.
Не следует беспокоиться о том, что суммирование такого громадного диапазона зна­
чений (столбец, например, состоит из 1 048 576 ячеек) может увеличить время вычисле­
ния. Дело в том, что Excel “помнит”, в каком столбце и в какой строке располагается по­
следнее значение. Поэтому, вычисляя результат формулы с помощью ссылки на целую
строку или столбец, программа не будет принимать в расчет ячейки, выходящие за пре­
делы последнего использованного столбца и строки.
Использование литералов в качестве аргументов
Литерал — это числовое значение или текстовая строка, которые указаны непосред­
ственно в выражении. Например, функция КОРЕНЬ, которая возвращает значение квад­
ратного корня, имеет один аргумент. В следующем примере в качестве аргумента функ­
ции используется литерал:
= К 0 Р Е Н Ь (2 2 5 )
В некоторых случаях использование литерального аргумента лишает формулу всяко­
го смысла. Эта формула всегда возвращает одно и то же значение, поэтому ее можно
просто заменить цифрой 15. Использовать такую формулу можно разве что в случае, ко­
гда вы хотите дать понять, что 15 — это квадратный корень из 225.
Использование литералов оправдано, если формула имеет два и более аргументов.
Функция ЛЕВСИМВ, имеющая два аргумента, возвращает крайние левые символы тек­
стовой строки, являющейся первым аргументом функции. Второй аргумент определяет
количество возвращаемых символов. Если ячейка А1 содержит текст Бюджет, следую­
щая формула возвращает первую букву, т.е. Б:
=ЛЕВСИМВ (А 1 ; 1)
Использование выражений в качестве аргументов
Excel позволяет использовать в качестве аргументов выражения. Такие выражения
следует рассматривать как формулы в формуле. Если в качестве аргумента используется
128
Часть II. Использование функций в формулах
выражение, Excel сначала вычисляет значение этого выражения, а затем использует его
в качестве аргумента. Рассмотрим следующий пример:
=КОРЕНЬ( (А1 а 2 ) + ( А2 а 2 ) )
В этой формуле используется функция КОРЕНЬ, единственным аргументом которой
выступает следующее математическое выражение:
(А1Ж2 ) + ( А2 а 2)
Вычисляя значение формулы, Excel сначала вычисляет значение выражения в аргу­
менте функции, а затем извлекает квадратный корень из результата вычислений.
Использование других функций в качестве аргументов
Итак, в качестве аргументов функций могут выступать математические выражения.
Очевидно, что эти выражения, в свою очередь, содержат другие функции. Функции,
которые используются внутри других функций, называются вложенными. Прежде всего,
Excel оценивает значение выражения с наибольшей глубиной вложения, а затем — все
остальные. Рассмотрим следующий пример вложенной функции:
= S I N (РАДИАНЫ(В9))
Функция РАДИАНЫ преобразует градусы в радианы — единицы измерения, которые
используются во всех тригонометрических функциях Excel. Если в ячейке В9 задан угол
в градусах, функция РАДИАНЫ преобразует градусы в радианы, а затем функция SIN вы­
числяет синус этого угла.
Формула может содержать не более 64 уровней вложенных функций. Вряд ли вы ко­
гда-либо напишете такое длинное выражение.
Использование массивов в качестве аргументов
В качестве аргумента функции может быть использован массив. Массив представляет
собой ряд значений, разделенных точкой с запятой и заключенных в скобки. В приве­
денной ниже формуле используется функция ИЛИ, в качестве аргумента которой приме­
нен массив. Формула возвращает ИСТИНА, если ячейка А1 содержит значение 1, 3 или 5.
=ИЛИ (А1= { 1 ; 3 ; 5 } )
Перекрестная ссылка
Подробнее работа с массивами будет описана в части IV.
Очень часто использование массивов помогает упростить формулу. Например, сле­
дующая формула возвращает тот же результат, что и предыдущая, но в качестве аргу­
мента в ней используется не массив, а функции ЕСЛИ. Как видите, формула с массивом
намного проще.
=Е С ЛИ( А1=1; ИСТИНА; ЕСЛИ( А1 =3 / ИСТИНА; ЕСЛИ( А1 =5 ; ИСТИНА; ЛОЖЬ)) )
Способы ввода функций в формулу
Существуют три способа ввода функции в формулу: вручную, с помощью библиотеки
функций и с помощью команды Вставить функцию.
Глава 4. Знакомство с функциями рабочего листа
129
Ввод функции вручную
Если вы уже знакомы с функцией (знаете, сколько аргументов она должна содержать
и какой тип она имеет), можно просто ввести функцию и ее ар1ументы непосредственно
в формулу. Зачастую этот метод оказывается наиболее эффективным.
В Excel 2007 было представлено новое средство, облегчающее ввод функций, —
автозавершение. Когда в ячейку введены знак равенства и первый символ функции, Ex­
cel отображает раскрывающийся список всех функций, начинающихся с этой буквы,
и экранную подсказку с кратким описанием функции (рис. 4.1). Можно продолжить ввод
имени функции, чтобы сократить этот список или использовать клавиши стрелок для вы­
деления нужной функции в списке. Когда нужная функция выделена, нажмите <ТаЬ>,
и она будет вставлена в ячейку вместе с открывающей скобкой.
Рис. 4.1. Когда вы начинаете вводить функцию, Excel отображает список функ­
ций, начинающихся с уже введенных символов
Примечание
Вместе с именами функций список автозавершения содержит имена диапа­
зонов и ссылки на таблицы (о таблицах см. главу 9).
После нажатия клавиши <Tab> Excel отображает еще одну экранную подсказку
(рис. 4.2), в которой перечисляются аргументы функции. Полужирным шрифтом выде­
лен вводимый в настоящее время аргумент. Аргументы, показанные в квадратных скоб­
ках, являются необязательными. Обратите внимание, что текст в экранной подсказке со­
держит гиперссылки. Гиперссылки отображаются, когда указатель мыши наведен на имя
функции или ее аргументы. Щелчок на гиперссылке приводит к выбору аргумента. Если
окно подсказки мешает вам, можете перетащить его в другое место.
Рис. 4.2. В подсказке отображается список аргументов
Если при вводе функции пропустить закрывающую скобку, Excel вставит ее автома­
тически. Например, если ввести =СУММ (А 1: С12 и нажать <Enter>, программа исправит
ошибку, вставив закрывающую скобку.
Часть II. Использование функций в формулах
130
Совет
После ввода функции Excel преобразует введенные символы в верхний регистр.
Поэтому разумно вводить все функции с помощью символов нижнего регистра.
Если после нажатия клавиши <Enter> программа не преобразует текст в верхний
регистр, это значит, что программа не распознала введенную вами запись как
функцию. Так происходит в том случае, если при вводе функции была допущена
ошибка или данная функция просто недоступна (например, функция определена
только в надстройке, которая в данный момент не установлена). Это может слу­
жить одним из способов избежать ошибок при вводе функций.
Вставка функций из библиотеки
Еще один способ вставки функции в формулу состоит в использовании группы ко­
манд Формулы ^Библиотека функций (рис. 4.3). Каждый значок этой группы пред­
ставляет собой раскрывающийся список библиотечных функций. При выделении функ­
ции появляется окно подсказки с короткой справкой о ней.
Рис. 4.3. Библиотека функций
При выборе пункта в списке активизируется диалоговое окно Аргументы функции,
помогающее ввести аргументы. Это диалоговое окно подробнее рассматривается в сле­
дующем разделе.
Команда Вставить функцию
Эта команда позволяет ввести функцию и ее аргументы полуавтоматически. Ее ис­
пользование позволяет избежать ошибок в написании формулы. Кроме того, функция,
вставленная с помощью этой команды, будет иметь соответствующее число аргументов,
расположенных в правильном порядке.
Для того чтобы вставить функцию, выберите ее в списке диалогового окна Мастер
функций (рис. 4.4). Открыть это диалоговое окно можно несколькими способами.
•
Выберите команду Формулы1^Библиотека функций«=>Вставить функцию.
•
Выберите команду Формулы«=>Библиотека функций^Автосумма^Другие
функции.
Глава 4. Знакомство с функциями рабочего листа
131
•
Щелкните на кнопке/х слева от строки формул.
•
Нажмите комбинацию клавиш <Shift+F3>.
Рис. 4.4. Диалоговое окно Мастер функций
В списке приводятся только функции, принадлежащие категории, выбранной в раскры­
вающемся списке Категория. В категории 10 недавно использовавшихся представлены
функции, которые вы использовали в последнее время. В категории Полный алфавитный
перечень представлены функции всех категорий. Если вы знаете имя функции, а ее кате­
гория вам не известна, откройте категорию Полный алфавитный перечень.
У вас есть возможность поиска функций. Для этого используется текстовое поле,
расположенное в верхней части диалогового окна Мастер функций. Введите в него од­
но или несколько ключевых слов и щелкните на кнопке Найти. Excel отобразит список
функций, удовлетворяющих условиям поиска.
Обратите внимание на то, что после выбора функции в списке Выберите функцию
под ним появляются название этой функции (и аргументов), а также ее краткое описание.
Выбрав необходимую функцию, щелкните на кнопке ОК. Откроется диалоговое окно
Аргументы функции (рис. 4.5), в котором следует задать аргументы. Для того чтобы за­
дать аргумент диапазона, щелкните на кнопке сворачивания окна (значок в правом углу
поля каждого аргумента). Excel временно свернет диалоговое окно Аргументы функ­
ции, что позволит выделить диапазон на рабочем листе.
Аргументы функции
j
---------------------------------В Д д Н ]
АМОРУВ
С то и м о с ть
Д а т а .п р и о б р
Первы й_период
|
О с та то ч н а яс то и м о с ть
Период
Возвращает величину пропорционально распределенной амортизации актива д л я каждого учетного периода.
С то и м о с ть
затраты на приобретение актива.
Значение:
Справка по этой Функции
Рис. 4.5. Диалоговое окно Аргументы функции
j
OK
j
j
Отмена
I
132
Часть II. Использование функций в формулах
Позвольте Excel вставить функции за вас
В большинстве случаев вам придется самостоятельно вставлять функции. Однако
в некоторых ситуациях Excel может вставить функцию автоматически.
•
При щелчке на кнопке Автосумма, расположенной во вкладке Главная или Формулы,
Excel выполняет быструю проверку окружающих ячеек. Затем программа предла­
гает формулу, в которой используется функция сум м . Если это именно то, что вам
нужно, нажмите клавишу <Enter> (или повторно щелкните на кнопке Автосумма),
чтобы подтвердить предложенную программой формулу. Если предложенная фор­
мула вам не подходит, нажмите клавишу <Esc>.
Можно предварительно выделить диапазоны ячеек, включаемых в автосумму, а не
отдавать на откуп Excel принятие решения относительно состава этих ячеек. К при­
меру, чтобы вставить сумму ячеек a i : а ю в ячейку а п , выделите ячейки a i : A l l ,
после чего щелкните на кнопке Автосумма.
Рядом с кнопкой Автосумма отображается стрелка, при щелчке на которой появля­
ется список альтернативных итоговых функций. К примеру, в этом списке можно
выбрать пункт Среднее, чтобы применить функцию с р з н а ч и в ы ч и с л и т ь среднее
значение выделенных ячеек.
•
При работе с таблицей (созданной с помощью команды Таблица вкладки Вставка)
в контекстной вкладке Работа с таблицами1^ Конструктор можно установить флажок
Строка итогов, и в нижней части таблицы будет вставлена строка с итоговыми
функциями. (О работе с таблицами подробно рассказывается в главе 9.)
•
Выбрав во вкладке Данные команду Консолидация, вы откроете диалоговое окно Консо­
лидация, которое позволит задать несколько параметров подсчета итогов. После того
как вы зададите параметры подсчета, Excel вставит строки и автоматически введет
формулы. В этих формулах будет использована функция промежуточные . итоги.
Несколько полезных советов по вводу функций
Настоящий раздел содержит ряд полезных советов, которые помогут вам при вводе
функций с помощью диалогового окна Мастер функций.
•
Щелкните на ссылке Справка по этой функции (см. рис. 4.5), и вы получите ин­
формацию о выбранной вами функции (рис. 4.6).
•
Если активная ячейка уже содержит формулу, в которой использовалась функция,
щелчком на кнопке Вставить функцию можно открыть диалоговое окно Аргу-
менты функции.
•
Диалоговое окно Мастер функций может использоваться для вставки функции в
уже существующую формулу. Для этого переместите курсор в ту точку, в которую
нужно вставить функцию. Затем откройте диалоговое окно Мастер функций и
выберите необходимую функцию.
•
Если вы передумали вставлять функцию, щелкните на кнопке Отмена.
•
Количество аргументов той или иной функции определяет число текстовых полей
диалогового окна Аргументы функции. Если функция не имеет ни одного аргу­
мента, в диалоговом окне аргументов не будет ни одного текстового поля. Функ­
ция может иметь переменное количество аргументов (как, например, функция
СРЗНАЧ). В этом случае Excel создает новое текстовое поле каждый раз, когда вы
вводите дополнительный аргумент.
Глава 4. Знакомство с функциями рабочего листа
133
Рис. 4.6. He забывайте о справочной системе Excel. Обратитесь за помощью к про­
грамме, и вы получите исчерпывающую информацию о функциях
•
Справа от каждого текстового поля диалогового окна Аргументы функции ука­
зывается текущее значение или тип данного аргумента.
•
В Excel существуют такие функции, которые имеют несколько форм (например,
ИНДЕКС). Если выбрать одну из этих функций, Excel откроет диалоговое окно, по­
зволяющее выбрать нужную форму функции.
•
Для того чтобы ускорить поиск необходимой функции в списке Выберите функ­
цию диалогового окна Мастер функций, откройте список, введите первую букву
имени функции, а затем прокрутите список до необходимого вам пункта. Напри­
мер, если вы решили найти функцию s i n в категории Полный алфавитный пе­
речень, щелкните кнопкой мыши в любой части списка и нажмите S. Excel выбе­
рет первую функцию, имя которой начинается с буквы S. Нажимайте S, пока не
найдете в списке функцию SIN.
•
Если активная ячейка содержит формулу, в которой используется одна или не­
сколько функций, их можно отредактировать с помощью диалогового окна Аргу­
менты функции. Щелкните на функции кнопкой мыши, и эта функция появится
в строке формул. Затем щелкните на кнопке Вставить функцию.
Категории функций
Далее будет представлен список категорий функций с кратким описанием каждой из них.
Перекрестная ссылка
В последующих главах приведены конкретные примеры использования
функций.
Финансовые функции
Финансовые функции позволяют выполнять экономические вычисления, связанные
с расчетом денежных средств. Функция ПЛТ, например, используется для вычисления
величины ежемесячной выплаты по займу. Для вычисления необходимо задать еле-
134
Часть II. Использование функций в формулах
дующие аргументы: сумму займа, процентную ставку займа и срок, на который он
предоставлен.
Функции даты и времени
Функции этой категории позволяют работать со значениями даты и времени в форму­
лах. Например, функция СЕГОДНЯ возвращает текущую дату (которая определена в сис­
темных часах компьютера).
Математические и тригонометрические функции
В эту категорию входят разнообразные функции, выполняющие математические
и тригонометрические вычисления.
Примечание
Во всех тригонометрических функциях углы измеряются в радианах (а не в
градусах). Для того чтобы преобразовать градусы в радианы, используйте
ФУНКЦИЮ РАДИАНЫ.
Статистические функции
Функции этой категории предназначены для проведения статистического анализа
диапазонов значений. С помощью статистических функций можно вычислить наимень­
шее значение набора значений, значение моды множества данных, стандартное отклоне­
ние выборки, дисперсию и т.д.
Функции ссылок и массивов
Функции этой категории используются для нахождения значений в списках и табли­
цах. Самый распространенный пример — поиск значения в таблице налоговых данных.
Функция П 0 И С К П 0 3 может использоваться для определения налоговой ставки для кон­
кретного уровня дохода.
Функции работы с базами данных
Функции этой категории применяются для вычисления суммы значений списка
(также известного как база данных рабочего листа), который удовлетворяет определен­
ным условиям. Предположим, у вас есть список, содержащий информацию о месячном
объеме продаж. Функцию БСЧЁТ можно использовать для подсчета количества записей
об объеме продаж в северном регионе, значение которых превышает 10000.
Текстовые функции
Текстовые функции позволяют манипулировать текстовыми строками в формулах.
Функция ПСТР, например, возвращает заданное количество символов из строки текста, на­
чиная с указанной позиции. Другие функции позволяют изменить регистр символов текста
(например, преобразовать символы нижнего регистра в символы верхнего регистра).
Глава 4. Знакомство с функциями рабочего листа
135
Логические функции
Данная категория состоит всего из семи функций. Эти функции позволяют проверить
заданное условие и вернуть логическое значение ИСТИНА или ЛОЖЬ. Функция ЕСЛИ
также может оказаться полезной, поскольку она предоставляет формулам возможность
принятия решений.
Информационные функции
Функции этой категории помогают определить тип данных, хранящихся в ячейке.
Например, функция ЕТЕКСТ возвращает ИСТИНА, если значение является текстом.
С помощью функции ЕПУСТО можно узнать, пуста ли ячейка. Функция ЯЧЕЙКА возвра­
щает полезную информацию о конкретной ячейке.
Пользовательские функции
К этой категории относятся функции рабочего листа, созданные пользователем с по­
мощью VBA. Пользовательские функции выполняются так же, как и встроенные функ­
ции Excel. Единственное отличие состоит в том, что описание аргументов этих функций
не отображается в диалоговом окне Мастер функций.
Инженерные функции
Функции этой категории помогут вам при решении инженерных прикладных задач.
Эти функции позволяют работать с компдексными числами, а также выполнять преобра­
зование единиц одной системы исчисления или измерения в единицы исчисления или
измерения другой системы.
Аналитические функции
Предназначены для манипулирования значениями, размещенными в кубе данных OLAP.
Функции совместимости
Это устаревшие статистические функции, помещенные в отдельную категорию для
обеспечения совместимости с предыдущими версиями Excel. Полезны в ситуациях, когда
нужно совместно работать с пользователями, на компьютерах которых установлены пре­
дыдущие версии.
Прочие категории функций
Кроме описанных выше категорий, в Excel существует еще четыре категории функций,
которые не отображаются в диалоговом окне Мастер функций. Это такие категории, как
Команды, Настраиваемые функции, Управление макросами и DDE/Внешние дан­
ные. Эти категории остались в наследство от старых версий Excel. Создав пользователь­
скую функцию, можно определить ее в одну из этих категорий. Кроме того, несложно оты­
скать и другие категории, созданные макросами.
Перекрестная ссылка
Информацию о том, как записать пользовательскую функцию в одну из кате­
горий, можно найти в главе 23.
136
Часть II. Использование функций в формулах
Непостоянные функции
Некоторые функции Excel принадлежат особому классу так называемых непостоян­
ных функций. Программа автоматически пересчитывает непостоянную функцию при
пересчете рабочей книги даже в том случае, если формула, в которой эта функция ис­
пользуется, не задействована в пересчете.
Одной из непостоянных функций является функция слчис, которая возвращает но­
вое случайное число при каждом пересчете рабочего листа. Кроме того, в Excel присут­
ствуют следующие непостоянные функции:
двссыл
ИНДЕКС
СМЕЩ
ЯЧЕЙКА
ОБЛАСТИ
СТРОКА
СТОЛБЕЦ
СЕЙЧАС
СЕГОДНЯ
Использование непостоянных функций имеет один побочный эффект: Excel будет
всегда напоминать вам о сохранении рабочей книги перед ее закрытием (даже в том
случае, если вы не вносили никаких изменений). Например, вы открыли рабочую книгу,
в которой используются непостоянные функции, просмотрели ее (ничего при этом не
меняя) и хотите закрыть файл. При этом Excel обязательно спросит, хотите ли вы со­
хранить рабочую книгу.
Чтобы отменить появление окна с этим вопросом, используйте режим вычислений
вручную. Для этого откройте вкладку Формулы диалогового окна параметров програм­
мы и в разделе Параметры вычислений установите переключатель вручную и снимите
флажок Пересчитывать книгу перед сохранением.
Глава
Работа с текстом
В этой главе...
♦ Несколько слов о самом тексте
♦ Текстовые функции
♦ Расширенные текстовые формулы
Приложение Excel популярно прежде всего благодаря способности выполнения лю­
бых операций с числами. Тем не менее его возможности в области обработки текста то­
же весьма разнообразны. Как известно, Excel позволяет вводить текстовые данные для
создания таких элементов, как, например, заголовки строки или столбца, имя пользова­
теля и адрес, суффикс числа и многое другое. Как и следовало ожидать, для того чтобы
управлять текстом в ячейках, Excel предоставляет широкий набор специальных формул.
В этой главе приведены примеры формул, которые используют функции управления
текстом. Многие из них способны творить настоящие чудеса.
Несколько слов о самом тексте
Работа Excel начинается сразу же после того, как пользователь вводит данные в ячей­
ку. Приложение определяет, что же именно вводится: формула, числовая информация
(то же самое относится к дате и времени) или что-либо еще, к примеру текст.
Примечание
Возможно, читателю уже приходилось сталкиваться с термином строка, ис­
пользующимся в смысле “текст” . В данном контексте эти термины взаимо­
заменяемы. Иногда они даже могут встречаться вместе, например в выра­
жении текстовая строка. Оба они означают одно и то же — произвольную
последовательность символов.
Количество символов в ячейке
В ячейку последних версий Excel можно ввести 32 ООО символов. Для сравнения,
текст этой главы содержит около 40 тысяч символов. Безусловно, использовать процес­
сор электронных таблиц вместо текстового не рекомендуется. Но если у вас установлена
Excel версии выше 97, то не стоит беспокоиться о размере текста, вводимого в ячейку,
если, конечно, вы не планируете поместить в одну ячейку всю эту главу.
138
Часть II. Использование функций в формулах
Числа, отформатированные как текст
Как уже отмечалось, Excel различает текстовый и числовой форматы. Если необхо­
димо, чтобы числовая информация рассматривалась как тест, выполните следующее.
•
Примените к ячейке формат Текстовый. Для этого выделите ячейку и в раскры­
вающемся списке группы Число вкладки Главная выберите пункт Текстовый.
Если к ячейке не применять специальное выравнивание по горизонтали, значения
будут выровнены по левому краю ячейки (подобно обычному тексту).
•
Введите перед числом знак апострофа. В данном случае он не отображается, но
ячейка будет трактоваться так, как если бы в нее был введен текст.
Установив для ячейки текстовый формат (или используя апостроф), вы сохраняете
способность выполнять некоторые математические операции, если содержимое выглядит
как число. Предположим, что ячейка А1 содержит числовое значение, которому предше­
ствует знак апострофа. Ниже приведена формула, которая отображает значение ячейки
А1, увеличенное на единицу:
=А1 + 1
Следующая формула, тем не менее, будет трактовать содержимое ячейки А1 как 0:
=СУММ(A I : А 1 0)
В некоторых случаях трактовка текста как числа может оказаться полезной, в других
же может создать дополнительные проблемы. Вывод следующий: просто принимайте во
внимание то, каким образом Excel трактует числа, отформатированные как текст.
Когда число не трактуется как число
Импортируя данные в приложение Excel, можно столкнуться с распространенной
проблемой: иногда импортируемые числовые значения трактуются как текст. Рассмот­
рим, как эти нечисловые значения быстро преобразовать в числовые. Активизируйте
любую пустую ячейку, введите в нее число нуль и выберите команду Главная^Буфер
обмена^Копировать. Затем выберите диапазон, содержащий значения, которые необ­
ходимо преобразовать, и выберите команду Главная^Буфер обмена^Вставить^Специальная вставка. В диалоговом окне Специальная вставка установите переключатель в
положение сложить, а затем щелкните на кнопке ОК. Добавляя к текстовому значению
нуль, вы приказываете Excel трактовать нечисловое значение как числовое.
Примечание
Если включена фоновая проверка ошибок, Excel помечает числа с апостро­
фом (и числа, отформатированные как текст) смарт-тегом. Этот смарт-тег
можно использовать для преобразования “текста” в фактическое значение.
Для этого щелкните на смарт-теге и выберите в открывшемся меню пункт
Преобразовать в число. Фоновая проверка включается и отключается в раз­
деле Контроль ошибок вкладки Формулы диалогового окна Параметры Excel.
Текстовые функции
Приложение Excel предлагает довольно широкий выбор функций, с помощью кото­
рых обрабатывается текст. Большинство из них можно найти в библиотеке функций или
диалоговом окне Мастер функций (чтобы открыть его, выберите команду Формулы1^
Библиотека функцийоТекстовые^Вставить функцию). В категории Текстовые со­
Глава 5. Работа с текстом
139
держится большая часть текстовых функций. Некоторые другие функции, которые тоже
могут использоваться при работе с текстом, встречаются в других категориях. Например,
функция е т е к с т находится в категории Проверка свойств и значений.
Перекрестная Ссылка
В приложении А приведен перечень функций, относящихся к категории
тестовых.
Область применения большинства текстовых функций не ограничивается только тек­
стом. Другими словами, эти функции могут использоваться и в ячейках, содержащих чи­
словые значения. Excel предоставляет прекрасную возможность обрабатывать числа как
текст и, наоборот, текст — как числа.
В этой главе приводятся примеры некоторых широко распространенных операций,
которые можно выполнять с текстом. Возможно, вы захотите взять себе на вооружение
некоторые из приведенных ниже примеров.
Проверка наличия текста в ячейке
Если возникла необходимость в определении типа данных, содержащихся в отдельной
ячейке, вам потребуется соответствующая формула, позволяющая сделать это. К примеру,
можно использовать функцию ЕТЕКСТ, чтобы вставить в ячейку результат только в том
случае, если он является текстом.
Функция ЕТЕКСТ принимает один аргумент и возвращает значение ИСТИНА, если
ячейка содержит текст, или значение ЛОЖЬ в противном случае. К примеру, следующая
формула вернет значение ИСТИНА, если ячейка А1 содержит текст:
=ЕТЕКСТ(А1)
Функция ТИП также имеет один аргумент и возвращает значение, которое указывает тип
данных, содержащихся в ячейке. Например, если ячейка А1 содержит текстовую информа­
цию, формула, приведенная ниже, вернет значение 2 (кодовый номер текстового формата):
=ТИП (А 1 )
Функция ЕТЕКСТ считает текстом также числовое значение, перед которым распо­
ложен апостроф. Однако она не считает текстом число, отформатированное как текст
(если текстовый формат применен после ввода числа в ячейку).
Работа с кодами символов
Каждому символу, который виден на экране компьютера, соответствует определенное
кодовое число. Для работы в системе Windows приложение Excel использует стандарт­
ный набор символов ANSI, который содержит 255 символов, пронумерованных числами
в диапазоне от 1 до 255.
На рис. 5.1 показана часть рабочего листа приложения Excel, на котором представле­
ны символы ANSI. В этом примере использовался установленный по умолчанию шрифт
Calibri (другие шрифты отображают символы немного иначе).
Компакт-диск
Копия данной рабочей книги содержится в файле c h a r a c t e r s e t . x l s m на
прилагаемом компакт-диске. В этом файле также сохранены некоторые
простые макрокоманды, которые позволяют отображать набор символов
для любого шрифта, установленного в системе.
140
Часть II. Использование функций в формулах
Рис. 5.1. Набор символов ANSI для шрифта Calibri
Для работы с кодами символов Excel предоставляет две специальные функции:
КОДСИМВ и СИМВОЛ. Несмотря на то что эти функции не столь популярны, как осталь­
ные, они пригодятся при совместном использовании с другими функциями, которые об­
суждаются в следующих разделах.
©
Ф ункция
Примечание
Функции кодсимв и символ работают только со строками в кодировке ANSI. Эти
функции не будут выполняться для строк в двухбайтовой кодировке Unicode.
кодсимв
Функция КОДСИМВ, которая используется в приложении Excel, возвращает код сим­
вола, введенного в качестве аргумента функции. Например, формула, приведенная ниже,
возвращает значение 192 — код русского символа А, введенного в верхнем регистре.
=КОДСИМВ( " А " )
В том случае, если аргумент функции КОДСИМВ содержит несколько символов, функ­
ция использует только первый символ. Например, следующая формула возвращает зна­
чение 196 — код символа Д:
7
=КОДСИМВ("Дорога к Р и м у " )
Функция
символ
По своей сути функция СИМВОЛ полностью противоположна функции КОДСИМВ.
Ее аргументом является числовое значение в интервале от 1 до 255, а сама функция воз­
вращает символ, соответствующий этому значению. Например, приведенная ниже фор­
мула возвращает русский символ А:
=СИМВОЛ( 1 9 2 )
Чтобы продемонстрировать разницу между функциями КОДСИМВ и СИМВОЛ, введите
в ячейку следующую формулу:
=СИМВОЛ(КОДСИМВ( " А " ))
Формула вернет символ А. Этот пример лишь иллюстрирует действие функций, вряд
ли он будет полезен на практике. Сначала введенный символ преобразуется в соответст­
Глава 5. Работа с текстом
141
вующее значение кода (192), после чего функция СИМВОЛ возвращает символ А, кото­
рый соответствует данному значению.
Теперь предположим, что ячейка А1 содержит символ А (в верхнем регистре). Тогда
следующая формула вернет символ а (в нижнем регистре):
=СИМВОЛ (КОДСИМВ (А1) +32)
В этой формуле используется тот факт, что в кодовой таблице символы расположены
последовательно, в алфавитном порядке, при этом символы нижнего регистра располо­
жены после символов верхнего (между прописными и строчными буквами находится не­
сколько других символов). Каждая строчная буква русского (равно как и английского)
алфавита размещена ровно на 32 позиции выше своего прописного собрата.
Как найти специальные символы
Excel предоставляет прекрасную возможность использовать диалоговое окно Сим­
вол, которое можно вызвать, выбрав команду Вставка^Символы^Символ. Это диало­
говое окно позволяет вставить в ячейку любые специальные символы (включая симво­
лы Unicode). Например, можно вставить в электронную таблицу смайлик (если вдруг
возникнет такая необходимость). Для этого в Excel достаточно открыть диалоговое окно
Символ и выбрать шрифт Wingdings (см. рисунок ниже). Затем просмотрите символы,
найдите изображение рожицы и Щелкните на кнопке Вставить. Обратите внимание, что
этому символу соответствует код 74.
Проверка идентичности строк
Чтобы определить, содержат ли две ячейки идентичные записи, используйте простую
логическую формулу. Например, ниже приведена формула, с помощью которой можно
определить, содержит ли ячейка А1 то же значение, что и ячейка А2:
=А1=А2
Следует отметить, что Excel немного “небрежна” в операциях сравнения текста. Рас­
смотрим, например, ситуацию, когда ячейка А1 содержит слово Январь (первая буква
прописная), а ячейка А2 — слово ЯНВАРЬ (все буквы прописные). Приведенная выше
формула вернет значение ИСТИНА, несмотря на то, что эти две ячейки содержат разные
текстовые значения. Иными словами, при сравнении не учитывается регистр символов.
Чаще всего не стоит беспокоиться по поводу регистра символов текста. Если же не­
обходимо при сравнении учитывать регистр символов, можно использовать функцию
142
Часть II. Использование функций в формулах
СОВПАД. Приведенная ниже формула возвращает значение ИСТИНА только в том случае,
если ячейки А1 и А2 содержат абсолютно идентичные записи.
=СОВПАД(А1;А2)
Следующая формула возвращает значение ЛОЖЬ, поскольку первая строка содержит
в конце пробел:
=СОВПАД("нуль " ; " н у л ь ")
Объединение нескольких ячеек
Excel использует знак & как оператор конкатенации (объединения строк). Конкате­
нация — это просто модный термин, указывающий, что результат объединяет содержи­
мое нескольких ячеек. Например, если ячейка А1 содержит текст T u c s o n , а ячейка
А2 — C a l i f o r n i a , приведенная ниже формула возвратит текст T u c s o n C a l i f o r n i a :
=A1&A2
Обратите внимание, что эти две строки объединены без промежуточного пробела.
Для того чтобы добавить пробел между двумя строками и получить текст T u c s o n
C a l i f o r n i a , необходимо использовать следующую формулу:
=A1&" "&А2
Другой способ, который, может быть, даже лучше предыдущего, — использовать за­
пятую и пробел, чтобы получить текст T u c s o n , C a l i f o r n i a .
=A1&", "&A2
Еще один способ объединения строк состоит в применении функций СИМВОЛ с соответ­
ствующими аргументами. Обратите внимание, что в приведенном ниже примере использо­
вания функции СИМВОЛ в объединяемый текст вставляются запятая (44) и пробел (32).
=А1&СИМВОЛ( 4 4 ) &СИМВОЛ( 3 2 ) &А2
< Если вы решили перенести текст на другую строку, то при его объединении в строке
необходимо использовать функцию СИМВОЛ (1 0 ). После этого проверьте, применен ли к
ячейке текстовый формат с переносом слов (команда Главная^Выравнивание^Перенос текста). Пример объединения текста в ячейке А1 и текста в ячейке В2 с символом
перейоса между ними продемонстрирован в следующей формуле:
=А1&СИМВОЛ( 1 0 ) &В1
Ниже приведен еще один пример использования функции СИМВОЛ. Следующая фор­
мула возвращает строку S t o p , объединяя четыре символа, полученные с помощью
функции СИМВОЛ:
=СИМВОЛ (83) &СИМВОЛ (116) &СИМВОЛ (111) &СИМВОЛ (112)
Рассмотрим еще один пример использования оператора конкатенации, В данном слу­
чае формула объединяет текст с результатом выражения, которое возвращает макси­
мальное значение столбца С.
= "Максимальное з н а ч е н ие в с т о л б ц е С:
"&МАКС(С:С)
Примечание
Имейте в виду, что в Excel есть также функция сцепить , которая поддержи­
вает до 255 аргументов. Эта функция объединяет свои аргументы в единую
строку. Многие пользователи предпочитают применять именно ее, однако
использование оператора конкатенации (&) значительно проще.
Глава 5. Работа с текстом
143
Отображение значений как текста
Функция ТЕКСТ в приложении Excel позволяет отобразить значение ячейки в опре­
деленном числовом формате. На первый взгляд может показаться, что эта функция имеет
весьма сомнительное применение. Однако она поможет осуществить некоторые полез­
ные действия, предназначенные для решения важных задач, что и будет продемонстри­
ровано в настоящем разделе. На рис. 5.2 показан обычный рабочий лист Excel. Ниже
приведена формула, используемая в этом рабочем листе в ячейке А5.
="Чистая прибыль:
"&ВЗ
Рис. 5.2. Формула в ячейке А5 отображает
не отформатированное число
По существу, эта формула объединяет текстовую строку с содержимым ячейки ВЗ
и отображает полученный результат. Обратите внимание, что в А5 к содержимому ВЗ не
был применен ни один специальный формат. Тем не менее при желании можно устано­
вить для нее денежный формат с использованием пробелов и символа валюты.
Примечание
Имейте в виду, что, вопреки ожиданиям, применение числового формата ко
всей ячейке, содержащей формулу, не даст никакого эффекта. Все дело в
том, что используемая формула возвращает строку, а не числовое значение.
Применить формат к содержимому ячейки ВЗ в ячейке А5 можно с помощью функ­
ции ТЕКСТ. Для этого нужно ввести в А5 такую формулу:
="Чистая прибыль:
"&ТЕКСТ(ВЗ; " # # # # ## # # # , 0 0 " )
Эта формула будет отображать и текст, и само отформатированное числовое значение
следующим образом:
Чистая прибыль:
104 6 1 6 , 5 2 р .
Второй аргумент функции ТЕКСТ содержит стандартное определение числового
формата, используемого в приложении Excel. В качестве этого аргумента можно ввести
любое другое допустимое определение числового формата.
В предыдущем примере мы использовали простую ссылку на ячейку ВЗ. Но это не
единственная возможность. Вместо ссылки на ячейку можно использовать любое выра­
жение. Ниже приведен пример, в котором текст объединяется с числом, полученным пу­
тем вызова функции СРЗНАЧ.
="Средний р а с х о д : "&ТЕКСТ(СРЗНАЧ(А:А) ; " # , # # 0 , 0 0 р . " )
Эта формула возвращает такую строку:
Средний р а с х о д :
7 794,57р.
144
Часть II. Использование функций в формулах
Теперь мы рассмотрим другой пример, в котором используется функция СЕГОДНЯ,
возвращающая текущую дату и время. Использование этой функции совместно с функ­
цией ТЕКСТ позволяет отобразить на экране текущую дату и время, представленные
в удобном для восприятия формате.
= "Отчет на пе ч ат ан "&ТЕКСТ(СЕГОДНЯ( ) ;
ид мммм, г г г г в ч:мм АМ/РМ")
Эта формула отображает следующую запись:
Отчет н апе ч ат ан 22 Июль,
20 01 в 3 : 2 3 РМ
Перекрестная ссылка
Для получения подробной информации о числовых форматах в Excel обра­
титесь к приложению Б.
Отображение денежных значений,
отформатированных как текст
В Excel существует функция РУБЛЬ, с помощью которой содержащееся в ячейке чис­
ло преобразуется в текст, представленный в денежном формате. Эта функция использует
два аргумента: число, которое необходимо преобразовать, и количество знаков, отобра­
жаемых на экране после запятой. Как правило, функция РУБЛЬ использует обозначения
денежной единицы, установленной в региональных настройках Windows.
В отдельных случаях функция РУБЛЬ может использоваться вместо функции ТЕКСТ.
Однако намного эффективнее применение функции ТЕКСТ, которая является более гиб­
кой, поскольку не ограничивает вас определенным числовым форматом.
Приведенная ниже формула возвращает такой текст: И того: 1 2 8 7 , 3 7р. Второй
аргумент функции РУБЛЬ определяет количество десятичных знаков после запятой.
= " Ито г о: "&РУБЛБ( 1 2 8 7 , 3 6 7 ; 2 )
Удаление пробелов и непечатных символов
Довольно часто данные, импортированные в рабочий лист Excel, содержат лишние
пробелы и причудливые символы, унаследованные от импортируемого формата. В Excel
есть две функции, помогающие избавиться от них.
•
Функция СЖПРОБЕЛЫ удаляет из строки ведущие и замыкающие пробелы. Кроме
того, внутренние последовательности пробелов она заменяет одним пробелом.
•
Функция ПЕЧСИМВ удаляет из строки все непечатаемые символы, которые в им­
портированном формате были служебными символами.
Рассмотрим пример использования функции СЖПРОБЕЛЫ. Приведенная ниже форму­
ла возвращает строку "Чистый д о х о д з а квартал" без лишних пробелов.
=СЖПРОБЕЛЫ("
Чистый д о х о д
за
кварт ал
")
Подсчет символов в строке
Функция ДЛСТР принимает только один аргумент и возвращает количество символов,
содержащихся в ячейке. Возьмем, например, ячейку А1, содержащую строку Продажи в
сен тя б р е. Формула, приведенная ниже, вернет значение 18.
=ДЛСТР(А1)
Глава 5. Работа с текстом
145
Обратите внимание, что пробелы тоже считаются символами и включаются в резуль­
тирующее значение. К примеру, если ячейка А1 содержит строку П р о д а ж и и приведен­
ная выше формула вернет значение 8, значит, в начале или конце строки есть пробел.
Следующая формула укорачивает текст, который оказался слишком длинным. Если
в ячейке А 1 содержится более десяти символов, формула возвращает первые 9 символов,
за которыми следует символ троеточия (в кодовой таблице ANSI этот символ имеет код
133). Если символов десять или меньше, возвращается вся строка.
= I F ( Д Л С Т Р ( А 1 ) > 1 0 , ЛЕВСИМВ ( А 1 , 9 ) &СИМВОЛ ( 1 3 3 ) , А 1 )
Перекрестная ссылка
Далее рассматривается еще несколько примеров, в которых продемонст­
рирован подсчет числа определенных символов в пределах одной строки.
Кроме того, информацию по этому вопросу можно найти в главе 7, в которой
обсуждаются методы вычисления значений в Excel, и в главе 15, где речь
пойдет о необыкновенных возможностях формул массивов.
Повторяющиеся символы и строки
Функция ПОВТОР предназначена для того, чтобы повторить любую строку текста или
символ (первый аргумент) заданное количество раз (второй аргумент). Например, сле­
дующая формула возвращает текст НаНаНа:
=ПОВТОР ( "На " ; 3 )
Эту функцию удобно использовать для создания горизонтального разделителя между
ячейками. Например, приведенная ниже формула создает строку, состоящую из 20 вол­
нистых линий (тильд), расположенных по длине строки:
=ПОВТОР ( " ~ " ; 2 0 )
Создание текстовой гистограммы
Одно из наиболее полезных направлений использования функции ПОВТОР — это соз­
дание простой гистограммы непосредственно на рабочем листе. В этом случае необходи­
мость применения диаграмм полностью отпадает (на рис. 5.3 приведен пример такой гис­
тограммы). Подобный способ графического отображения данных особенно эффективен,
когда необходимо визуально отобразить сумму большого количества значений. Стандарт­
ная диаграмма Excel для подобных случаев может оказаться слишком громоздкой.
Рис. 5.3. Чтобы быстро создать гистограмму на рабочем листе, воспользуйтесь функцией п о в т о р
146
Часть II. Использование функций в формулах
Совет
Средства условного форматирования позволяют создавать простые гисто­
граммы непосредственно в ячейках (см. главу 19).
Формулы, содержащиеся в ячейках столбцов Е и G, графически отображают ежеме­
сячное изменение бюджета, выводя на экран ряд символов шрифта Wingdings. В этом
примере мы использовали символ п, который в выбранном шрифте отображается как
маленький квадрат. Формула, использующая функцию ПОВТОР, определяет количество
символов, которое должно быть отображено на экране. Формулы для ячеек, формирую­
щих диаграмму, имеют следующий вид.
ЕЗ
F3
G3
=ЕСЛИ(D3 < 0 ; ПОВТОР("П" ; - ОКРУГЛ(D3 *10 0 ; 0 ) ) ;"")
=АЗ
=ЕСЛИ( 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 ) .
Добавление к числу заданных символов
Вероятно, многие из вас уже не раз сталкивались с таким распространенным (особенно
при печати чеков) методом защиты, как дополнение числовых значений справа звездочка­
ми. Приведенная ниже формула, наряду со значением, содержащимся в ячейке А1, отобра­
жает знаки звездочек, дополняя общее количество символов до 24. Таким образом, пустые
позиции ячейки заполняются звездочками.
= (А1&ПОВТОР ( "* " ; 24 - ДЛСТР (А1) ) )
Используя следующую формулу, можно добавить звездочки к числу слева:
=ПОВТОР( " * " ; 2 4 -ДЛСТР(A I ) ) &А1
Представленная далее формула отображает звездочки, дополняющие число сразу с двух
сторон. Она возвращает 24 символа в том случае, если число в ячейке А1 содержит четное
количество символов, и 23 символа, если число содержит нечетное количество символов.
=ПОВТОР ( "* " ; 12 - ДЛСТР (А 1 ) / 2 ) &А1&ПОВТОР ( "* " ; 12 - ДЛСТР (А1) / 2 )
Приведенные выше формулы не столь совершенны, поскольку они могут отображать
не все отформатированные числа. Ниже приведена усовершенствованная версия форму­
лы, которая отображает значение, содержащееся в ячейке А1 (отформатированной ячей­
ке), а также знаки звездочек слева от этого значения.
=ПОВТОР( " * " ; 2 4 -ДЛСТР(ТЕКСТ(А1; " $ # , # # 0 . 0 0 " ) ) )
&ТЕКСТ(А1, " $ # , # # 0 . 0 0 " )
На рис. 5.4 показана приведенная выше формула в действии.
Глава 5. Работа с текстом
147
Рис. 5.4. Так будет выглядеть число, дополнен­
ное звездочками при использовании приве­
денной выше формулы
В отдельных случаях, когда возникает необходимость, вы можете использовать собст­
венный числовой формат. Для того чтобы заполнить символами пустые позиции ячейки,
достаточно просто включить в собственный формат звездочку (*). Например, используя
следующее определение числового формата, можно дополнить число знаками тире:
$# ,# # 0 .0 0 * Чтобы просто дополнить число звездочками, используйте в определении формата две
звездочки, как показано ниже.
$#,##0.00**
Перекрестная ссылка
Для получения дополнительной информации о создании пользовательских
форматов обратитесь к приложению Б. В нем вы также найдете дополни­
тельные примеры использования символа звездочки в отдельных форматах.
Изменение регистра символов
Приложение Excel предлагает три весьма удобные функции, которые позволяют из­
менить регистр символов.
1. Функция ПРОПИСИ преобразует все символы текста в верхний регистр.
2. Функция СТРОЧН преобразует весь текст в нижний регистр.
3. ПРОПНАЧ преобразует первый символ каждого слова в верхний регистр, а все ос­
тальные символы — в нижний.
Эти функции действуют очень просто. Например, следующая формула преобразует
все символы текста в ячейке А1 в верхний регистр. Если ячейка А1 содержит текст MR.
JOHN Q. PUBLIC, она вернет строку M r . J o h n Q. P u b l i c .
=ПРОПНАЧ ( A I )
Следует отметить, что эти функции применяются только для символов, вошедших
в алфавит. Все остальные символы они просто игнорируют и возвращают неизменными.
Предупреждение
Функция пропнач не всегда приводит к нужному результату, поскольку она
может неправильно трактовать некоторые слова. К примеру, фамилию
Mc Ca rt ne y она изменит на M c c a r t n ey .
Преобразование данных с помощью формул
Многие примеры этой главы описывают методы использования функций для преоб­
разования данных тем или иным способом. Например, можно применить функцию
148
Часть II. Использование функций в формулах
прописн для преобразования текстовой строки в верхний регистр. Чаще всего исход­
ные данные требуется заменить преобразованными данными. Для этого вставьте пре­
образованное значение поверх исходного текста.
1. Создайте формулы, преобразующие исходные данные.
2. Выделите ячейку с формулой.
3. Выберите команду Главная^Буфер обмена^Копировать.
4. Выделите исходную ячейку с формулой.
5. Выберите команду Главная^Буфер обмена^Вставить^Вставить значения.
После выполнения приведенных выше действий формула удаляется, а на ее место
вставляются преобразованные данные.
Извлечение заданных символов из строки
Многие пользователи Excel достаточно часто сталкиваются с необходимостью из­
влечь из строки отдельные символы. Например, из списка служащих организации (имена
и фамилии) требуется извлечь только фамилии всех сотрудников, чтобы в дальнейшем
использовать часть текстовых данных каждой ячейки. Excel предоставляет несколько
превосходных функций, позволяющих решить эту задачу.
•
Функция ЛЕВСИМВ возвращает заданное количество символов с начала строки.
•
Функция ПРАВСИМВ возвращает заданное количество символов с конца строки.
•
Функция ПСТР возвращает заданное количество символов, начиная с любой пози­
ции в пределах строки.
Формула, приведенная ниже, возвращает последние 10 символов содержимого ячей­
ки А1. Если ячейка А1 содержит менее десяти символов, формула вернет текст ячейки в
полном объеме.
=ПРАВСИМВ(А1; 10)
В следующей формуле используется функция ПСТР. Она возвращает из ячейки А1
пять символов, начиная со второго. Другими словами, формула возвращает символы со
второго по шестой.
=ПСТР(А 1 ; 2 ; 5 )
В следующем примере формула извлекает из текста, содержащегося в ячейке А1,
только первый символ в верхнем регистре. Для этого используется функция ЛЕВСИМВ,
которая позволяет извлечь первый символ и преобразовать его в верхний регистр. После
этого набор символов присоединяется к другой строке, которая создается с помощью
функции ПРАВСИМВ. В результате из заданного текста извлекается все, кроме первого
символа, и извлеченные символы преобразуются в нижний регистр.
=ПРОПИСН(ЛЕВСИМВ(А1) ) &ПРАВСИМВ(СТРОЧН(А1); ДЛСТР( A I ) - 1)
Таким образом, если бы ячейка А1 содержала текст ПЯТЫЙ КВАРТАЛ, данная фор­
мула вернула бы текст Пятый к в а р т а л .
Замена одного текста другим
В некоторых ситуациях может возникнуть необходимость заменить определенную
часть текста строки другим текстом. Например, некоторые импортируемые в приложе­
Глава 5. Работа с текстом
149
ние 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
Например, если ячейка А1 содержит строку P a r t - 2 A мула вернет P a r t 2 A Z 4 M l A .
Z ( 4 М 1 ) _ А * , данная фор­
Поиск в строке
Найти местонахождение определенного текста или символа в пределах одной строки
в приложении Excel можно с помощью функций НАЙТИ и ПОИСК.
•
Функция НАЙТИ обеспечивает поиск текста (подстроки) в пределах текстовой
строки и возвращает исходную позицию этой подстроки. Можно определить по­
зицию, с которой следует начать поиск текста. Эту функцию удобно использовать
для сравнения текста с учетом регистра, но она не поддерживает сравнение груп­
повых символов.
150
Часть II. Использование функций в формулах
•
Функция ПОИСК обеспечивает поиск определенной подстроки в пределах основ­
ной текстовой строки и возвращает значение исходной позиции подстроки. Для
этой функции также можно определить место начала поиска. Данная функция ис­
пользуется для поиска нечувствительного к регистру текста или тогда, когда ис­
пользуются групповые символы.
В формуле, приведенной ниже, применена функция НАЙТИ, которая возвращает зна­
чение 7, т.е. номер позиции первого символа ш, встречающегося в строке. Следует отме­
тить, что эта формула учитывает регистр символов:
=НАЙТИ( "m"; "Big Mamma T h o r n t o n " ;1)
Следующая формула использует функцию ПОИСК и возвращает значение 5 — номер
позиции первого встреченного символа т. В этом случае регистр не учитывается.
=ПОИСК( "m"; "Big Mamma T h o r n t o n " ;1)
В первом аргументе функции ПОИСК можно использовать следующие символы мак­
роподстановки:
•
вопросительный знак (?) соответствует любому одиночному символу;
•
звездочка (*) соответствует любой последовательности символов.
Совет
Чтобы найти символы вопросительного знака или звездочки, введите в
формуле перед этими символами тильду (~).
Следующая формула исследует текст в ячейке А1 и возвращает позицию первой после­
довательности из трех символов, содержащей в середине дефис. Иначе говоря, формула
ищет любой символ, за которым следует знак дефиса и любой другой символ. Таким обра­
зом, если ячейка А1 содержит текст P a r t -А90, формула возвращает значение 4.
=ПОИСК( " ? - ? " ; A I ;1)
Поиск и замена в строке
Функция ПОИСК может использоваться совместно с функцией ЗАМЕНИТЬ, что позво­
ляет заменить часть найденной текстовой строки другой строкой. В этом случае функция
ПОИСК используется для того, чтобы найти начало расположения символов, с которым
затем будет работать функция ЗАМЕНИТЬ.
Предположим, что ячейка А1 содержит текст О т ч е т о прибыли. Формула, приве­
денная ниже, отыскивает в этой строке слово п ри б ы л и и заменяет его на слово д о х о д а х .
=ЗАМЕНИТЬ(А1; ПОИСК( "прибыли";А 1 ) ; 1 2 ; " д о х о д а х " )
Следующая формула использует функцию ПОДСТАВИТЬ для достижения того же эф­
фекта, но более удобным способом:
=ПОДСТАВИТЬ(А1; "прибыли"; " д о х о д а х " )
Расширенные текстовые формулы
Примеры, приведенные в этом разделе, многим пользователям покажутся более
сложными, чем те, что были рассмотрены ранее. Но убедитесь сами, сколько полезных
действий с текстом можно осуществить с их помощью.
Глава 5. Работа с текстом
151
Компакт-диск
Все примеры, приведенные в этом разделе, можно найти в файле 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 ) на прилагаемом компакт-диске.
Подсчет заданных символов в ячейке
Приведенная ниже формула подсчитывает в строке ячейки А1 количество символов
В, учитывая только символы верхнего регистра.
=ДЛСТР (А1) -ДЛСТР(ПОДСТАВИТЬ ( А1; "В" ; " " ))
В формуле используется функция ПОДСТАВИТЬ, создающая в памяти новую строку,
из которой удалены все имеющиеся символы В. После этого длина созданной строки вы­
читается из длины первоначальной строки. В результате формула возвращает количество
символов В, содержащихся в первоначальной строке.
Следующая формула более универсальна. Она подсчитывает количество символов В
одновременно и верхнего, и нижнего регистра, содержащихся в ячейке А1.
=ДЛСТР(А1) -ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(А1; "В"; " " ) ; "Ь"; " " ) )
Подсчет строк, содержащихся в ячейке
Формулы, приведенные в предыдущем разделе, подсчитывают, сколько раз опреде­
ленный символ встречается в заданной ячейке. Следующая формула работает сразу с не­
сколькими символами и возвращает количество экземпляров определенной подстроки
(заданной в ячейке В1) в пределах строки, содержащейся в ячейке А1. Заданная подстро­
ка может состоять из любого количества символов.
= (ДЛСТР(А1)-ДЛСТР(ПОДСТАВИТЬ(А1;В1;"")) ) /ДЛСТР(В1)
Например, если ячейка А1 содержит текст б л о н д и н и с т ы й
В1 — текст б л о н д и н , то данная формула вернет значение 2.
б л о н д и н , а ячейка
Имейте в виду, что в данном случае при сравнении текста учитывается регистр сим­
волов, поэтому если ячейка В1 будет содержать текст Б л о н д и н , то формула вернет зна­
чение 0. Следующая формула — просто модифицированная версия предыдущей, которая
осуществляет поиск без учета регистра (без различия строчных и заглавных букв).
= (ДЛСТР(А1) -ДЛСТР(ПОДСТАВИТЬ(ЦРОПИСН(А1) ;ПРОПИСН(В1) ; " " ) ) )
/ДЛСТР(В1)
Удаление замыкающих символов минуса
В некоторых вычислительных системах отрицательное значение числа обозначается
знаком “минус”, расположенным не перед числом, а после него. Если импортировать та­
кие значения в Excel, замыкающий символ “минус” будет интерпретироваться как текст,
а число — как положительное.
Приведенная ниже формула проверяет наличие замыкающего минуса, удаляет его и
возвращает отрицательное число. Например, если ячейка А1 содержит 1 9 8 , 4 3 - , фор­
мула возвращает - 1 9 8 . 4 3 .
=ЕСЛИ ( (ПРАВСИМВ (А 1 ; 1) ) = " - " ; ЛЕВСИМВ (А 1 ; ДЛСТР (А 1 ) - 1 ) * - 1 ; А 1 )
152
Часть II. Использование функций в формулах
Отображение заданного числа в виде порядкового
числительного
В некоторых случаях вам может потребоваться записать определенное число как по­
рядковый номер. Например, в английском тексте T o d a y i s t h e 2 1 s t d a y o f t h e
m o n t h (сегодня 21-е число месяца) число 21 отображено как порядковый номер, т.е.
в конец числа добавлен суффикс s t .
Решить эту проблему для текста на русском языке было бы намного сложнее. Напри­
мер, суффикс, добавляемый к числу 1, зависит не только от числа, но и смысла предло­
жения: 1 - е , 1 - г о , 1 -м у и т.д.
Символы, которые в данном примере будут добавляться в конец числа, зависят толь­
ко от самого числа. Поэтому невозможно привести стандартный пример этой формулы.
Пользователи могут каждый раз создавать собственную сложную конструкцию. В боль­
шинстве порядковых номеров в английском языке используется суффикс t h . Исключе­
ние составляют номера, заканчивающиеся числами 1, 2 или 3. То же самое касается но­
меров, в которых используется первый разряд— число 1, например, 11/12 или 13. Эти
числа требуют применения определенных правил, которые при желании могут быть
трансформированы в формулу Excel.
Формула, которая приведена ниже, преобразует число, содержащееся в ячейке А1
(предполагается, что это целое число), в порядковый номер.
=А1&ЕСЛИ(ИЛИ(ЗНАЧЕН(ПРАВСИМВ(А1; 2 ) ) = { 1 1 ; 1 2 ; 1 3 } ) ; " t h " ;
ЕСЛИ(ИЛИ(ЗНАЧЕН(ПРАВСИМВ(А 1 ) ) = { 1 ; 2 ; 3 } ) ; ВЫБОР(ПРАВСИМВ(А 1 ) ;
" S t" ;
"nd"; " r d " ) ;
" t h " ) )
Это довольно сложная формула, поэтому рассмотрим ее компоненты более подробно.
В общем случае формула работает следующим образом.
1. Суффикс t h добавляется, если последние две цифры порядкового номера пред­
ставляют собой числа 11,12 или 13.
2. Если первое правило не подходит к имеющемуся числу, то проверяется последняя
цифра. Если последняя цифра 1, то используется суффикс s t , если 2 — суффикс
nd, если 3 — суффикс rd .
3. Если ни первое, ни второе правило не подходят, применяется суффикс t h .
Перекрестная ссылка
Обратите внимание, что в данной формуле используются два массива, ука­
занные в фигурных скобках. Дополнительную информацию об использова­
нии в формулах массивов можно найти в главе 14.
На рис. 5.5 показано, как работает эта формула.
Определение литеры столбца по заданному номеру
Следующая формула возвращает литеру столбца рабочего листа (в диапазоне от А до
XFD) в соответствии со значением, введенным в ячейку А1. Например, если ячейка А1
содержит число 2 9, то формула возвратит значение АС.
=ЛЕВСИМВ(АДРЕС(1;А1;4); НАЙТИ( 1 ; АДРЕС( 1 ; А 1 ; 4 ) ) - 1 )
Глава 5. Работа с текстом
153
Имейте в виду, что данная формула не проверяет
правильность введенного числового значения номера
столбца. Другими словами, если ячейка А1 содержит
значение меньше 1 или больше 16 384, то формула все
равно будет давать результат, хотя уже не имеющий ни­
какого смысла. Ниже приведена модифицированная вер­
сия этой формулы, в которую введена новая функция
ЕСЛИОШИБКА, отображающая текст " Н е к о р р е к т н ы й
Рис. 5.5. Формула применяется
с т о л б е ц " вместо значения ошибки.
для преобразования числа в по­
=ЕСЛИОШИБКА (ЛЕВСИМВ (АДРЕС (1; А 1 ; 4 ) ;
НАЙТИ( 1 ; АДРЕС( 1 ; А 1 ; 4 ) ) - 1 ) ;
"Некорректный с т о л б е ц " )
рядковое числительное
Извлечение имени файла из заданного маршрута
Ниже приведена формула, которая возвращает имя файла, извлеченное из маршрута.
Например, если ячейка А1 содержит маршрут с : \ w i n d o w s \ d e s k t o p \ m y f i l e . x l s x ,
то данная формула вернет текст m y f i l e . x l s x .
=ПСТР (A I ; НАЙТИ ( "* " ; ПОДСТАВИТЬ (А 1 ; "\ " ; "* " ; ДЛСТР (А 1 ) ДЛСТР(ПОДСТАВИТЬ(А1;"\";"" ) ) ) ) + 1 ; ДЛСТР(А1))
Данная формула предполагает, что разделитель маршрута представляет собой обрат­
ную косую черту (\). По существу, эта формула возвращает весь текст, следующий за
последним знаком -обратной косой черты. Если ячейка А1 не содержит этого символа,
формула возвращает значение ошибки.
Извлечение первого слова строки
Чтобы извлечь первое слово строки, в формуле необходимо задать поиск позиции
первого пробела. Найденная позиция будет использоваться как аргумент функции
ЛЕВСИМВ. Приведенная ниже формула выполняет именно эти действия:
=ЛЕВСИМВ ( А1; НАЙТИ ( " " ; А 1 ) - 1 )
Данная формула возвращает весь текст в ячейке А1, находящийся до первого пробе­
ла. Однако и в этой формуле существует один недочет: она возвращает значение ошибки
в том случае, если ячейка А1 состоит из единственного слова. Чтобы решить эту пробле­
му, достаточно ввести в формулу новую функцию ЕСЛИОШИБКА, которая будет прове­
рять наличие ошибки.
=ЕСЛИОШИБКА (ЛЕВСИМВ (А1; НАЙТИ (" " ; А 1 ) - 1 ) ;А1)
Функция ЕСЛИОШИБКА появилась только в версии Excel 2007. Для совместимости
с предыдущими версиями программы можно использовать другую формулу:
=ЕСЛИ(ЕОШ(НАЙТИ(" ";А1) ) ;А 1 ; ЛЕВСИМВ(А1; НАЙТИ(" " ;А1) - 1 ) )
Извлечение последнего слова строки
Извлечение последнего слова— более сложная задача, поскольку функция НАЙТИ
работает только в направлении слева направо. Задача сводится к определению местона­
хождения последнего пробела. Приведенная ниже формула позволяет решить эту задачу.
Данная формула возвращает последнее слово строки, другими словами, весь текст, рас­
положенный после последнего пробела.
154
Часть II. Использование функций в формулах
=ПРАВСИМВ(А 1 ; ДЛСТР(А1) - НАЙТИ( " * " ; ПОДСТАВИТЬ(А 1 ;" " ; "*" ;
ДЛСТР(А1) -ДЛСТР(ПОДСТАВИТЬ(А1;" " ; " " ) ) ) ) )
Тем не менее эта формула имеет ту же проблему, что и приведенная в предыдущем
разделе: она возвращает значение ошибки в том случае, если строка не содержит ни од­
ного пробела. В следующей формуле эта проблема решается с помощью использования
функции ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(ПРАВСИМВ(А 1 ; ДЛСТР(А 1 ) - НАЙТИ( " * " ; ПОДСТАВИТЬ(А 1 ;
" " ; " * " ; ДЛСТР(А1)-ДЛСТР(ПОДСТАВИТЬ(А1;" " ; " " ) ) ) ) ) ;А1)
Для совместимости с предыдущими версиями можете использовать следующую формулу:
=ЕСЛИ(ЕСОШ(НАЙТИ(" " , А 1 ) ) ; А 1 ; ПРАВСИМВ(А1;
ДЛСТР(А1)-НАЙТИ( " * " ; ПОДСТАВИТЬ(А1;" " ; ; ДЛСТР(А1)
-ДЛСТР(ПОДСТАВИТЬ(А1;" " ; " " ) ) ) ) ) )
Извлечение всех слов строки, кроме первого
Следующая формула полностью возвращает содержимое ячейки А1, за исключением
первого слова:
=ПРАВСИМВ (А 1 ; ДЛСТР (А 1 ) - НАЙТИ (" " ; А 1 ; 1 ) )
Например, если ячейка А1 содержит текст Текущий бюджет 2 0 0 2 , формула воз­
вращает текст бюдже т 2002.
Данная формула возвращает ошибку, если в ячейке содержится только одно слово.
Следующая формула решает эту проблему и возвращает пустую строку, если ячейка со­
держит одно или несколько слов:
=ЕСЛИОШИБКА(ПРАВСИМВ(А 1 , ДЛСТР(А 1 ) -ИСКАТЬ(". " , А 1 , 1 ) ) , "")
Для совместимости с предыдущими версиями можно воспользоваться следующей
формулой:
=ЕСЛИ(ЕСОШ(НАЙТИ(" " ; А 1 ) )
ПРАВСИМВ(А1; ДЛСТР(А1) -НАЙТИ(" " ; А 1 ; 1 ) ))
Извлечение имени, отчества и фамилии
Предположим, что в одном из столбцов рабочего листа содержится список полных
имен сотрудников фирмы, включающий имя, отчество и фамилию. Нам нужно разделить
содержимое этого столбца на три отдельных: для имени, для отчества и для фамилии.
Эта задача более сложная, чем может показаться на первый взгляд, поскольку отчество
содержится не во всех строках, тем не менее ее можно решить.
Примечание
Задача становится более сложной, если имена в списке содержат титулы и
звания (например, г - н , проф. ) или сопровождаются некоторыми дополни­
тельными подробностями (например, мл. или ш ) . Приведенные ниже
формулы не помогут в таких сложных случаях. Тем не менее они позволяют
существенно продвинуться в решении этой задачи. Вам остается внести
лишь несколько корректировок, чтобы вручную обработать частные случаи.
В приведенных ниже формулах предполагается, что имя и фамилия человека нахо­
дятся в ячейке А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. На этом рабочем листе используются формулы извлечения имен, отчеств и фа­
милий людей, содержащиеся в списке столбца А
Удаление титулов и званий из имен
Приведенная далее формула позволяет избежать двух часто употребляемых обраще­
ний: Г о с п . и Г - ж а . . Например, если ячейка А1 содержит текст Г о с п . С е р г е й
Новиков, следующая формула возвращает С е р г е й Но в ик ов :
=ЕСЛИ (ИЛИ (ЛЕВСИМВ (А 1 ; 4) = "Госп . " ; ЛЕВСИМВ ( А1 ; 4) = "Г-жа" ) ;
ПРАВСИМВ (А1; ДЛСТР (А1) -НАЙТИ(" ";А1) ) ;А1)
Разделение текстовых строк без использования формул
Во многих случаях можно отказаться от применения формул и разобрать строки на
составляющие их элементы с помощью команды Данные1^Работа с данными>=>Текст по
столбцам. Будет вызван мастер текстов, содержащий несколько последовательных
окон (одно из них показано ниже). Мастер позволит по шагам пройти процесс преобра­
156
Часть II. Использование функций в формулах
зования одного столбца данных в несколько. В общем случае в первом окне мастера
нужно установить переключатель С разделителями и в качестве разделителя во втором
окне выбрать символ пробела.
Подсчет количества слов в ячейке
Следующая формула возвращает количество слов в ячейке А1:
=ДЛСТР(СЖПРОБЕЛЫ(А 1 ) ) -ДЛСТР(ПОДСТАВИТЬ(
СЖПРОБЕЛЫ(А1) ;" м; " " ) )+1
В этой формуле используется функция СЖПРОБЕЛЫ, которая удаляет лишние пробе­
лы. После этого с помощью функции ПОДСТАВИТЬ в памяти создается новая строка без
пробелов. Затем длина созданной строки вычитается из длины исходной строки, в ре­
зультате чего получается количество пробелов. Это значение увеличивается на единицу
и таким образом подсчитывается количество слов.
Имейте в виду, что приведенная выше формула возвращает значение 1, если заданная
ячейка не содержит данных. Решить эту проблему можно, усовершенствовав формулу
следующим образом:
=ЕСЛИ(ДЛСТР(А1)=0;0 ; ДЛСТР(СЖПРОБЕЛЫ(А1)) ДЛСТР (ПОДСТАВИТЬ (СЖПРОБЕЛЫ (А1)
м; "") )+1) .
Перекрестная ссылка
Excel предлагает достаточное количество функций, предназначенных для
работы с текстом. Однако вы можете столкнуться с такой задачей, при ре­
шении которой невозможно будет использовать ни одну из существующих
функций. В таком случае вам предоставляется прекрасная возможность
создать собственную функцию для заданного рабочего листа с использова­
нием встроенного языка программирования VBA, как описано в главе 25.
Глава
Дата и время
В этой главе...
♦ Принципы управления датами и временем в Excel
♦ Функции управления датами
♦ Функции управления временем
Начинающие пользователи Excel при использовании данных даты и времени часто
сталкиваются с различными проблемами. Чаще всего это связано с непониманием того,
каким образом Excel обрабатывает данный тип информации. В настоящей главе содер­
жатся сведения, необходимые для создания “жизнеспособных” формул, оперирующих
датами и временем.
Примечание
Примеры, которые будут использоваться в этой главе, соответствуют фор­
мату даты, принятому в русифицированном приложении Excel: д д . м м . г г г г
или д д / м м / г г г г . Например, дата 1.03.1952 или 01/03/1952 означает 1 мар­
та 1952 года. Имейте в виду, что это не 3 января 1952 года, как принято в ре­
гиональном формате США.
Принципы управления датами
и временем в Excel
В этом разделе мы кратко рассмотрим принципы управления информацией, представ­
ляющей собой дату и время, в приложении Excel. В разделе содержится обзор основных
принципов работы с порядковыми значениями даты и времени и предлагаются рекоменда­
ции по вводу и приведению к соответствующему формату этого типа информации.
Перекрестная ссылка
Информация, связанная с датами, представлена и в других главах книги.
К примеру, в главе 7 описаны примеры расчета значений ячеек, которым на­
значен формат даты, а в главе 25 — некоторые полезные функции управле­
ния датами, написанные на VBA.
158
Часть II. Использование функций в формулах
Представление даты как порядкового числа
Для Excel дата — это порядковое число, которое представляет собой количество дней,
прошедших с 0 января 1900 года. Это означает, что порядковое число 1 соответствует
дате 1 января 1900 года; число 2 — дате 2 января 1900 года и т.д. Существование такой
системы позволяет использовать формулы при работе с датами. Например, она позволяет
создать формулу, которая будет вычислять количество дней между двумя датами.
Безусловно, виртуальная дата 0 января 1900 года может вызвать недоумение. Конеч­
но, она не является датой сотворения мира, а просто означает определенное мировое
время. Далее мы рассмотрим это понятие более подробно.
Чтобы представить числовое значение в виде даты, к ячейке, содержащей этот номер,
необходимо применить формат Д ата. Для этого откройте диалоговое окно Формат
ячеек и щелкните на вкладке Число, а затем выберите необходимый формат.
Примечание
Excel 2000 и более поздние версии этого приложения поддерживают даты в
диапазоне от 1 января 1900 года до 31 декабря 9999 года (порядковое число
этой даты 2958465). Диапазон дат, доступный в более ранних версиях при­
ложения, значительно меньше. Здесь используются даты с 1 января 1900
года и до 31 декабря 2078 года (порядковое число 65380).
Выберите систему дат: 1900 или 1904
Excel поддерживает две системы дат: система дат, начиная с 1900 или 1904 года.
Какую из них предпочесть в рабочей книге, вы определяете самостоятельно, в зависи­
мости от того, какая дата служит основанием для других дат. В системе дат, начинаю­
щейся с 1900 года, день 1 января 1900 года имеет порядковое число 1. В системе дат
1904 года начало отсчета — 1 января 1904 года. По умолчанию для систем Windows при­
ложение Excel использует систему дат, начинающую отсчет с 1 января 1900 года, а для
систем Macintosh — дату, начиная с 1904 года. Тем не менее в Excel для Windows с це­
лью обеспечения совместимости с файлами Macintosh тоже поддерживается система
дат 1904. Систему дат можно изменить, используя диалоговое окно параметров про­
граммы. Чтобы открыть его, выберите команду Файл^Параметры Excel, а затем щелк­
ните на вкладке Дополнительно. В зависимости от своих намерений установите или
снимите в разделе При пересчете этой книги флажок Использовать систему дат 1904.
Имейте в виду, что система дат не может изменяться, если в компьютере используется
версия Excel для Macintosh.
Рекомендуем использовать систему дат, установленную по умолчанию (начиная с
1900 года). Будьте особенно осторожны, когда применяете две различные системы дат
в связанных рабочих книгах. Предположим, что Книга1 использует систему дат, начи­
ная с 1904 года, и содержит в ячейке А1 дату 1 5 / 1 / 1 9 9 9 , а Книга2, наоборот, исполь­
зует систему дат с 1900 года и содержит ссылку на ячейку a i к н и г и книга 1. В книге
Книга2 эта дата будет отображаться как 1 4 / 1 / 1 9 9 5 . Таким образом, обе рабочие книги
используют один и тот же порядковое число дня (34 713), но в разных книгах оно ин­
терпретируется по-разному.
Существует одно преимущество использования системы дат 1904. Эта система по­
зволяет отображать отрицательные значения времени. Другими словами, при исполь­
зовании системы дат 1900 результат вычитания 4 : о о - 5 : з о , не может быть отображен.
При использовании системы дат 1904 результат отображается как отрицательное вре­
мя - 1 : зо (т.е. разница составляет один час и 30 минут).
Глава 6. Дата и время
159
Ввод даты
Конечно, можно вводить дату как порядковое число, но, как правило, дата вводится
с использованием одного из нескольких поддерживаемых в 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. Использование функций в формулах
Окончание табл. 6.1
Введенные
данные
Воспринимается в Excel
(настройка для России и Украины)
Что отображает Excel
3 Июн
3 Июнь
3/6
3-6
3 -июн- 2 0 1 0
2010/6/3
3
3
3
3
3
3
03.июн
03.июн
03.июн
03.июн
03.07.2010
Короткая дата Windows
июня
июня
июня
июня
июня
июня
текущего года
текущего года
текущего года
текущего года
2010 года
2010 года
Рассматривая примеры, приведенные в этой таблице, можно сделать вывод, что Excel
обладает достаточно широкими возможностями преобразования введенных дат, однако
они не вполне совершенны. Например, программа не признает в качестве даты следую­
щую введенную информацию:
•
1 июня 2010;
•
Июн-1 2010;
•
Июн-1/2010.
Эту информацию Excel воспримет как текст. Поэтому прежде чем использовать даты
в формулах, убедитесь, что Excel поддерживает тот формат даты, который собираетесь
ввести. В противном случае формулы, которые обращаются к этим датам, будут работать
некорректно.
Существует еще один недостаток. Если введенная дата находится вне поддерживаемого
диапазона дат, Excel также интерпретирует ее как текст. Если порядковое число, находя­
щееся за пределами доступных для даты числовых значений, попытаться привести к фор­
мату даты, вместо значения будет отображаться ряд знаков “решетки” (#########).
Поиск даты
В рабочем листе, в котором используется довольно м ного дат, мож ет возникнуть
необходим ость найти определенную дату. Для это го воспользуйтесь д иалоговы м окном
Найти и заменить Excel, которое м ожно открыть, выбрав ком анду Главная^Р ед актирова н и е ^Н а й ти и вы делить1^ Найти или нажав ком бинацию клавиш <C trl+F>. И мейте в в и­
ду, что Excel достаточно требовательна к точности ввода иском ой инф орм ации. Вам
придется ввести полны й четы рехразрядны й го д даты в поле Найти д и а л о го в о го окна
поиска данных. Ф орм ат даты долж ен соответствовать кратком у представлению даты,
принятом у в систем е. Это представление можно увидеть в строке ф ормул.
Представление времени как порядкового числа
В Excel в качестве времени применяется дробная часть порядкового числа, обозна­
чающего дату. Другими словами, Excel считает сутки единицей, а все величины меньше
суток — соответствующей частью единицы. Например, порядковое число даты 18 июня
2010 года равно 4 0 3 4 7, а полдень того же дня имеет значение 4 034 7 . 5 .
Порядковое число одной минуты эквивалентно приблизительно 0 , 0 0 0 6 9 4 4 4 . Фор­
мула, приведенная ниже, вычисляет этот номер следующим образом: 24 часа умножается
на 60 минут, а затем 1 делится на полученный результат. Таким образом, в знаменателе
получается количество минут в одном дне (1440).
=1 / (24*60)
Глава 6. Дата и время
161
Тем же способом в Excel определяется порядковое число одной секунды— прибли­
зительно 0 , 0 0 0 0 1 1 5 7 . Для этого 1 делится на 24 часа, умноженные на 60 минут и 60
секунд. В этом случае знаменатель содержит количество секунд в одном дне (86400).
=1/(24*60*60)
Самая маленькая единица измерения времени в приложении Excel — одна тысячная
доля секунды (миллисекунда). Порядковое число приведенного ниже значения представ­
ляет время 2 3 : 5 9 : 5 9 , 9 9 9 , или без одной тысячной секунды полночь.
0,99999999
В табл. 6.2 представлены различные значения времени и соответствующие им поряд­
ковые числа, по которым Excel распознает это время.
Таблица 6.2. Время суток и преобразование его в порядковое число
Время суток
Порядковое число времени
12:00:00 (полночь)
1:30:00
3:00:00
4:30:00
6:00:00
7:30:00
9:00:00
10:30:00
12:00:00 (полдень)
13:30:00
15:00:00
16:30:00
16:00:00
19:30:00
21:00:00
22:30:00
0,00000000
0,06250000
0,12500000
0,18750000
0,25000000
0,31250000
0,37500000
0,43750000
0,50000000
0,56250000
0,62500000
0,68750000
0,75000000
0,81250000
0,87500000
0,93750000
Ввод времени
Как и в случае с датами, нет необходимости вводить порядковое число времени. Доста­
точно ввести в ячейку время в любом из форматов, поддерживаемых в Excel. В табл. 6.3
приведены некоторые примеры записей времени, поддерживаемых в Excel.
Таблица 6.3. Преобразование введенного времени в формат Excel
Введенные данные
Как Excel интерпретирует это время Что отображает Excel
11:30:00
11:30
11:30
13:30
11:00
1 1 : 3 0 am
1 : 3 0 pm
11
11:30:00
11:30
13:30
11:00
Поскольку приведенные выше примеры времени не связаны ни с каким определен­
ным днем, Excel по умолчанию использует порядковое число 0, соответствующее дате 0
января 1900 года, которая, по своей сути, не является датой.
162
Часть II. Использование функций в формулах
Примечание
При использовании системы дат, начинающейся с 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 часов, то оно будет представлено как
простая текстовая строка.
Форматирование значений даты и времени
Работая с ячейками, содержащими любую дату и время, вы имеете прекрасную воз­
можность форматировать их так, как это необходимо. Например, можно установить та­
кой формат ячейки, чтобы в ней отображалась только определенная часть даты или вре­
мени или только заданные части времени и даты одновременно.
Для форматирования ячейки с датой и временем необходимо выделить ячейку и
щелкнуть во вкладке Главная на раскрывающемся списке числовых форматов (рис. 6.1).
Этот список содержит два формата даты и один формат времени.
®
^°,вт
При создании
формул со ссылками на ячейку, содержимое которой пред­
ставляет дату или время, Excel автоматически преобразует результат вы­
полнения формул в формат даты или времени. В некоторых случаях это мо­
жет быть весьма кстати, в других же создает определенные неудобства
и даже раздражает. К сожалению, Excel не позволяет отключить автомати­
ческое форматирование ячейки. Тем не менее в подобных случаях можно
воспользоваться специальной комбинацией клавиш, чтобы отменить фор­
матирование всех чисел ячейки и вернуться к формату Общий, заданному по
умолчанию. Для этого достаточно выделить ячейку и нажать комбинацию
клавиш <Ctrl+Shift+~>.
Глава 6. Дата и время
163
Рис. 6.1. Раскрывающийся список числовых форматов используется для задания способа
отображения даты и времени
Иногда можно столкнуться с тем, что ни один из встроенных форматов не подходит
для нужного представления даты и времени. Не отчаивайтесь — Excel предоставит вам
прекрасную возможность создать пользовательский числовой формат. Выберите в спи­
ске пункт Другие числовые форматы (см. рис. 6.1) и введите определение пользова­
тельского формата в поле Тип. (Для получения дополнительной информации о создании
пользовательских числовых форматов см. приложение Б).
Совет
Следующий пользовательский формат данных особенно полезен для ото­
бражения времени:
[ ч ] :м м :сс
Заключите часы в квадратные скобки, чтобы иметь возможность отображать
часы за пределами 24. Использовать этот способ весьма удобно при добав­
лении более 24 часов. Соответствующий пример рассмотрен далее.
Проблемы, связанные с датами
Несмотря на всю эффективность форматов дат, в Excel все же иногда возникают про­
блемы при работе с датами. Многие из них уходят в прошлое. Excel была разработана
много лет назад, еще раньше, чем так называемая “проблема 2000 года” впервые потряс­
164
Часть II. Использование функций в формулах
ла мир. Но, как уже отмечалось, во многом разработчики Excel “отталкивались” от
Lotus 1-2-3 с ее ограниченными возможностями управления датами и временем. Поэтому
все самые серьезные технические дефекты были непреднамеренно перенесены в Excel.
Кроме того, версии самой Excel не единообразно интерпретируют записи дат с годом из
двух цифр. И наконец, то, как Excel понимает запись даты в ячейке, напрямую зависит от
региональных параметров, установленных в Windows.
Безусловно, если бы Excel полностью разрабатывалась в настоящее время, то она бы­
ла бы гораздо совершеннее в отношении управления датами. Но, к сожалению, пока
приходится работать с программным продуктом, который в этом вопросе оставляет же­
лать лучшего.
Ошибка високосного года
Високосный год, который наступает через каждые четыре года, имеет один дополни­
тельный день — 29 февраля. Несмотря на то что 1900 год не был таковым, Excel воспри­
нимает его как високосный. Другими словами, если ввести в ячейку 2 9 . 0 2 . 1 9 0 0 , Excel
не отобразит сообщение об ошибке, а интерпретирует это как значение даты, соответст­
вующее 60-му дню с начала отсчета (порядковое число 60):
29.2.1990
Однако если ввести другую недопустимую дату 2 9 . 0 2 . 1 9 0 1 , Excel отобразит сооб­
щение об ошибке. Приложение не преобразует эту запись в дату, а, скорее, воспримет ее
как текстовую строку:
29.02.1901
Возникает вопрос: как программный продукт, который ежедневно используют мил­
лионы людей, может содержать такую очевидную ошибку? Ответ кроется в истории его
создания. Исходная версия Lotus 1-2-3, на которой базировалось приложение Excel, со­
держала дефект, по причине которого 1900 год рассматривался как високосный. Разра­
ботчики приложения Excel знали об этой ошибке и позднее, при выпуске приложения,
специально перенесли этот дефект, чтобы обеспечить его совместимость с рабочими
листами файлов Lotus.
Но почему же эта ошибка до сих пор существует в более поздних версиях Excel?
Компания Microsoft утверждает, что проблемы, которые могут возникнуть при исправ­
лении этой ошибки, значительно перевешивают преимущества исправления. Устранение
этой ошибки привело бы в беспорядок сотни тысяч существующих рабочих книг. Кроме
того, исправление указанной проблемы сказалось бы на совместимости самой Excel с
другими программами, использующими дату. Именно поэтому данная ошибка влечет за
собой гораздо меньше проблем, чем ее исправление. К тому же, большинство пользова­
телей не используют даты, предшествующие 1 марта 1900 года.
Использование дат до 1900 года
Безусловно, мир начал свое существование не с 1 января 1900 года. Пользователи Excel,
которые работают с исторической информацией, часто используют даты до 1 января 1900
года. Но, к сожалению, единственный способ работы с такими датами в общепринятых
форматах — это ввести их в ячейку как текстовую информацию. Например, если ввести в
текстовую ячейку следующую строку, Excel воспримет ее без сообщения об ошибке:
4 июль,
1776
Глава 6. Дата и время
165
Совет
Если планируете сортировать старые даты, введенные как текст, или хотите
избавиться от проблем с форматами, применяйте даты в формате 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-го года.
Ввод противоречивых дат
Будьте осторожны при вводе дат, использующих для отображения года два разряда.
В этом случае Excel использует ряд правил, определяющих, какое столетие необходимо ис­
пользовать. Данные правила зависят от версии Excel, которая установлена в компьютере.
В Excel 7 годы, обозначаемые двумя числами в диапазоне между 00 и 29, интерпре­
тируются как принадлежащие к XXI столетию, а даты между 30 и 99 — как даты XX
столетия. Например, если ввести в ячейку запись 5 .1 2 .2 8, то Excel интерпретирует ее
как 5 декабря 2028 года. Но если ввести дату 5 . 1 2 . 3 0 , Excel воспримет ее как 5 декабря
1930 года. В Excel 2000 или более поздней версии, работающей под управлением Win­
dows 98 и выше, в качестве граничного года, заданного по умолчанию, используется
2029 год. В то же время вы можете самостоятельно установить граничный год с помо­
щью окна региональных стандартов Windows.
Совет
Чтобы избежать всякого рода неожиданностей при работе с датами, просто
введите год полностью, используя все четыре цифры.
Функции управления датами
Excel предлагает не так много функций, предназначенных для работы с датой. Эти
функции представлены в раскрывающемся списке Формулы ^Библиотека функций1^
Дата и время.
166
Часть II. Использование функций в формулах
В табл. 6.4 приведены функции, связанные с использованием даты, которые доступны
в Excel.
Таблица 6.4. Функции, связанные с датой
Функция
Описание функции
дата
датазнач
день
ДНЕЙ360
датамес
конмесяца
месяц
чистрабдни
тдата
сегодня
деньнед
номнедели
рабдень
год
долягода
Принимает три аргумента (год, месяц и день) и возвращает порядковое
число даты
Принимает дату в текстовом формате и возвращает порядковое число даты
Преобразует дату в день месяца (число от 1 до 31)
Вычисляет количество дней между двумя датами на основе 360-дневного
года (двенадцать месяцев по 30 дней)
Возвращает порядковое число даты, отстоящей на заданное количество
месяцев вперед или назад от заданной
Возвращает порядковое число последнего дня месяца, отстоящего вперед
или назад на заданное количество месяцев
Возвращает номер месяца (число в диапазоне от 1 до 12), соответствую­
щий введенному порядковому числу даты
Возвращает количество рабочих дней, расположенных между двумя датами
Возвращает порядковое число текущих даты и времени
Возвращает порядковое число текущей даты
Преобразует порядковое число даты в номер дня недели (число от 1 до 7)
Возвращает номер недели в году
Возвращает порядковое число даты, отстоящей вперед или назад на за­
данное количество рабочих дней
Преобразует порядковое число даты в год (целое число в диапазоне от
1900 до 9999)
Возвращает долю года, которая составляет количество дней между началь­
ной и конечной датами
Отображение текущей даты
Функция, приведенная ниже, отображает в ячейке текущую дату (учитывайте, что ес­
ли установлен текстовый или общий формат ячейки, будет отображено порядковое число
сегодняшней даты).
=СЕГОДНЯ()
Можно отобразить не только текущую дату, но и объединить ее с Любым текстом.
Например, следующая формула будет выводить на экран такой текст: С е г о д н я
понедельник,
9 Апрель,
2010.
= "Сегодня "& ТЕКСТ(СЕГОДНЯ( ) ; "д ддд,
д ММММ, г г г г " )
Помните, что результат функции СЕГОДНЯ изменяется каждый раз при расчете рабо­
чего листа. Например, если ввести в ячейку рабочего листа любую из рассмотренных
формул, они будут отображать текущую дату. Но откройте этот же рабочий лист на сле­
дующий день, и вы увидите, что формулы отображают совсем другую текущую дату.
Глава 6. Дата и время
167
Совет
Чтобы ввести в ячейку штамп даты (значение даты, которое не будет изме­
няться каждый последующий день), нажмите клавиши <Ctrl+Shift+; (точка
с запятой)>. Текущая дата будет введена в ячейку в текстовом формате без
использования формулы, поэтому она останется неизменной.
Отображение произвольных да т
Как уже отмечалось, дату можно добавить в ячейку, непосредственно введя ее в лю­
бом формате, поддерживаемом в приложении Excel. Дату также можно создать; для это­
го воспользуйтесь функцией ДАТА. Эта функция использует три аргумента: год, месяц
и день. Например, приведенная ниже формула возвращает дату, состоящую из года, взя­
того из ячейки А1, месяца, взятого из ячейки В1, и дня — из ячейки С1.
=ДАТА(А1;В1;С1)
Примечание
Обратите внимание, что функция дата принимает также недопустимые ар­
гументы и приводит результат в соответствие ожидаемому. Например, сле­
дующая формула использует число 13 как аргумент месяца и возвращает 1
Январь, 2011. Аргумент месяца автоматически преобразуется в первый
месяц следующего года.
=ДАТА( 2 0 1 0 ; 1 3 ;1)
Достаточно часто в функции ДАТА в качестве аргументов используются другие функ­
ции. Например, в приведенной ниже формуле функции ГОД и СЕГОДНЯ, используемые
как аргументы, возвращают День Независимости США (4 Июля) текущего года.
=ДАТА(ГОД(СЕГОДНЯ( ) ) ; 7 ; 4 )
Функция ДАТАЗНАЧ преобразует текстовую строку, представляющую собой дату,
в порядковое число даты. Следующая формула возвращает значение порядкового числа
даты 22 Августа 2010 года — 4 0 4 1 2 :
=ДАТАЗНАЧ( " 2 2 . 8 . 2 0 1 0 " )
Для того чтобы отобразить результат этой формулы в виде даты, достаточно приме­
нить к ячейке формат даты.
Предупреждение
Будьте особо внимательны при использовании функции д а т а з н а ч . Тексто­
вая строка, которая может быть использована как дата в одной стране, со­
вершенно не подходит для ввода даты в другой стране. Предыдущий пример
работает прекрасно в том случае, если система настроена для форматов да­
ты России или Украины. Однако при использовании других региональных
форматов даты (в частности, форматов США) формула может возвращать
ошибку, поскольку приложение Excel будет искать восьмой день двадцать
второго месяца.
Создание последовательности да т
В отдельных случаях может возникнуть необходимость вставить в рабочий лист це­
лый ряд последовательных дат. Например, при еженедельном отслеживании продаж тре­
168
Часть II. Использование функций в формулах
буется ввести несколько последовательных дат с интервалом в семь дней. Эти даты бу­
дут служить основой для систематизации коммерческой информации.
Самый эффективный способ ввода ряда последовательных дат не требует никаких
формул. Просто воспользуйтесь инструментом, встроенным в Excel, — автозаполнени­
ем. Для этого введите в ячейку первую дату, а затем, удерживая нажатой правую кнопку
мыши, перетащите в необходимом направлении маркер автозаполнения (маленький чер­
ный квадрат в правом нижнем углу контура выделения). Отпустите правую кнопку мыши
и выберите в контекстном меню команду Заполнить по дням (рис. 6.2).
Рис. 6.2. Использование функции автозаполне­
ния для создания последовательности дат
Функция автозаполнения весьма гибкая. Например, можно создать последователь­
ность дат, разделенных десятью днями. Для этого введите две первые даты в две ячейки,
выделите эти ячейки, перетащите правой кнопкой мыши маркер автозаполнения и выбе­
рите в контекстном меню команду Заполнить по дням.
Использование формул для создания последовательности дат все же имеет свои пре­
имущества. В этом случае достаточно указать первую дату, после чего остальные авто­
матически приводятся ей в соответствие. Вначале введите в ячейку начальную дату, а за­
тем добавьте формулы, скопировав их вниз по столбцу, чтобы получить даты, следую­
щие за исходной.
В представленном далее примере мы введем первую дату ряда в ячейку А1, а форму­
л у — в ячейку А2. Скопируйте формулу в ячейке вниз по столбцу столько раз, сколько
это необходимо.
Данная формула позволяет создать ряд последовательных дат, следующих одна за
другой с интервалом в семь дней.
=А1 + 7
Чтобы создать ряд последовательных дат, отстоящих друг от друга на месяц, вос­
пользуйтесь такой формулой:
=ДАТА(ГОД(А 1) ; МЕСЯЦ(А 1 ) + 1 ; ДЕНЬ(А1))
Глава 6. Дата и время
169
Формула, приведенная ниже, возвращает даты, следующие одна за другой с интерва­
лом в год.
=ДАТА(ГОД(А 1 ) + 1 ; МЕСЯЦ(А1) ;ДЕНЬ(А1))
Чтобы создать ряд, который состоит из дат, относящихся только к рабочим дням (т.е.
исключая субботы и воскресенья), воспользуйтесь приведенной ниже формулой. Имейте
в виду: она предполагает, что дата, введенная в ячейку А1, — рабочий день.
=ЕСЛИ (ДЕНЬНЕД (А1) =6 ; A l + 3 ; А1 + 1 )
Преобразование строки в дату
Даты, импортируемые как текстовые строки, тоже можно преобразовать в дату.
Предположим, в результате импорта из другого приложения получена приведенная ниже
текстовая строка, которая в действительности представляет собой дату 21 августа 2010
года. Этот текст состоит из четырех знаков, относящихся к году, двух знаков месяца и
двух знаков дня.
20100821
Чтобы преобразовать эту строку в фактическую дату, воспользуйтесь формулой, при­
веденной ниже. Эта формула предполагает, что исходные данные занесены в ячейку А1.
=ДАТА(ЛЕВСИМВ(А 1 ; 4 ) ; ПСТР(А 1 ; 5 ; 2 ) ; ПРАВСИМВ(А1; 2 ) )
Представленная формула использует текстовые функции ЛЕВСИМВ, ПСТР и ПРАВСИМВ
для извлечения из заданной строки определенных чисел. После этого она применяет их как
аргументы функции ДАТА.
Ф
Перекрестная ссылка
Для получения дополнительной информации об использовании формул
управления текстом обратитесь к главе 5.
Вычисление количества дней между двумя датами
Самый распространенный тип вычислений, связанный с датами, — это определение
количества дней между двумя заданными датами. Предположим, что на одном из листов
рабочей книги вычисляется процент, получаемый по срочному вкладу. Размер получен­
ного процента зависит от количества дней, на которое открыт счет. Если рабочий лист
содержит дату открытия и дату закрытия счета, то можно легко определить срок в днях,
на который был открыт счет.
Поскольку даты на рабочем листе, как правило, сохраняются в виде последователь­
ных значений, то для вычисления количества дней можно использовать простое вычита­
ние. Предположим, что ячейки А1 и В1 содержат некоторые даты. Следующая формула
возвращает количество дней между этими датами:
=А1-В1
Вероятнее всего, Excel автоматически отформатирует результирующую ячейку как
дату, а не как числовое значение. Вам потребуется вручную изменить формат этой ячей­
ки на числовой. Если ячейка В1 содержит более позднюю дату, чем ячейка А1, то ре­
зультат, возвращаемый формулой, будет отрицательным.
170
Часть II. Использование функций в формулах
Примечание
Если приведенная выше формула отображает некорректное значение, убе­
дитесь, что ячейки a i и В1 действительно содержат даты, а не текстовую
информацию, похожую на даты.
В некоторых случаях вычисление разницы между двумя датами может потребовать зна­
чительных усилий. Чтобы продемонстрировать это, проведем аналогию с “телеграфными
столбами”. Например, если требуется определить количество телеграфных столбов, то за­
дачу их подсчета можно решить двумя способами: непосредственно сосчитав количество
столбов или определив количество пролетов между ними. При этом имейте в виду, что ко­
личество столбов всегда на один больше, чем пролетов.
Чтобы рассмотреть эту ситуацию применительно к некоторому диапазону дат, в каче­
стве примера приведем кампанию по продвижению на рынок некоторого товара. Пред­
положим, что начальная дата кампании по продвижению товара — 1 февраля, а завер­
шающая дата — 9 февраля. Просто вычитая одну цифру из другой, мы получим ответ:
восемь дней. Но в действительности срок продвижения товара — девять дней. В этом
случае, чтобы получить правильный ответ, необходимо сосчитать дни “включительно”,
а не определять количество дней между датами. Ниже приведена формула, позволяющая
вычислить длительность кампании по продвижению товара (предположим, что у нас есть
ячейки, соответствующие этим названиям).
=ПоследнийДень-НачальныйДень+1
Вычисление количества рабочих дней
между двумя датами
Excel умеет не только вычислять количество дней между двумя датами. В случае не­
обходимости можно исключать из числа этих дней выходные и праздничные дни. На­
пример, вычислим, сколько рабочих дней выпадает на ноябрь месяц. Для этого необхо­
димо исключить из расчета субботы, воскресенья и праздничные дни (если таковые
имеются), воспользовавшись функцией ЧИСТРАБДНИ.
Примечание
Название функции чистрабдни часто вводит в заблуждение. Она не имеет
никакого отношения к чистоте или рабству, а, вместо этого, возвращает ко­
личество рабочих дней между двумя заданными датами.
Итак, функция ЧИСТРАБДНИ вычисляет разницу между двумя датами, исключая вы­
ходные дни (субботы и воскресенья). Кроме того, как дополнительное условие можно,
определить диапазон ячеек, содержащий даты, на которые приходятся праздничные дни.
Эти даты также могут быть исключены при расчете. Естественно, Excel не имеет ника­
кой возможности самостоятельно определять праздничные дни, поэтому вы должны
обеспечить программу этой информацией, указав соответствующий диапазон ячеек.
На рис. 6.3 показан рабочий лист, на котором вычисляется количество рабочих дней
между определенными датами. В диапазоне А2 : А8 содержится перечень дат, приходя­
щихся на праздничные дни. Формулы, которые введены в столбце С, вычисляют количе­
ство рабочих дней, расположенных между датами в столбцах А и В. Например, формула
в ячейке С И будет иметь такой вид:
=ЧИСТ РАБДНИ( A l l ; В 1 1 ;А 2 :А 8 )
Глава 6. Дата и время
171
Рис. 6.3. Для определения количества рабочих дней в промежутке
между двумя заданными датами воспользуйтесь функцией
Ч И С ТРА Б Д Н И
Формула возвращает значение 3. Это означает, что семидневный период, начинаю­
щийся с 1 января, содержит три рабочих дня. Другими словами, при расчете исключают­
ся два праздничных и два выходных дня. Ячейка С12 содержит формулу, которая вы­
числяет общее количество рабочих дней в первом полугодии 2010 года.
Новинка
В Excel 2010 добавлена усовершенствованная версия функции чист р аб дни ,
которая называется ч и с т р а б д н и . межд. Она полезна, когда нужно считать
выходными днями не субботу и воскресенье, а другие дни недели.
Компакт-диск
Файл этого примера на компакт-диске называется work d a y s . x l s x (Chapter06_
RUS. x l s x ) .
Вычисление даты по графику рабочих дней
Функция РАБДЕНЬ является прямой противоположностью функции ЧИСТРАБДНИ.
Например, при запуске в работу определенного проекта, на выполнение которого требу­
ется десять дней, функция поможет вычислить дату окончания проекта.
В приведенной ниже формуле с помощью функции РАБДЕНЬ определяется дата, сле­
дующая через десять рабочих дней после 8 января 2010 года. Рабочими днями считаются
будние дни недели (с понедельника по пятницу).
=РАБДЕНЬ( " 0 8 . 0 1 . 2 0 1 0 " ; 1 0 )
Формула возвращает значение 20 января 2010 года (между 8 и 20 января выпадает
два выходных дня).
Предупреждение
Имейте в виду, что результат, возвращаемый данной формулой, полностью
зависит от региональных форматов даты. В других странах приведенная
выше жестко закодированная дата может интерпретироваться как 1 августа
2010 года. Чтобы избежать этого, используйте следующую формулу:
=РАБДЕНЬ(ДАТА( 2 0 1 0 ; 1 ; 8 ) ; 10 )
Интересно, что второй аргумент функции РАБДЕНЬ может быть отрицательным. Как
и в случае с функцией ЧИСТРАБДНИ, функция РАБДЕНЬ может использовать третий не­
Часть II. Использование функций в формулах
172
обязательный аргумент, который определяет диапазон ячеек с датами, относящимися
к праздничным дням и дням отпуска.
Вычисление количества ле т между двумя датами
Следующая формула вычисляет количество лет между двумя датами. В данном слу­
чае предполагается, что ячейки А1 и В1 содержат даты.
=ГОД(А1) -ГОД(В1)
Для извлечения года из каждой заданной даты в этой формуле используется функция ГОД,
после чего один год вычитается из другого. Имейте в виду следующее: если В1 содержит бо­
лее близкий к текущей дате год, чем дата в ячейке А1, результат будет отрицательным.
Следует обратить внимание, что данная функция не вычисляет часть года. Например, если
ячейка А1 содержит дату 3 1 . 1 2 . 2010, а ячейка В1 — дату 0 1 . 01 . 2 0 1 1 , то формула вер­
нет разницу в один год, несмотря на то, что эти даты отличаются всего лишь на один день.
Для вычисления количества лет между двумя датами можно также использовать функцию
ДОЛЯГОДА. Эта функция возвращает количество лет, включая неполные, например:
=ДОЛЯГОДА(А1/ В1/ 1)
Так как функцию ДОЛЯГОДА часто используют в финансовых приложениях, в ней
существует необязательный третий аргумент, представляющий “базис” года. Значение 1
этого аргумента указывает на текущий год.
Вычисление возраста человека
Возраст человека — это количество полных лет, которые человек уже прожил. Фор­
мула, приведенная для вычисления количества лет между двумя датами в предыдущем
разделе, не сможет корректно определить это значение. В этом случае нужно использо­
вать две другие формулы.
Следующая формула возвращает возраст человека, дата рождения которого содер­
жится в ячейке А1. Эта формула использует функцию ДОЛЯГОДА .
=ЦЕЛОЕ(ДОЛЯГОДА(СЕГОДНЯ( ) ; A I ; 1 ) )
Ниже приведена формула, которая применяет для вычисления возраста функцию
РАЗНДАТ.
=РАЗНДАТ(А1; СЕГОДНЯ( ) ; "у ")
Где найти функцию
разндат
В этой главе неоднократно упоминалась функция р а з н д а т . Обратите внимание, что
ее нет в числе доступных в диалоговом окне Мастер функций, также она не содержится
в списке автозавершения формулы. Поэтому для того, чтобы использовать эту функ­
цию, ее необходимо ввести вручную.
Функция р аз нда т была известна еще со времен Lotus 1-2-3, и, очевидно, с целью
обеспечения совместимости Excel поддерживает ее. По определенным причинам Mi­
crosoft старается сохранить эту функцию в секрете. Интересно, что в версиях програм­
мы ниже Excel 2000 функция р а з нда т даже не упоминалась. Из интерактивной справки
Excel 2002 были удалены все ссылки на нее, хотя сама функция в этой версии приложе­
ния все еще доступна.
Тем не менее, функция разндат очень удобна. Она позволяет вычислить количество
дней, месяцев и лет, находящихся между двумя датами. В ней используется три аргумента:
Глава 6. Дата и время
173
начальная_дата, конечная_дата и определенный код_единицы_измерения, с помощью ко­
торого задается единица времени. Код в функции всегда заключается в кавычки. Ниже при­
ведена таблица, в которой представлены допустимые коды для третьего аргумента.
Код единицы
измерения
Возвращаемое значение
Иу II
"Ш"
Количество полных лет в заданном периоде
Количество полных месяцев в заданном периоде
Количество дней в заданном периоде
Разница в днях между начальной и конечной датой. Месяцы и годы в
данном случае игнорируются
Разница в месяцах между начальной и конечной датой. Игнорируются
дни и годы
Разница в днях между начальной и конечной датой. Игнорируются го­
ды между заданными датами
"d"
"md"
"ym"
"yd"
Имейте в виду, что аргумент начальная_дата должен находиться левее, чем аргумент
конечная_дата, в противном случае функция возвращает ошибку. Кроме того, в русифи­
цированной Excel коды единиц измерения должны вводиться английскими буквами.
Вычисление дня года
Итак, 1 января — это первый день года, а 31 декабря — последний. Как определить,
какой по счету день приходится на произвольную дату года? Следующая формула воз­
вращает порядковое число дня года для даты, содержащейся в ячейке А1:
=А1 - ДАТА(ГОД(AI) ; 1 ; 0 )
Если задать аргумент д е н ь равным нулю, функция ДАТА интерпретирует его как по­
следний день предыдущего месяца. Можно задавать отрицательные значения, они ин­
терпретируются аналогично.
Приведенная ниже формула возвращает день года текущей даты:
=СЕГОДНЯ( ) -ДАТА(ГОД(СЕГОДНЯ( ) ) ; 1 ; 0 )
Следующая формула возвращает количество дней в году, которые остались после на­
ступления даты, заданной в ячейке А1:
=ДАТА(ГОД(А1) ; 1 2 ; 3 1 ) -А1
Обратите внимание, что при вводе любой из этих формул Excel применяет к ячейке
формат даты, и чтобы увидеть полученный результат, необходимо применить к ячейке
числовой формат.
Следующую формулу рекомендуется использовать для того, чтобы преобразовать за­
данное порядковое число дня года (например, девяностый день) в определенную дату
и год, которые соответствуют этому дню. В этой формуле предполагается, что содержи­
мое ячейки А1 — это год, а содержимое ячейки В1 — это день года.
=ДАТА (A I ; 1; В 1 )
Вычисление дня недели
Для вычисления дня недели часто используют функцию ДЕНЬНЕД. Она принимает в ка­
честве аргумента дату и возвращает целое число, соответствующее дню недели, в диапазо­
не между 1 и 7. Следует отметить, что в данном случае отсчет дней начинается с воскресе­
174
Часть II. Использование функций в формулах
нья, как это принято в англоязычных программных продуктах. Например, следующая фор­
мула возвращает значение 5, поскольку первый день 2010 года выпадает на пятницу:
=ДЕНЬНЕД(ДАТА( 2 0 1 0 ; 1 ; 1 ) )
Функция ДЕНЬНЕД может принимать и второй, необязательный аргумент, который
определяет систему нумерации дней недели для вывода результата. Если в качестве вто­
рого аргумента введено значение 2, то функция возвращает значение 1 для понедельни­
ка, 2 — для вторника и т.д. Если же в качестве второго аргумента ввести значение 3, то
функция вернет 0 для понедельника, 1 — для вторника и т.д.
Совет
Для того чтобы вычислить день недели даты в ячейке, можете использовать
собственный числовой формат. Выберите команду Главная^Число^Числовой формат^Другие числовые форматы. В поле Тип диалогового окна Фор­
мат ячеек введите д д д д и щелкните на кнопке ОК. Введите в ячейку дату
(например, 2 2 . 0 7 . 2 0 1 0 ) . В результате в ячейке будет отображено ч е т ­
в е р г — день недели введенной даты.
Вычисление даты прошлого воскресенья
Хотите узнать, на какую дату приходилось прошедшее воскресенье? Воспользуйтесь
формулой, приведенной ниже. Но имейте в виду, если текущая дата выпадает на воскре­
сенье, то формула возвращает текущую дату.
=СЕГОДНЯ( ) -ОСТАТ(СЕГОДНЯ( ) - 1 ; 7 )
'
Для того чтобы найти дату другого дня, а не воскресенья, измените аргумент 1
в формуле на любой другой в диапазоне между 2 (найти понедельник) и 7 (суббота).
Вычисление дня недели, следующего после
заданной даты
Приведенная ниже формула
определенной датой. Например,
ту первого понедельника после
жит дату, а ячейка А2 — число
дельнику и т.д.).
возвращает дату заданного дня недели, следующего за
эту формулу можно использовать, чтобы вычислить да­
1 июня 2010 года. Предположим, что ячейка А1 содер­
между 1 и 7 (1 соответствует воскресенью, 2 — поне­
=А1+А2-ДЕНЬНЕД(А1)+ ( А2<ДЕНЬНЕД(А1) ) * 7
Если ячейка А1 содержит дату 1 июня 2010 года, а ячейки А2 — значение 2
(понедельник), то формула вернет дату 4 июня 2010 года. Это будет первый понедель­
ник, следующий после пятницы 1 июня 2010 года.
Вычисление даты л-го дня недели в заданном месяце
Иногда возникает потребность вычислить дату, приходящуюся на заданный день не­
дели. Приведем пример. Каждую вторую пятницу месяца в компании — день выплаты
заработной платы. Как определить дату выплат в каждом месяце? Воспользуйтесь для
этого формулой, приведенной ниже.
=ДАТА ( А1; А2 ; 1) +АЗ - ДЕНЬНЕД (ДАТА ( А1 ; А2 ; 1) ) +
(А4-(АЗ>=ДЕНЬНЕД(ДАТА(А1;А 2 ; 1 ) ) ) ) * 7
Глава 6. Дата и время
175
Для этой формулы приняты следующие условия:
•
ячейка А1 содержит значение года;
•
ячейка А2 содержит значение месяца;
•
ячейка АЗ содержит значение дня (1 для воскресенья, 2 — для понедельника и т.д.);
•
ячейка А4 содержит номер вхождения (к примеру, 2 для выбора второго вхожде­
ния дня недели, заданного в ячейке АЗ).
Например, если использовать эту формулу для определения даты второй пятницы
в июне 2010 года, формула вернет дату 8 июня 2010 года.
Примечание
Если значение, содержащееся в ячейке А4, не принадлежит к диапазону
дней указанного месяца, то формула вернет дату, относящуюся к следую­
щему месяцу. Например, если задать определение даты шестой пятницы
июня 2010 года (а такой даты не существует), то формула вернет дату пер­
вой пятницы июля.
Вычисление количества заданных дней
недели в месяце
Формула, приведенная ниже, позволяет вычислить количество определенных дней
недели заданного месяца. Предположим, ячейка А1 содержит дату, а ячейка А2 — по­
рядковое число дня недели (значение 1 соответствует воскресенью, 2 — понедельнику
и т.д.). Имейте в виду, что это формула массива, поэтому, чтобы ввести ее, используйте
клавиши <Ctrl+Shift+Enter>.
{=СУММ( (ДЕНЬНЕД (ДАТА (ГОД (А1);МЕСЯЦ(А1); СТРОКА(ДВССЫЛ("1: "
ЬДЕНЬ(ДАТА(ГОД(А1); МЕСЯЦ(А1) + 1 ; 0 ) ) ) ) ) ) = В 1 ) * 1 ) }
Если ячейка А1 содержит дату 8 января 2010 года, а ячейка В1 — значение 3, т.е.
вторник, формула возвращает значение 4. Это значит, что январь 2010 года содержит че­
тыре вторника.
Приведенная выше формула массива вычисляет год и месяц, используя функции ГОД
и МЕСЯЦ. Однако ее можно немного упростить. Для этого введите год и месяц заданной
даты в отдельные ячейки. Для приведенной ниже формулы, которая тоже является фор­
мулой массива, приняты условия, что ячейка А1 содержит значение года, ячейка А2 —
месяца и ячейка В1 — значение дня недели.
{=СУММ( (ДЕНЬНЕД(ДАТА( A I ; А 2 ; СТРОКА(ДВССЫЛ( " 1 : " &ДЕНЬ(ДАТА(А 1 ;
А2 +1; 0 ) ) ) )) ) =В1) * 1 ) }
©
Перекрестная ссылка
Детально формулы массивов рассмотрены в главах 14 и 15.
На рис. 6.4 показан результат использования этой формулы на рабочем листе. В этом
случае используются и абсолютные, и смешанные ссылки на ячейки, поэтому можно ско­
пировать эту формулу. К примеру, формула в ячейке СЗ выглядит следующим образом:
{=СУММ( (ДЕНЬНЕД(ДАТА( $ В $ 2 ; $АЗ; СТРОКА(ДВССЫЛ(
"1 : " &ДЕНЬ(ДАТА( $ В $ 2 ; $АЗ + 1 ;0) )) ) ) ) = С $ 1 ) *1) }
Часть II. Использование функций в формулах
176
Итоговые формулы на этом листе используют функцию СУММ. Они вычисляют общее
количество дней в месяце (столбец J) и количество каждого дня недели в году (строка 15).
#
К ом пакт-диск
Файл этого примера на прилагаемом компакт-диске называется d a y
of
t h e week c o u n t . x l s x ( C h a p t e r 0 6 _ R U S . x l s x ) .
Рис. 6.4. На этом рабочем листе вычисляется количество дней недели в месяцах года
Отображение даты в текстовом виде
Иногда может потребоваться отобразить дату в виде, не предусмотренном ни в одном
встроенном формате дат. К примеру, с помощью приведенной ниже формулы дату
1 6 . 3 . 2 0 1 0 можно отобразить как 16 марта 201 0 г. Предполагается, что стандарт­
ная запись даты находится в ячейке А1.
=ДЕНЬ(А1)&"
" & Т Е К С Т ( A I ; " ММММ") &"а
"&ГОД(А1)&"
г."
Примечание
Результат этой формулы имеет текстовый формат, а не формат даты.
Конечно, такое преобразование может быть полезным, только если предусмотреть
выбор суффикса с помощью ряда функций ЕСЛИ (например, для апреля нужно приме­
нить суффикс я и удалить ь) .
Компакт-диск
Файл этого примера на прилагаемом компакт-диске в авторском варианте
называется 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 показана рабочая книга Excel, в которой вычисляются даты нескольких
праздничных дней. Все формулы содержат ссылку на ячейку А1 — год, для которого
вычисляются даты. Поскольку такие праздники, как Новый год и День Независимости,
отмечаются в строго определенные дни года, для вычисления их дат используется только
функция Д А Т А .
Рис. 6.5. Для того чтобы определить дату праздничного дня, воспользуйтесь специаль­
ными формулами
Компакт-диск
Файл этого примера на прилагаемом компакт-диске называется h o l i ­
d a y s . x l s x ( Chapter06_RUS . x l s x ) .
Новый год
Новый год отмечается первого января.
=ДАТА (А 1 ; 1; 1)
День Мартина Лютера Кинга
Этот праздничный день приходится на третий понедельник января. Далее мы узнаем,
на какую дату выпадет этот день в 2010 году, определенном в ячейке А1.
=ДАТА(А1; 1 ; 1 ) +ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А 1 ; 1 ; 1 ) ) ; 7 -ДЕНЬНЕД(
ДАТА(А1; 1 ; 1 ) ) + 2 ; 2 -ДЕНЬНЕД(ДАТА(А1; 1 ; 1 ) )) + ( ( 3 - 1 ) * 7 )
День президентов
День президентов празднуется в третий понедельник февраля. Следующая формула
вычисляет дату этого дня в указанном году (ячейка А1):
=ДАТА(А1; 2 ; 1 ) +ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1; 2 ; 1 ) ) ;7-ДЕНЬНЕД(
ДАТА(А1; 2 ; 1 ) ) + 2 ; 2 - ДЕНЬНЕД(ДАТА(А1; 2 ; 1 ) )) + ( ( 3 - 1 ) * 7 )
178
Часть II. Использование функций в формулах
День памяти павших
День памяти павших в гражданской войне в США 1861-1865 гг., в испано-американской и
других войнах отмечается в США в последний понедельник мая. Дата, на которую он придет­
ся в указанном году (ячейка А1), определяется с помощью следующей формулы:
=ДАТА(А1; 6 ; 1 ) +ЕСЛИ(2<ДЕНЬНЕД(ДАТА(А1; 6 ; 1 ) ) ;7-ДЕНЬНЕД(
ДАТА(А1; 6 ; 1 ) ) + 2 ; 2 - ДЕНЬНЕД(ДАТА(А1; 6 ; 1 ) ) ) + ( ( 1 - 1 ) * 7 ) - 7
Обратите внимание, что данная формула вычисляет первый понедельник июня, а за­
тем, чтобы определить предыдущий понедельник мая, из полученного результата вычи­
тает 7 дней.
День Независимости США
Этот праздник из года в год отмечается строго 4 июля.
=ДАТА(А1; 7 ; 4 )
День труда
День труда — это первый понедельник сентября. Формула, приведенная ниже, опре­
деляет его дату в указанном году (ячейка А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)
Вычисление даты последнего дня месяца
Для того чтобы вычислить дату, соответствующую последнему дню месяца, можно
воспользоваться функцией ДАТА. При этом число месяцев необходимо увеличить на
единицу, а для дня использовать значение 0. Другими словами, в расчет принимается ус­
ловие, что нулевой день месяца — это последний день предыдущего месяца.
Глава 6. Дата и время
179
Приведенная ниже формула возвращает дату, которая соответствует последнему дню
месяца. Данная формула предполагает, что исходная дата содержится в ячейке А1.
=ДАТА(ГОД(А1) ; МЕСЯЦ(А1)+ 1 ; 0 )
Эту формулу можно модифицировать, после чего она позволит вычислять количество
дней, содержащихся в определенных месяцах. Следующая формула возвращает целое
числовое значение, которое представляет собой количество дней в месяце, заданном
в ячейке А1:
=ДЕНЬ(ДАТА(ГОД(А1); МЕСЯЦ(А1) + 1 ; 0 ) )
Проверка високосного года
Безусловно, для того чтобы выяснить, является ли високосным определенный год, мож­
но написать формулу, которая установит дату шестидесятого дня года: 29 февраля или 1
марта. Но гораздо эффективнее воспользоваться формулой ДАТА, которая в дополнение
откорректирует результат в том случае, если введен неправильный аргумент (например, ко­
гда для дня введено значение 29, в то время как в феврале этого года всего 28 дней).
Данная формула возвращает значение ИСТИНА, если дата, находящаяся в ячейке А1,
относится к високосному году. В противном случае формула возвращает значение ЛОЖЬ.
=ЕСЛИ(МЕСЯЦ(ДАТА(ГОД (А1) ; 2 ; 2 9 ) ) =2 ; ИСТИНА; ЛОЖЬ)
Предупреждение
Помните, что для 1900 года результат истина , возвращаемый данной функ­
цией, будет неправильным. Об этой ошибке речь шла ранее.
Вычисление квартального периода
В финансовых отчетах часто полезно отображать информацию поквартально. Форму­
ла, приведенная ниже, возвращает числовое значение в диапазоне от 1 до 4, которое со­
ответствует календарному кварталу для даты, содержащейся в ячейке А1.
=0КРУГЛВВЕРХ(МЕСЯЦ(А1) / 3 ; 0 )
Данная формула делит количество месяцев на три, а затем округляет полученный ре­
зультат.
Отображение года римскими цифрами
Любителям старых кинофильмов наверняка понравится эта особенность Excel. Сле­
дующая формула отображает 1945 год римскими цифрами и возвращает MCMXLV:
=РИМСКОЕ( 1945)
Функция РИМСКОЕ возвращает текстовую строку, поэтому ее результат нельзя ис­
пользовать для выполнения вычислений. Кроме того, Excel не имеет обратной функции,
которая позволила бы преобразовать римские цифры в арабские.
Функции управления временем
Excel, как нетрудно предположить, ожидаете, содержит массу функций, позволяющих
работать с датами и временем в формулах. В этом разделе будет продемонстрировано
использование таких функций.
180
Часть II. Использование функций в формулах
В табл. 6.5 систематизированы связанные со временем функции Excel. Все приведен­
ные здесь функции можно найти в раскрывающемся списке Формулы ^Библиотека
функций1^Дата и время.
Таблица 6.5. Функции, связанные ро временем
Функция
Описание функции
Преобразует дату в числовом формате (т.е. порядковое число даты) в часы
Преобразует дату в числовом формате в минуты
Возвращает текущую дату и время в числовом формате
Преобразует дату в числовом формате в секунды
Возвращает дату в числовом формате для заданного времени
Преобразует время из текстового формата в дату в числовом формате
ЧАС
МИНУТЫ
ТД АТА
СЕКУНДЫ
ВРЕМЯ
ВРЕМЗНАЧ
Отображение текущего времени
Приведенная ниже формула отображает текущее время в числовом формате или как
порядковое число.
= Т Д А Т А ( ) - С Е Г О Д Н Я ()
Чтобы распознать результат как время, необходимо отформатировать ячейку соответ­
ствующим образом с помощью команды Главная1
^ Числом Числовой формат. На­
пример, можно отобразить на экране время до и после полудня, используя следующий
числовой формат.
ч ч :мм
AM/Р М
Время можно объединить с текстовой строкой. Следующая формула позволяет ото­
бразить текст Т е к у щ е е в р е м я 6 : 2 8 РМ:
= " Т е к у щ е е
в р е м я
" & Т Е К С Т ( Т Д А Т А ( ) ; " ч :м м
А М / Р М ")
Примечание
Имейте в виду, что эти формулы обновляются при пересчете рабочего листа.
Совет
Для того чтобы ввести в заданную ячейку штамп времени (значение, которое
не будет изменяться при пересчете рабочей книги), нажмите комбинацию
клавиш <Ctrl+Shift+: (двоеточие)Х
Отображение произвольного времени
Ранее речь уже шла о том, как вводить временные данные. Достаточно ввести в ячейку
определенное время, используя для этого всего один знак : (двоеточие). Но существует и
другой способ. Чтобы отобразить время, воспользуйтесь функцией ВРЕМЯ. Например,
формула, приведенная ниже, возвращает значение времени, которому соответствуют часы,
содержащиеся в ячейке А1, минуты, введенные в ячейку В1, и секунды из ячейки С1.
= В Р Е М Я ( А1;В1;С1)
Подобно функции ДАТА, функция ВРЕМЯ воспринимает недопустимые аргументы,
которые она приводит в соответствие автоматически. Например, введем, в следующую
Глава 6. Дата и время
181
формулу заведомо неправильный аргумент 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 . " )
Суммирование значений времени,
превышающих 24 часа
Многих удивляет, почему при суммировании нескольких значений времени, когда ре­
зультат превосходит 24 часа, Excel отображает его некорректно. На рис. 6.6 показан
пример, в котором введено несколько значений времени — количество отработанных ча­
сов и минут за каждый день недели. Формула, вычисляющая суммарное значение време­
ни, содержится в ячейке В9.
=СУММ(В2 : В8 )
182
Часть II. Использование функций в формулах
Весьма очевидно, что формула возвращает неправильное значение (18 часов 30 ми­
нут). Ведь простой расчет показывает, что общее количество часов должно быть равным
42 часам 30 минутам. Проблема состоит в том, что на самом деле формула возвращает
числовое значение даты и времени 1 , 7 7 0 8 3 3 , но формат ячейки не позволяет отобра­
жать часть значения, относящегося к дате.
Рис. 6 .6 . Функция с у м м вычисляет общее коли­
чество отработанных часов. Однако данный от­
вет неверен, поскольку ячейка в 9 имеет непра­
вильный формат данных
Для того чтобы полученный результат отображался как время, превышающее 24 часа,
необходимо изменить формат результирующей ячейки, а часть времени, представляю­
щую собой часы, заключить в квадратные скобки. Применение следующего формата
к ячейке В9 позволит правильно отобразить сумму значений времени:
[ч]:мм
Рассмотрим еще один пример расчета времени. На следующем рабочем листе (рис. 6.7)
отслеживаются нормативные и сверхурочные часы, отработанные в течение недели.
Рис. 6.7. Пример рабочей книги для расчета времени, отработанного служащими
Дата начала работы введена в ячейку В4. Столбец В содержит формулы, которые вы­
числяют дни недели, соответствующие каждой дате. Таким образом определяются рабо­
чие дни недели. Отработанное время вводится в диапазон ячеек С7 : F13. Столбец G со­
Глава 6. Дата и время
183
держит формулы, которые вычисляют общее количество часов, отработанное за каждый
день. Например, формула, содержащаяся в ячейке G7, выглядит следующим образом:
=ЕСЛИ(D7<C7; D7+ 1 - С 7 ; D7- С 7 ) +ЕСЛИ(F7< E7 ; F 7 + 1 - Е 7 ; F 7 - Е 7 )
В первой части данной формулы вычисляется количество часов, отработанных слу­
жащими до обеда. Время, отображаемое в столбце С, вычитается из времени в столбце D.
Вторая часть формулы вычисляет часы, отработанные после обеда: столбец Е вычитает­
ся из столбца F. Функция ЕСЛИ должна учесть в расчете различные сдвиги во времени
начала смены. Например, служащий может начинать работу в 10:00, соответственно с
часовым перерывом на обед в 14:00. Имейте в виду, что без функции ЕСЛИ формула мо­
жет возвращать отрицательный результат.
Следующая формула, введенная в ячейку С16, подводит итог по столбцу G и вычис­
ляет общее количество часов, отработанных в течение недели:
=СУММ (G 7 :G 1 3 )
В этом примере принята за основу 40-часовая рабочая неделя. Поэтому все часы, от­
работанные сверх 40 часов, рассматриваются как сверхурочные. Ячейка, отображающая
сверхурочное время, тоже показана на рис. 6.7. Если стандартная рабочая неделя в рас­
четах содержит больше или меньше 40 часов, эта формула может быть изменена в соот­
ветствии с конкретными условиями.
Следующая ячейка (Е18) содержит формулу, которая вычисляет нормативные часы.
Формула возвращает меньшее из двух значений, введенных в качестве аргументов: об­
щее установленное стандартами количество часов или сверхурочные часы.
= М И Н (Е 1 7 ; С в е р х у р о ч н ы е )
И наконец, последняя формула, содержащаяся в ячейке Е19, вычитает нормативные часы
из общего количества отработанных часов и возвращает количество сверхурочных часов.
=С16-С17
Все значения в диапазоне ячеек С16 : С18 отображают время, превышающее 24 часа,
поэтому применяется пользовательский числовой формат.
[ч] :мм
Компакт-диск
Файл примера, показанного на рис. 6.7, на компакт-диске называется t i m e
sheet.xlsm (Chapter06_RUS.xlsx).
Вычисление разницы между двумя временными
значениями
Поскольку Excel позволяет преобразовать значение времени в числовой формат, не­
сложно вычесть более раннее время из более позднего и определить таким образом раз­
ницу во времени. Например, если ячейка А2 содержит значение времени 5:30:00, а ячей­
ка В2 — 14:00:00, то следующая формула вернет значение времени 0 8 : 3 0 : 0 0 , т.е. раз­
ница во времени составит 8 часов 30 минут.
=В2-А2
Если разница во времени отрицательная, что является недопустимым результатом,
Excel отобразит несколько знаков “решетки” (# ### ## #) , поскольку при отсутствии даты
точка отсчета времени — это 0. Отрицательное время, соответственно, означает отрица­
тельное числовое значение, что само по себе уже недопустимо.
Часть II. Использование функций в формулах
184
В том случае, если направление вычитания времени не столь важно, можно использо­
вать функцию ABS, которая возвращает абсолютное значение.
=ABS (В2-А2)
Проблема “отрицательного времени” часто возникает при вычислении разницы между
более ранним и более поздним временем. Вернемся к задаче вычисления количества отра­
ботанных часов. Чтобы определить его, достаточно просто вычесть начальное время рабо­
ты из конечного времени. Это не представляет никакой проблемы, если два указанных зна­
чения приходятся на один и тот же день. Но как быть, если рабочее время начинается неза­
долго до конца текущих суток, а заканчивается на следующие сутки? Например, если
служащий начинает работать в 22:00, а заканчивает в 6:00, то в этом случае результатом
вычитания будет отрицательное время. Таким образом, определить отработанные часы
для смены, начинающейся в одних сутках, а заканчивающейся в других, становится про­
блемой (рис. 6.8).
Рис. 6.8. Если вычислить количество отработанных ча­
сов при смене, продолжающейся заполночь, Excel
вернет ошибочное значение
Какой может быть выход из такой ситуации? Использование функции ABS и вычис­
ление абсолютного значения в этом случае не подходит, поскольку формула возвращает
неправильный результат— 16 часов. Тем не менее приведенная ниже формула может
сработать:
=ЕСЛИ(В2<А2;В2+1;В2)-А2
Существует и более простая формула для решения задачи:
=ОСТАТ(В2-А2;1)
Совет
Как уже отмечалось, работа с отрицательным временем возможна, если ра­
бочая книга использует систему дат 1904. Чтобы перейти к этой системе
дат, откройте диалоговое окно параметров Excel, перейдите во вкладку До­
полнительно и в разделе При пересчете этой книги установите флажок Ис­
пользовать систему дат 1904. Будьте бдительны! При изменении системы
исчисления все даты, имеющиеся в рабочей книге, будут увеличены на че­
тыре года.
Преобразование “военного времени”
“Военное время”, как правило, представляет собой четырехразрядное значение в пре­
делах от 0000 до 2359. Например, 1:00 AM отображается как 0100 часов, а 3:30 РМ как
1530 часов. Формула, приведенная ниже, преобразует это значение (ячейка А1) в обще­
принятый формат времени.
=ВРЕМЗНАЧ (ЛЕВСИМВ (А1; 2) &" : "&ПРАВСИМВ ( А1; 2 ) )
Глава 6. Дата и время
185
Если ячейка А1 содержит больше или меньше четырех чисел, то результат, который
возвратит данная формула, будет неверным. Следующая формула корректирует эту
ошибку и возвращает допустимое значение времени для любого времени в “военном
формате” от 0 до 2359:
=ВРЕМЗНАЧ (ЛЕВСИМВ (ТЕКСТ ( А1; "0 000 " ) ; 2 ) &" : "&ПРАВСИМВ (А1; 2) )
В более простой формуле задействована функция ТЕКСТ, которая форматирует стро­
ку как текст, а затем использует функцию ВРЕМЗНАЧ, чтобы отобразить результат
в формате времени.
=ВРЕМЗНАЧ(ТЕКСТ(А 1 ;"0 0 \ :0 0") )
Преобразование часов, минут и секунд в десятичном
исчислении в значение времени
Иногда часы, минуты или секунды времени отображаются в виде значений в десятич­
ном исчислении. Для того чтобы преобразовать их в стандартный формат времени, про­
сто разделите значение на 24. Предположим, что ячейка А1 содержит значение часа
9,25. Следующая формула возвращает 0 9 : 1 5 : 0 0 (9 часов 15 минут):
=А1/24
Подобная формула может использоваться и для преобразования минут в десятичном
исчислении. Но в знаменателе должно стоять число 144 0 — количество минут в сутках.
Например, если ячейка А1 содержит значение 5 00 (минут), то следующая формула воз­
вращает 0 8 : 2 0 : 0 0 (8 часов 20 минут):
=А1/144 0
При преобразовании секунд в стандартный формат времени значение делится на 8 6 4 0 0
(число секунд в сутках). Например, если ячейка А1 содержит число 6 5 0 0 0 (секунд), то
формула, приведенная ниже, возвращает 1 8 : 0 3 : 2 0 ( 1 8 часов 3 минуты и 20 секунд):
=А1/86400
Добавление часов, минут или секунд к заданному
времени
Функция ВРЕМЯ также используется для добавления часов, минут или секунд ко вре­
мени, содержащемуся в определенной ячейке. Например, если ячейка А1 содержит вре­
мя, следующая формула позволяет добавляет к нему 2 часа и 30 минут и отображает по­
лученный результат:
=А1+ВРЕМЯ (2 ; 3 0 ; 0)
Эта же функция используется для заполнения определенного диапазона ячеек возрас­
тающими значениями времени. На рис. 6.9 показан рабочий лист, в котором диапазон
ячеек А1 .*А14 содержит значения времени, каждое из которых последовательно увели­
чивается на 10 минут. Только в одну из этих ячеек (А1) значение времени вводится
вручную. В остальные ячейки просто копируется формула, введенная в ячейку А2.
=А1+ВРЕМЯ ( 0 ; 10 ; 0)
186
Часть II. Использование функций в формулах
Совет
Для заполнения значениями времени диапазона ячеек можно также исполь­
зовать функцию автозаполнения. К примеру, чтобы создать последователь­
ность значений времени с приращением в 10 минут, введите в ячейку А1
значение 8 : 00, а в ячейку А2 — 8 : 1 0 . Выделите обе ячейки и перетащите
правой кнопкой мыши маркер автозаполнения (в нижнем правом углу ячей­
ки А2) ВНИЗ ПО СТОЛбцу.
Работа с часовыми поясами
Представьте, что вам необходимо использовать рабочий лист, содержащий дату и
время по Гринвичу, которое иногда называют универсальным временем. Как перейти от
этого времени ко времени текущего часового пояса? Для того чтобы дата и время соот­
ветствовали определенному часовому поясу, необходимо, в первую очередь, установить
разницу между этими поясами. Например, разница между временем по Гринвичу (GMT)
и среднеамериканским временем (CST) составляет -6 часов.
В данном случае функцию ВРЕМЯ с отрицательным аргументом использовать нельзя,
поэтому задача требует несколько иного решения. Один час эквивалентен 1/24 суток. Та­
ким образом, разницу во времени можно разделить на 24, а затем полученный результат
добавить ко времени исходного часового пояса.
На рис. 6.10 приведен пример рабочего листа, в котором дата и время по Гринвичу
приводятся в соответствие текущему часовому поясу. Ячейка В1 содержит разницу в ча­
сах между поясами — в данном случае -5 часов для Стандартного восточного времени
США (EST). В ячейке В 4 отображается приведенная ниже формула, которая скопирова­
на вниз по столбцу.
= А 4 + ($ В $ 1 / 2 4 )
Рис. 6.9. Для заполнения ячеек несколькими временными значениями, последовательно возрастаю­
щими на 10 минут, использовалась
всего одна формула
Рис. 6.10. На этом рабочем листе дата и время переводятся
из одного часового пояса в другой
Данная формула весьма эффективна, поскольку добавляет х часов к дате и времени,
содержащимся в столбце А. Если ячейка В1 содержит отрицательное значение часа, это
значение вычитается из даты и времени, отображаемых в столбце А. Заметьте, что в не­
которых случаях это действие также изменяет и дату.
Глава 6. Дата и время
187
Компакт-диск
Файл этого примера на компакт-диске называется 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 ) .
Округление значений времени
Иногда может потребоваться округлить время до определенного значения. Например,
округлить записи в отчете об использовании времени до ближайшего значения 15 минут.
В этом разделе мы обсудим несколько возможных решений задачи округления времен­
ных значений.
Следующая формула округляет время, содержащееся в ячейке А1, до ближайшей минуты:
=ОКРУГЛ(А1*1440;0)/ 1 4 4 0
Эта формула работает следующим образом: заданное время умножается на 144 0 —
в результате вычисляется общее количество минут. После этого полученный результат
обрабатывается с помощью функции ОКРУГЛ и делится на 144 0. Например, если ячейка
А1 содержит значение 11: 52 : 34, формула возвращает 1 1 : 5 3 : 0 0 .
Представленная ниже формула несколько напоминает предыдущую, за исключением
того, что она округляет время в ячейке А1 до ближайшего часа.
=0КРУГЛ ( А1 *2 4 ; 0 ) / 2 4
Если ячейка А1 содержит значение 5 : 2 1 : 3 1 , данная формула возвращает 5 : 0 0 : 0 0 .
Формула, приведенная ниже, округляет время, отображаемое в ячейке А1, до бли­
жайших 15 минут.
=0КРУГЛ(А1*24/0 , 2 5 ; 0 ) * ( 0 , 2 5 / 2 4 )
В этой формуле значение 0 , 2 5 означает четверть часа, т.е. 15 минут. Аналогично,
чтобы округлить время до ближайших 30 минут, просто измените 0 , 2 5 на 0 , 5 , как это
сделано в следующей формуле:
=0КРУГЛ ( А 1 * 2 4 / 0 , 5 ; 0 ) * ( 0 , 5 / 2 4 )
Работа со значениями, не имеющими отношения
ко времени суток
Вы когда-нибудь сталкивались с задачей составления списка результатов гоночных
соревнований или, например, подсчета времени ежедневной пробежки? Эти временные
значения фактически никак не связаны с определенным временем дня. Они, скорее, ха­
рактеризуются длительностью конкретного события в часах, минутах, секундах. Итак,
предположим, что время, отведенное на тест, составляет 35 минут 45 секунд. Это значе­
ние может быть введено в ячейку следующим образом:
00 : 35: 45
Excel воспринимает эту запись достаточно хорошо и интерпретирует ее как 12:35:45
AM. Остается только установить для этой ячейки подходящий формат времени. Имейте в
виду, что при вводе времени, которое не содержит часа, для значения часа необходимо
указать хотя бы один нуль. В противном случае, если данные часа будут опущены, Excel
интерпретирует эту запись как 35 часов 45 минут.
На рис. 6.11 показан пример рабочего листа, в котором отслеживаются тренировки
спортсмена. Столбец А содержит обыкновенные даты. Столбец В — расстояние в милях.
Столбец С отображает время, которое потребовалось на преодоление каждой дистанции.
188
Часть II. Использование функций в формулах
Формулы, содержащиеся в столбце D, вычисляют скорость спортсмена в милях за час.
Например, формула в ячейке D2 выглядит следующим образом:
=В2/(С2*24)
Рис. 6.11. На этом рабочем листе приведены временные значения,
не связанные с определенным временем суток
В столбце Е содержатся формулы, которые вычисляют скорость движения спортсме­
на в минутах за милю. Например, в ячейке Е2 расположена следующая формула:
= ( С 2 * 6 0 * 2 4 ) /В2
Ячейки в столбце F отображают формулы, которые вычисляют итоги использованно­
го времени (данные столбца С). Во всех ячейках столбца G установлен приведенный ни­
же числовой формат, который позволяет отображать время, превышающее 24 часа.
[ ч ч ] :мм: с с
Компакт-диск
Файл этого примера на компакт-диске называется j o g g i n g
( Chapter06_RUS . x l s x ) .
lo g .x lsx
Глава
Способы суммирования
и подсчета данных
В этой главе...
♦ Подсчет и суммирование ячеек электронной таблицы
♦ Подсчет и суммирование записей в базах данных и сводных таблицах
♦ Основные формулы подсчета
♦ Расширенные формулы подсчета ячеек
♦ Формулы суммирования
♦ Условное суммирование по одному критерию
♦ Условные суммы на основе нескольких критериев
Часто при создании электронных таблиц необходимо подсчитать и просуммировать
значения или другие элементы рабочего листа. Поэтому пользователям необходимо знать
специальные формулы подсчета и суммирования данных. В этой главе вы найдете решение
многих задач, с которыми сталкивается практически каждый пользователь Excel.
Подсчет и суммирование ячеек
электронной таблицы
Формулы подсчета, как правило, возвращают количество ячеек заданного диапазона,
соответствующих определенному условию. Суммирующие формулы возвращают сумму
значений в ячейках заданного диапазона, также отвечающих определенному условию.
В свою очередь, диапазон ячеек, которые должны быть подсчитаны или просуммирова­
ны, содержит либо данные, либо пустые ячейки.
В табл. 7.1 перечислены функции, которые используются при создании формул сум­
мирования и подсчета. Если ни одна из представленных функций не подходит для реше­
ния конкретной задачи, можно использовать формулы массива, которые не рассматри­
ваются в этой главе.
190
©
Часть II. Использование функций в формулах
Перекрестная ссылка
Более подробно о формулах массива, используемых для подсчета и сумми­
рования ячеек, рассказано в части IV. Операции подсчета и суммирования
данных в списках описаны в главе 9.
Примечание
Если данные представлены в виде таблицы, многие операции подсчета
и суммирования можно выполнять с помощью функции автофильтрации. По­
сле установки критерия автофильтрации таблица отображает только строки,
удовлетворяющие критерию. Остальные строки не удаляются, а скрываются.
Несложно создать формулу, выводящую результаты подсчета в итоговой
строке таблицы. Использование таблиц рассматривается в главе 9.
Таблица 7.1. Функции суммирования и подсчета в Excel
Функция
Описание функции
Возвращает количество ячеек в диапазоне, содержащих числовые
значения
Возвращает количество непустых ячеек в диапазоне
СЧЁТЗ
СЧИТАТЬПУСТОТЫ Возвращает количество пустых ячеек в диапазоне
Подсчитывает количество непустых ячеек в диапазоне, удовлетво­
СЧЁТЕСЛИ
ряющих заданному условию
Подсчитывает количество непустых ячеек, удовлетворяющих задан­
СЧЁТЕСЛИМН
ному набору условий
Подсчитывает количество числовых ячеек базы данных рабочего лис­
БСЧЁТ
та, удовлетворяющих заданному критерию
Подсчитывает количество непустых ячеек базы данных рабочего лис­
БСЧЁТА
та, удовлетворяющих заданному критерию
Возвращает сумму квадратов отклонений точек данных от среднего по
КВАДРОТКЛ
выборке; используется преимущественно в статистических формулах
Суммирует числа в столбце базы данных, удовлетворяющие заданно­
БДСУММ
му условию
Возвращает распределение частот в виде вертикального массива; ис­
ЧАСТОТА
пользуется только в формулах массивов со множеством ячеек
ПРОМЕЖУТОЧНЫЕ. При использовании значений от 2 до 3 в качестве первого аргумента
ИТОГИ
возвращает количество ячеек, содержащихся в промежуточных ито­
гах списка или базы данных; при использовании в качестве первого
аргумента значения 9 возвращает сумму значений ячеек промежу­
точных итогов
Возвращает сумму аргументов
СУММ
Суммирует ячейки, удовлетворяющие заданному условию
СУММЕСЛИ
Суммирует ячейки, удовлетворяющие заданному набору условий
СУММЕСЛИМН
Возвращает сумму произведений соответствующих элементов массивов
СУММПРОИЗВ
Возвращает сумму квадратов аргументов. Аргументами могут быть
СУММКВ
числа, массивы, имена или ссылки на ячейки, содержащие числа.
Применяется преимущественно в статистических формулах
Возвращает сумму сумм квадратов соответствующих элементов
СУММСУММКВ
двух массивов; используется преимущественно в статистических
формулах
СЧЁТ
Глава 7. Способы суммирования и подсчета данных
191
Окончание табл. 7.1
Функция
Описание функции
сум м квразы
Возвращает сумму квадратов разностей соответствующих значений в двух
массивах; применяется преимущественно в статистических формулах
сум м разнкв
Возвращает сумму разностей квадратов соответствующих значений в
двух массивах; используется преимущественно в статистических
формулах
Быстрый подсчет и суммирование
Начиная с Excel 97 компания Microsoft включает в приложение средство под назва­
нием Автосумма, которое отображает в строке состояния информацию о выделенном
диапазоне. Как правило, отображаются среднее, сумма и количество непустых ячеек
выделенного диапазона. Можно задать, что должно быть показано в строке состояния.
Для этого щелкните правой кнопкой мыши на панели автосуммы в строке состояния
и выберите в контекстном меню нужные параметры.
При выборе элемента Количество строка состояния будет отображать количество
непустых ячеек в выделенном диапазоне. При выборе элемента Количество чисел ото­
бражается количество ячеек в числовом формате в выделенном диапазоне.
192
Часть II. Использование функций в формулах
Подсчет и суммирование записей в базах
данных и сводных таблицах
Excel предоставляет в ваше распоряжение специальные функции подсчета и сумми­
рования значений, содержащихся в базах данных и сводных таблицах. Функции БСЧЁТ
и БДСУММ — это функции базы данных, которые работают с электронной таблицей и
требуют указания определенного диапазона ячеек, удовлетворяющего условиям сумми­
рования и подсчета.
Перекрестная ссылка
Информация о функциях базы данных, а также об использовании формул
подсчета и суммирования базы данных электронной таблицы приведена
в главе 9.
Создание сводных таблиц— великолепный способ получения количества и суммы
элементов без использования формул. Как и функция базы данных, сводная таблица ис­
пользуется в том случае, если данные представлены в форме базы данных.
Перекрестная ссылка
Для получения дополнительной информации о сводных таблицах обрати­
тесь к главе 18.
Основные формулы подсчета
В этом разделе рассмотрены основные формулы подсчета, которые предоставляет
в ваше распоряжение Excel. Все описанные ниже формулы достаточно просты в использо­
вании. Они демонстрируют принципы использования функций, которые подсчитывают ко­
личество ячеек заданного диапазона, удовлетворяющих определенным условиям. На
рис. 7.1 показан рабочий лист, в котором для суммирования содержимого 20-ти ячеек диа­
пазона А 1 : В10 под названием Данные используются специальные формулы (столбец Е).
Компакт-диск
Рабочую книгу, показанную на рис. 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 ) .
Несколько слов о примерах, приведенных в этой главе
В большинстве примеров главы в качестве аргументов функций используются име­
нованные диапазоны. Если захотите адаптировать эти формулы к своим задачам, заме­
ните имена и адреса диапазонов.
Некоторые примеры, приведенные в главе, содержат формулы массива (см. гла­
ву 14). Они относятся к специальному типу формул; при отображении в строке формул
они заключаются в фигурные скобки. Например:
{= Д а н н ы е * 2 }
Чтобы сообщить Excel, что введенная формула представляет собой формулу масси­
ва, после ее ввода вместо <Enter> нажмите комбинацию клавиш <Ctrl+Shift+Enter>. Фи­
гурные скобки вводить не нужно — Excel сделает это за вас.
Глава 7. Способы суммирования и подсчета данных
193
Рис. 7.1. Формулы в столбце е могут быть использованы для проведения
различных расчетов данных в диапазоне А 1 : в ю
Подсчет общего количества ячеек
Чтобы подсчитать общее количество ячеек в диапазоне, используйте формулу, приве­
денную ниже. Она возвращает количество ячеек в диапазоне Данные, умножая количе­
ство строк (возвращенное функцией ЧСТРОК) на количество столбцов (возвращенное
функцией ЧИСЛСТОЛБ).
= Ч С Т Р О К (Д а н н ы е )* Ч И С Л С Т О Л Б (Д а н н ы е )
Подсчет пустых ячеек
Следующая формула возвращает количество пустых ячеек в диапазоне Данные:
=СЧИ ТАТЬПУС ТО ТЫ ( Д а н н ы е )
Функция СЧИТАТЬПУСТОТЫ подсчитывает ячейки, которые содержат формулу, возвра­
щающую пустую строку. Например, формула, приведенная ниже, возвращает пустую строку,
если ячейка А1 содержит значение, большее 5. Если ячейка А1 соответствует этому условию,
функция СЧИТАТЬПУСТОТЫ рассматривает ячейку с данной формулой как пустую.
=ЕСЛИ (А1 >5 ; " " ; А 1 )
Примечание
Имейте в виду, что функция с ч и т а т ь п у с т о т ы не учитывает ячейки, содер­
жащие нулевое значение, даже если снять флажок Показывать нули в ячей­
ках, которые содержат нулевые значения вкладки Дополнительно диалогово­
го окна параметров программы.
Функция СЧИТАТЬПУСТОТЫ может использовать в качестве аргумента целую строку
или столбец. Например, приведенная ниже формула возвращает количество пустых яче­
ек в столбце А.
= С Ч И ТА ТЬ П УС ТО ТЫ (А : А )
Следующая формула возвращает количество пустых ячеек в пределах всего рабочего
листа Л и с т 1 . Данная формула должна быть введена в другой лист, в противном случае
будет создана циклическая ссылка.
^ С Ч И ТА ТЬ П У С ТО ТЫ (Л и с т!!1 :1 0 4 8 5 7 6 )
194
Часть II. Использование функций в формулах
Подсчет непустых ячеек
Представленная далее формула использует функцию СЧЁТЗ и возвращает количество
непустых ячеек в диапазоне Данны е.
=СЧЁТЗ(Данные)
Функция СЧЁТЗ подсчитывает ячейки, содержащие числовые значения, дату, время,
текст и логические значения ИСТИНА или ЛОЖЬ.
Примечание
Если ячейка содержит формулу, возвращающую пустую строку, она включа­
ется в итог, возвращенный функцией с ч ё т з , даже несмотря на то, что внеш­
не выглядит пустой.
Подсчет ячеек, содержащих числовые значения
Следующая формула использует функцию СЧЁТ и позволяет подсчитать количество
ячеек диапазона Д анн ы е, содержащих только числовые значения.
=СЧЁТ(Данные)
Ячейки, содержащие значения даты и времени, также рассматриваются как числовые
значения. Ячейки, отображающие логические значения (ИСТИНА или ЛОЖЬ), числовыми
не считаются.
/
Подсчет ячеек, отображающих нетекстовые значения
В приведенной ниже формуле массива используется функция Е НЕ ТЕ КС Т. Она воз­
вращает значение ИСТИНА в том случае, если ее аргумент ссылается на ячейку, не со­
держащую текстовое значение (включая также пустые ячейки). Формула возвращает ко­
личество ячеек, не содержащих текст (включая пустые ячейки).
{=СУММ(ЕСЛИ(ЕНЕТЕКСТ(Данные); 1 ) ) }
Подсчет ячеек, содержащих текстовые значения
Чтобы подсчитать в диапазоне Д ан н ы е количество ячеек, содержащих тест, восполь­
зуйтесь приведенной ниже формулой массива.
{=СУММ(ЕСЛИ(ЕТЕКСТ(Данные);1))}
Подсчет логических значений
Следующая формула массива возвращает количество логических значений (ИСТИНА
или ЛОЖЬ) в диапазоне Данные:
{ =СУММ(ЕСЛИ(ЕЛОГИЧ(Данные);1)) }
Подсчет ошибок в диапазоне
Приложение Excel предлагает три функции, которые позволяют определить, содер­
жит ли ячейка ошибки.
•
Функция ЕОШИБКА возвращает значение ИСТИНА в том случае, если ячейка содержит
любое значение ошибки (#Н/Д, #ССЫЛКА!, #ЗНАЧ !, #Д Е Л /0 !, #ИМЯ?, #НУЛЬ !).
Глава 7. Способы суммирования и подсчета данных
195
Функция ЕОШ возвращает значение ИСТИНА, если ячейка содержит любое значе­
ние ошибки, за исключением # Н /Д .
Функция ЕНД возвращает значение ИСТИНА, если значение равно # Н /Д .
Примечание
Обратите внимание: ошибка #н/д (нет данных) обрабатывается не так, как
другие. В большинстве случаев это вообще не ошибка. Часто сообщение
#н/д используется в качестве правильного заполнителя ячейки при отсутст­
вии данных. Значение #н/д можно ввести непосредственно или с помощью
функции нд.
Перечисленные выше функции применяются в формулах массива для подсчета зна­
чений ошибки в определенном диапазоне. Например, следующая формула массива воз­
вращает общее количество ячеек, содержащих значения ошибки, в диапазоне Данные:
(=СУММ(ЕСЛИ(ЕОШИБКА(Данные);1)) }
При необходимости вместо функции ЕОШИБКА можно использовать функции ЕОШ и ЕНД.
Чтобы подсчитать количество ошибок определенного типа, воспользуйтесь функцией
СЧЁТЕСЛИ. Например, следующая формула возвращает количество ячеек с типом ошиб­
ки # Д Е Л / 0 !, содержащихся в диапазоне Данные:
=СЧЁТЕСЛИ(Данные;"#ДЕЛ/0!")
Расширенные формулы подсчета ячеек
В большинстве примеров, представленных в предыдущем разделе, используются
функции и формулы, которые подсчитывают количество ячеек, удовлетворяющих опре­
деленным условиям. В этом разделе рассмотрены более сложные примеры подсчета яче­
ек рабочего листа с применением дополнительных формул, включающих различные ви­
ды условий.
Подсчет ячеек с помощью функции СЧЁТЕСЛИ
Функцию СЧЁТЕСЛИ чаще всего используют в формулах, ограниченных одним усло­
вием. Функция СЧЁТЕСЛИ принимает два аргумента.
•
Д и а п а зо н . Содержит значения, определяющие, включать ли конкретную ячейку
в расчет.
•
Л о г и ч е с к о е _ у с л о в и е . Определяет, включать ли конкретную ячейку в расчет.
В табл. 7.2 представлены некоторые примеры использования функции СЧЁТЕСЛИ.
Приведенные формулы обращаются к диапазону Д анн ы е. С помощью условия можно
добиться большой гибкости возвращаемых данных. Обратите внимание, что аргумент
Л о г и ч е с к о е _ у с л о в и е может представлять собой любой тип данных: константы, вы­
ражения, функции, ссылки на ячейку и даже групповые символы (* и ?).
Подсчет ячеек, удовлетворяющих множеству условий
Во многих случаях формула должна учитывать только те ячейки, которые удовлетво­
ряют двум или более условиям. Выбор условий основывается на ячейках, которые уже
подсчитаны, или на строго определенном диапазоне ячеек.
196
Часть II. Использование функций в формулах
Таблица 7 . 2 . Примеры использования функции СЧЁТЕСЛИ
= с ч ё т е с л и (Данны е ; 12)
Возвращает количество ячеек, содержащих значе­
ние 12
= с ч ё т е с л и (Данные ;" < 0 ")
Возвращает количество ячеек, содержащих отрица­
тельное значение
= с ч ё т е с л и (Данные; " < > о ")
Возвращает количество ячеек, значение которых не
равно о
=с ч ё т е с л и ( Д а н н ы е > 5 " )
Возвращает количество ячеек, значение которых
больше 5
= с ч ё т е с л и (Данные ;А 1 )
Возвращает количество ячеек, значение которых
равно содержимому ячейки a i
= с ч ё т е с л и (Данные; " > " & a i )
Возвращает количество ячеек, значение которых
больше, чем значение ячейки a i
= с ч ё т е с л и ( Данные; 11* " )
Возвращает количество ячеек, содержащих текст
= с ч ё т е с л и ( Д а н н ы е ; "???")
Возвращает количество ячеек, содержащих ровно
три символа
= с ч ё т е с л и ( да нн ы е / "бю дж е т")
Возвращает количество ячеек, содержащих слово
бюджет (без учета регистра)
= с ч ё т е с л и (Д анны е ; "*бю дж ет*п ) Возвращает количество ячеек, содержащих слово
бюджет в составе любого текста
= с ч ё т е с л и (Данные; " А * " )
Возвращает количество ячеек, отображающих
текст, который начинается с символа а (без учета
регистра)
= с ч ё т е с л и (Данные/с е г о д н я ())
Возвращает количество ячеек, содержащих теку­
щую дату
= с ч ё т е с л и (Данные /" >
Возвращает количество ячеек, значение которых
" &СРЗНАЧ (Данные ))
больше среднего
= с ч ё т е с л и (Данные/ " > " & с р з н а ч ( Возвращает количество ячеек, значение которых
Данные) +СТАНДОТКЛОН (Данные) * превышает утроенное стандартное отклонение от
3)
среднего
= с ч ё т е с л и (Да н н ы е / з) + с ч ё т е с л и Возвращает количество ячеек, содержащих значе( Данные / - 3)
Н И в З И Л И -3
= с ч ё т е с л и (Данные/ и с т и н а )
Возвращает количество ячеек, содержащих значе­
ние ИСТИНА
Возвращает количество ячеек, отображающих логическое значение ( и с т и н а и л и л о ж ь )
Возвращает количество ячеек, содержащих значе­
ние ошибки # н / д
= с ч ё т е с л и (Данные /и с т и н а ) +
(Данные / Ложь)
счётесли
= с ч ё т е с л и (Да н н ы е / " # н / Д " )
Все примеры этого раздела приведены для простого рабочего листа, показанного на
рис. 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. Способы суммирования и подсчета данных
t
197
Новинка
Некоторые примеры этого раздела используют функцию с ч ё т е с л и м н , вве­
денную в версии 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. Использование функций в формулах
Возможно, вид данной формулы вводит в заблуждение. Несмотря на то что ее цель
состоит в подсчете значений, которые меньше или равны 2 0 0 , но больше ста, в формуле
написано " > 2 0 0 " . Объяснение простое: знак “минус” означает, что эти ячейки вычита­
ются из общего количества. Существует еще один метод, в котором используется фор­
мула массива (этот метод проще предыдущего):
{=СУММ( (Объем>ЮО) * (Объем< = 2 00) ) }
Примечание
При вводе ф ормулы м ассива не забы вайте нажимать <Ctrl+Shift+Enter>
вм есто <Enter>; также не вводите вручную ф игурны е скобки — они будут
вставлены автом атически.
Условия подсчета можно задать не только для суммируемых, но и для других ячеек.
Например, можно подсчитать количество продаж в ячейках, соответствующих следую­
щим условиям:
•
месяц — январь
и
•
представитель — Данилкин
и
•
сумма больше 1000.
Следующая формула возвращает количество ячеек массива, соответствующих всем
трем условиям:
=СЧЁТЕСЛИМН(Месяц;"Январь"; П р е д с т а в и т е л ь ; "Данилкин";
О б ъ ем ;">1000")
В качестве альтернативы можно использовать следующую формулу массива:
{=СУММ( (Месяц="Январь" ) * (П редстави тель="Д ан илк и н")*
(С ум м а> 100 0)) }
Использование условия или
Чтобы подсчитать количество ячеек с помощью условия ИЛИ, иногда задействуется
несколько функций СЧЁТЕСЛИ. Например, следующая формула подсчитывает количест­
во значений 1, 3 и 5 в диапазоне Данные:
=СЧЁТЕСЛИ(Данные; 1 ) +СЧЁТЕСЛИ(Данные; 3 ) +СЧЁТЕСЛИ(Данные;5)
Функция СЧЁТЕСЛИ также используется в формуле массива. Например, формула
массива, приведенная ниже, возвращает тот же результат, что и предыдущая формула.
{=СУММ(СЧЁТЕСЛИ(Данные;{ 1 ; 3 ; 5 } ) ) }
Если условие ИЛИ применяется не к подсчитываемым ячейкам, а к ячейкам другого диапа­
зона, функция СЧЁТЕСЛИ работать не будет. Вернемся снова к рис. 7.2 и предположим, что
необходимо подсчитать количество продаж, соответствующих следующим условиям:
•
месяц — январь
или
•
представитель — Данилкин
или
•
объем — более 1000.
Глава 7. Способы суммирования и подсчета данных
199
Следующая формула массива возвращает правильный результат подсчета:
{= С У М М (Е С Л И ( (М е с я ц = " Я н в а р ь " ) + ( П р е д с т а в и т е л е " Д а н и л к и н " )+
(0бъем>1000);1))}
Одновременное использование условий
и и или
При подсчете ячеек условия И и ИЛИ можно комбинировать. Предположим, что тре­
буется подсчитать продажи, удовлетворяющие следующим условиям:
•
месяц — январь
и
•
представитель Данилкин
или
•
представитель Кукина.
Следующая формула массива возвращает объем продаж, соответствующих этим ус­
ловиям:
= С Ч Ё Т Е С Л И М Н (Ме сяц; " Я н в а р ь " ; П р е д с т а в и т е л ь ; " Д а н и л к и н " ) +
С Ч Ё Т Е С Л И М Н ( М е с я ц ; " Я н в а р ь " ; П р е д с т а в и т е л ь ; "К у к и н а " )
Так как в данном случае в аргументах функции приходится повторять операцию “И”,
использование СЧЁТЕСЛИМН может привести к созданию длинных формул с множест­
вом критериев. Когда список критериев велик, удобнее использовать формулы массивов.
К примеру, следующая формула массива вернет тот же результат, что и предыдущая:
{= С У М М ( ( М е с я ц = " Я н в а р ь " ) * Е С Л И ( ( П р е д с т а в и т е л ь = " Д а н и л к и н " ) +
( П р е д с т а в и т е л ь = "К у к и н а " ) ; 1 ) ) }
Подсчет наиболее часто встречающихся записей
Функция МОДА возвращает значение, наиболее часто встречающееся в диапазоне яче­
ек. На рис. 7.3 показан рабочий лист, содержащий диапазон ячеек А1:А10 (с именем
Диапазон1). Формула, приведенная ниже, возвращает значение 10, поскольку это зна­
чение в данном диапазоне ячеек встречается наиболее часто.
= М 0 Д А (Д и а п а з о н 1 )
Эта формула возвращает значение #Н/Д, если диапазон, указанный в ее аргументе, не
содержит дублирующихся значений.
Рис. 7.3. Функция м о д а возвращает значе­
ние, встречающееся наиболее часто в задан­
ном диапазоне ячеек
200
Часть II. Использование функций в формулах
Чтобы подсчитать количество наиболее часто встречающихся в заданном диапазоне
значений (иными словами, частоту моды), воспользуйтесь следующей формулой:
=СЧЁТЕСЛИ(Д и а п а з о н 1 ; МОДА(Д и а п а з о н 1 ))
Представленная формула возвращает значение 3, поскольку значение моды (10)
встречается в диапазоне Д и а п а зо н 1 три раза.
Имейте в виду, что функция МОДА работает только с числовыми значениями. В том
случае, если заданная ячейка содержит текст, функция ее игнорирует. Для того чтобы
найти текстовую строку, наиболее часто встречающуюся в заданном диапазоне, исполь­
зуйте формулу массива.
Чтобы подсчитать количество элементов, наиболее часто встречающихся в заданном
диапазоне Данные (речь идет и о тексте, и о числовых значениях), используйте следую­
щую формулу массива:
{ =МАКС(СЧЁТЕСЛИ(Данные; Данные) ) }
Представленная ниже формула массива работает подобно функции МОДА, за исклю­
чением того, что в данном случае могут использоваться как числовые, так и текстовые
значения.
{ =ИНДЕКС(Данные; ПОИСКПОЗ(МАКС(СЧЁТЕСЛИ(Данные; Д ан н ы е)) ;
СЧЁТЕСЛИ(Данные/Данные);0)) }
Предупреждение
Если существует несколько значений, встречающихся с одинаковой макси­
мальной частотой, данная формула вернет первое из них.
Подсчет количества вхождений заданного текста
В этом разделе продемонстрированы различные способы подсчета количества экзем­
пляров определенной строки символов или текстовой строки в заданном диапазоне яче­
ек. Все примеры данного раздела приведены для рабочего листа, показанного на рис. 7.4,
который в диапазоне ячеек A I : А10 (диапазон с именем Д и а п а зо н 2 ) содержит различ­
ную текстовую информацию. Ячейка В1 отображает искомую фразу (диапазон Т ек ст).
Рис. 7.4. На этом рабочем листе продемонстрированы различные способы под­
счета символов в диапазоне
Компакт-диск
Рабочую книгу, показанную на рис. 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
Содержимое всей ячейки
Чтобы подсчитать количество ячеек, которые содержат только значение, введенное
в ячейку Т е к с т (и не содержат никаких других символов), воспользуйтесь функцией
СЧЁТЕСЛИ. Для этого создайте следующую формулу:
=СЧЁТЕСЛИ(Д и а п а з о н 2 ; Т е к с т )
Например, если ячейка Т е к с т содержит текстовую строку "Альфа", формула возвра­
щает значение 2, поскольку этот текст находится в двух ячейках диапазона Д и а п а з о н 2 .
Обратите внимание, что данная формула не учитывает регистр символов и воспринимает
содержимое ячеек А2 и А 10 как идентичные текстовые строки. В то же время содержимое
ячейки А8 данная формула игнорирует.
Следующая формула массива подобна предыдущей, за исключением того, что учиты­
вается регистр символов:
{=СУММ(ЕСЛИ(СОВПАД(Диапазон2;Текст);1))}
Часть содержимого ячейки
Чтобы подсчитать количество ячеек, которые содержат строку, включающую в себя
строку ячейки Т е к с т в качестве подстроки, используйте следующую формулу:
=СЧЁТЕСЛИ(Д и а п а з о н 2 ; " * " &Текст&"*")
Например, если в ячейке Т е к с т находится текст А льф а, данная формула возвращает
значение 3, поскольку в диапазоне Д и а п а з о н 2 текст А льф а присутствует в трех ячей­
ках: А2, А8 и А 1 0 . Обратите внимание, что регистр в данном случае не учитывается.
Альтернативная формула массива, использующая функцию НАЙТИ, немного длиннее:
{=СУММ(ЕСЛИ(НЕ(ЕОШИБКА(ПОИСК(Т е к с т ; Д и а п а з о н 2 ) ) ) ; 1 ) )}
Функция ПОИСК возвращает ошибку, если искомый текст не найден. В приведенном
примере подсчитываются все ячейки, в которых не была сгенерирована ошибка. Так как
функция ПОИСК не чувствительна к регистру символов, то же можно сказать и о формуле.
Если нужно подсчитать вхождения с учетом регистра символов, можете использовать
следующую формулу массива:
{=СУММ(ЕСЛИ(ДЛСТР(Диапазон2) -ДЛСТР(ПОДСТАВИТЬ(Диапазон2;
Т е к с т ; "") ) > 0 ;1 ) ) }
Если ячейка Т е к с т содержит слово "Альфа", предыдущая формула возвращает значе­
ние 2, поскольку данная текстовая строка встречается в двух ячейках диапазона (А2 и А8).
Подобно функции ПОИСК, функция НАЙТИ возвращает ошибку, если искомый текст
не найден. Таким образом, альтернативную версию предыдущей формулы можно запи­
сать в следующем виде:
{=СУММ(ЕСЛИ(НЕ(ЕОШИБКА(НАЙТИ(Текст;Диапазон2)) ) ; 1 ) )}
В отличие от ПОИСК, функция НАЙТИ различает регистр символов.
Общее количество экземпляров строки в заданном диапазоне
Чтобы подсчитать общее количество экземпляров строки в заданном диапазоне ячеек,
используйте следующую формулу массива:
{=СУММ(ДЛСТР(Диапазон2)) -СУММ(ДЛСТР(ПОДСТАВИТЬ(Диапазон2;
Т ек ст; " " ) ) ) ) /ДЛСТР(Т е к с т ) }
Если ячейка Т е к с т содержит символ Б, данная формула возвращает значение 7 —
этот символ есть в семи ячейках заданного диапазона. Имейте в виду, что эта формула
202
Часть II. Использование функций в формулах
учитывает регистр символа. Чтобы игнорировать регистр, используйте следующую из­
мененную формулу массива:
{ = (СУММ(ДЛСТР(Диапазон2)) -СУММ(ДЛСТР(
ПОДСТАВИТЬ(ПР0ПИСН(Диапазон2);
ПРОПИСН(Текст); " " ) ) ) ) /Д Л С Т Р (Т ек с т )}
Подсчет количества уникальных значений
Следующая формула массива возвращает количество уникальных значений в диапа­
зоне И н т е р в а л :
{=СУММ(1/СЧЁТЕСЛИ(Интервал/Интервал)) }
Для полного понимания того, как работает эта формула, вам необходимо усвоить ос­
новные принципы работы формул массива, о которых речь пойдет в главе 14. На рис. 7.5
показан рабочий лист, содержащий два диапазона ячеек: диапазон А 1 : А12 ( И н т е р в а л )
и диапазон С 1 :С 1 2 , во все ячейки которого включена следующая формула массива:
(одна формула скопирована во все 12 ячеек диапазона):
{=СЧЁТЕСЛИ(Интервал/Интервал)}
Рис. 7.5. Использование формулы массива для подсчета уникальных
значений в диапазоне
Компакт-диск
Рабочую книгу, показанную на рис. 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
Суммирование значений диапазона D1 :D12 дает число одинаковых элементов, содержа­
щихся в массиве И н т ер в а л . По существу, формула, приведенная в начале этого раздела, соз­
дает массив значений в диапазоне ячеек D l : D12 и суммирует значения этого массива.
Однако эта формула имеет серьезное ограничение: в том случае, если диапазон со­
держит пустые ячейки, формула возвращает ошибку. Приведенная ниже формула масси­
ва решает эту проблему.
{=СУММ(ЕСЛИ(СЧЁТЕСЛИ(Интервал; И н т ер ва л ) = 0 ; " " ;
1/СЧЁТЕСЛИ(Интервал; И н т е р в а л ) ) ) }
Ф
Перекрестная ссылка
Создание формулы массива, возвращающей список одинаковых значений
в заданном диапазоне ячеек, описано в главе 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. Использование функций в формулах
Рис. 7.6. Создание интервалов для распределения частот для
диапазона ячеек a i :Е2 о
Чтобы создать график распределения частот, выберите диапазон ячеек, значения
в которых соответствуют интервалам. После чего введите следующую формулу массива:
{ =ЧАСТОТА(ДиапазонЗ; G 2 :G 11) ) }
Приведенная формула массива подсчитывает количество значений в диапазоне
Д и а п а зо н З , которые попадают в каждый интервал. Чтобы представить распределение
частот в виде процентной зависимости, используйте следующую функцию:
{ =ЧАСТОТА(ДиапазонЗ; G 2 :G10 ) /С Ч Ё Т (Д и ап азон З) }
На рис. 7.7 показаны два варианта распределения частот: один в виде числовых зна­
чений, а другой — в процентах. Кроме того, на рис. 7.7 показана диаграмма (или гисто­
грамма), созданная на основе полученного распределения частот.
Рис. 7.7. Распределение частот, вычисленное с помощью функции частота
Глава 7. Способы суммирования и подсчета данных
205
Создание интервалов для распределения частот
Прежде чем приступить к созданию распределения частот в диапазоне значений,
нужно определить интервалы. Количество интервалов задает количество категорий
в распределении. В большинстве случаев используются интервалы одинаковой длины.
Чтобы создать 10 равномерно удаленных друг от друга уровней дискретизации для
значений диапазона данные, в диапазон, состоящий из 10 ячеек отдельного столбца,
введите следующую формулу массива.
{МИН(Данные)+ (СТРОКА(ДВССЫЛ( " 1 : 1 0 " ) ) *
(МАКС(Данные)-МИН(Данные)+ 1 ) / 1 0 ) - 1 }
Эта формула создает 10 интервалов на основе значений диапазона данные. Верх­
нее значение элемента всегда соответствует максимальному значению интервала.
Чтобы создать большее или меньшее количество интервалов, необходимо исполь­
зовать другое значение, отличное от 10, а саму формулу массива ввести в диапазон,
содержащий такое же количество ячеек. Например, чтобы создать пять интервалов,
введите следующую формулу массива в диапазон, состоящий из пяти расположенных
вертикально ячеек.
{МИН(Данные) + (СТРОКА(ДВССЫЛ ( " 1 : 5 й) ) *
(МАКС(Данные)-МИН(Данные)+ 1 ) / 5 ) - 1 }
Использование формул для создания таблицы распределения частот
На рис. 7.8 показан рабочий лист, который содержит экзаменационные оценки 50
студентов (столбец В — Оценки). Формулы в столбцах G и Н вычисляют распределение
оценок студентов. Минимальные и максимальные баллы для каждого интервала отобра­
жаются в столбцах D и Е. Например, экзаменационная оценка, находящаяся в интервале
между 80 и 89 (включительно), помещается в столбец В диаграммы.
Рис. 7.8. Распределение экзаменационных отметок
Часть II. Использование функций в формулах
206
Формула в ячейке G2, приведенная ниже, представляет собой формулу массива, кото­
рая подсчитывает количество баллов, относящихся к оценке А.
{=СУММ((Оценки>=Б2)* (Оценки<=Е2) ) }
Эта формула уже использовалась в предыдущем разделе настоящей главы. В данном
примере формула скопирована в четыре ячейки ниже ячейки G2.
Формулы в столбце Н вычисляют процентное соотношение оценок. Формула, содер­
жащаяся в ячейке Н2, скопирована в четыре ячейки, находящиеся ниже Н2.
=G2/CYMM($G$2:$G$6)
Использование надстройки “Пакет анализа” для создания таблицы
распределения частот
Если в Excel установлена надстройка “Пакет анализа”, то для создания таблицы распре­
деления частот можно использовать инструмент Гистограмма. Перед тем как начать рабо­
ту с этим инструментом, введите в диапазон необходимые значения предельных уровней
интервалов. После этого во вкладке Данные выберите команду Анализ данных. Откроет­
ся диалоговое окно Анализ данных. Выберите в списке элемент Гистограмма и щелкните
на ОК, после чего на экране откроется диалоговое окно, показанное на рис. 7.9.
Рис. 7.9. Диалоговое окно Гистограмма
надстройки “Пакет анализа”
В полях Входной интервал, Интервал карманов и Выходной интервал установите,
соответственно, диапазоны входных данных, уровней дискретизации и выходных данных,
а затем задайте дополнительные параметры распределения. На рис. 7.10 показана диаграм­
ма распределения частот, созданная с помощью диалогового окна Гистограмма.
Предупреждение
П К»
Учтите, что в данном случае распределение частот состоит из значений, а не
формул. Поэтому при внесении изменений во входные данные нужно по­
вторно открыть диалоговое окно Гистограмма, чтобы обновить отображае­
мые графические результаты.
Установлен ли пакет анализа?
Чтобы проверить, установлен ли в Excel пакет анализа, откройте вкладку Данные.
Если на ленте есть группа Анализ, а в ней — кнопка Анализ данных, значит, пакет анали­
за установлен, а если нет — его нужно установить. Для этого выполните следующие
действия.
Глава 7. Способы суммирования и подсчета данных
207
1. Откройте диалоговое окно Параметры Excel.
2. Выберите вкладку Надстройки.
3. В списке Неактивные надстройки должен быть пункт Пакет анализа.
4. Щелкните на кнопке Перейти. Откроется диалоговое окно Надстройки.
5. Установите флажок Пакет анализа.
6. Щелкните на кнопке ОК.
Рис. 7.10. Данное распределение частоты и диаграмма созданы с помощью диалого­
вого окна Гистограмма надстройки “Пакет анализа”
Применение сводной таблицы для создания гистограммы частот
Если данные представлены в табличном виде, гистограмму частот можно создать с по­
мощью сводной таблицы. На рис. 7.11 показаны данные успеваемости студентов, обоб­
щенные в сводной таблице. Полосы данных добавлены с помощью средств условного фор­
матирования.
Рис. 7.11. Использование полос данных сводной таблицы для отобра­
жения гистограммы
Часть II. Использование функций в формулах
208
Перекрестная ссылка
Сводные таблицы рассматриваются в главе 18, а создание полос гисто­
граммы с помощью условного форматирования — в главе 19.
Применение настраиваемых уровней дискретизации
для создания гистограмм
На рис. 7.12 показан рабочий лист, в котором в столбце В (диапазон Б а л л ы ) перечис­
лены оценки студентов (общее количество студентов — 67 человек). Столбцы D и Е со­
держат формулы, которые вычисляют верхние и нижние пределы интервалов на основе
данных ячейки Е 1 (диапазон Р а з м е р ы И н т е р в а л о в ) . Например, если ячейка Р а з м е р ы И н т е р в а л о в содержит значение 10 (рис. 7.12), то каждый следующий элемент будет
отстоять от предыдущего на 10 единиц (1-10, 11-20 и т.д.).
Рис. 7.12. Распределение оценок студентов представлено в виде гистограммы;
размеры интервалов определяются значением ячейки Е1
Компакт-диск
Рабочий лист, показанный на рис. 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
Формулы суммирования
В этом разделе представлены основные принципы суммирования содержимого ячеек, а
также рассмотрены примеры суммирования: как простейшие формулы суммирования, так
и сложные формулы массивов, которые вычисляют значения на основе ряда критериев.
Суммирование всех ячеек диапазона
Суммировать все ячейки диапазона несложно. Например, следующая формула воз­
вращает сумму всех значений диапазона Данные:
=СУММ(Данные)
Функция СУММ может принимать до 255 аргументов. Следующая формула возвраща­
ет сумму значений в пяти несмежных диапазонах:
=СУММ(А 1 : А9 ; Cl : С9 ; E l : Е9 ; G l : G9 ; 1 1 : 1 9)
В качестве аргументов функции СУММ можно использоваться строки или столбцы
электронной таблицы. Например, формула, приведенная ниже, возвращает сумму всех
значений в столбце А. Если данную формулу ввести в ячейку столбца А, это вызовет
ошибку циклической ссылки.
=СУММ (А: А)
Следующая формула возвращает сумму всех значений, содержащихся на рабочем
листе Л и ст1. Чтобы при ее создании избежать циклической зависимости, формула
должна использоваться в другом рабочем листе, отличном от Л и ст1.
=СУММ(Лист1! 1 : 1 0 4 8 5 7 6 )
Функция СУММ достаточно универсальна. В качестве ее аргументов можно использо­
вать числовые значения, ячейки, диапазоны, текстовые представления чисел (которые
интерпретируются как значения), логические значения и даже вложенные функции. На­
пример, рассмотрим следующую формулу:
=СУММ(В1; 5 ; " 6 " ;
/КОРЕНЬ( 4 ) ; { 1 ; 2 ; 3 } ; А 1 :А 5 ; ИСТИНА)
Она содержит типы аргументов, которые перечислены ниже в порядке их представления:
•
простая ссылка на одну ячейку;
•
значение, представленное константой;
•
строка, похожая на числовое значение;
•
аргумент отсутствует;
•
выражение, использующее другую функцию;
•
константа массива;
•
ссылка на диапазон значений;
•
логическое значение ИСТИНА.
Предупреждение
Несмотря на всю универсальность, функция сумм в отношении логических
значений (истин а и л и ложь) ведет себя достаточно противоречиво. Напри­
мер, логические значения, сохраненные в ячейках, всегда трактуются как
нуль, однако при использовании логического значения и ст и н а в качестве
аргумента функции сумм о н о трактуется как единица.
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 ) .
Суммирование заданного количества наибольших или
наименьших значений
В отдельных случаях может возникнуть необходимость суммирования определенного
количества максимальных значений заданного диапазона, например, десяти максималь­
ных значений. Один из способов решения этой проблемы — сортировка диапазона ячеек
в порядке убывания с последующим применением функции СУММ к первым п значениям
Глава 7. Способы суммирования и подсчета данных
211
в сортируемом диапазоне. Представленная далее формула массива выполняет эту задачу,
не требуя предварительной сортировки значений.
{=СУММ (НАИБОЛЬШИЙ (Данные ; { 1; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 10 } ) ) }
Эта формула суммирует 10 наибольших значений в диапазоне Данные. Для того что­
бы просуммировать 10 наименьших значений, вместо функции НАИБОЛЬШИЙ просто ис­
пользуйте функцию НАИМЕНЬШИЙ.
{=СУММ(НАИМЕНЬШИЙ(Данные; { 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 ; 8 ; 9 ; 1 0 } ) ) }
Обе эти формулы используют константу массива, представляющую собой аргумент
функций НАИБОЛЬШИЙ или НАИМЕНЬШИЙ. Если нужно обработать диапазон, намного
больший, чем запрашиваемое количество наибольших значений, воспользуйтесь формулой,
приведенной ниже (она возвращает сумму наибольших 30 значений диапазона Данные).
При необходимости значение 30 может быть заменено на любое другое значение.
{=СУММ(НАИБОЛЬШИЙ(Данные; СТРОКА(ДВССЫЛ( " 1 : 3 0 м) ) ) ) }
Перекрестная ссылка
О массивах речь пойдет в главе 14.
Условное суммирование по одному критерию
Достаточно часто в расчетах возникает необходимость использовать условную сумму.
Что она собой представляет? Это сумма, которая складывается из значений диапазона,
удовлетворяющих одному или нескольким критериям. В этом разделе рассмотрены при­
меры условного суммирования, удовлетворяющего только одному критерию.
Функция СУММЕСЛИ весьма часто применяется в суммирующих формулах, исполь­
зующих одно условие. Эта функция принимает три аргумента.
• Д и а п а з о н , который задает ячейки со значениями, претендующими на включение
в сумму.
•
У с л о в и е в форме числа, выражения или текста, которое определяет добавляемую
ячейку.
•
Д и а п а з о н _ с у м м и р о в а н и я — необязательный аргумент. Определяет начальный
диапазон ячеек, которые подлежат суммированию. Если этот аргумент опущен,
функция использует диапазон ячеек, указанный в первом аргументе.
Приведенные ниже примеры демонстрируют принцип применения функции СУММЕСЛИ. Все формулы используют данные рабочего листа, показанного на рис. 7.15
(столбец F содержит формулу, которая вычитает дату, указанную в столбце Е, из даты
в столбце D). Отрицательное значение в столбце F свидетельствует о том, что оплата
просрочена. В рабочем листе используется несколько диапазонов, названных в соответ­
ствии со значениями строки 1.
Компакт-диск
Примеры, приведенные в этом разделе, можно найти на прилагаемом ком­
пакт-диске в файле 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. Использование функций в формулах
Рис. 7.15. Отрицательное значение в столбце F свидетельствует
о том, что оплата просрочена
Суммирование только отрицательных значений
Следующая формула возвращает сумму отрицательных значений, содержащихся
в столбце F. Выражаясь другими словами, функция возвращает общее количество про­
сроченных дней оплаты всех счетов. В нашем случае формула возвращает значение -5 8 .
=СУММЕСЛИ( Р а з н и ц а ;"< 0")
Поскольку в данном случае третий аргумент опущен, второй аргумент функции
(" < 0 " ) относится к значениям диапазона Р а зн и ц а .
Примечание
Для того чтобы просуммировать отрицательные значения диапазона
Разница, можно также использовать следующую формулу массива:
{=СУММ(ЕСЛИ(РазницасО;Разница)) }
Вовсе не обязательно в функции СУММЕ СЛИ жестко программировать критерий. На­
пример, следующая формула использует ссылку на содержимое ячейки G2, в которую
введен критерий:
=СУММ( Р а з н и ц а ; G2)
Когда критерий в ячейке G2 изменяется, формула возвращает новый результат.
Суммирование значений на основе диапазона Разница
Представленная ниже формула возвращает сумму всех просроченных счетов оплаты
(из столбца С на рис. 7.15).
=СУММЕСЛИ( Р а з н и ц а ;"< 0 " ; Сумма)
Данная формула использует значения диапазона Р а з н и ц а для определения значений
диапазона Сумма, участвующих в формировании суммы просроченных платежей.
Примечание
Чтобы вычислить сумму значений диапазона Сумма, для которых соответст­
вующие значения диапазона Разница являются отрицательными, можно
также воспользоваться следующей формулой массива:
{ =СУММ(ЕСЛИ(Разница<0 ; Сумма)) }
Глава 7. Способы суммирования и подсчета данных
213
Суммирование значений на основе сравнения текста
Следующая формула возвращает общую сумму счетов для филиала в Калуге:
=СУММЕСЛИ(Филиал; " = Калуга"/Сумма)
Использование знака равенства не обязательно. Следующая формула возвращает
идентичный результат:
=СУММЕСЛИ(Филиал; " К а л у г а " ; Сумма)
Чтобы просуммировать общие суммы счетов всех филиалов, кроме расположенного
в Калуге, используйте следующую формулу:
=СУММЕСЛИ(Филиал;"< > К ал уга" ; Сумма)
Учитывайте, что сравнение текстовых строк в данном случае не чувствительно к ре­
гистру.
Суммирование значений на основе сравнения да т
Ниже представлена формула, возвращающая общую сумму счетов, оплата которых
должна быть выполнена после 1 мая 2010 года.
=СУММЕСЛИ(Срок_оплаты;" > = " &ДАТА(2 0 1 0 ; 5 ; 1 ) ; Сумма)
Обратите внимание, что второй аргумент функции СУММЕ СЛИ представляет собой
выражение, использующее функцию ДАТА, которая возвращает значение даты. Заклю­
ченный в кавычки условный оператор в комбинации с оператором конкатенации & фор­
мирует критерий с участием функции ДАТА.
Формула, приведенная ниже, возвращает общую сумму счетов, дата оплаты которых
приходится на будущий период времени (включая текущую дату).
=СУММЕСЛИ ( Д а т а _ п л а т е ж а ; ">="&СЕГОДНЯ() / Сумма)
Условные суммы на основе нескольких
критериев
Все примеры, рассмотренные в предыдущем разделе, касались случаев использова­
ния только одного условия сравнения данных. В этом разделе мы будем работать с фор­
мулами суммирования, использующими несколько условий. Так как функция СУММЕ СЛИ
не работает со множеством критериев, мы будем использовать формулы массивов,
а также функцию СУМЕСЛИМН. На рис. 7.$6 для напоминания снова показана используе­
мая в расчетах область данных рабочего листа (см. рис. 7.15).
Функция СУММЕСЛИМН может использоваться для суммирования диапазона ячеек на
основе множества критериев. Первым аргументом этой функции является суммируемый
диапазон. Далее могут следовать от 1 до 127 пар “диапазон/критерий”, определяющих,
какие значения из диапазона включать в сумму. В следующих примерах будут представ­
лены альтернативные формулы, предназначенные для тех рабочих книг, с которыми ра­
ботают пользователи, вооруженные более ранними версиями Excel.
Применение оператора и
Предположим, необходимо подсчитать общую сумму по счетам, оплата которых про­
срочена И которые, в то же время, выписаны филиалом в Калуге. Иными словами, значе­
214
Часть II. Использование функций в формулах
ния, содержащиеся в диапазоне Сумма, будут суммироваться только в том случае, если
одновременно выполняются следующие условия:
•
в диапазоне Р а з н и ц а им соответствуют отрицательные значения;
•
соответствующий им текст в диапазоне О т д е л е н и е — это К а л у г а .
-25
i
__L
J _
i________
Рис. 7.16. На этом рабочем листе суммирование выполняется с ис­
пользованием нескольких условий
Функция СУММЕСЛИМН как раз и предназначена для выполнения таких задач:
=СУММЕСЛИМН(Сумма; Р а з н и ц а ;"< 0 " ; Филиал; " К а л у г а ")
Первым аргументом функции СУММЕСЛИМН является суммируемый диапазон. Ос­
тальные аргументы, будучи объединенными в пары, определяют критерии. Каждая пара
состоит из диапазона и критерия, который на него накладывается.
В предыдущих версиях Excel с той же задачей справлялась следующая формула массива:
{ =СУММ( (Р а з н и ц а с О )* ( Филиал= "К алуга") *С ум ма)}
Данная формула создает в памяти системы ^цва новых массива.
•
Булев массив, содержащий значение ИСТИНА в том случае, если соответствующее
значение диапазона Р а з н и ц а меньше нуля, и значение ЛОЖЬ — если значение
диапазона больше нуля.
•
Булев массив, содержащий значение ИСТИНА в том случае, если соответствующее
значение диапазона О т д е л е н и е равно значению К а л у г а , и значение ЛОЖЬ —
в противном случае.
Умножение булевых значений дает следующие результаты.
ИСТИНА * ИСТИНА = 1
ИСТИНА * ЛОЖЬ = О
ЛОЖЬ * ЛОЖЬ = о
Таким образом, значение диапазона Сумма, отвечающее заданным условиям, воз­
вращается как ненулевое только в том случае, если оба соответствующих ему значения,
Глава 7. Способы суммирования и подсчета данных
215
находящихся в массивах, имеют значение ИСТИНА. Результатом является сумма значе­
ний диапазона Сумма, которые удовлетворяют заданным условиям.
Примечание
Предыдущую формулу массива можно переписать с помощью функции
выполняющей умножение и сложение элементов массивов.
суммпроизв ,
=СУММПР0ИЗВ( ( Р а з н и ц а с О ) ; ( Филиал= "К а луга" ) /Сумма)
Однако в силу непонятных причин функция суммпроизв обрабатывает буле­
вы значения некорректно, поэтому данная формула нежизнеспособна. Тем
не менее можно использовать другую формулу, которая умножает булевы
значения на 1, — она корректно справится со своей задачей.
=СУММПР0ИЗВ( 1 * ( Р а з н и ц а с О ) / 1 * ( Филиал="К а л у г а " ) /Сумма)
Применение оператора или
Предположим, что необходимо получить общую сумму просроченных счетов и сче­
тов филиала в Калуге. Иными словами, требуется просуммировать те значения диапазона
Сумма, которые соответствуют хотя бы одному из следующих условий:
•
в диапазоне Р а з н и ц а им соответствуют отрицательные значения;
•
соответствующий им текст в диапазоне О т д е л е н и е — это К а л у г а .
Приведенная ниже формула массива выполняет поставленную задачу.
{=СУММ(ЕСЛИ( ( Филиал="К а л у г а " ) + ( Р а з н и ц а с О ) / 1 / 0 ) * С ум м а)}
Знак “+” указывает на объединение условий (оператор ИЛИ), количество которых не
ограничивается двумя (как в данном примере), а может быть и больше.
Комбинирование условий и и или
Как правило, ситуация усложняется, когда необходимо задать условие, в котором ис­
пользовано несколько операторов И и ИЛИ. Предположим, что необходимо просуммиро­
вать значения диапазона Сумма, удовлетворяющие следующим условиям:
•
в диапазоне Р а з н и ц а им соответствуют отрицательные значения;
•
соответствующий им текст в диапазоне ф и л и а л — это текст К а л у г а или Т у л а .
Обратите внимание, что второе условие на самом деле состоит из двух условий, объе­
диненных с помощью оператора ИЛИ. Эту задачу реализует следующая формула, в кото­
рой используется функция СУММЕСЛИМН:
СУММЕСЛИМН(Сумма/ Р а з н и ц а /"< 0 " / Филиал/ " К а л у г а ") +
СУММЕСЛИМН(Сумма/ Р а з н и ц а /"< 0 " / Филиал/ " Т у л а ")
Следующая формула массива тоже справится с поставленной задачей:
{=СУММ( (Разница<0)*ЕСЛИ( (Филиал="Калуга")+
(Филиал="Т у л а " ) / 1 ) * Сумма)
Глава
Поиск данных
В этой главе...
♦ Знакомство с формулами поиска данных
♦ Функции, применяемые для поиска данных
♦ Базовые формулы поиска
♦ Специальные формулы поиска
В настоящей главе будут описаны методы поиска значений в таблицах. Для выполне­
ния этой задачи в Excel предоставляется три функции: ПРОСМОТР, ВПР и ГПР. Несмотря
на то что именно эти функции рассматриваются как основные функции поиска информа­
ции, они не являются универсальными. В этой главе также приведены примеры поиска
информации, поддерживаемые как обычными средствами Excel, так и другими, более
специализированными инструментами поиска данных.
Знакомство с формулами поиска данных
Формула поиска ищет заданное значение и возвращает другое, соответствующее ему
значение. Удачным примером в данном случае является обычный телефонный справоч­
ник. Если в нем необходимо найти номер телефона человека, вы сначала ищете его имя и
фамилию, а затем записываете соответствующий номер телефона.
Примечание
В этой главе термин таблица означает прямоугольный диапазон данных, а не
табличный объект, созданный с помощью команды Вставка^Таблицы^Таблица.
На рис. 8.1 показан простейший рабочий лист, который содержит несколько формул
поиска и таблицу с данными о служащем (диапазон Д а н н ы е С л у ж а щ е г о , начиная с 9-й
строки). Если в ячейку В2 ввести интересующую вас фамилию, формулы поиска, вве­
денные в диапазон ячеек С2 : F2, найдут в таблице необходимую информацию. В приве­
денных ниже формулах используется функция поиска ВПР.
218
Часть II. Использование функций в формулах
Ячейка
С2
D2
Е2
F2
Ф ормула
= В П Р ( В 2 ; ДанныеСлужащего; 2 ; ЛОЖЬ)
= В П Р ( В 2 ; ДанныеСлужащего; 3 ; ЛОЖЬ)
= В П Р ( В 2 ; ДанныеСлужащего; 4 ; ЛОЖЬ)
= В П Р ( D 2 /ДанныеСлужащего; 5 ; ЛОЖЬ)
В этом примере для извлечения информации из диапазона Д анны еС луж ащ его ис­
пользуется четыре формулы. Однако, как правило, требуется вернуть только одно значе­
ние таблицы, в таких случаях используется только одна формула.
Рис. 8.1. Формулы поиска, введенные в строку 2, возвращают необходимую инфор­
мацию о служащем, фамилия которого введена в ячейку В2
Функции, применяемые для поиска данных
В формулах поиска информации в таблицах данных используются следующие функ­
ции (табл. 8.1).
Таблица 8.1. Функции, используемые для поиска данных в таблице
Функция
выбор
впр
гпр
индекс
просмотр
поискпоз
смещ
впр
Описание функции
Возвращает значение, определенное индексом, из списка значений (до
254), введенных в качестве аргументов
Функция вертикального просмотра. Проходит по первому столбцу таблицы
и возвращает значения найденной строки.
Функция горизонтального просмотра. Просматривает верхнюю строку таб­
лицы и возвращает значения найденного столбца
Возвращает значение, указанное индексом
Находит заданное значение в первом диапазоне и возвращает соответст­
вующее ему значение второго диапазона
Возвращает относительное положение элемента диапазона, который соот­
ветствует определенному значению в указанном порядке
Возвращает ссылку на диапазон, смещенный относительно заданной ячей­
ки или диапазона на определенное количество строк и столбцов
Вертикальный поиск. Ищет значение в первом столбце массива и возвра­
щает значение из ячейки в найденной строке и указанном столбце
Глава 8. Поиск данных
219
Во всех примерах, приведенных в этой главе, используются функции, перечисленные
в табл. 8.1.
Компакт-диск
\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 ) .
Базовые формулы поиска
Базовые формулы поиска данных используются, в основном, для поиска определен­
ных строк и столбцов таблицы с целью извлечения другого значения таблицы. Приложе­
ние Excel предоставляет в ваше распоряжение три базовых функции просмотра: ГПР,
ВПР и ПРОСМОТР. Функции П0ИСКП03 и ИНДЕКС часто используются совместно с ни­
ми; они возвращают ячейку или ссылку на ячейку с искомым значением.
Функция ВПР
Функция ВПР выполняет поиск значения в первом столбце просматриваемой таблицы
и возвращает значение из ячейки, расположенной на пересечении найденной строки
и указанного столбца таблицы. Данная функция выполняет вертикальный поиск по таб­
лице. Синтаксис функции ВПР следующий:
ВПР ( искомое_значение; массив_табл; номер_индекса_столбца ;
интерв аль ный_про смо тр)
Функция ВПР использует следующие аргументы.
•
и с к о м о е _ з н а ч е н и е — значение, которое необходимо найти в первом столбце
таблицы (значение, ссылка или строка).
•
м а с с и в _ т а б л — диапазон, содержащий таблицу, в которой выполняется поиск
данных.
•
н о м е р _ и н д е к с а _ с т о л б ц а — номер столбца в таблице, из которого необходи­
мо возвратить соответствующее значение.
•
и нт е р ва ль н ы й _ п р о см о т р — необязательный аргумент. Если данный аргумент
содержит значение ИСТИНА или опущен, функция возвращает значение, найден­
ное путем приближенного сопоставления искомого значения. Если не определено
точное значение, функция возвращает ближайшее значение, меньшее, чем задан­
ный аргумент и с к о м о е _ з н а ч е н и е . В случае, если аргумент содержит логиче­
ское значение ЛОЖЬ, функция ищет точное соответствие. Если точное соответст­
вие не найдено, функция возвращает ошибку #Н/Д.
Примечание
Если аргумент интервальный_просмотр содержит значение и сти н а и л и опу­
щен, таблица должна быть отсортирована в порядке возрастания. В случае,
если аргумент искомое_значение меньше самого меньшего значения, со­
держащегося в первом столбце диапазона массив_табл, функция впр вернет
ошибку #н/д. Если аргумент интервальный_просмотр содержит значение
ложь, первый столбец таблицы поиска не требует сортировки по возрастанию.
Если точное соответствие не найдено, функция возвращает ошибку #н/д.
220
Часть II. Использование функций в формулах'
©
Совет
Если аргумент искомое_значение содержит текст и аргумент интервальный_просмотр равен ложь, искомое значение может содержать групповые
символы * и ?. Звездочка означает любое количество произвольных симво­
лов, а знак вопроса — один произвольный символ.
Классическим примером использования формулы поиска может служить таблица с
процентными ставками налога (рис. 8.2). В эту таблицу внесены ставки налога, каждая из
которых соответствует определенному уровню дохода служащего. Следующая формула,
введенная в ячейку В2, возвращает ставку налога для заданного уровня дохода в ячейке В1:
=ВПР(В2; D 2 : F 7 ;3)
Рис. 8.2. Чтобы определить ставку налога, воспользуйтесь
функцией в п р
Анализируемая таблица находится в диапазоне, состоящем из трех столбцов (D2 : F7).
Последний аргумент функции ВПР — 3, поэтому формула возвращает соответствующее
значение, содержащееся в третьем столбце таблицы.
В данном случае точного соответствия не требуется. Если точное соответствие не
найдено в первом столбце просматриваемой таблицы, функция ВПР будет использовать
ближайшее наибольшее значение, которое меньше искомого в таблице значения. Други­
ми словами, функция вернет строку, содержащую значение, которое меньше или равно
искомому, а значение следующей за ней строки — больше искомого значения.
Функция Г П Р
Функция ГПР работает аналогично ВПР, за исключением того, что таблица просмат­
ривается не по вертикали, а по горизонтали. Функция просматривает верхнюю строку
таблицы и возвращает значение из указанной строки.
Функция ГПР имеет следующий синтаксис:
ГПР {искомое_значение; таблица; номер_строки; интервальный_просмотр)
В функции ГПР используются следующие аргументы.
•
искомое_значение — значение, которое требуется найти в первой строке таблицы.
•
таблица — таблица, в которой выполняется поиск данных.
•
номер_строки — номер строки в таблице, из которой возвращается сопостав­
ляемое значение.
•
интервальный_просмотр — необязательный аргумент. Если значение этого
аргумента ИСТИНА или опущено, функция возвращает значение, найденное путем
приближенного сопоставления искомого значения (если точное соответствие не
221
Глава 8. Поиск данных
найдено, функция вернет наибольшее значение, меньшее чем значение аргумента
и с к о м о е _ з н а ч е н и ё ). В случае, если аргумент содержит логическое значение
ЛОЖЬ, функция ГПР будет искать точное соответствие. Если точное соответствие
не найдено, функция вернет ошибку #Н/Д.
Совет
Если аргумент искомое_значение содержит текстовое значение и аргумент
интервальный_просмотр равен ложь, в искомом значении можно исполь­
зовать групповые символы * и ?. Звездочка соответствует любому количе­
ству символов, а знак вопроса — одному символу.
На рис. 8.3 показана таблица со ставками подоходного налога, но уже в горизонталь­
ной форме ( E l : J3 ). Формула в ячейке ВЗ выглядит следующим образом:
=ГПР (В2 ; E l : J3 ; 3 )
в
С
Е
О
U
I
F
G
i
Н
I
J
к
1_________________________
Рис. 8.3. В этом случае для поиска ставки подоходного налога можно воспользоваться функцией гпр
Функция ПРОСМОТР
Функция ПРОСМОТР имеет следующий синтаксис:
ПРОСМОТР (искомое_значение; вектор_просмотра; вектор_результата)
Данная функция использует следующие аргументы.
•
искомое_зна чение — значение, которое функция ищет в векторе просмотра.
•
вектор_просмотра — диапазон, состоящий только из одной строки или одного
столбца и содержащий значения, среди которых необходимо найти нужное. Зна­
чения должны располагаться в порядке возрастания.
•
вектор_результата — диапазон, состоящий только из одной строки или одно­
го столбца и содержащий значения, которые будут возвращены. Размер этого диа­
пазона должен быть равен размеру диапазона вектор_просмотра.
Функция ПРОСМОТР просматривает диапазон, состоящий из одной строки или одного
столбца ( вектор_просмотра ), находит необходимое значение (искомое_значение )
и возвращает значение, содержащееся в соответствующей ячейке второго диапазона, ко­
торый также состоит из одной строки или одного столбца ( вектор_результата ).
Предупреждение
Имейте в виду, что значения диапазона вектор_просмотра должны распола­
гаться в порядке возрастания. В том случае, когда искомое_значение меньше
наименьшего значения, содержащегося в диапазоне вектор_просмотра,
функция возвращает ошибку # н / д .
222
Часть II. Использование функций в формулах
Примечание
Справочная система Excel указывает, что функция просм отр имеет два ва­
рианта синтаксиса, один из которых включает аргумент массив. Это обеспе­
чивает совместимость Excel с другими программами управления электрон­
ными таблицами. Однако на практике вместо второго варианта синтаксиса
предпочтительнее использовать функции впр и гпр.
На рис. 8.4 показана все та же таблица ставок налога, только на этот раз формула, ко­
торая введена в ячейку ВЗ, содержит функцию ПРОСМОТР, возвращающую соответст­
вующую ставку. Обратите внимание на то, что возвращаемые значения содержатся в
другой таблице.
=ПРОСМОТР(В2; D 2 : D 7 ; G 2 :G9)
Предупреждение
Если значения в первом столбце не расположены в порядке возрастания, зна­
чение, которое возвращает функция просмотр , может быть неправильным.
Рис. 8.4. Чтобы найти соответствующую налоговую ставку, вос­
пользуйтесь функцией п р о с м о т р
В отличие от функции ВПР, функция ПРОСМОТР может вернуть значение, содержа­
щееся в строке, отличной от найденной. Если аргументы вектор_поиска и вектор__
результата не принадлежат одной и той же таблице, функция ПРОСМОТР может ока­
заться очень полезной. Если же они принадлежат одной таблице и данные не отсортиро­
ваны, лучше применить функцию ВПР.
Комбинирование функций поискпоз и ин декс
Достаточно часто при поиске данных функции ПОИСКПОЗ и ИНДЕКС используются
вместе. Функция ПОИСКПОЗ возвращает относительную позицию ячейки в диапазоне,
соответствующую искомому значению. Синтаксис функции следующий:
ПОИСКПОЗ(искомое_значение; массив_поиска; тип_сопоставления)
Функция ПОИСКПОЗ принимает три аргумента.
•
искомое_значение — значение, которое требуется найти в массиве массив_
поиска. Если третий аргумент этой функции — тип_сопоставления — равен
нулю, а аргумент искомое_значение представляет собой текст, то последний
может содержать макросимволы * и ? .
•
массив_поиска — диапазон, который содержит искомое значение.
Глава 8. Поиск данных
•
223
т и п _ с о п о с т а в л е н и я — целое число (-1 , 0 или 1), которое задает метод сопос­
тавления.
Примечание
В том случае, если аргумент тип_сопоставления равен единице, функция
ищет самое большое значение, которое меньше либо равно аргу­
менту искомое_значение (значения диапазона массив_поиска должны
располагаться в порядке возрастания, т.е. диапазон должен быть отсорти­
рован). Если аргумент тип_сопоставления равен нулю, функция ищет пер­
вое значение, в точности соответствующее аргументу искомое_значение.
Если же аргумент тип_сопоставления равен -1, функция ищет наименьшее
значение, которое больше или равно аргументу искомое_значение (в этом
случае значения диапазона массив_поиска должны располагаться в поряд­
ке убывания). Если аргумент тип_сопоставления опущен, то по умолчанию
он принимается равным единице.
поискпоз
Функция ИНДЕКС возвращает ячейку диапазона. Синтаксис функции следующий:
ИНДЕКС (массив ; номер_строки; номер_столбца)
Функция ИНДЕКС принимает три аргумента.
•
м а с с и в — диапазон, являющийся массивом.
•
ном ер_ст роки — строка в массиве ма с сив, из которого возвращается значение.
•
ном ер_ст олбца — столбец в массиве ма с сив, из которого возвращается значение.
Примечание
Если массив содержит всего одну строку или столбец, соответствующий ар­
гумент номер_строки\лп\л номер_столбца использовать не обязательно.
На рис. 8.5 показан рабочий лист, в котором в столбцах D, Е и F содержатся значения
дат, дней недели и сумм. При вводе даты в ячейку В1 формула, приведенная ниже
(ячейка В2), просматривает значения в столбце D (так выполняется поиск необходимой
даты), а затем возвращает из столбца F соответствующую этой дате сумму.
=ИНДЕКС(F 2 : F 21 ; ПОИСКПОЗ(В 1 ; D 2 :D21 ; 0 ) )
Рис. 8.5. Функции ИНДЕКС и поискпоз используются для по­
иска данных в таблице
224
Часть II. Использование функций в формулах
Чтобы понять, как работает эта формула, начните с функции ПОИСКПОЗ. Данная
функция ищет в диапазоне D2 :D 2 1 дату, содержащуюся в ячейке В1, и относительный
номер строки, в которой эта дата найдена. Полученное значение используется в качестве
второго аргумента функции ИНДЕКС. В результате формула возвращает соответствую­
щее значение, содержащееся в диапазоне F2 : F 2 1 .
Когда пустая ячейка не считается нулем
Часто возникает ситуация, когда ячейки анализируемого диапазона не содержат ни­
каких значений. Функции поиска Excel обрабатывают такие ячейки как нулевые значе­
ния. Например, рабочий лист на приведенном ниже рисунке содержит таблицу, со­
стоящую из двух столбцов. Приведенная ниже формула просматривает первый стол­
бец, отыскивая в нем имя, введенное в ячейку В1, и возвращает соответствующую
этому имени сумму.
=ВПР(В1; D 2 : Е 8 ; 2 ; ЛОЖЬ)
Обратите внимание, что ячейка Сумма, соответствующая имени Чаки, пустая, одна­
ко формула возвращает нулевое значение.
Если нужно, чтобы нулевые значения отличались от пустых ячеек, измените формулу
просмотра, добавив в нее функцию если , — так вы определите длину возвращаемого
значения. В том случае, если возвращаемая ячейка пустая, длина значения восприни­
мается равной нулю, во всех других случаях — как ненулевое значение. Следующая
формула возвращает пустую строку всякий раз, когда длина возвращаемого значения
нулевая; фактическое значение будет отображено в том случае, когда длина значения
не равна нулю.
=ЕСЛИ(ДЛСТР(ВПР(В1; D 2 : Е 8 ;2) ) = 0 ; " " ; (ВПР(В1; D 2 : Е 8 ;2) ) )
Специальные формулы поиска
Кроме базовых формул поиска данных, Excel содержит несколько дополнительных
формул, позволяющих осуществить специализированный поиск данных. К примеру, ис­
пользуя эти формулы, можно искать точные значения, значения в столбце рядом с пер­
вым столбцом таблицы, выполнять поиск с учетом регистра символа, возвращать значе­
ние из множества таблиц поиска, а также выполнять другие виды сложного поиска.
Компакт-диск
Примеры ЭТОГО раздела находятся в файле s p e c i a l i z e d lo o k u p
p l e s . x l s x (Chapter08_RUS . x l s x ) на прилагаемом компакт-диске.
exam ­
Глава 8. Поиск данных
225
Поиск точного значения
Как было показано в предыдущих примерах, функции ВПР и ГПР не требуют точного
соответствия между искомым значением и значением в таблице поиска. Иногда это до­
пустимо, например, при поиске ставки налога. В других ситуациях может потребоваться
полное соответствие значений. Например, при поиске табельного номера служащего не­
обходимо полное соответствие номера.
Чтобы найти только точно соответствующее значение, используются те же функции
ВПР или ГПР, но с необязательным четвертым аргументом со значением ЛОЖЬ.
На рис. 8.6 показан рабочий лист с таблицей, которая содержит табельные номера
(столбец С), а также имена и фамилии служащих (столбец D). Таблица поиска носит на­
звание СписокСлужащих. Следующая формула, введенная в ячейку В2, ищет табель­
ный номер служащего, заданный в ячейке В1, и возвращает имя служащего, имеющего
данный табельный номер.
=ВПР(В1; СписокСлужащих; 2 ; ЛОЖЬ)
Рис. 8.6. Поиск в этой таблице требует точного соответствия значений
Поскольку последний аргумент функции ВПР имеет значение ЛОЖЬ, функция возвращает
значение только в том случае, если найдено точное соответствие. В противном случае, если
значение не найдено, формула возвращает ошибку #Н/Д. Безусловно, поиск приближенного
соответствия значения табельного номера служащего не имеет в данном случае никакого
смысла. Обратите внимание также на то, что табельные номера служащих в столбце С распо­
ложены не в порядке возрастания, поскольку при использовании в качестве четвертого аргу­
мента логического значения ЛОЖЬ упорядочения по возрастанию не требуется.
Совет
Если нужно, чтобы вместо ошибки # н /д на экране отображалась другая ин­
формация (в случае, если табельный номер служащего не найден), исполь­
зуйте функцию еслиошибка. Ее синтаксис следующий:
ЕСЛИОШИБКА( значение ; значение_ если_ ошибка)
где:
♦
значение — это произвольное выражение; обычно это формула, по­
тенциально способная вернуть ошибку;
♦
зна чение_если_ошибка — это любое выражение, содержащее чис­
ла, строки, ссылки на ячейки или формулы.
Следующая формула вместо ошибки # н /д отображает текст не найдено:
=ЕСЛИОШИБКА(ВПР(В 1 ; СписокСлужащих; 2 ; ЛОЖЬ) ) ; " Не н а й д е н о ")
226
Часть II. Использование функций в формулах
Поиск значения слева
Функция ВПР всегда ищет значение в первом столбце заданного диапазона. Но как быть,
если необходимо найти значение не в первом, а в каком-либо другом столбце? Следует отме­
тить, что третьему аргументу функции ВПР нельзя назначать отрицательное значение.
Рассмотрим эту проблему на простом примере (рис. 8.7). Предположим, что необходимо
найти средний темп (столбец В, диапазон С р е д н и е ) одного из игроков из столбца С (диапа­
зон Игрок). Имя игрока, данные о котором необходимо найти, введено в ячейку Искомый_
и г р о к . В таком случае функция ВПР работать не будет, поскольку данные размещены некор­
ректно. Конечно, данные легко переупорядочить, однако иногда и это не допускается.
Рис. 8.7. Функция в п р не позволяет найти значение в столбце в на ос­
нове данных столбца с
Один из способов решения этой проблемы — использовать функцию ПРОСМОТР, ко­
торая принимает в качестве аргументов два диапазона. Следующая формула (в ячейке
F3) возвращает средний темп игрока (из столбца В), имя которого введено в ячейку
Искомы й_игрок:
=ПРОСМОТР(Искомый_игрок; И гр ок ; С р е д н и е)
Для того чтобы использовать функцию ПРОСМОТР, диапазон поиска (в данном случае
диапазон И г р о к ) необходимо представить в порядке возрастания. Кроме этого ограни­
чения, формула имеет еще одну небольшую проблему: при вводе имени несуществую­
щего игрока (другими словами, если ячейка И с к о м ы й _ и г р о к содержит значение, кото­
рое отсутствует в диапазоне И г р о к ), формула возвращает значение ошибки.
Более эффективный способ — совместное использование функций ИНДЕКС и ПОИСКПОЗ.
Следующая формула работает точно так же, как предыдущая, за исключением того, что
она возвращает ошибку #Н /Д , если искомый игрок не найден. Еще одно преимущество
этой формулы состоит в том, что имена игроков не требуют сортировки.
=ИНДЕКС(Среднее; ПОИСКПОЗ(Искомый_игрок;Игрок;0 ) )
*
Поиск с учетом регистра
Рассмотрим задачу поиска текста в таблице данных. Базовые функции поиска данных
в Excel (ПРОСМОТР, ВПР и ГПР) не учитывают регистр символов. Поэтому в результате
использования этой функции для поиска в таблице текста б ю д ж е т формула вернет лю­
бую соответствующую этому тексту строку, например: БЮДЖЕТ, Бю дж ет или БюДжЕт.
Глава 8. Поиск данных
227
Рабочий лист, показанный на рис. 8.8, содержит два диапазона: первый включает
ячейки D2 :D7 (с именем Д иап азон01), второй— ячейки Е 2:Е 7 (с именем Д иапа­
зоне^). Текст, который необходимо найти, содержится в ячейке В1 (с именем Слово).
Рис. 8.8. Чтобы найти текст с учетом регистра символов,
воспользуйтесь формулой массива
Следующая формула массива, введенная в ячейку В2, находит заданное значение
в диапазоне Д иап азон 01, учитывая при этом регистр символов, и возвращает соответ­
ствующее значение из диапазона Д и ап азон 02.
{=ИНДЕКС(Диапазон02; ПОИСКПОЗ(ИСТИНА;
С О ВП А Д (С лово;Диапазон01);0)) }
Данная формула находит слово СОБАКА (все символы верхнего регистра) и возвра­
щает соответствующее значение 3 00. В свою очередь, стандартная формула поиска, ис­
пользующая функцию ПРОСМОТР, возвращает значение 400.
=ПРОСМОТР(С л о в о; Д и а п а з о н 0 1 ; Д и а п а з о н 0 2 )
Примечание
Не забывайте, что при вводе формулы массива необходимо использовать
клавиши <Ctrl+Shift+Enter>.
Поиск значения во множестве таблиц
Рабочий лист может содержать любое количество таблиц поиска данных. В таких
случаях в форму необходимо ввести информацию о том, в какой именно таблице будет
осуществляться поиск. На рис. 8.9 приведен пример использования множества таблиц на
одном рабочем листе.
Рис. 8.9. Данный рабочий лист содержит много таблиц поиска данных
228
Часть II. Использование функций в формулах
Представленная в примере рабочая книга содержит два диапазона: диапазон G3 :Н9
(с именем Т а б л и ц а 0 1 ) и диапазон J 3 :К8 (с именем Т а б л и ц а 0 2 ) и вычисляет комис­
сионные менеджеров фирмы. Ставка комиссионного вознаграждения каждого отдельно­
го менеджера зависит от двух факторов: стажа работы менеджера в данной фирме
(столбец В) и объема реализованного им товара (столбец С). Столбец D содержит форму­
лы поиска ставки комиссионных в соответствующей таблице. Например, ячейка D2 со­
держит следующую формулу:
=ВПР(С2; Е С Л И (В 2 < 3 ; Т а б л и ц а 0 1 ; Т а б л и ц а 0 2 ) ; 2 )
Второй аргумент функции ВПР содержит функцию ЕСЛИ, которая использует значе­
ние ячейки В2 для определения того, какую из таблиц следует просматривать.
Формула в столбце Е просто умножает объем продаж каждого менеджера в столбце С
на ставку комиссионного вознаграждения из столбца D. Ячейка Е2 содержит следующую
формулу:
=C2*D2
Вычисление оценки по количеству набранных баллов
Еще один пример использования таблиц поиска данных — это выставление экзаме­
национных оценок по результатам тестирования студентов. На рис. 8.10 показан рабочий
лист, который содержит таблицу с количеством набранных баллов и соответствующих
оценок (диапазон Е2 : F6 с именем С п и с о к О ц е н о к ). Данная таблица используется для
присвоения студенту, сдавшему тест, одной из оценок в виде буквы.
Рис. 8.10. Назначение оценке категории по резуль­
татам тестирования
Столбец С содержит формулы, которые используют функцию ВПР и таблицу класси­
фикаторов, чтобы на основании полученного каждым студентом количества баллов
(столбец В) присвоить ему соответствующую оценку. Например, ячейка С2 содержит
следующую формулу:
=ВПР(В2; СписокОценок;2)
Если таблица поиска содержит небольшое количество значений (как, например, на
рис. 8.10), вместо нее можно использовать массив символов. Например, приведенная
ниже формула возвращает оценку, не используя при этом таблицу поиска. Информация
таблицы поиска введена непосредственно в формулу массива. Для получения дополни­
тельной информации о массивах обратитесь к главе 14.
=ВПР(В5; { 0 ; "F": 4 0 ; "D": 7 0 ; "С": 8 0 ; "В": 9 0 ; "А"} ;2)
Глава 8. Поиск данных
229
В другой, более удобной, формуле назначения букв используется функция ПРОСМОТР
с двумя аргументами, представляющими собой массивы.
=ПРОСМОТР(В2; { 0 ; 4 0 ; 7 0 ; 8 0 ; 9 0 } ; { "F"; "D"; "С"; "В"; "А"})
В заключение, если удается преобразовать входное значение (в данном случае коли­
чество баллов) в целое число от единицы до 29, можете воспользоваться функцией ВЫ­
БОР. В данном примере можно разделить количество баллов на 10, отбросить дробную
часть и добавить единицу. В результате получим целые числа от 1 до 11. Оставшиеся ар­
гументы функции определяют возвращаемые значения для всех 11 результатов.
=ВЫБОР(ЦЕЛОЕ(В2/10)+1;
при . п р и
. м р и . и р м . м р и . м р и . м р и . Iip il . м р и . п р и
. мр м ^
Вычисление средней оценки
Средняя оценка в данном примере вычисляется как среднее числовое значение оце­
нок, полученных студентами. Для вычисления этого показателя каждая буква оценки со­
поставляется с определенным числовым значением (А=4, В=3, С=2, D=1 и F=0). Средняя
оценка рассчитывается как среднее числовых значений оценок, взвешенное по количест­
ву часов, пройденных по данному курсу. Например, одночасовой курс меньше влияет на
среднюю оценку, чем трехчасовой. Градация показателя средней оценки начинается с 0
(все F) и заканчивается 4,00 (все А).
На рис. 8.11 показан рабочий лист, содержащий информацию о студенте. Этот сту­
дент посетил пять занятий, общее количество прослушанных им часов— 13 (диапазон
В2 :В6 — Ч а с ы О б у ч е н и я ). Оценки, полученные за каждый курс, содержатся в столбце
С (диапазон С2 : С6 — О ценк и). Столбец D отображает формулу поиска, которая опре­
деляет числовое значение оценки для каждого занятия. Например, следующая формула
(в ячейке D2) использует таблицу поиска G2 : Нб ( Т а б л и ц а О ц е н о к ):
=ВПР(С2; Т аблицаО ценок;2 ; ЛОЖЬ)
Рис. 8.11. Для вычисления средней оценки используется несколько формул
Формулы, введенные в столбец Е, вычисляют взвешенные значения. Например, фор­
мула в ячейке'Е2 выглядит следующим образом:
=D2*B2
И наконец, следующая формула в ячейке В 8 вычисляет среднюю оценку:
=СУММ(Е2: Е 6) /СУММ(В2:В6)
Несмотря на то что предыдущие формулы работают достаточно хорошо, можно уп­
ростить вычисление среднего показателя. Для этого применяйте единственную формулу
Часть II. Использование функций в формулах
230
массива, не прибегая к использованию таблицы поиска и формул в столбцах D и Е. Эта
формула массива выглядит следующим образом:
{=СУММ((П0ИСКП03(Оценки;{ "F"; "D"; "С"; "В"; "А"} ; 0 ) - 1 )
*ЧасыОбучения)/СУММ(ЧасыОбучения)}
Поиск на пересечении строк и столбцов
На рис. 8.12 показан рабочий лист, который содержит данные о ежемесячных объе­
мах продаж товаров. Для того чтобы найти информацию об объеме продаж определен­
ного товара в течение одного заданного месяца, в ячейку В1 необходимо ввести искомый
месяц, а в ячейку В2 — название товара.
Рис. 8.12. Таблица поиска информации на пересечении строк и столбцов
Для упрощения работы с формулами на данном рабочем листе используются сле­
дующие диапазоны ячеек.
Имя диапазона
Диапазон
Месяцы
В1
Товар
В2
Таблица
D l :Н14
СписокМесяцев
D l :D14
СписокТоваров
D1-.H1
Следующая формула (ячейка В4) содержит функцию ПОИСКПОЗ и возвращает пози­
цию заданного месяца в диапазоне ячеек С п и сокМ есяцев. Например, если вы ищете
месяц январь, то данная формула возвращает значение 2, поскольку я н в а р ь — это вто­
рой элемент диапазона С пи сокМ есяцев (первый элемент — незаполненная ячейка D1).
=П0ИСКП03(Месяцы;СписокМесяцев;0)
Формула, введенная в ячейку В5, работает таким же образом, но применяется для
диапазона С п и со к Т о в ар о в .
=П0ИСКП03(Т о в а р ; С пи сокТ ов ар ов ;0)
И наконец, формула в ячейке В б возвращает соответствующий заданным условиям
объем продаж. В формуле используется функция ИНДЕКС, которая в качестве аргумен­
тов принимает результаты, полученные в ячейках В4 и ВБ.
=ИНДЕКС(Т а б л и ц а ; В 4 ; В 5 )
Глава 8. Поиск данных
231
Все приведенные формулы можно объединить в одну.
=ИНДЕКС(Таблица; ПОИСКПОЗ(Месяц;СписокМесяцев; 0 ) ;
ПОИСКПОЗ(Т о в а р ; С пи сок Т ов ар ов ; 0 ) )
Совет
Существует еще один способ быстрого создания формулы для поиска зна­
чения на пересечении строк и столбцов. Он предусматривает присвоение
имен каждой строке и каждому столбцу таблицы. Для этого выделите табли­
цу с данными и выберите команду Формулы*=>Определенные именаоСоздать
из выделенного. После создания имен приведенные формулы будут выгля­
деть гораздо проще.
=3ажигалки Июль
Данная формула использует пересечение двух диапазонов и возвращает
данные о продажах зажигалок в июле. Для обращения к ячейкам, в которые
введены месяц и товар, используйте следующую формулу:
=ДВССЫЛ(Месяцы) ДВССЫЛ(Товар)
Эта формула преобразует значения ячеек с именами месяцы и товар в ссылки
на диапазоны и находит пересечение. (Оператор пересечения подробно опи­
сан в главе 3.)
Поиск информации в двух столбцах
В отдельных случаях таблица поиска может содержать два столбца с искомыми дан' ными. На рис. 8.13 приведен пример такой таблицы.
Рис. 8.13. В этой рабочей книге выполняется поиск информации на
основе данных двух столбцов таблицы (D и Е)
Таблица поиска содержит список автомобилей, для каждого из которых указаны про­
изводитель, модель и код. Диапазоны рабочего листа названы следующим образом.
F2:F12
В1
В2
D2:D12
Е2:Е12
Код
Производитель
Модель
Диапазон4
ДиапазонБ
Следующая формула массива выводит на экран номер, соответствующий автомобилю
определенной марки и модели:
{=ИНДЕКС(К о д ; ПОИСКПОЗ(П роизводитель &Модель;
Диапазон4& Диапазон5" ; 0 ) ) }
232
Часть II. Использование функций в формулах
Данная формула связывает текстовые строки, содержащиеся в ячейках П р о и з в о д и ­
т е л ь и М одель, а затем ищет текст в соответствующем объединении двух диапазонов:
Д и ап азон 4 и ДиапазонБ .
Определение местонахождения значения в диапазоне
В большинстве случаев формулы просмотра данных таблицы используются для поис­
ка определенных значений. Однако иногда требуется найти не само значение, а его ме­
стоположение. Например, на рис. 8.14 показан рабочий лист, который отображает диапа­
зон данных, состоящий всего лишь из одного столбца (с именем Д а н н ы е1 ). Ячейка В1
с именем Цель содержит значение, которое необходимо найти.
Следующая формула, введенная в ячейку В2, возвращает адрес той ячейки из диапа­
зона Данны е, которая содержит значение Цель:
=АДРЕС(СТРОКА(Данные1)+
ПОИСКПОЗ(Цель; Данные1 ; 0 ) - 1 ; СТОЛБЕЦ(Данные1 ) )
Если диапазон Данн ы е содержит только одну строку, для поиска адреса значения
воспользуйтесь следующей формулой:
=АДРЕС(СТРОКА(Данные1) ; СТОЛБЕЦ(Данные1)+
ПОИСКПОЗ(Ц ел ь ; Данные1 ; 0 ) - 1 )
Если диапазон Д ан н ы е содержит несколько экземпляров искомого значения, форму­
лы вернут адрес первой найденной ячейки с этим значением. Если искомое значение не
найдено, формулы вернут ошибку #Н/Д.
Поиск значения, максимально приближенного
к заданному
Формулы ПРОСМОТР и ГПР наиболее часто используются в следующих ситуациях.
•
Если необходимо найти значение, в точности соответствующее заданному. Для этого
в качестве четвертого аргумента функций используется логическое значение ЛОЖЬ.
•
Если необходимо найти значение, максимально приближенное к заданному. Для
этого в качестве четвертого аргумента функций используется логическое значение
ИСТИНА. Аргумент может быть также опущен, а поиск точного соответствия не
выполняется вообще. Формула возвращает ближайшее к заданному значение, но
в меньшую сторону.
Если необходимо найти значение, максимально близкое к заданному, независимо от
направления отклонения, ни одна из предложенных выше базовых функций (ПРОСМОТР
и ГПР) не сможет выполнить эту задачу.
На рис. 8.15 показан рабочий лист, содержащий имена студентов (столбец А) и некото­
рые значения (столбец В). Диапазон В2 :В2 0 называется Д ан н ы е2, ячейка Е2 (с именем
Ц е л ь 2) содержит значение, которое необходимо найти в диапазоне Д ан н ы е2. Ячейка ЕЗ
(с именем С м е щ е н и е С т о л б ц а ) содержит значение, которое определяет, на сколько
столбцов и в какую сторону от диапазона Д а н н ы е2 происходит смещение значения.
Приведенная ниже формула массива определяет ближайшее значение из диапазона
Д а н н ы е2 , которое соответствует значению Ц е л ь 2, и возвращает имя студента в столбце
А (т.е. столбце, смещенном на - 1 от столбца с диапазоном Д а н н ы е 2). Формула возвра­
Глава 8. Поиск данных
233
щает имя Д а в и д , которому соответствует значение 8 0 0 0 — ближайшее значение к це­
левому, равному 802 5.
{=ДВССЫЛ(АДРЕС(СТРОКА(Данные)+
П0ИСКП03(МИН(ABS( Ц ел ь -Д ан н ы е)) ;
ABS( Ц е л ь - Д а н н ы е ) ; 0 ) - 1 ; СТОЛБЕЦ(Данные)+СмещениеСтолбца)) }
Рис. 8.14.хФормула в ячейке В2 возвращает адрес ячейки в диапазоне
Данные, в которой содержится зна­
чение, введенное в ячейку В1
Рис. 8.15. Данная рабочая книга демонстрирует процесс
поиска значения, ближайшего к заданному
Если в диапазоне Д а н н ы е2 формула находит два значения, которые одинаково близ­
ки к значению Ц е л ь 2, то она возвращает первое из найденных в списке значений.
Значение, содержащееся в ячейке С м е щ е н и е С т о л б ц а , может быть отрицательным
(если столбец расположен слева от диапазона Д а н н ы е 2), положительным (если столбец
расположен справа от диапазона Д а н н ы е 2) или равным нулю (если ближайшее значение
расположено в самом диапазоне Д а н н ы е 2).
Чтобы понять, как работает эта формула, вы должны уяснить себе принцип работы
функции ДВССЫЛ. В качестве первого аргумента этой функции используется текстовая
строка в виде ссылки на ячейку (или ссылки на ячейку, содержащую текстовую строку).
В нашем примере текстовая строка создается с помощью функции АДРЕС, которая при­
нимает в качестве аргументов номера строки и столбца, а возвращает адрес ячейки.
Поиск значения методом линейной интерполяции
Интерполяция представляет собой процесс создания недостающих значений на основе
существующего ряда значений. Рассмотрим пример интерполяции данных. На рис. 8.16 по­
казан рабочий лист, в котором столбец D содержит список значений х, а столбец Е — спи­
сок значений у, соответствующих каждому значению х.
Кроме того, в рабочий лист включен график, который визуально иллюстрирует связь меж­
ду диапазонами х и у. Расположение точек на диаграмме говорит о том, что зависимость
между значениями х и у приблизительно линейная: рост значения х вызывает пропорцио­
нальный рост значения у. Обратите внимание, что значения в диапазоне х введены не в стро­
гой последовательности. Например, отсутствуют значения 3 , 6 , 7 , 1 4 , 1 7 , 1 8 и 1 9 .
234
Часть II. Использование функций в формулах
Рис. 8.16. Данная рабочая книга демонстрирует выполнение поиска
значения методом интерполяции
Вы уже умеете создавать формулы, которые просматривают значения диапазона х
и возвращают значения диапазона у. Но как быть, если необходимо рассчитать значение
у для отсутствующего значения х? Обычная формула таблицы поиска возвращает не­
правильный результат, поскольку оперирует только существующими значениями у
(вместо расчетных). Например, следующая формула ищет значение 3, но возвращает
значение 1 8 , 0 0 (как значение, соответствующее значению 2 в диапазоне х):
=ПРОСМОТР( 3 ; х ; у )
Именно в таких случаях требуется интерполяция значений. Другими словами, по­
скольку искомое значение 3 находится посредине между существующими значениями х
(2 и 4), возвращаемое значение у должно быть равно 2 1 , 0 0 , т.е. тоже располагаться по­
средине между значениями 1 8 , 0 0 и 2 4 , 0 0 .
Формулы линейной интерполяции
На рис. 8.17 показан рабочий лист с формулами, введенными в столбец В. Искомое
значение введено в ячейку В1, а итоговая формула в ячейке В 1 6 возвращает результат
подсчетов. Если значение, содержащееся в ячейке ВЗ, найдено в диапазоне х, формула
возвращает соответствующее значение у. В противном случае (если значение в ячейке
ВЗ не найдено) формула в ячейке В 1 6 возвращает расчетное значение у, полученное пу­
тем линейной интерполяции.
Критично, чтобы диапазон х содержал значения в порядке возрастания. Если ячейка
В1 содержит значение, меньшее, чем минимальное значение х, или большее, чем макси­
мальное значение, формула возвращает значение ошибки. Формулы, используемые для
получения значений методом интерполяции, приведены в табл. 8.2.
Комбинирование функций
просм отр и тенд енци я
Существует еще один, более предпочтительный, способ поиска данных в таблице ме­
тодом линейной интерполяции. Этот способ основан на использовании функций
ПРОСМОТР и ТЕНДЕНЦИЯ и обладает одним большим преимуществом — в нем исполь­
зуется только одна формула (рис. 8.18).
Глава 8. Поиск данных
235
Рис. 8.17. Столбец в содержит формулы, которые вычис­
ляют результат методом линейной интерполяции
Таблица 8.2. Формулы поиска значений методом интерполяции
Ячейка Формула
Описание
ВЗ
=ПРОСМОТР(В1 ; х ; у )
Выполняет обычный поиск и возвраща­
ет значение диапазона х
В4
=В1=ВЗ
Возвращает значение и с т и н а , если
найденное значение соответствует ис­
комому
В6
=П0ИСКП03(ВЗ; х ; 0 )
Возвращает номер строки диапазона
х, которая содерж ит совпадающее
значение
В7
=ЕСЛИ(В 4 ; в б ; В 6+1 )
Возвращает ту же строку, что и формула
в ячейке вб, если найдено значение,
в точности соответствующее заданно­
му. В противном случае к результату
ячейки в 6 добавляется 1
В9
=ИНДЕКС( х ; Вб )
Возвращает соответствующее значение
х для строки, полученной в ячейке вб
В10
=ИНДЕКС( х ; В 7 )
Возвращает соответствующее значение
х для строки, полученной в ячейке В7
В12
=ПРОСМОТР(В9 ; х ; у )
Возвращает значение у, которое соот­
ветствует значению х, полученному в
ячейке в 9
В13
=ПРОСМОТР(В1 0 ; х ; у )
Возвращает значение у, которое соот­
ветствует значению х, полученному в
ячейке в ю
В15
=ЕСЛИ( В4 ; 0 ; ( В 1 - В З ) / ( В 1 0 - В 9 ) )
Вычисляет корректирующий фактор,
основанный на разнице между значе­
ниями X
В16
= В 1 2 +( ( В1 3 - В 1 2 ) * В 1 5 )
Вычисляет расчетное значение у с по­
мощью корректирующего фактора, по­
лученного в ячейке В15
236
Часть II. Использование функций в формулах
Рис. 8.18. Данный рабочий лист содержит формулу, в ко­
торой используются функции ПРОСМОТР И ТЕНДЕНЦИЯ
Формула, приведенная ниже (в ячейке В2), для принятия решения использует функ­
цию ЕСЛИ. Если в диапазоне х найдено значение, в точности соответствующее искомо­
му, формула возвращает соответствующее значение из диапазона у (используется функ­
ция ПРОСМОТР). Если же точное соответствие не найдено, формула использует функцию
ТЕНДЕНЦИЯ и возвращает значение у, рассчитанное методом поиска максимально близ­
кой величины (не прибегая к линейной интерполяции).
=ЕСЛИ(В1=ПРОСМОТР(В1 ; х ; х ) ; ПРОСМОТР(ИНДЕСК(х; ПОИСКПОЗ(
ПРОСМОТР( В 1 ; х ; х ) ; х ; 0 ) ) ; х ; у ) ; ТЕНДЕНЦИЯ( у ; х ; В 1 ) )
Глава
Базы данных
и таблицы листа
В этой главе...
♦ Таблицы и терминология
♦ Работа с таблицами
♦ Расширенная фильтрация
♦ Определение условий расширенного фильтра
♦ Функции баз данных
♦ Вычисление промежуточных итогов
Таблицей называется прямоугольный диапазон данных, обычно имеющий строку тек­
стовых заголовков, которые описывают содержимое столбцов. Программа Excel посто­
янно обеспечивала поддержку таблиц, однако в новой своей ипостаси (начиная с Ex­
cel 2007) эта функция позволяет представлять диапазон в виде полноценной таблицы,
облегчающей выполнение многих задач. И, что более важно, новая функция таблиц мо­
жет помочь избежать наиболее распространенных ошибок.
В этой главе описаны таблицы Excel, а также то, что часто называется базами данных
рабочих листов, т.е. диапазоны листа, не преобразованные в полноценные таблицы.
Таблицы и терминология
Похоже, компания Microsoft следует традиции в присвоении имен создаваемым сред­
ствам и технологиям. В версии Excel 2003 были введены списки, обеспечивающие работу
баз данных рабочего листа. В версии Excel 2007 списки эволюционировали в таблицы.
Дополнительную путаницу вносят и так называемые таблицы данных, которые вообще
не имеют ничего общего с полноценными таблицами Excel. В этом разделе представле­
ны термины, используемые на протяжении всей главы.
•
База данных листа. Это определенным образом организованная совокупность
информации. Она состоит из необязательной строки заголовков (описательного
Часть II. Использование функций в формулах
238
текста) и находящихся под ней строк, содержащих числовые или текстовые значе­
ния. В этой книге под базой данных листа понимается прямоугольный диапазон,
в котором каждая строка содержит информацию о конкретном элементе данных
(аналогично таблицам реляционных баз данных). В общем случае термин база
данных используется в довольно широком смысле, означая многие понятия, такие
как реляционные базы данных (SQL Server, Oracle и т.д.), файлы CSV, инициализационные файлы и т.д. База данных рабочего листа Excel больше похожа на
обычную таблицу в стандартной базе данных. В отличие от реляционных баз дан­
ных, Excel не позволяет устанавливать отношения между таблицами.
•
Таблица листа. Это база данных рабочего листа, преобразованная в специальный
диапазон с помощью команды Вставка^Таблицы^Таблица. Преобразование
базы данных рабочего листа в таблицу предоставляет пользователю существенные
преимущества, однако в то же время имеет некоторые недостатки. Все они будут
описаны в настоящей главе.
Пример базы данных листа
На рис. 9.1 показана небольшая база данных рабочего листа, содержащая информа­
цию о сотрудниках. Она состоит из строки заголовков, двадцати строк и пяти столбцов
данных. Обратите внимание, что данные имеют несколько разных типов: текст, число­
вые и логические значения, а также даты. Столбец С содержит формулу, вычисляющую
месячную зарплату на основе значения из столбца В.
Рис. 9.1. Типичная база данных рабочего листа
В терминологии баз данных столбец такой таблицы называется полем, а строка — за­
писью. Используя эту терминологию, можно сказать, что диапазон, показанный на
рис. 9.1, имеет пять полей (Имя, Г о д о в а я з а р п л а т а , М е с я ч н а я з а р п л а т а ,
Филиал, Д а т а п р и е м а н а р а б о т у ) и двадцать записей. Учитывайте, что поля часто
называют просто столбцами, а отдельные ячейки — полями.
Глава 9. Базы данных и таблицы листа
239
Размер базы данных, которую можно создать в Excel, ограничен только областью ра­
бочего листа. Теоретически база данных рабочего листа может иметь более 16 тысяч
столбцов и состоять из более миллиона записей. Такая база данных способна заставить
даже самый современный компьютер работать со скоростью черепахи.
Пример таблицы
На рис. 9.2 показана база данных рабочего листа (см. рис. 9.1), преобразованная
в таблицу с помощью команды Вставка^Таблицы«^Таблица.
Рис. 9.2. База данных рабочего листа, преобразованная в таблицу
Так в чем же отличие таблицы от базы данных рабочего листа?
•
Активизация любой ячейки таблицы открывает доступ к контекстной вкладке Ра­
бота с таблицами.
•
Ячейки таблицы позволяют форматировать цвета фона и текста, автоматически
применяемые программой Excel. Это форматирование не обязательно.
•
Каждый заголовок столбца таблицы имеет кнопку, при щелчке на которой откры­
вается список параметров сортировки и фильтрации.
•
Если прокрутить рабочий лист вниз так, чтобы строка заголовков таблицы исчезла
из поля зрения, заголовки заменят собой стандартные буквы имен столбцов элек­
тронной таблицы.
•
В таблицах поддерживаются вычисляемые столбцы. Формула, введенная в одну
ячейку таблицы, автоматически распространяется на все ячейки столбца.
•
В нижнюю часть таблицы легко добавить строку итогов.
•
В таблицах поддерживаются структурированные ссылки. Вместо использования
ссылок на ячейки в формулах могут использоваться имена таблиц и столбцов.
•
В нижнем правом углу крайней правой нижней ячейки таблицы содержится элемент
управления, перетаскивание которого позволяет увеличить размеры таблицы как по
вертикали (с добавлением строк), так и по горизонтали (с добавлением столбцов).
•
Excel способна автоматически удалять дублирующиеся строки таблицы.
•
В таблице упрощен процесс выделения столбцов и строк.
240
Часть II. Использование функций в формулах
Назначение баз данных и таблиц листа
Базы данных и таблицы рабочего листа используются для множества целей. Одним поль­
зователям базы данных рабочего листа помогают отслеживать информацию (например,
о клиентах), другим позволяют накапливать данные, которые затем консолидируются
в сводные отчеты. Среди наиболее распространенных операций с базами данных можно
отметить следующие:
• ввод данных;
•
фильтрация списка с целью отображения отдельных строк, отвечающих опреде­
ленным условиям;
•
сортировка списка;
•
вставка формул для вычисления промежуточных итогов;
•
создание формул для вычисления результатов, которые получены на основе спи­
ска, отфильтрованного по определенным условиям;
•
создание итоговой таблицы данных (часто для этого используются сводные таблицы).
Все эти операции позволяют эффективно организовать информацию в базе данных
или таблице.
Проектирование баз данных рабочего листа и таблиц
Несмотря на то что Excel весьма удобна в управлении информацией, хранящейся
в базе данных рабочего листа, организация и планирование данных имеет важное зна­
чение и позволяет сделать базы данных и таблицы максимально простыми в эксплуата­
ции. Поэтому при создании базы данных рабочего листа или таблицы воспользуйтесь
следующими рекомендациями.
• Первая строка (строка заголовка) должна содержать понятные описатель­
ные подписи (по одной для каждого столбца). Если в качестве подписей столб­
цов используются длинные текстовые строки, отформатируйте ячейки с помощью
команды Переносить по словам, чтобы избежать нецелесообразного расширения
столбцов.
• Каждый столбец должен содержать только один тип информации. Не рекоменду­
ется смешивать в одном столбце текстовые значения и значения в формате даты.
• Формулы, используемые для вычисления данных в других столбцах, должны
располагаться в той же строке, что и исходные данные. Если вычисляющие
формулы обращаются к ячейкам, расположенным за пределами таблицы, резуль­
таты сортировки таблицы могут быть самыми неожиданными.
• База данных не должна содержать пустых строк. Работая с базой данных, Excel
автоматически определяет ее границы, поэтому пустая строка рассматривается
как конец базы данных. Таблица может содержать пустые строки, потому что Excel
отслеживает размеры таблицы.
• Первая строка базы данных должна быть закреплена. Выберите команду
Вид^Окно1^Закрепить области^Закрепить верхнюю строку, после чего вы сможете
свободно перемещаться по списку, не теряя из виду заголовки полей. В таблицах
эта операция не обязательная, потому что заголовки столбцов таблицы подставля­
ются вместо литер столбцов рабочего листа.
Глава 9. Базы данных и таблицы листа
241
Работа с таблицами
Осваивая работу с таблицами, вы вскоре обнаружите, что они предлагают ряд преиму­
ществ по сравнению со стандартными базами данных рабочего листа. Главное преимущество
использования таблиц — это упрощение форматирования. Об этом речь пойдет далее.
Если в формулах используется множество именованных диапазонов, синтаксис таб­
лицы является прекрасной альтернативой для создания имен столбцов и всей таблицы
в целом. К тому же при внесении изменений в таблицу именованные диапазоны автома­
тически корректируются соответствующим образом.
Еще одно преимущество относится к работе с диаграммами. Если диаграмма создает­
ся на основе таблицы, ряды диаграммы автоматически расширяются при добавлении
в таблицу новых данных.
Если ваша компания использует службу SharePoint, вы получите в руки дополнитель­
ное преимущество — сможете публиковать таблицу на сервере SharePoint. Для этого вы­
берите в контекстной вкладке команду Работа с таблицами^Конструктор^Данные
из внешней таблицы^Экспорт^Экспорт таблицы в список SharePoint. Эта коман­
да открывает диалоговое окно, в котором можно ввести адрес сервера, а также предоста­
вить дополнительную информацию, необходимую для публикации таблицы.
В то же время таблицы, по сравнению с базами данных рабочего листа, имеют ряд
ограничений.
Ограничения таблиц
Таблицы Excel имеют ряд преимуществ по сравнению с обычными базами данных
рабочего листа. Однако по определенным причинам создатели инструментария таблиц
наложили на таблицы некоторые ограничения.
•
Если рабочий лист содержит таблицу, невозможно создать и применять пользова­
тельские представления.
•
Таблица не может содержать формулы массивов, распространяющиеся на не­
сколько ячеек.
•
Нельзя автоматически вставлять промежуточные итоги.
•
Нет возможности совместно использовать рабочую книгу, содержащую таблицу.
•
Нельзя отслеживать изменения в рабочей книге, содержащей таблицу.
•
Нельзя также использовать команду Главная^Выравнивание^Объединить и помес­
тить в центре, так как она искажает разделение на строки и столбцы.
Если одно из этих ограничений нарушает ваши планы, преобразуйте таблицу в
обычную базу данных рабочего листа с помощью команды Конструктор^Сервис^Прео­
бразовать в диапазон.
Создание таблиц
Excel позволяет создавать таблицы из пустого диапазона ячеек, однако чаще пользо­
ватели преобразуют в таблицы уже существующие диапазоны данных (базы данных ра­
бочего листа). Следующие инструкции предполагают, что уже существует диапазон дан­
ных, подходящий для создания таблицы.
1. Убедитесь, что диапазон не содержит пустых строк и столбцов.
2. Активизируйте любую ячейку в диапазоне.
242
Часть II. Использование функций в формулах
3. Выберите команду Вставка^Таблицы^Таблица (или нажмите <Ctrl+T>).
В открывшемся диалоговом окне Excel отобразит адрес диапазона данных, опре­
деленный программой эмпирическим методом. Как правило, программа иденти­
фицирует диапазон таблицы корректно; если это не так, исправьте адреса, и толь­
ко затем щелкните на кнопке ОК.
После щелчка на кнопке ОК таблица будет автоматически отформатирована, и в ней
будет включен режим фильтрации. На ленте Excel отобразит контекстную вкладку Ра­
бота с таблицами, Конструктор (рис. 9.3), элементы которой содержат команды, пред­
назначенные для работы с таблицами.
Рис. 9.3. При выборе ячейки таблицы отображается контекстная вкладка Работа с таблицами,
Конструктор
Совет
Существует еще один метод преобразования диапазона в таблицу — выбе­
рите команду Главная^Стили^Форматировать как таблицу.
В диалоговом окне создания таблицы Excel может принять некорректное решение от­
носительно адреса диапазона, если таблица не отделена от остальной информации рабо­
чего листа хотя бы одной пустой строкой или столбцом. В этом случае скорректируйте
поле адреса диапазона или щелкните на кнопке Отмена и реорганизуйте рабочий лист
так, чтобы отделить таблицу от остальной информации пустой строкой и столбцом.
Изменение внешнего вида таблицы
При создании таблицы Excel применяет к ней стиль, принятый по умолчанию. Ее
внешний вид в данном случае зависит от того, какая тема документа была использована
для рабочей книги. Если данный внешний вид вас не устраивает, можете без труда его
изменить.
Выделите любую ячейку в таблице и выберите команду Работа с таблицами^
Конструктор^Стили таблиц«=>Экспресс-стили. Вначале на ленте будет отображена
всего одна строка стилей, однако если щелкнуть в нижней части полосы вертикальной
прокрутки, раскроется вся галерея стилей, разбитая на группы Светлый, Средний
и Темный (рис. 9.4). Обратите внимание, что при перемещении указателя мыши по га­
лерее активизируется функция оперативного просмотра (т.е. ко всей таблице временно
применяется текущий стиль). Если вас устраивает какой-то стиль, щелкните мышью,
и он будет применен к таблице.
Если во вкладке Разметка страницы выбрать команду Темы, откроется галерея,
в которой можно выбрать тему для всей рабочей книги. Тема, в частности, определяет
и состав стилей таблиц в галерее стилей.
Глава 9. Базы данных и таблицы листа
О
243
Совет
Если применение стиля не срабатывает или работает некорректно, скорее
всего, к диапазону до преобразования в таблицу уже был применен какойлибо стиль (табличное форматирование не замещает собой обычное). Для
очистки текущего форматирования цвета фона выделите всю таблицу и вы­
берите команду Главная^Шрифт^Цвет заливки^Нет заливки. Для очистки
текущего цвета шрифта выберите команду Главная^Шрифт^Цвет текста. По­
сле выполнения этих команд стили таблицы будут применяться корректно.
Навигация и выделение в таблице
Перемещение по ячейкам таблицы практически ничем не отличается от перемещения
по ячейкам рабочего листа. Единственное отличие заключается в функциональности кла­
виши табуляции. Нажатие клавиши <ТаЬ> приводит к переходу к соседней ячейке спра­
ва, а по достижению правой границы таблицы (но не диапазона) нажатие клавиши <ТаЬ>
приводит к переходу к первой ячейке слева в следующей строке.
Во время перемещения указателя мыши по таблице его форма динамически изменя­
ется. Форма указателя помогает выделить различные фрагменты таблицы.
• Для выделения всего столбца переместите указатель мыши к верхней границе
ячейки заголовка столбца; при этом его форма изменится на направленную вниз
черную стрелку. После первого щелчка мышью будут выделены все данные в
столбце; после второго — все ячейки столбца, включая заголовок. Для выделения
нескольких столбцов следует удерживать нажатой клавишу <Ctrl> при щелчке
мышью на каждом из них.
• Для выделения всей строки переместите указатель мыши к левой границе пер­
вой ячейки строки таблицы; при этом указатель мыши изменит свою форму на на­
правленную вправо стрелку. Щелчок приведет к выделению всей строки таблицы.
244
Часть II. Использование функций в формулах
Для выделения строки таблицы можно также использовать комбинацию клавиш
<8ЫЙ+пробел>.
•
Для выделения всей таблицы переместите указатель мыши к левому верхнему
углу крайней левой верхней ячейки таблицы. Когда указатель примет форму диа­
гональной стрелки, щелкните мышью, и будет выделен весь диапазон данных таб­
лицы. Второй щелчок приведет к выделению всей таблицы, включая строки заго­
ловков и итогов. Также для выделения всей таблицы можно воспользоваться кла­
вишами <Ctrl+A>.
Совет
При щелчке правой кнопкой мыши на ячейке таблицы открывается контекст­
ное меню, содержащее связанные с таблицей команды.
Добавление строк и столбцов в таблицу
Для того чтобы добавить новый столбец в конец таблицы, активизируйте ячейку в
столбце справа от таблицы и начните ввод данных. Excel автоматически расширит таб­
лицу по горизонтали.
Аналогично, если начать вводить данные в строке сразу под таблицей, таблица будет
увеличена по вертикали и включит в себя новую строку. Исключение составляет ситуа­
ция, когда таблица содержит строку итогов. Если начать вводить данные под строкой
итогов, таблица увеличена не будет.
Для того чтобы добавить строки и столбцы, во внутренней части таблицы щелкните
правой кнопкой и выберите в контекстном меню пункт Вставить. Откроется подменю,
предлагающее вставку столбца слева или строки выше текущей ячейки.
Совет
Когда курсор ячейки находится в крайней нижней правой ячейке таблицы,
нажатие клавиши <ТаЬ> приводит к вставке новой строки внизу таблицы.
При помещении указателя мыши над маркером в правом нижнем углу таблицы его
форма изменяется на диагональную линию с двумя стрелками. Щелкните мышью и пере­
тащите маркер вниз, и в таблицу будут добавлены новые строки. Щелкните мышью и пе­
ретащите этот маркер вправо, и в таблицу будут добавлены новые столбцы.
При вставке в таблицу нового столбца в строку заголовка помещается имя С тол бец 1,
С толбец 2 и т.д. Эти имена лучше заменить на что-либо более информативное.
Удаление строк и столбцов
Для удаления строки (или столбца) таблицы выделите в ней любую ячейку. Если нужно
удалить несколько строк или столбцов, выделите несколько соответствующих ячеек. После
этого щелкните правой кнопкой и выберите в контекстном меню команду Удалить1^
Строки таблицы или Удалить1^Столбцы таблицы.
Запоминание параметров строк и столбцов
При выполнении каких-либо операций над строкой или столбцом таблицы програм­
ма Excel запоминает их параметры и распространяет на добавляемые строки и столб­
цы. К примеру, если к столбцу был применен денежный формат, а затем в таблицу была
Глава 9. Базы данных и таблицы листа
245
добавлена новая строка, денежный формат будет применен и к значению, введенному
в этот столбец новой строки.
То же относится и к другим операциям, таким как условное форматирование, защи­
та ячеек, проверка данных и т.п. Если создается диаграмма на основе данных таблицы,
она будет автоматически расширена при добавлении в таблицу новых данных. Пользо­
ватели, которые работали с предыдущими версиями Excel, наверняка оценят эту новую
функциональность.
Перемещение таблицы
Для перемещения таблицы в новое место в пределах рабочего листа поместите указа­
тель мыши над одной из ее границ. Когда форма указателя изменится на перекрестие
с четырьмя стрелочками, щелкните мышью и перетащите таблицу в новое место.
Для перемещения таблицы на другой рабочий лист (той же или другой рабочей кни­
ги) выполните следующее.
1. Дважды нажмите клавиши <Ctrl+A>. Будет выделена вся таблица.
2. Нажмите <Ctrl+X> для вырезания выделенных ячеек.
3. Активизируйте другой рабочий лист и выделите ячейку, которая будет служить
верхним левым углом таблицы.
4. Нажмите <Ctrl+V>, и таблица будет вставлена.
Настройка параметров таблицы
Группа Параметры стилей таблиц контекстной вкладки Работа с таблицами со­
держит несколько флажков, определяющих сокрытие или отображение некоторых эле­
ментов таблицы, а также некоторые параметры форматирования.
•
Строка заголовков. Отображение строки заголовков.
•
Строка итогов. Отображение строки итогов.
•
Первый столбец. Включение специального форматирования первого столбца.
•
Последний столбец. Включение специального форматирования последнего столбца.
•
Чередующиеся строки. Включение отображения четных и нечетных строк с раз­
ными цветами фона.
•
Чередующиеся столбцы. Включение отображения четных и нечетных столбцов
с разными цветами.
Использование форм данных
Для облегчения обработки данных рабочего листа или таблицы программа Excel может
отобразить диалоговое окно форм данных, которое позволит вводить новые данные, уда­
лять строки, а также искать строки, удовлетворяющие заданным критериям. Это окно ра­
ботает либо с базами данных, либо с диапазонами, преобразованными в таблицы.
К сожалению, команда доступа к формам данных не вынесена на ленту; ее можно ус­
тановить только на панели быстрого доступа. Для этого выполните следующие действия.
1. Щелкните правой кнопкой на панели быстрого доступа и выберите в меню ко­
манду Настройка панели быстрого доступа. Откроется диалоговое окно парамет­
ров Excel с выбранной вкладкой Настройка.
246
Часть II. Использование функций в формулах
2. В раскрывающемся списке Выбрать команды из выберите пункт Команды не на
ленте.
3. В левом списке выберите элемент Форма.
4. Щелкните на кнопке Добавить, чтобы добавить этот элемент на панель быстрого
доступа.
5. Щелкните на ОК, чтобы закрыть диалоговое окно параметров программы.
После выполнения описанных действий на панели быстрого доступа появится новый
значок. Формы данных Excel удобны, но не идеальны. Если вам нравится использовать
диалоговое окно для работы с данными таблицы, можете воспользоваться созданной
мною надстройкой Excel’s Data Form. Бесплатную копию этой надстройки можно загру­
зить с моего сайта www. s p r e a d s h e e t p a g e . com.
Удаление дублирующихся строк из таблицы
Если в таблице есть дублирующиеся строки, можете удалить ненужные копии.
В прошлом удаление дублирующихся строк выполнялось в основном вручную, однако
теперь Excel максимально облегчила пользователям решение этой задачи.
Начните с выделения любой ячейки в таблице. После этого выберите команду Рабо­
та с таблицами^ЖонструкторОСервис^Удалить дубликаты. Откроется диалоговое
окно, показанное на рис. 9.5. В этом диалоговом окне перечислены все столбцы таблицы.
Установите флажки в тех столбцах таблицы, в которых нужно найти дубликаты значе­
ний. По умолчанию установлены флажки во всех столбцах, и, как правило, этот режим
чаще всего и выбирают. Щелкните на кнопке ОК, и Excel удалит из таблицы дублирую­
щиеся строки, после чего отобразит сообщение о том, сколько строк было удалено.
К сожалению, Excel не предоставляет возможности увидеть дублирующиеся строки
перед их удалением. Если результат “очистки” таблицы вас не устроит, можете отменить
выполненную операцию, щелкнув на соответствующей кнопке панели быстрого доступа
или нажав <Ctrl+Z>.
Глава 9. Базы данных и таблицы листа
247
Рис. 9.5. Удаление дублирующихся строк в таблице те­
перь выполнить достаточно просто
Совет
Для того чтобы удалить дубликаты из базы данных рабочего листа, не яв­
ляющегося таблицей, выберите команду Данные^Работа с данными1^ Уда­
лить дубликаты.
Предупреждение
Дублирующиеся значения определяются по содержимому, отображаемому
в ячейках, а не по фактическим данным, в них хранящимся. Для примера
предположим, что одна из дат отображается как 1 5 . 0 5 . 2010 , а в другой
ячейке та же дата отображается как 15 м а я 201 о г . При удалении дублика­
тов Excel будет трактовать эти даты как разные. Поэтому рекомендуется ис­
пользовать во всех ячейках столбца один и тот же формат.
Сортировка и фильтрация в таблице
Строка заголовков таблицы содержит кнопки со стрелками, щелчок на которых при­
водит к отображению параметров сортировки и фильтрации, зависящих от типа столбца.
Например, после щелчка на кнопке в заголовке столбца Дата заявки открывается меню
с параметрами сортировки дат (рис. 9.6). Когда столбец отсортирован или отфильтрован,
рисунок на кнопках в строке заголовка изменяется, чтобы напомнить вам о том, что ото­
бражение строк таблицы зависит от данного столбца.
Компакт-диск
Примеры сортировки и фильтрации приведены в файле 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. Использование функций в формулах
Рис. 9.6. Каждый столбец таблицы содержит элемент управления сортировкой и
фильтрацией
Сортировка таблицы
Сортировка таблицы реорганизует ее строки, основываясь на содержимом заданного
столбца (столбцов). К примеру, сортировка может понадобиться, чтобы упорядочить
фамилии сотрудников по алфавиту или по суммам продаж.
Для сортировки таблицы по некоторому столбцу щелкните на стрелке в заголовке
этого столбца и выберите одну из команд сортировки. Состав этих команд варьируется
в зависимости от типа столбца. Если в столбце содержится текст, будут предложены ко­
манды Сортировка от А до Я и Сортировка от Я до А. Если в столбце содержатся чи­
словые или логические данные, будут предложены команды Сортировка от минималь­
ного к максимальному и Сортировка от максимального к минимальному. Если
в столбце содержатся даты, будут предложены команды Сортировка от старых к но­
вым и Сортировка от новых к старым.
В любом случае можно также воспользоваться командами сортировки по цвету фона
или текста. Этот вариант уместен только в том случае, если изменены цвета стиля табли­
цы или используется условное форматирование, зависящее от содержимого ячеек.
Совет
Если таблица отсо р тир о ва н а по некотором у столбцу, кнопка в его заголовке
дополняется стрелочкой, указы ваю щ ей тип с о р ти р о вки (по возрастанию или
по убы ванию ).
Сортировку можно выполнять по любому количеству столбцов. Вся хитрость в данном
случае заключается в том, чтобы первым выбрать наименее важное (последнее) условие
сортировки, затем более важное и т.д. Наиболее “важный” столбец выбирается последним.
К примеру, в рабочей таблице агентства недвижимости может потребоваться сортиров­
ка по маклерам, занимающимся конкретными объектами, затем по регионам, в которых эти
объекты находятся, и, в заключение, по ценам объектов. В этом случае сортировку придет­
Глава 9. Базы данных и таблицы листа
249
ся вначале выполнить по цене, затем по месту расположения объекта и, в последнюю оче­
редь, по маклерам. На рис. 9.7 показана таблица, отсортированная таким образом.
Р и с . 9.7. Таблица после сортировки по трем столбцам
Компакт-диск
Рабочая книга базы данных агентства недвижимости с названием 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 ) содержится на прилагаемом компакт-диске.
Еще один способ сортировки по множеству столбцов сводится к использованию спе­
циального диалогового окна Сортировка. Для открытия этого окна выберите команду
Главная^Редактирование^Сортировка и фильтра Настраиваемая сортировка.
Также можно щелкнуть правой кнопкой на любой ячейке таблицы, после чего выбрать
в контекстном меню пункт Сортировка^Настраиваемая сортировка.
В диалоговом окне Сортировка используйте раскрывающиеся списки для выбора
первого критерия сортировки. Обратите внимание, что последовательность выбора кри­
териев сортировки в этом диалоговом окне прямо противоположная той, которая была
описана в предыдущем абзаце. В рассматриваемом примере следует начать со столбца
Маклер. После этого щелкните на кнопке Добавить уровень и добавьте следующий
уровень сортировки; в данном случае это будет Регион. Следующим и последним уров­
нем в примере будет столбец Цена объекта. На рис. 9.8 показано диалоговое окно после
задания критериев сортировки по трем столбцам. Результатом применения этих критери­
ев будет та же таблица, которая была показана на рис. 9.7.
Рис. 9.8. Использование диалогового окна Сортировка для настройки сорти­
ровки по трем столбцам
250
Часть II. Использование функций в формулах
Фильтрация таблицы
Под фильтрацией таблицы понимается отображение в ней только тех строк, которые
удовлетворяют заданному критерию (все остальные строки скрываются).
Совет
Программа Excel предлагает два способа фильтрации таблицы. В этом раз­
деле будет описан стандартный метод, ранее называемый автофильтром.
В большинстве случаев этот метод является вполне адекватным. Более
сложные критерии требуют использования расширенной фильтрации, кото­
рая рассматривается далее.
Используя описанную выше таблицу агентства недвижимости, предположим, что нас
интересуют только объекты, расположенные в Митино. В заголовке столбца Регион
щелкните на стрелке и снимите флажок Выделить все. Программа снимет флажки во
всех значениях данного столбца. После этого установите флажок около значения
Митино и щелкните на кнопке ОК. Результат фильтрации показан на рис. 9.9 — в табли­
це теперь отображаются только объекты, расположенные в Митино. Обратите внимание,
что некоторые номера строк пропущены — в этих строках находятся отфильтрованные
(т.е. скрытые) данные. Также обратите внимание на значок кнопки в заголовке столб­
ца — в нем теперь отображается пиктограмма фильтрации.
Рис. 9.9. Эта таблица отфильтррвана и отображает только информацию по объ­
ектам в Митино
Таблицу можно фильтровать по множеству значений (к примеру, отображать объекты
в регионах Митино и Строгино).
Фильтровать таблицу можно также по любому количеству столбцов. К примеру, может
потребоваться просмотреть информацию только по двухкомнатным квартирам в Митино.
В этом случае нужно повторить описанную выше операцию для столбца Кол-во комнат.
Если нужно установить дополнительные параметры фильтрации, выберите пункт
Текстовые фильтры (или Числовые фильтры, если столбец содержит числовые дан­
ные). Пункты открывшегося меню говорят сами за себя, и вы имеете достаточную сво­
боду в отображении только тех столбцов, которые вас интересуют.
В дополнение можете щелкнуть на ячейке правой кнопкой мыши и выбрать в контек­
стном меню команду Фильтр. Открывшееся подменю предложит вам дополнительные
варианты фильтрации.
Совет
В строке итогов отображаются результаты вычислений по видимым строкам.
Глава 9. Базы данных и таблицы листа
251
Некоторые стандартные операции работы с электронными таблицами в фильтрован­
ных таблицах работают несколько по-другому. Предположим, была выбрана команда
Главная^Ячейки^Формат^Скрыть или отобразить^Скрыть строки, чтобы скрыть
строки. Если затем скопировать диапазон, содержащий скрытые строки, все данные бу­
дут скопированы — даже те, которые содержатся в скрытых строках. В отфильтрованной
же таблице копируются только видимые строки. Таким образом, фильтрация упрощает
копирование подмножеств данных больших таблиц и их вставку в другие места рабочего
листа (или книги). Правда, следует заметить, что скопированные данные уже не будут
представлять собой таблицу — это будет обычный диапазон.
Аналогично, можно выделить и удалить видимые строки таблицы, при этом удаление
никак не повлияет на строки, скрытые в результате фильтрации.
Для снятия фильтрации по столбцу щелкните на стрелке в его заголовке и в открыв­
шемся меню выберите команду Удалить фильтр. Если фильтрация установлена по
множеству столбцов, ускорить процесс снятия фильтров поможет команда Глав-
ная^Редактирование^Сортировка и фильтр«=>Очистить.
Работа со строкой итогов
Строка итогов является дополнительным элементом таблицы, содержащим формулы,
которые обобщают информацию в столбце. По умолчанию строка итогов не отображает­
ся. Если нужно, чтобы программа ее отобразила, установите в контекстной вкладке Ра­
бота с таблицами^Конструктор флажок Параметры стилей таблица Строка ито­
гов. Этот флажок позволяет в любое время отображать и скрывать строку итогов.
По умолчанию в строке итогов отображается сумма значений числового столбца, од­
нако в некоторых случаях необходим другой тип обобщения. Если выбратьячейку в
строке итогов, в ней будет отображена стрелка раскрывающегося списка. Вэтомсписке
можно выбрать любую другую обобщающую формулу (рис. 9.10).
•
Нет. Нет формулы.
•
Среднее. Вычисляется среднее значение чисел столбца.
•
Количество. Вычисляется количество непустых ячеек в столбце.
•
Количество чисел. Подсчет количества числовых значений в столбце (пустые,
текстовые и содержащие ошибки ячейки не принимаются в расчет).
•
Максимум. Отображается максимальное значение в столбце.
•
Минимум. Отображается минимальное значение в столбце.
•
Сумма. Вычисление суммы значений в столбце.
•
Смещенное отклонение. Вычисляется смещенное отклонение значений в столб­
це. Смещенным отклонением называется стандартная статистическая единица из­
мерения, характеризующая разброс значений.
• Смещенная дисперсия. Отображение дисперсии значений столбца. Дисперсией
называют еще одну статистическую единицу измерения, характеризующую раз­
брос значений.
• Другие функции. Открывается диалоговое окно, в котором можно выбрать функ­
цию, отсутствующую в списке.
252
Часть II. Использование функций в формулах
Рис. 9.10. Некоторые итоговые функции можно выбрать в раскрывающемся
списке в строке итогов
В списке обобщающих функций есть также функция ПРОМЕЖУТОЧНЫЕ . ИТОГИ, в ко­
торой используется специальный структурированный синтаксис (о нем будет сказано да­
лее). Первый аргумент этой функции определяет тип обобщения. К примеру, если этот
аргумент равен 109, функция будет вычислять сумму. Можно заместить формулу,
вставленную программой, и ввести в итоговую ячейку любую другую формулу. Более
подробно функция ПРОМЕЖУТОЧНЫЕ . ИТОГИ описана ниже.
Предупреждение
Функция промежуточные .итоги является единственной функцией, игнори­
рующей данные, скрытые фильтрацией. Если используются другие форму­
лы, обращающиеся к данным отфильтрованной таблицы, их невозможно
скорректировать так, чтобы учитывались только видимые строки. К примеру,
если используется функция сумм д л я суммирования значений в столбце,
а некоторые строки скрыты, ее результат будет отражать все данные столб­
ца — даже невидимые.
Предупреждение
Если строка итогов скрыта, то формула, ссылающаяся на ячейку строки ито­
гов таблицы, вернет ошибку. Как только строка итогов снова будет восста­
новлена на экране, эта формула будет продолжать работать, как полагается.
Функция ПРОМЕЖУТОЧНЫЕ.итоги
Функция п р о м е ж у т о ч н ы е .итоги достаточно универсальна, однако в то же время
она является одной из самых противоречивых функций в арсенале Excel. Прежде всего,
само ее имя вводит в заблуждение, поскольку она способна вычислять не только итоги.
Первый ее аргумент имеет числовой тип и определяет операцию, выполняемую функ­
цией. Эти числа практически невозможно запомнить, однако функция автозавершения
Excel поможет вам выбрать нужное число.
В версии Excel 2003 функция п р о м е ж у т о ч н ы е .итоги была расширена дополнитель­
ными возможными значениями первого аргумента, решающими проблемы совмести­
мости с более ранними версиями Excel.
Первый аргумент функции определяет реально используемую функцию. К примеру,
если первым аргументом является единица, работа функции п р о м е ж у т о ч н ы е .итоги
аналогична функции с р з н а ч . В следующей таблице представлены возможные значения
первого аргумента функции п р о м е ж у т о ч н ы е . итоги.
Глава 9. Базы данных и таблицы листа
253
Если первый аргумент функции больше ста, она работает по-другому. В частности,
в область расчетов не попадают данные скрытых вручную строк данных. Если же исполь­
зовать первый аргумент, меньший 100, то в формуле промежуточные .итоги учитываются
все вручную скрытые строки, а не учитываются только строки, отсеянные фильтрацией.
Дополнительную путаницу вносит то, что скрытые вручную строки не всегда тракту­
ются одинаково. Если строка скрыта вручную в диапазоне, который тоже скрыт фильт­
ром, Excel трактует их уже как отфильтрованные, а не скрытые вручную. В этом случае
функция с первым аргументом, большим ста, будет вести себя точно так же, как и с ар­
гументом, меньшим ста. При этом снятие фильтра приведет к отображению всех
строк — даже тех, которые ранее были скрыты вручную.
Возможность использования первого аргумента, большего ста, была впервые вве­
дена в версии Excel 2003. Эту обновленную версию функции промежуточные .итоги
можно использовать в любом месте рабочей книги, а не только в таблицах. Однако уч­
тите, что функция не имеет обратной совместимости. Если первый аргумент функции
больше ста, а рабочая книга открыта в версии Excel, предшествовавшей Excel 2003, ее
результатом будет значение ошибки.
Еще одной интересной особенностью функции промежуточные .итоги является ее
способность точно вычислять общий итог. При этом функция игнорирует ячейки, тоже
содержащие формулы с функцией промежуточные .итоги. Эта особенность будет про­
демонстрирована в разделе, посвященном созданию промежуточных итогов.
Использование формул в таблице
Добавление в таблицу строки итогов представляет собой простейший способ обоб­
щения данных столбца таблицы. В то же время часто приходится использовать формулы
внутри таблицы. Предположим, что в таблицу, показанную на рис. 9.11, нужно добавить
254
Часть II. Использование функций в формулах
столбец, отображающий разницу между фактическими и запланированными доходами.
Добавить столбец намного легче, если данные размещены в таблице, а не диапазоне.
Компакт-диск
Рабочая книга 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 ) содержится
на прилагаемом компакт-диске.
Рис. 9.11. В эту таблицу нужно добавить столбец
Чтобы добавить столбец, выполните следующие действия.
1. Активизируйте ячейку Е2 и в качестве заголовка введите Р а зн и ц а . Excel авто­
матически расширит таблицу так, чтобы она включала новый столбец.
2. Перейдите к ячейке ЕЗ и введите знак равенства, указывая на начало формулы.
3. Нажмите стрелку влево, и Excel отобразит формулу = [@ Факт]. Как видите, в
формуле содержится ссылка на заголовок столбца.
4. Введите знак “минус” и дважды нажмите стрелку влево. Формула примет сле­
дующий вид: = [@Факт] - [ @Пла н] .
5. Нажмите <Enter>, чтобы завершить ввод формулы.
Excel скопирует формулу во все строки таблицы.
На рис. 9.12 показана таблица с новым столбцом.
Рис. 9.12. Столбец Разница содержит формулу
Глава 9. Базы данных и таблицы листа
255
Все ячейки нового столбца содержат одну и ту же формулу:
= [ @ Ф а к т ] - [@План]
Примечание
Символ @перед именем заголовка столбца означает конкретную строку,
в которой находится формула.
Обратите внимание, что на рабочем листе мы не создавали никаких имен — формула
использует ссылки на таблицу, основанные на названиях столбцов. Если изменить текст
заголовка столбца, все формулы, ссылающиеся на него, будут автоматически обновлены.
Несмотря на то что мы вводили формулу в первую строку данных таблицы, такой по­
рядок не обязателен. В какую бы ячейку пустого столбца ни вводилась бы формула, она
автоматически будет скопирована во все его ячейки. Если необходимо отредактировать
формулу, скорректируйте содержимое любой ячейки столбца, и все изменения будут от­
ражены в остальных его ячейках.
В приведенном выше примере при создании формулы была использована методика
указания. В качестве альтернативы можно вводить формулу вручную, используя стан­
дартные ссылки на ячейки. К примеру, в ячейку ЕЗ можно ввести следующую формулу:
=D3-СЗ
Если формула вводится с использованием ссылок на ячейки, Excel все равно ее копи­
рует автоматически во все остальные ячейки столбца — просто в данном случае не ис­
пользуются имена столбцов.
Совет
Когда Excel вставляет в вычисляемый столбец формулу, отображается
смарт-тег, содержащий ряд вариантов дальнейших действий. Если предпо­
читаете копировать формулу вручную, выберите вариант Не создавать вы­
числяемые столбцы автоматически.
Ссылки на данные таблицы
В предыдущем разделе было показано, как создавать в таблице столбцы формул. Что
же нужно сделать, чтобы ссылаться на данные таблицы в ячейках, находящихся за ее
пределами? В этом случае можно воспользоваться преимуществами структурированных
ссылок, содержащих имя таблицы, заголовок столбца и прочие элементы таблицы. Нет
никакой необходимости создавать для этих элементов имена.
Сама таблица имеет имя (к примеру, Т аб л и ц а 1). На ее содержимое можно ссылать­
ся, используя заголовки столбцов.
Естественно, при обращении к содержимому таблицы можно использовать и стан­
дартные ссылки на ячейки, однако рассматриваемый метод имеет существенное пре­
имущество: если размеры таблицы изменяются за счет вставки дополнительных строк
или удаления существующих, имена автоматически корректируются.
Рассмотрим рис. 9.13, на котором показана простая таблица, содержащая инфор­
мацию об объемах продаж в регионах. При создании этой таблицы Excel назвала ее
Таблица 8, поскольку по счету она является восьмой таблицей в рабочей книге. Для вы­
числения суммы всех значений таблицы можно использовать следующую формулу:
=СУММ( Т а б л и ц а в )
256
Часть II. Использование функций в формулах
Рис. 9.13. В этой таблице сведены данные
о продажах по месяцам и регионам
Эта формула всегда возвращает сумму всех значений таблицы, даже если в ней будут уда­
ляться и добавляться строки и столбцы. Если вы измените имя таблицы, Excel автоматически
скорректирует все формулы, на нее ссылающиеся. К примеру, если имя Таблица 1 изменить
на Продажи, приведенная выше формула будет изменена на следующую:
=СУММ(Продажи)
Совет
Чтобы изм енить имя таблицы , вы делите в ней лю бую ячейку и о тр е д а кти­
руйте поле Работа с та б л и ц а м и ^К о н с тр у к то р ^С в о й с тв а ^И м я таблицы. Так­
же можно воспользоваться дисп е тче р о м им ен во вкладке Формулы.
Чаще всего формулы будут ссылаются на конкретные столбцы таблицы, а не на всю
таблицу в целом. Следующая формула возвращает сумму всех данных столбца Объем:
=СУММ(Таблица8 [ Об ъем] )
Обратите внимание, что имя столбца заключено в квадратные скобки. При изменении
имени столбца будут автоматически скорректированы все формулы, на него ссылающиеся.
Предупреждение
Учтите, что результат преды дущ ей ф ормулы не будет скорректирован, если
путем ф ильтрации скры ть стр о ки таблицы . П ропустить скры ты е строки
можно с пом ощ ью ф ункций а гр е га т и промежуточные . итоги. В данном
случае можно использовать след ую щ ие ф ормулы:
= П Р О М Е Ж У Т О Ч Н Ы Е .И Т О Г И ( 1 0 9 ; Т а б л и ц а 8 [ О б ъ е м ] )
= А Г Р Е Г А Т (9;1;Т а б л и ц а в [ О б ъ е м ] )
При создании формул, ссылающихся на данные таблицы, Excel обеспечивает пользо­
вателя некоторой поддержкой. На рис. 9.14 продемонстрирована функция автозаверше­
ния, помогающая создать формулу, отображая список элементов таблицы.
А вот еще один пример формулы, возвращающей сумму объемов продаж за январь:
= С У М М ( Т а б л и ц а в [ М е с я ц ] ; " Я н в а р ь " ;Т а б л и ц а в [ О б ъ е м ] )
Перекрестная ссылка
О писание ф ункции суммесли привед ено в главе 7.
Глава 9. Базы данных и таблицы листа
257
Рис. 9.14. При создании формул, ссылающихся на данные таблицы, вам поможет функция
автозавершения
Использовать структурированный синтаксис ссылок на таблицы не обязательно,
можно использовать ссылки на фактические диапазоны. К примеру, следующая формула
вернет тот же результат, что и предыдущая:
=СУММ(ВЗ:В8;"Январь";D3:D8)
Для ссылок на ячейку строки итогов таблицы используется формула следующего вида:
=Таблица8[ [ # И т о г и ] ; [ Об ъем] )
Если строка итогов в таблице не отображается, приведенная выше формула вернет
значение ошибки #ССЫЛКА!.
Эта формула возвращает значение столбца О б ъ е м строки итогов.
Для подсчета общего количества строк в таблице Т а б л и ц а в можно использовать
следующую формулу:
=СТРОКИ(Таблицав[#Все])
Данная формула подсчитывает все строки, включая строки итогов и заголовков. Для
подсчета только строк данных используется формула следующего вида:
=СТРОКИ(Таблицав[#Данные])
Формула, находящаяся в той же строке, что и таблица, может использовать ссылку
с т р о к а . Для примера предположим, что мы вводим формулу в ячейку строки 3,
находящуюся за пределами таблицы. Следующая формула подсчитывает количество за­
писей в строке 3 таблицы Т а б л и ц а в :
#Эта
=СЧЁТЗ(Таблицав[#Эта с т р о к а ] )
Также можно комбинировать ссылки на строки и столбцы, вкладывая квадратные
скобки и включая множество ссылок, разделенных точками с запятой.
=Таблица8[ [#Эта с т р о к а ] ; [ Объем] ] / Т а б л и ц а в [ [ # И т о г и ] ; [Объем] ]
Формулу, подобную этой, гораздо легче создать, используя метод указания.
В табл. 9.1 перечислены идентификаторы строк, а также описано, какой диапазон они
представляют.
258
Часть II. Использование функций в формулах
Таблица 9.1. Ссылки на строки таблицы
Идентификатор
строки
Описание
# В се
Возвращает диапазон, включающий в себя строки данных, заголовков
и итогов
Возвращает диапазон, содержащий только строки данных (т.е. без
строк заголовков и итогов)
Возвращает диапазон, содержащий только строку заголовков. Если
данная строка не отображается, возвращает ошибку # с с ы л к а !
Возвращает диапазон, содержащий только строку итогов. Если данная
строка не отображается, возвращает ошибку # с с ы л к а !
Возвращает диапазон, находящийся на пересечении текущей строки и
таблицы. Если текущая строка не пересекается с таблицей или пере­
секается со строкой итогов или заголовков, возвращается ошибка
# Д анны е
# З а го л о в к и
# И то ги
# Э та
с тр о к а
# З Н А Ч Е Н И Е !
Совет
Для генерации последовательных номеров не скрытых ячеек отфильтрован­
ной таблицы можно воспользоваться функцией промеж уточные .итоги. Ну­
мерация будет изменяться по мере сокрытия и отображения строк в резуль­
тате установки и снятия фильтра. Если таблица содержит имена столбцов в
строке 1, введите следующую формулу в ячейку А2, а затем скопируйте ее
во все последующие строки таблицы:
= ПРОМЕЖУТОЧНЫЕ. И Т О Г И ( 3 ; В $ 2 : В 2 )
Преобразование таблицы в диапазон
Если требуется преобразовать таблицу в обычную базу данных рабочего листа, выде­
лите любую ячейку в таблице и выберите команду Работа с таблицами1^Конструктора
Сервис^Преобразовать в диапазон. Стиль форматирования таблицы останется
прежним, но сам диапазон перестанет функционировать как таблица.
Формулы внутри и вне таблицы, использовавшие структурированные ссылки на таб­
лицы, будут преобразованы в соответствующие диапазоны адресов.
Заполнение промежутков
Импортируя данные, вы можете получить рабочий лист, подобный тому, который по­
казан на рисунке ниже. В этом примере каждая ячейка столбца а связана с несколькими
строками других столбцов. Сортировка такого списка может привести к беспорядочно­
му отображению информации, и, в конечном счете, вы не сможете разобраться, кем из
продавцов было сделано такое количество продаж.
Хорошо, если список невелик. В этом случае отсутствующие данные можно вве­
сти в пустые ячейки вручную. Однако что делать, если размер базы данных огро­
мен? Тогда используйте следующий более эффективный способ заполнения пус­
тующих ячеек.
Глава 9. Базы данных и таблицы листа
259
1. Выделите диапазон ячеек (в рассматриваемом примере это а з : А14).
2. Выберите команду Главная^Редактирование^Найти и выделить^Выделение
группы ячеек.
3. В открывшемся диалоговом окне установите переключатель пустые ячейки.
4. Щелкните на ОК, чтобы закрыть диалоговое окно.
5. В строке формул введите знак равенства, за которым следует адрес первой
ячейки столбца (в нашем примере введите =а з ), после чего нажмите клавиши
<Ctrl+Enter>, чтобы скопировать формулу во все выделенные ячейки.
6. Нажмите <Esc>, чтобы снять выделение.
7. Преобразуйте формулы в значения. Для этого вновь выделите диапазон, скопируй­
те его в буфер обмена и выберите команду Главная1^Буфер обмена^Вставить1^
Вставить значения.
Все пустые ячейки будут заполнены данными, находящимися выше.
Расширенная фильтрация
В большинстве случаев стандартной фильтрации вполне достаточно. Однако если вы
столкнулись с ее ограничениями, может потребоваться расширенная фильтрация, намно­
го более гибкая, чем стандартная, однако требующая дополнительной подготовительной
работы. Расширенная фильтрация обеспечит вас следующими возможностями:
•
использование более сложных условий фильтрации;
•
использование вычисляемых условий фильтрации;
•
копирование строк, которые соответствуют определенным условиям, в другой
диапазон ячеек, указанный пользователем.
Расширенную фильтрацию можно применять в базах данных рабочего листа и в таблицах.
В настоящем разделе будет использована таблица агентства недвижимости, показан­
ная на рис. 9.15. Она состоит из 125 записей и 7 полей. Эта база данных занимает диапа­
зон А8 : G133 и имеет широкий набор различных типов данных: числовых и логических
значений, текстовых строк, а также дат. Строки над таблицей используются для опреде­
ления критериев.
Часть II. Использование функций в формулах
260
Рис. 9.15. Для демонстрации расширенной фильтрации будет исполь­
зована база данных агентства недвижимости
Компакт-диск
Рабочая книга с базой данных агентства недвижимости 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 ) содержится на прилагаемом компакт-диске.
Создание диапазона условий
Перед использованием расширенного фильтра необходимо создать диапазон условий.
Он содержит информацию, которую приложение Excel использует для фильтрации. Диа­
пазон условий должен соответствовать следующим требованиям.
•
Он должен состоять, как минимум, из двух строк. Первая строка содержит все
(или некоторые) заголовки полей списка. Исключение составляет случай, когда
используется вычисляемый критерий. Вычисляемые критерии могут использовать
пустую строку заголовков. (Особенности вычисляемых критериев рассмотрены
в отдельном разделе.)
•
Другие строки диапазона состоят из условий, определенных пользователем.
Диапазон условий может находиться в любом месте рабочего листа или даже на от­
дельном рабочем листе. Однако не следует помещать диапазон условий в строки, кото­
рые входят в базу данных, поскольку при фильтрации базы данных Excel может скрыть
некоторые из них. В результате они не будут отображаться. Поэтому диапазон условий,
как правило, располагается выше или ниже базы данных или таблицы.
На рис. 9.16 показан диапазон условий, расположенный выше базы данных — в диа­
пазоне ячеек A I : В2. Обратите внимание, что данный диапазон условий включает не все
заголовки столбцов, поскольку достаточно включить в него только те заголовки, которые
используются при создании условий фильтрации.
В этом примере условия заданы только в одной строке. Поля в каждой строке диапазона
условий (за исключением строки заголовка) объединены оператором И. Поэтому после
применения расширенного фильтра отображаются только те строки, ячейки которых в
столбце К о л - в о к о м н а т содержат число 3, а в столбце С в о б о д н а — текст ЛОЖЬ. Дру­
гими словами, отображаются только трехкомнатные освобожденные квартиры.
Глава 9. Базы данных и таблицы листа
261
Рис. 9.16. Диапазон условий для расширенной фильтрации
Иногда определение критерия в диапазоне становится затруднительным. Более под­
робно эта тема будет рассмотрена далее.
Применение расширенного фильтра
Для выполнения расширенной фильтрации выполните следующие действия.
1. Убедитесь, что настроили диапазон условий.
2. Выберите команду Данные^Сортировка и фильтр^Дополнительно. Откро­
ется диалоговое окно Расширенный фильтр, показанное на рис. 9.17.
Рис. 9.17. Диалоговое окно Расширенный фильтр
3. Если активная ячейка находилась внутри диапазона базы данных, Excel может
принять эмпирическое решение относительно диапазона данных. При необходи­
мости (если Excel не угадала, что вам нужно) этот диапазон можно изменить.
4. Задайте в окне созданный в п. 1 диапазон условий.
Если был определен диапазон К р и т е р и й , программа вставит его в поле Диапа­
зон условий. При необходимости можно изменить его.
5. Для выполнения фильтрации на месте (т.е. для сокрытия строк, которые не удов­
летворят условиям) установите переключатель в положение фильтровать спи­
сок на месте. Если выбрать второй вариант — скопировать результат в дру­
262
Часть II. Использование функций в формулах
гое место, — нужно будет определить соответствующий диапазон ячеек в поле
Поместить результат в диапазон.
6. Щелкните на О К, и Excel отфильтрует таблицу согласно определенному вами
критерию.
На рис. 9.18 показана база данных рабочего листа после применения расширенного
фильтра. Теперь на экране отображаются только трехкомнатные освобожденные квартиры.
Рис. 9.18. Результат применения расширенного фильтра
Совет
\
При выборе варианта скопировать результат в другое место можно опреде­
лить, какие столбцы включать в копию. Перед открытием диалогового окна
Расширенный фильтр скопируйте заголовки в первую строку области, в ко­
торой собираетесь разместить отфильтрованные строки. В поле Поместить
результат в диапазон диалогового окна Расширенный фильтр задайте ссылку
на скопированные заголовки столбцов. После этого скопированные от­
фильтрованные строки будут содержать только поля, заголовки которых бы­
ли скопированы.
Снятие расширенного фильтра
Расширенный фильтр Excel скрывает все строки, которые не удовлетворяют задан­
ным критериям. Для снятия расширенного фильтра выберите команду Данные^Сорти-
ровки и фильтра Очистить.
Определение условий расширенного фильтра
Ключом к использованию расширенной фильтрации является знание способов
настройки диапазона условий. Именно этой теме будут посвящены следующие раз­
делы. Пользователю предоставлена достаточная свобода, однако некоторые момен­
ты не вполне интуитивно понятны. Вам будет предложено множество примеров, ко­
торые помогут понять процесс создания диапазона условий, позволяющего извлечь
необходимую информацию.
Глава 9. Базы данных и таблицы листа
263
Примечание
Принцип использования отдельного диапазона условий для расширенного
фильтра возник вместе с появлением первой версии Lotus 1-2-3, еще два
десятилетия назад. Позднее этот метод был реализован в приложении Excel
и никогда не изменялся, даже несмотря на тот факт, что определение усло­
вий расширенного фильтра — одно из самых непростых заданий при работе
в Excel. Хотя следует отметить, что использования стандартных средств
фильтрации Excel вполне достаточно для решения подавляющего большин­
ства задач.
Определение одного критерия
Примеры, приведенные в этом подразделе, имеют общее условие отбора записей. Други­
ми словами, выбор необходимой записи определяется содержимым только одного столбца.
Примечание
Для выполнения подобной фильтрации можно использовать стандартные
средства.
Чтобы выбрать только те записи, которые в определенных полях содержат конкрет­
ные значения, введите имя столбца в первую строку диапазона условий, а соответствую­
щее значение— во вторую строку. К примеру, диапазон условий (А1 :А2), показанный
на рис. 9.19, позволяет отобрать только те записи, которые в столбце К о л -в о к о м н а т
содержат значение 4.
Рис. 9.19. Диапазон условий a i :А2 позволяет отобрать записи, которые со­
держат характеристики четырехкомнатных квартир
Обратите внимание, что диапазон условий не обязательно должен включать заголов­
ки всех столбцов. Но если вы периодически используете разные наборы условий, гораздо
удобнее перечислить все заголовки полей в первой строке диапазона условий.
Использование операторов сравнения
Чтобы правильно определить условия поиска, используйте операторы сравнения. Напри­
мер, можно задать отбор тех записей, которые соответствуют одному из следующих условий:
264
•
Часть II. Использование функций в формулах
квартиры, которые имеют не менее четырех комнат;
•
квартиры, имеющие площадь менее 60 квадратных метров;
•
квартиры по цене не более 200 тысяч рублей.
1
Чтобы выбрать записи, которые относятся к квартирам, имеющим как минимум четыре
комнаты, введите в ячейку А1 строку Кол-во комнат, а в ячейку А2 — значение >=4.
В табл. 9.2 перечислены операторы, которые используются для сравнения текстовых
или числовых значений. В том случае, если ни один из этих операторов сравнения не
указан явно, по умолчанию Excel использует знак равенства (=).
Таблица 9.2. Операторы сравнения
Оператор
Т ип сравнения
>
>=
<
<=
<>
Равно
Больше чем
Больше чем или равно
Меньше чем
Меньше чем или равно
Неравно
Использование символов макроподстановки
Условия, представленные в виде текста, могут также содержать два символа макро­
подстановки: звездочка (*) соответствует любому количеству произвольных символов;
вопросительный знак (?) соответствует любому, но только одному символу.
В табл. 9.3 приведены примеры условий, содержащих текстовые значения. Некото­
рые из них нечасто встречаются на практике. Например, чтобы выбрать записи, содер­
жащие единственный символ, в качестве условия необходимо ввести формулу (см. по­
следнюю запись в табл. 9.3).
Примечание
Имейте в виду, что при сравнении текстовых значений регистр символов не
учитывается. Например, символы с е * могут соответствовать как слову Се­
меныч, так и слову СЕКРЕТНО.
Таблица 9.3. Примеры использования условий, содержащих текстовые
значения
Условие
Выбор значения
=" =Я н в а р ь "
Записи содержат только текст Я н в а р ь . Условие должно быть введено точно
так, как показано в этом примере: формула с предшествующим ей знаком
равенства. В качестве альтернативы можно использовать ведущий символ
апострофа и исключить кавычки: ' =Январь
Записи содержат текст, начинающийся словом Январь
Записи содержат текст, начинающийся с символа с
Записи содержат текст, начинающийся
с любого символа,за исключением
символа с
Записи содержат текст, начинающийся с символов от л до я
Январь
с*
<>с*
>=к
*
Глава 9. Базы данных и таблицы листа
265
Окончание табл. 9.3
Условие
Выбор значения
*Округ*
Записи содержат текст, который включает слово О к р у г
Записи содержат текст, начинающийся с символов См.
Записи содержат текст, который начинается с символа с и имеют еще одно
вхождение этого символа
Записи содержат текст, первый и третий символы которого являются сим­
волами с. Обратите внимание, что это не означает выбор только трехсим­
вольных слов
Записи содержат текст, начинающийся и заканчивающийся символом с. Ус­
ловие должно быть введено точно так же, как показано в этом примере: фор­
мула с предшествующим ей знаком равенства. В качестве альтернативы мож­
но использовать ведущий символ апострофа и исключить кавычки: ' =с*с
Записи содержат текст, который не заканчивается символом с
Записи, содержащие четыре символа
Все записи, которые содержат больше или меньше пяти символов, но не в
точности пять
Записи, не содержащие символ с
Записи, содержащие единственный символ вопроса (символ тилццы заме­
щает символ макроподстановки реальным символом вопросительного знака)
Пустые записи
Непустые записи
Записи, содержащие единственный символ с. Условие должно быть введе­
но точно так же, как показано в этом примере: формула с предшествующим
ей знаком равенства. В качестве альтернативы можно использовать веду­
щий символ апострофа и исключить кавычки: ' =с
См*
с*с
и
и
о
*
о
с?с
<>*с
=????
о ? ? ? ? ?
<>*с*
~?
=
<>
= "= с "
Определение множества условий
Достаточно часто возникает потребность в выборе записей, которые удовлетворяют
сразу нескольким условиям и основываются на соответствии более чем одному столбцу
или на соответствии нескольких значений одного и того же столбца. В таких условиях
используются неявные логические операторы И или ИЛИ. Ниже приведены примеры ис­
пользования нескольких условий при обращении к базе данных недвижимости:
•
цена дома ниже 250 тысяч долларов, а минимальная площадь не менее 70 квад­
ратных метров;
•
однокомнатная освобожденная квартира;
•
в квартире не менее четырех комнат, раздельный санузел, а площадь менее 80
квадратных метров;
•
дом, находящийся в базе данных не более одного месяца, ценой выше 300 тысяч
долларов;
•
однокомнатная квартира, находящаяся в базе данных с марта месяца.
Чтобы объединить условия с помощью оператора И, в диапазоне условий должно ис­
пользоваться несколько столбцов. На рис. 9.20 показан диапазон условий, с помощью
которого отбираются записи, содержащие характеристики домов по цене ниже 250 тысяч
долларов и площадью не менее 70 квадратных метров.
266
Часть II. Использование функций в формулах
Рис. 9.20. Данный диапазон условий для отбора записей использует
несколько столбцов и логический оператор и
На рис. 9.21 показан еще один пример диапазона условий, в соответствии с которым
из базы данных отбираются все записи, внесенные в список в марте месяце. Обратите
внимание, что одно из имен полей Д а т а п о д а ч и з а я в к и появляется в диапазоне два­
жды, поскольку в данном случае используется следующее условие: дата занесения в спи­
сок должна быть больше либо равна 1 марта И меньше либо равна 31 марта.
Рис. 9.21. Данный диапазон условий позволяет выбрать те записи,
которые содержат характеристики квартир, внесенных в список
в марте месяце
Глава 9. Базы данных и таблицы листа
jK iN b
267
П редупреж дение
Учтите, что условия, показанные на рис. 9.21, с американскими форматами
даты могут работать неправильно. Чтобы гарантировать совместимость за­
данных условий с различными системами дат, используйте функцию д а т а ,
как, например, в следующих формулах:
=">="&ДАТА( 2 0 0 7 ; 3 ; 1 )
= "< ="&ДАТА(2 0 0 7 ; 3 ; 3 1 )
Чтобы объединить условия с помощью оператора ИЛИ, диапазон условий должен со­
держать больше одной строки. Диапазон условий может содержать любое количество
строк, и все они будут объединены оператором ИЛИ. На рис. 9.22 показан диапазон усло­
вий (A I : СЗ), содержащий две строки.
Рис. 9.22. Данный диапазон содержит два набора условий, каждый
из которых расположен в отдельной строке диапазона
В этом примере после фильтрации списка на экран выводятся строки, соответствую­
щие хотя бы одному из следующих условий:
•
квартира со смежным санузлом и площадью не менее 50 кв. м;
•
дом с раздельным санузлом по цене менее 210 тысяч долларов.
Примечание
Имейте в виду, что с помощью автофильтра подобный отбор выполнить не­
возможно.
Можно повторить условие в нескольких строках, чтобы включить один и тот же кри­
терий в несколько групп, объединенных оператором И. Предположим, что вы ищете од­
нокомнатную квартиру в центре, но также можете рассмотреть предложения трехком­
натных квартир в других районах с ценой меньше 250 тысяч долларов. На рис. 9.23 пока­
зано, как использовать оператор ИЛИ между критериями Р е г и о н и Цена.
268
Часть II. Использование функций в формулах
Рис. 9.23. Повторение значений в диапазоне условий приводит к приме­
нению оператора или только к тем критериям, которые не повторяются
Задание вычисляемых условий
Использование вычисляемых условий окажет существенную помощь при фильтрации
записей. Благодаря вычисляемым условиям можно фильтровать записи на основе одного
или большего количества результатов вычислений. К примеру, можно определить вы­
числяемый критерий, на основании которого будут отобраны записи о квартирах, цена
которых ниже средней.
=Цена<СРЗНАЧ(А:А)
Обратите внимание, что в этой формуле используется ссылка на первую ячейку дан­
ных в столбце Цена. Также, при использовании вычисляемых критериев ячейка сверху
не должна содержать имя поля. Можно оставить верхнюю ячейку пустой или поместить
в нее произвольное описание, например Выше с р е д н е г о .
Кстати, для отображения данных, которые больше или меньше среднего значения,
можете использовать и стандартный фильтр.
Следующий вычисляемый критерий отображает строки, в которых цена квартиры
в пересчете на квадратный метр ниже 3000 долларов. Ячейка А9 является первой в
столбце цен, а Е9 — первой в столбце общей площади. Формула вычисляемого критерия
в данном случае следующая:
= ( А 9 / Е 9 ) <3000
На рис. 9.24 показана база данных агентства недвижимости после фильтрации
квартир, цена которых не превышает трех тысяч долларов за квадратный метр. В
столбец I специально добавлена упомянутая выше формула, чтобы проверить точ­
ность фильтрации.
В следующем примере вычисляемый критерий содержит формулу, отображающую
записи, введенные за последние 60 дней:
=В9>СЕГОДНЯ()- 6 0
Глава 9. Базы данных и таблицы листа
269
Рис. 9.24. В диапазоне условий используется вычисляемый критерий отбора
Запомните следующие правила использования вычисляемых условий.
•
Формула, вычисляющая условия, — это всегда логическая формула, которая воз­
вращает значение ИСТИНА или ЛОЖЬ.
•
В ссылках на столбцы используйте ссылку на ячейку в первой строке данных, а не
на ячейку, содержащую заголовок столбца.
•
В вычисляемых критериях не используйте существующие заголовки полей. По
существу, вычисляемый критерий формирует новое поле таблицы. Таким образом,
в первой строке критерия нужно ввести новое имя поля. Если хотите, можете ос­
тавить это поле пустым.
•
Можно использовать любое количество вычисляемых критериев, а также сравни­
вать и смешивать их с обычными критериями.
•
Если формула вычисляемого критерия ссылается на ячейку вне таблицы, ис­
пользуйте абсолютную, а не относительную ссылку. К примеру, вместо С1
введите $ С $ 1 .
•
В большинстве случаев легче добавить в таблицу новый вычисляемый столбец,
чем создавать вычисляемый критерий.
Функции баз данных
Достаточно часто для создания формул, результаты действия которых соответствуют
определенным условиям фильтрации, используются функции Excel, предназначенные
для работы с базами данных рабочего листа. Эти функции приведены в диалоговом окне
Мастер функций в категории Работа с базой данных. Чтобы открыть его, выберите
команду Формулы^ Библиотека функций^Вставить функцию.
Часть II. Использование функций в формулах
270
В табл. 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
Рис. 9.25. Функция бдсумм используется для суммирования списка с
помощью диапазона условий
Примечание
Может показаться весьма обременительным создавать диапазон условий
каждый раз при использовании функции базы данных. Excel предлагает не­
которые альтернативные способы выполнения условного суммирования
и подсчета. В главе 7 приведены примеры, в которых используются функции
сум м ес л и , с ч ё т е с л и и различные другие методы.
Если вы страстный поклонник формул массивов, вместо диапазона условий можете
использовать формулу массива. В идеале следующая формула массива должна быть ра­
ботоспособна и могла бы устранить необходимость использования отдельного диапазона
условий. Но, к сожалению, функции базы данных не поддерживают массивы, поэтому
данная формула возвращает ошибку #ЗНАЧ!.
{=БДСУММ(В6:G 2 1 ; F 6 ; { "Месяц": " Р е г и о н "; "Ф е в р ал ь ": " С е в е р " } ) }
Вычисление промежуточных итогов
Команда Данные^Структура^Промежуточный итог представляет собой удобный
механизм автоматической вставки формул в базу данных рабочего листа. В ней исполь­
зуется функция ПРОМЕЖУТОЧНЫЕ .ИТОГИ. Чтобы реализовать этот механизм, нужно
сортировать записи каждый раз при изменении значений в определенных столбцах. Бо­
лее подробно функция ПРОМЕЖУТОЧНЫЕ . ИТОГИ описывалась ранее.
(S)
Примечание
Когда выделена таблица, команда Данные^Структура^Промежуточный итог не­
доступна. Таким образом, этот раздел применим только при работе с базами
данных рабочего листа. Если данные находятся в таблице и нужно автоматиче­
ски вставить промежуточные итоги, преобразуйте таблицу в диапазон, восполь­
зовавшись командой Работа с таблицами^Конструктор^Сервис^Преобразовать
в диапазон. После вставки промежуточных итогов можно снова преобразовать
диапазон в таблицу с помощью команды Вставка^Таблицы^Таблица.
272
Часть II. Использование функций в формулах
На рис. 9.26 показан пример диапазона, подходящего для вычисления промежуточ­
ных итогов. Эта база данных отсортирована по столбцам Месяц и Регион.
К ом пакт-диск
Рабочая книга с примерами 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 )
содержится на прилагаемом компакт-диске.
Рис. 9.26. Эту базу данных удобно использовать для вычисле­
ния промежуточных итогов, которые вставляются при каждом
изменении месяца и региона
Чтобы вставить на рабочий лист формулы, подсчитывающие промежуточные итоги,
установите курсор ячейки в любом месте базы данных и выберите команду Данные1^
Структура^Промежуточный итог. Откроется диалоговое окно, показанное на рис. 9.27.
Рис. 9.27. Это диалоговое окно позволяет ав­
томатически вставить формулы промежуточ­
ных итогов в отсортированную таблицу
Диалоговое окно Промежуточные итоги содержит следующие элементы.
•
При каждом изменении в. В этом раскрывающемся списке отображаются все
столбцы, имеющиеся в базе данных. Весь список должен быть отсортирован по
выбранному полю.
Глава 9. Базы данных и таблицы листа
•
273
Операция. Раскрывающийся список предлагает выбрать одну из 11 доступных
функций (по умолчанию Excel предлагает функцию СУММ).
• Добавить итоги по. В этом списке перечислены все существующие столбцы. Ус­
тановите флажок рядом со столбцами, для которых должны вычисляться проме­
жуточные итоги.
•
Заменить текущие итоги. Если этот флажок установлен, Excel будет удалять лю­
бые существующие формулы промежуточных итогов, заменяя их новыми.
•
Конец страницы между группами. Если этот флажок установлен, после каждого
промежуточного итога Excel будет вставлять разрыв страницы.
•
Итоги под данными. Если этот флажок установлен, Excel по умолчанию помеща­
ет промежуточные итоги под самими данными. В противном случае формулы
промежуточных итогов размещаются выше данных.
• Убрать все. Данная кнопка позволяет удалить из списка все формулы промежу­
точных итогов.
Щелкните на ОК, и Excel начнет анализировать записи, вставляя определенные
формулы и создавая уникальную схему промежуточных итогов. На рис. 9.28 показан
рабочий лист после добавления двух наборов промежуточных итогов, один из кото­
рых суммирует значения по месяцам, другой— по регионам. Естественно, функцию
ПРОМЕЖУТОЧНЫЕ .ИТОГИ можно использовать в формулах, создаваемых вручную, од­
нако применение команды Данные^Структура^Промежуточный итог существенно
упрощает задачу.
Рис. 9.28. Excel автоматически добавляет в список формулы промежу­
точных итогов и даже отображает схему итогов
П редупреж дение
После добавления промежуточных итогов к отфильтрованному списку и уда­
ления фильтра итоги перестают быть правильными.
Совет
При создании дополнительных промежуточных итогов не устанавливайте
в диалоговом окне флажок Заменить текущие итоги.
274
Часть II. Использование функций в формулах
Во всех формулах на этом рабочем листе используется функция ПРОМЕЖУТОЧНЫЕ.
ИТОГИ. Например, формула подсчета продаж в январе выглядит следующим образом:
ПРОМЕЖУТОЧНЫЕ . ИТОГИ (9 ; Е2 : Е 4 )
Если формула обращается к двум ячейкам, которые тоже содержат формулу ПРОМЕЖУ­
ТОЧНЫЕ . ИТОГИ, во избежание двойного подсчета эти ячейки в расчет не включаются.
Чтобы установить уровень детализации отображаемых значений, воспользуйтесь
элементами управления схемой итогов. Например, на рис. 9.29 показаны только строки
с суммами, которые содержат функцию ПРОМЕЖУТОЧНЫЕ . ИТОГИ.
Рис. 9.29. Используйте элементы управления структурой, чтобы
скрыть детали и отобразить только строки итогов
Примечание
В большинстве случаев для обобщения данных лучше применять не функ­
цию про ме жу т очные . итоги, а сводные таблицы (см. главу 18). Они более
гибкие и не требуют разработки формул. Функцию про ме жут очные . итоги
рекомендуется применять только для решения простых задач.
Дополнительные виды
вычислений
В этой главе...
• Преобразование единиц измерения
• Решение задач для прямоугольных треугольников
• Вычисление длин, площадей и объемов
• Решение систем линейных уравнений
•
Округление чисел
Эта глава содержит справочную информацию о некоторых видах вычислений в при­
ложении Excel. Возможно, вы будете использовать их не слишком часто, однако знания,
полученные в этой главе, вам, несомненно, пригодятся.
Преобразование единиц измерения
Представьте себе, что вы абсолютно точно знаете расстояние от Нью-Йорка до Лон­
дона в милях, однако ваши партнеры в европейском офисе привыкли оперировать кило­
метрами. Как найти нужный коэффициент преобразования?
Функция ПРЕОБР позволяет преобразовать множество единиц измерения в следую­
щих категориях:
•
масса и вес;
•
расстояние;
•
время;
•
давление;
•
сила;
•
энергия;
•
мощность;
276
Часть II. Использование функций в формулах
•
магнетизм;
•
температура;
•
меры жидкостей.
Примечание
В предыдущих версиях 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 " )
Преобразование прочих еди ниц измерения
Функция п р е о б р , естественно, не может выполнить преобразование абсолютно всех
единиц измерения. Для преобразования единиц измерения, недоступных в функции
п р е о б р , нужно знать соответствующий множитель. Отличным источником информации
может стать Интернет. Воспользуйтесь каким-либо поисковым порталом и введите
в строке поиска название интересующих вас единиц измерения.
Можете загрузить копию популярной программы Convert, написанной Джошем
Мэдисоном. Эта великолепная программа способна преобразовать практически все
существующие единицы измерения (рис. ниже). Загрузить эту программу можно с сай­
та www. j o s h m a d i s o n . c o m / s o f t w a r e .
Глава 10. Дополнительные виды вычислений
277
К ом пакт-диск
На прилагаемом компакт-диске есть рабочая книга т аблица п р е о б р а з о в а ­
ний е д и н и ц . x l s x , в которой содержатся коэффициенты преобразования
множества единиц измерения друг в друга. В этой рабочей книге использу­
ется не функция п р е о б р , а только запрограммированные множители.
Решение задач для прямоугольных
треугольников
Любой треугольник имеет шесть элементов: три стороны и три угла. На рис. 10.1 по­
казан прямоугольный треугольник, который имеет три угла (А, В и С), а также три сторо­
ны (гипотенузу, основание и высоту). Угол С всегда равен 90° (или л/2 радиан), поэтому,
если известны два других элемента этого треугольника (исключая угол С), то с помощью
определенных формул всегда можно вычислить остальные элементы.
К ом пакт-диск
Рабочую книгу, содержащую формулы расчета различных элементов прямо­
угольного треугольника по двум известным элементам, можно найти на прила­
гаемом компакт-диске в файле 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) .
Рис. 10.1. Элементы прямоугольного треугольника
Вспомните, как выглядит теорема Пифагора:
Высотаж2 +Ос нование>ч2 = Г и п о т е н у з а >ч2
278
Часть II. Использование функций в формулах
Если известны две стороны прямоугольного треугольника, всегда можно вычислить
третью. Например, следующая формула вычисляет высоту прямоугольного треугольника
по данным длин гипотенузы и основания:
=КОРЕНЬ(ГипотенузаА2 - О с н о в а н и е А2 )
В другой формуле, вычисляющей основание прямоугольного треугольника, исполь­
зуются гипотенуза и высота:
=КОРЕНЬ( ( Г и п о т е н у з а А2 ) - (ВысотаА2 ) )
Для формулы расчета гипотенузы прямоугольного треугольника нужно задать осно­
вание и высоту:
=КОРЕНЬ( (ВысотаА2 ) + ( ОснованиеА2 ))
Верны также приведенные ниже тригонометрические тождества.
S I N (А)
S I N (В)
COS(А)
COS(В)
TAN(А)
=
=
=
=
=
Высота/Гипотенуза
Основание/Гипотенуза
Основание/Гипотенуза
Высота/Гипотенуза
Высота/Гипотенуза
Примечание
Все тригонометрические функции Excel подразумевают, что угол, являю­
щийся аргументом функции, представлен в радианах. Для преобразования
градусов в радианы используйте функцию радианы. Для обратного преоб­
разования радиан в градусы примените функцию градусы .
Если известны высота и основание, следующую формулу можно использовать для
вычисления угла между гипотенузой и основанием (угол А).
=ATAN( Высота/Основание)
Формула, приведенная выше, возвращает значение угла в радианах. Для преобразо­
вания значения в градусы используйте следующую формулу:
=ГРАДУСЫ(ATAN( В ы с о т а / О с н о в а н и е ) )
Если известны высота и основание, следующая формула может использоваться для
вычисления угла между гипотенузой и высотой (угол В):
=ПИ( ) / 2 - ATAN(Высота/ Ос нование )
Данная формула возвращает значение в радианах. Для преобразования значения
в градусы используйте следующую формулу:
= 9 0 -ГРАДУСЫ(ATAN(Высота/ Ос нование )
На рис. 10.2 показана рабочая книга, которая содержит формулы для вычисления раз­
личных элементов прямоугольного треугольника.
Вычисление длин, площадей и объемов
В этом разделе будут представлены формулы расчета площади, поверхности, окруж­
ности и объема для простых двух- и трехмерных форм.
Площадь и периметр квадрата
Площадь квадрата рассчитывается как квадрат длины одной из его сторон. Следую­
щая формула вычисляет площадь квадрата, сторона которого находится в ячейке с име­
нем с т о р о н а :
= с т о р о н а А2
Глава 10. Дополнительные виды вычислений
279
Рис. 10.2. Данная рабочая книга пригодится для вычисления
элементов прямоугольных треугольников
Чтобы вычислить периметр квадрата, умножьте длину одной из его сторон на 4. Сле­
дующая формула вычисляет периметр квадрата, сторона которого находится в ячейке
с именем с т о р о н а :
=сторона*4
Площадь и периметр прямоугольника
Площадь прямоугольника рассчитывается путем умножения его высоты на основа­
ние. Следующая формула возвращает площадь прямоугольника, используя ячейки с
именами в ы с о т а и о с н о в а н и е :
=высота*основание
Периметр прямоугольника можно вычислить путем сложения его удвоенной высоты
и удвоенного основания. Следующая формула возвращает площадь прямоугольника, ис­
пользуя ячейки с именами в ы с о т а и о с н о в а н и е :
= (высота*2) + ( о с н о в а н и е *2)
Площадь круга и длина окружности
Площадь круга рассчитывается как произведение квадрата радиуса на величину п.
Следующая формула возвращает площадь круга. Ячейка с именем р а д и у с содержит ра­
диус окружности.
=ПИ( ) * ( р а д и у с А2 )
Радиус окружности равен половине ее диаметра.
Чтобы вычислить длину окружности, необходимо умножить диаметр окружности на
величину к. Следующая формула рассчитывает длину окружности, используя ячейку с
именем д и а м етр .
=диаметр*ПИ ()
Диаметр окружности равен радиусу окружности, умноженному на 2.
280
Часть II. Использование функций в формулах
Площадь трапеции
Для вычисления площади трапеции необходимо сложить две параллельные стороны,
умножить их сумму на высоту и разделить на 2. Следующая формула вычисляет площадь
трапеции, используя ячейки с именами с т о р о н а 1, с т о р о н а 2 и в ы с о та:
= ( ( с т ор о на 1 + с т о р о н а 2 ) * в ы с о т а ) / 2
Площадь треугольника
Площадь треугольника представляет собой сумму основания и высоты треугольника,
деленную на два. Следующая формула рассчитывает площадь треугольника, используя
ячейки с именами о с н о в а н и е и в ы с о та:
= (основание*высота)/2
Площадь поверхности и объем шара
Чтобы вычислить площадь поверхности шара, нужно умножить квадрат радиуса на
число я, а затем полученное произведение умножить на 4. Следующая формула возвра­
щает площадь поверхности шара, радиус которого находится в ячейке с именем р а д и у с :
=ПИ( ) * ( р а д и у с А2 ) *4
Объем шара — это произведение радиуса, возведенного в третью степень, на 4я, ко­
торое затем делится на 3. Следующая формула возвращает объем шара, радиус которого
находится в ячейке с именем р а д и у с :
= ( ( р а д и у с А3 ) * (4*ПИ( ) ) ) / 3
Площадь поверхности и объем куба
Площадь поверхности куба определяется путем умножения квадрата его стороны
на 6. Следующая формула вычисляет площадь поверхности куба, используя ячейку с
именем с т о р о н а , которая содержит длину стороны куба:
= ( с т о р о н а А2 ) *6
Объем куба— это возведенная в третью степень длина его стороны. Следующая
формула возвращает объем куба, используя ячейку с именем с т о р о н а :
= с т о р о н а А3
Площадь поверхности и объем конуса
Следующая формула вычисляет площадь поверхности конуса (включая площадь ос­
нования). В формуле используются ячейки р а д и у с и в ы с о т а .
=ПИ( ) *радиус*(КОРЕНЬ(высотаА2 + р а д и у с А2 ) + р а д и у с ) )
Объем конуса вычисляется путем умножения квадрата радиуса основания на число к
и высоту, затем произведение делится на три. Следующая формула вычисляет объем ко­
нуса, используя ячейки с именами р а д и у с и в ы с о та:
= (ПИ( ) * ( р а д и у с А2 ) * в ы с о т а ) / 3
Объем цилиндра
Чтобы вычислить объем цилиндра, необходимо умножить квадрат радиуса основания
цилиндра на число к и высоту. Следующая формула рассчитывает объем цилиндра, ис­
пользуя ячейки с именами р а д и у с и в ы с о та:
= (ПИ( ) * ( р а д и у с А2 ) *высота)
Глава 10. Дополнительные виды вычислений
281
Объем пирамиды
Чтобы вычислить объем пирамиды, необходимо определить площадь ее основания, а
затем умножить ее на высоту и разделить на 3. Представленная ниже формула вычисляет
объем пирамиды, используя для расчетов ячейки с именами ширина (ширина основа­
ния), д л и н а (длина основания) и в ы с о т а (высота пирамиды).
= (ширина*длина*высота) / 3
Решение систем линейных уравнений
В этом разделе рассмотрены формулы, которые используются для решения систем
линейных уравнений. Ниже приведен пример системы линейных уравнений.
Зх + 4 у = 8
4х + 8у = 1
Решить систему линейных уравнений означает найти такие значения х и у, которые
удовлетворяют обоим уравнениям. Система уравнений, приведенная выше, имеет сле­
дующее решение:
х = 7,5
у = -3,625
Количество переменных в системе уравнений должно быть равно числу уравнений.
В предыдущем примере использовались два уравнения с двумя неизвестными. Для ре­
шения системы с тремя неизвестными (х, у и z) требуется три уравнения.
Ниже приведены основные этапы решения системы линейных уравнений с двумя не­
известными, а на рис. 10.3 показано решение системы уравнений, представленной в на­
чале этого раздела.
1. Преобразуйте уравнения в стандартную форму: расположите все переменные
слева от знака равенства. Для выполнения этой операции воспользуйтесь прави­
лами элементарной алгебры. Например, два следующих уравнения идентичны,
однако второе из них представлено в стандартной форме:
Зх - 8 = - 4 у
Зх + 4 у = 8
2. Разместите коэффициенты уравнения в диапазоне ячеек пхп, где п соответствует
числу переменных (на рис. 10.3 коэффициенты расположены в диапазоне ячеек
12 : J3) .
3. Введите константы уравнения (значения, расположенные справа от знака равен­
ства в стандартной форме) в вертикальный диапазон ячеек. На рис. 10.3 это диа­
пазон ячеек L2 : L3.
4. Воспользуйтесь приведенной ниже формулой массива, чтобы сформировать об­
ратную матрицу коэффициентов. На рис. 10.3 формула массива помещена в диа­
пазон ячеек 12 : J 3.
{ =МОБР( 1 2 : J 3 ) }
5. С помощью следующей формулы массива умножьте обратную матрицу коэффи­
циентов на матрицу констант. На рис. 10.3 данная формула массива введена в
диапазон ячеек J 1 0 : J 1 1 , который содержит решение системы уравнений.
=МУМНОЖ( 1 6 : J 7 ; L 2 : L 3 )
282
Часть II. Использование функций в формулах
Рис. 10.3. Рабочая книга, содержащая формулы для расчета системы уравнений
Перекрестная ссылка
©
Формулы массивов подробно рассматриваются в главе 14. В главе 16 будет
продемонстрировано использование итераций для решения систем уравнений.
К ом пакт-диск
Рабочую книгу с формулами, показанными на рис. 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.
Предупреж дение
Примите к сведению, что существует разница между округлением значений
и их форматированием. При форматировании значения для отображения
конкретного положения десятичной точки в формулах, обращающихся
к этим значениям, используется внутреннее, истинное значение; отличие
заключается лишь во внешнем представлении на экране. Когда же значение
округляется, в связанных с ним формулах используются неточные (до опре­
деленного знака) величины.
Та б лиц а 10.1. Ф ункции округления Excel
Функция
Описание
окрвверх
Округляет число до ближайшего целого или до ближайшего кратного
указанному значению
Преобразует цену в рублях, выраженную в виде дроби, в цену в рублях,
выраженную десятичным числом
Преобразует цену в рублях, выраженную десятичным числом, в цену
в рублях, выраженную в виде дроби
Округляет число до ближайшего четного целого. Отрицательные числа
округляются всегда в меньшую сторону
Округляет число до ближайшего меньшего по модулю целого
рубль
.дес
р у б л ь .дробь
чётн
окрвниз
Глава 10. Дополнительные виды вычислений
283
Окончание табл. 10.1
Функция
Описание
целое
нечёт
округл
округлвниз
округлвверх
отбр
©
Округляет число до ближайшего меньшего целого
Округляет число до ближайшего нечетного целого
Округляет число до указанного количества десятичных разрядов
Округляет число до ближайшего меньшего по модулю целого
Округляет число до ближайшего по модулю большего целого
Отбрасывает дробную часть числа так, что остается целое число
Перекрестная ссылка
В главе 6 приведены примеры округления значений времени.
В следующем разделе рассмотрены примеры формул для различных типов округлений.
Основные формулы округления
Функция ОКРУГЛ используется для округления значений до указанного количества
десятичных знаков. Количество десятичных знаков указывается во втором аргументе
функции. Например, ниже приведена формула, которая возвращает значение 1 2 3 , 4 0
(значение округляется до одного десятичного знака).
=0КРУГЛ (12 3 , 3 7 ; 1)
В том случае, если второй аргумент функции ОКРУГЛ равен нулю, значение округля­
ется до ближайшего целого. Например, следующая формула возвращает значение
123, 00:
=0КРУГЛ(1 2 3 , 3 7 / 0 )
Второй аргумент функции ОКРУГЛ может быть отрицательным. В таком случае чис­
ло округляется до знака слева от десятичной запятой. Например, следующая формула
возвращает значение 12 0 , 00:
=0КРУГЛ( 1 2 3 , 3 7 ; - 1 )
Функция ОКРУГЛ округляет значения как вверх, так и вниз. Но как может измениться
значение, такое как 1 2 , 5 при округлении его до целого числа? Оказывается, функция
ОКРУГЛ округляет такие числа в сторону удаления от нуля. Например, следующая фор­
мула возвращает значение 1 3 , 0 :
=0КРУГЛ ( 1 2 , 5 / 0 )
Другая формула, использующая в качестве первого аргумента отрицательное значе­
ние, возвращает значение - 1 3 , 0 (округление в сторону удаления от нуля).
=0КРУГЛ ( - 1 2 , 5 / 0 )
В особых случаях может потребоваться несколько усложнить округление значений.
Тогда воспользуйтесь функцией ОКРУГЛВНИЗ и ОКРУГЛВВЕРХ. Например, следующая
формула возвращает значение 1 2 , 0 . Первоначальное значение округляется вниз.
=0КРУГЛВНИЗ( 1 2 , 5 / 0 )
Следующая формула возвращает значение 1 3 ; 0. Значение округлено вверх до бли­
жайшего целого.
=0КРУГЛВВЕ РХ( 1 2 , 4 3 / 0 )
284
Часть II. Использование функций в формулах
Округление до ближайшего кратного числа
Ф у н к ц и я ОКРУГЛТ о к р у гл я е т о д н о ч и с л о д о б л и ж а й ш е г о зн а ч е н и я , к р а т н о г о за д а н ­
н ом у. С л ед у ю щ ая ф о р м у л а в ы п о л н я е т о к р у гл е н и е д о б л и ж а й ш е г о ч и с л а , к р а т н о г о п яти .
Р езу л ь т а то м это й ф о р м у л ы б у д е т 1 3 5 .
=ОКРУГЛТ(1 3 3 ; 5 )
Округление денежных значений
Часто требуется перевести денежную величину в рублях до ближайшего значения
в копейках. Например, вычисленная цена может быть 4 5 , 7 8 9 2 3 р . Как в этом случае
округлить вычисляемое значение цены до ближайшего значения в копейках? Это доста­
точно просто, ведь существует три метода округления таких значений:
•
о к р у гл е н и е в в е р х д о б л и ж а й ш е г о зн а ч е н и я в к о п е й к а х ;
•
о к р у гл е н и е в н и з д о б л и ж а й ш е г о зн а ч е н и я в к о п е й к а х ;
•
о к р у гл е н и е д о б л и ж а й ш е г о зн а ч е н и я в к о п е й к а х (о к р у г л е н и е м о ж е т п р о и зо й т и к ак
в в ер х , т а к и в н и з).
Следующая формула использует значение в рублях и копейках, содержащееся в ячей­
ке А1, и округляет его до ближайшего значения в'копейках. Например, если ячейка А1
содержит значение 1 2 , 4 2 1 р ., то формула возвращает значение 1 2 , 4 2 р ..
= О К РУ ГЛ (А 1;2)
Чтобы округлить значение вверх до ближайшего значения в копейках, воспользуйтесь
функцией ОКРВВЕРХ. Следующая формула округляет значение ячейки А1 вверх до бли­
жайшего значения в копейках. Если ячейка А1 содержит значение 12 , 4 2 1 р ., то форму­
ла возвращает значение 12 , 4 3р.
=ОКРВВЕРХ(А1; 0 , 0 1 )
Функция ОКРВНИЗ, может округлять значения в рублях вниз. Например, следующая
формула округляет значение ячейки А 1 вниз до ближайшего значения в копейках. Если
ячейка А1 содержит значение 1 2 , 4 2 1 р ., то формула возвращает значение 1 2 , 4 2 р .
=0К РВ Н И З(А 1; 0 , 0 1 )
Чтобы округлить значение в рублях вверх до ближайших пяти копеек, воспользуйтесь
следующей формулой:
= О К Р В В Е Р Х (А 1 ;0 ,0 5 )
Работа с дробными значениями денежных единиц
Если по роду своей деятельности вы занимаетесь финансовыми расчетами, например,
на фондовой бирже, то найдете для себя полезными функции РУБЛЬ. ДРОБЬ и
РУБЛЬ . ДЕС.
В о зь м е м , н а п р и м е р , зн а ч е н и е 9 , 2 5 р . К а к у ю ф у н к ц и ю н е о б х о д и м о и с п о л ь зо в а т ь ,
ч то б ы т о ч н о в ы р а зи т ь д е с я т и ч н у ю ч а с т ь к ак п р о с т у ю д р о б ь (9
1 /4 ,9
2 /8 , 9 4 /1 6 и
т .п .)? Ф у н к ц и я РУБЛЬ. ДРОБЬ и с п о л ь зу е т д в а а р гу м ен та : д е с я т и ч н о е зн а ч е н и е в р у б л я х
и ц ел о е ч и сл о , к о т о р о е б у д е т п р и м е н я т ь в к а ч е с т в е зн а м е н а т е л я д р о б и . С л е д у ю щ а я ф о р ­
м у л а в о зв р а щ а е т зн а ч е н и е 9 , 1 (гд е , 1 о зн а ч а е т ч и с л и т е л ь д р о б и 1 / 4 ) :
= РУБЛЬ. Д РО Б Ь ( 9 , 2 5 ; 4 )
Глава 10. Дополнительные виды вычислений
285
Предупреж дение
Значение, возвращ аем ое ф ункцией р у б л ь . д р о б ь , нельзя использовать
в д р угих вы числениях. Значение, полученное в преды дущ ем прим ере, будет
интерпретироваться как 9 ,1 , но не как 9 ,2 5 . Чтобы вы полнить расчеты с и с ­
пользованием д а нного значения, его необходим о преобразовать обратно в
значение десятичной др о б и. Для это го используется ф ункция рубль . д е с .
Другая функция — Р У Б Л Ь .Д Е С — преобразует значение в рублях, выраженное в ви­
де дроби, в значение в рублях, выраженное десятичным числом. Данная функция также
использует второй аргумент, который представляет собой знаменатель дроби. Например,
следующая формула возвращает значение 9 , 2 5 :
=РУБЛЬ . ДЕС ( 9 , 1 ; 4 )
Совет
Безусловно, ф ункции р у б л ь . д р о б ь и р у б л ь . д е с предназначены не только
для обработки значений в денеж ном ф ормате. Их можно использовать, на­
прим ер, для работы с ф утами и д ю йм ам и. П редполож им , что мы им еем зн а ­
чение, представленное в ф у та х — 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. Использование функций в формулах
Округление до четного и нечетного целого
Иногда может возникнуть необходимость округлить какое-либо значение вверх до
ближайшего четного или нечетного целого. Для этого предназначены функции Н ЕЧЁТ
и ЧЁТН . Данные функции используют только один аргумент и возвращают значение в виде
целого числа. Функция ЧЁТН округляет аргумент вверх до ближайшего четного целого.
Функция НЕЧЁТ округляет аргумент вверх до ближайшего нечетного целого. В табл. 10.2
приведены примеры использования этих функций.
Та б ли ц а 10.2. Р е зультат работы ф ункций ЧЁТН и НЕЧЁТ
Число
Функция ЧЁТН
Функция НЕЧЁТ
-3 ,6
-3 ,0
-2 ,4
-1,8
-1 ,2
-0 ,6
0,0
0,6
1,2
1,8
2,4
3,0
3,6
-4
-4
-4
-2
-2
-2
0
2
2
2
4
4
4
-5
-3
-3
-3
-1
1
1
3
3
3
3
5
Округление значения до л -го разряда значащих цифр
Представьте себе, что вам необходимо округлить значение до определенного разряда
значащих цифр. Например, округлить значение 1432187 до первых двух значащих
цифр — 1400000. Или другой пример: значение 9187877 до значения с тремя значащими
цифрами — 9180000.
Если значение представляет собой положительное число без десятичной части, мож­
но воспользоваться следующей формулой, которая в данном случае будет работать.
Формула округляет значение, содержащееся в ячейке А1, до двух значащих цифр. Для
округления до другого числа значащих цифр следует заменить число 2 в этой формуле
на необходимое значение.
=0КРУГЛВНИЗ(А 1 ; 2 -ДЛСТР(А1))
Чтобы выполнить данную операцию для нецелых и отрицательных значений, необхо­
димо прибегнуть к небольшой хитрости. Следующая формула представляет собой более
распространенный метод решения задачи округления значения, содержащегося в ячейке
А1. При этом число значащих знаков определяется в ячейке А2. Данная формула работа­
ет для положительных, отрицательных и нецелых чисел.
=О К РУ ГЛ (А 1; А 2 - 1 -Ц ЕЛ О Е(L O G 1 0 (A B S (А 1 ) ) ) )
Например, если ячейка А1 содержит значение 1 , 2 7 8 4 5 , а ячейка А2 — значение 3, то
формула возвращает значение 1 , 2 8 0 0 0 (значение округлено до трех значащих цифр).
Часть
Финансовые формулы
В этой части...
Глава 11
Знакомство с финансовыми формулами
Глава 12
Формулы дисконтирования и амортизации
Глава 13
Финансовые планы
Глава
Знакомство с финансовыми
формулами
В этой главе...
♦ Финансовые концепции
♦ Основные финансовые функции Excel
♦ Вычисление компонентов процентной ставки и основных выплат
♦ Преобразование процентных ставок
♦ Ограничения финансовых функций Excel
♦ Вычисления, связанные с облигациями
На практике Excel чаще всего используется для финансовых вычислений. Каждый
день люди принимают сотни тысяч финансовых решений, основанных на числах, кото­
рые вычисляются в электронной таблице. Эти решения варьируются от ответов на про­
стые (Могу ли я купать новый автомобиль?) до ответов на сложные вопросы (Сможет
ли покупка корпорации XYZ принести прибыль в течение последующих 18 месяцев?). Это
первая из трех глав, в которых обсуждаются финансовые вычисления в Excel.
Финансовые концепции
Перед тем как приступить к рассмотрению финансовых функций Excel, следует озна­
комиться с некоторыми основными концепциями этой области. Упоминаемые здесь кон­
цепции не специфичны для Excel, однако их следует принимать в расчет при создании
финансовых формул. Если вы хорошо знакомы с финансовыми концепциями и термино­
логией, можете лишь бегло просмотреть этот раздел. Если же вы новичок в сфере эко­
номики, вам необходимо четкое понимание описываемых концепций.
Стоимость денег во времени
Концепция стоимости денег во времени подразумевает, что деньги имеют разную цен­
ность в разное время. Стоимость денег во времени не имеет отношения ко времени дня, как
Часть III. Финансовые формулы
290
могло бы показаться на первый взгляд, — она учитывает время по отношению к текущему
моменту. Если вы получите тысячу долларов сейчас, их стоимость будет равна одной тыся­
че. В то же время, если вы получили тысячу долларов год назад, то в момент передачи они
стоили ровно тысячу, но на сегодняшний день их стоимость совсем иная.
Если сегодня у вас есть тысяча долларов, вы можете положить их на депозит, инве­
стировать в акции или просто пройтись по магазинам. У вас есть полный контроль над
деньгами, и вы можете заставить их работать на себя. Если вы не можете пользоваться
деньгами в течение года, они имеют для вас меньшую ценность. На самом деле, если бы
вам пришлось расплачиваться сегодня, вы могли бы заплатить меньшую сумму.
Вот некоторые практические примеры, в которых используется концепция стоимости
денег во времени:
•
комиссия и проценты банка;
•
скидка производителей на условиях предоплаты товара.
Входящий и исходящий потоки
Все финансовые формулы работают с денежными потоками. Это значит, что деньги
могут приходить и уходить. Даже те финансовые транзакции, которые, на первый взгляд,
никакого отношения к денежным потокам не имеют, на самом деле напрямую с ними
связаны. Если вы покупаете автомашину в кредит, вы получаете машину, а банк получа­
ет ваше обещание. На первый взгляд, в этой операции не участвуют деньги. С финансо­
вой же точки зрения банк одалживает вам деньги на покупку машины (для вас это при­
ход денежных средств, т.е. входящий поток), а в будущем эти деньги вам придется воз­
вращать банку (это расход денежных средств, т.е. исходящий поток). Тот факт, что
деньги будут использованы именно на покупку автомобиля, никак не влияет на финансо­
вую транзакцию. Следует всегда мыслить в терминах прихода и расхода денежных
средств, т.е. входных и выходных потоков.
Первый вопрос при проектировании финансовых формул должен быть следующим:
“С чьей стороны рассматривать транзакцию?”. Так как любой денежный поток для одной
стороны является положительным (т.е. входящим), а для другой отрицательным (т.е. ис­
ходящим), всегда следует определиться, по отношению к чьему кошельку будут выпол­
няться вычисления.
Если вы покупаете дом и хотите вычислить свои ежемесячные платежи по кредиту,
денежные потоки следует рассматривать со своей точки зрения:
•
когда вы получаете деньги на покупку дома, это положительный поток, т.е. вхо­
дящий;
•
когда вы осуществляете платежи по полученному кредиту, это отрицательный де­
нежный поток, т.е. исходящий.
С точки зрения банка эти денежные потоки прямо противоположные.
В финансовых функциях Excel входящие потоки представляются положительными
значениями, а исходящие — отрицательными.
Совет
Когда формула возвращает заведомо неправильный результат, прежде все­
го проверьте знак, отражающий направление движения денег.
Глава 11. Знакомство с финансовыми формулами
291
Соответствие временных периодов
Наиболее распространенной проблемой, с которой сталкиваются пользователи при
работе с финансовыми функциями Excel, является соответствие временных периодов.
Это простая концепция, однако ей часто не придают значения. Проще говоря, периодич­
ность платежей должна соответствовать периоду процентной ставки. Если в финансовой
функции вы рассчитываете ежемесячные платежи, а определите в ней годовую процент­
ную ставку, то получите заведомо неверный результат. В данном случае нужно преобра­
зовать годовую процентную ставку в месячную, чтобы она соответствовала периодично­
сти платежей.
Все примеры этой главы приводят в соответствие временные периоды в явном виде.
Если процентная ставка делится на 12, это значит, что она из годовой преобразуется
в месячную.
Выбор времени первого платежа
Заключительной концепцией, которую следует помнить при создании финансовых
формул, является выбор времени первого платежа. Иногда первый платеж вносится сра­
зу, а иногда по истечении месяца (или другого используемого временного периода).
К примеру, если вы взяли кредит на покупку машины 15 мая, то, вероятнее всего, первый
платеж должны будете сделать до 15 июня.
В финансовых функциях Excel время первого платежа определяется аргументом Т и п .
•
Если первый платеж должен совершаться в течение месяца, используется значение
О (оно принято по умолчанию).
•
Если первый платеж нужно выполнять сразу, используется значение 1.
Примечание
Авансовые платежи (или первоначальные взносы) не рассматриваются как пе­
риодичные, поэтому на них не влияет аргумент Тип. Авансовые платежи исполь­
зуются во многих примерах этой главы (их обработка будет описана далее).
Основные финансовые функции Excel
Excel предоставляет пять основных финансовых функций: ПС, БС , ПЛТ, СТАВКА
и КПЕР. Все эти функции описаны в настоящем разделе и сопровождаются примерами.
Совет
Фактически в примерах рассматривается одна и та же ситуация с разных
сторон. Многие аргументы во всех этих функциях одни и те же.
Вычисление приведенной стоимости
Функция ПС возвращает приведенную к текущему моменту стоимость инвестиций.
Очевидно, что деньги в будущем будут иметь ценность, отличную от настоящей. Функция
ПС вычисляет сумму, которая на настоящий момент равноценна ряду будущих выплат. Вот
ее синтаксис (здесь и далее обязательные аргументы выделяются полужирным шрифтом).
П С ( ставка ; кпер;плт;б с ; т и п )
Часть III. Финансовые формулы
292
Аргументы финансовых функций
Пять основных финансовых функций Excel имеют много общих аргументов. Ниже
перечислены типовые аргументы и их смысловое значение.
• Ставка. Процентная ставка, выплачиваемая по займу или используемая для дис­
контирования будущих денежных потоков. Период, который охватывает процентная
ставка, должен быть тем же, что и в параметрах Кпер и Плт.
• Кпер. Количество периодов. Это может быть количество платежей по займу или ко­
личество лет депозитного вклада.
Количество периодов должно быть выражено в тех же единицах, которые исполь­
зуются в аргументах Ставка и Плт. К примеру, 30-летний заем с помесячными вы­
платами будет содержать 360 периодов. Именно это значение следует подставлять
в параметр Кпер, а не 3 0.
• Плт. Размер одного платежа. В рассматриваемых финансовых функциях платежи долж­
ны иметь одинаковый размер во всех периодах, а периоды должны быть равнозначны.
Величина платежа включает в себя как выплату по основному займу, так и выплату
процентов.
• БС. Будущая стоимость инвестиции, рассчитанная на основе периодических посто­
янных (т.е. равных по величине) платежей и постоянной процентной ставки. Это по­
следняя операция транзакции. Во многих случаях (например, при единовременном
погашении займа) не существует будущей стоимости.
• ПС. Текущая приведенная стоимость инвестиции. Это первая операция транзакции,
например, получение займа или вклад денег на депозит. Если транзакция состоит
только из платежей, в ней может не существовать приведенной стоимости.
• Тип. Этот аргумент определяет время внесения платежей. Более детальная ин­
формация об этом аргументе содержится в предыдущем разделе.
• Прбл. Приблизительное значение результата. При вычислении процентной ставки
программе для получения результата может потребоваться выполнить множество
итераций. Можно облегчить программе решение этой задачи, указав значение,
близкое к ожидаемому результату.
В примере, приведенном ниже в этом разделе, вычисляется приведенное значение се­
рии будущих выплат, иногда называемых ежегодной рентой. Если каждый год в течение
десяти лет вносится платеж размером в 1200 долларов, то приведенная стоимость этих
платежей составляет 6780,27 долларов.
=nc(,i2;i0;i200;0;0)
Другими словами, если плательщик в настоящий момент предложит вам 6800 долла­
ров, вам будет выгоднее их взять, чем получать в течение 10 лет по 1200 долларов. Если
он предложит меньшую сумму, лучше подождать регулярных ежегодных платежей.
К ом пакт-диск
Все примеры ЭТОЙ главы содержатся в книге b a s i c f i n a n c i a l
l a s . x l s x ( c h a p t e r i i _ R U S . x l s x ) на прилагаемом компакт-диске.
formu­
В приведенной выше формуле вы, наверное, заметили, что процентная ставка взята как бы
ниоткуда. Функция ПС обычно используется для определения, сколько стоят на настоящий
момент будущие выплаты. В этих ситуациях конкретная процентная ставка недоступна.
Глава 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 этот расчет показан в рабочей книге.
Примечание
Из соображений простоты в формулах примеров, приведенных в тексте гла­
вы, используются только константы. На практике чаще всего в аргументы
функций подставляются ссылки на ячейки, как на рабочих листах примеров
на компакт-диске книги.
Рис. 11.1. Вычисление приведенной стоимости
Приведенная стоим ость единовременной будущ ей выплаты
В предыдущих примерах мы имели дело с сериями последовательных регулярных
выплат, однако иногда существует всего одна будущая единовременная выплата.
В качестве примера представим себе, что некоторый богатый родственник решил
дать вам 100 тысяч долларов, но вы не можете получить их до своего сорокалетия. Если
сейчас вам 25 лет, приведенная стоимость будущего платежа составит 31524,17 долла­
ров. Эта сумма получена с помощью следующей формулы:
=ПС ( , 0 8 ; 15 ; 0 ; 10 0 0 0 0)
Часть III. Финансовые формулы
294
Таким образом, это будет единовременный платеж ровно через 15 лет. Если бы у вас
были сейчас какие-либо деньги, вы смогли бы инвестировать их под 8% годовых. Так как
периодических платежей не будет, аргумент Тип в формуле опущен.
Результат формулы свидетельствует о том, что если бы у вас было сейчас 31524,17
долларов и вы бы инвестировали их под 8%, то через 15 лет получили бы сотню тысяч
долларов (рис. 11.2).
Приведенная стоим ость периодических платеж ей с суммой погашения
В некоторых случаях периодические платежи идут в одной связке с большой суммой
единовременной выплаты в конце периода займа.
В качестве примера предположим, что ваш родственник попросил вас инвестировать в его
бизнес. Он предложил следующие условия: если вы внесете инвестицию в 50 тысяч долларов
сейчас, то он будет вам выплачивать ежемесячно по 200 долларов в течение пяти лет, после
чего заплатит единовременным платежом еще 60 тысяч долларов. Чтобы определить, имеет
ли такая инвестиция для вас смысл, найдите приведенную стоимость всех выплат.
= П С (,1/12;60;200;60000/1)
Давайте внимательно посмотрим на каждый из аргументов (рис. 11.3).
•
Вы определили, что при любых обстоятельствах сможете получить прибыль в 10%
годовых, используя свои деньги в течение пяти лет. По этой причине процентную
ставку мы установили в 10%.
•
Все аргументы должны охватывать один и тот же временной период. Так как вы­
платы будут осуществляться ежемесячно, все аргументы должны быть преобразо­
ваны соответствующим образом:
• аргумент С т а в к а делим на 12 месяцев;
• аргумент Кп е р получаем, умножив 5 лет на 12 месяцев в году;
• аргументы Плт и БС оставляем без изменений;
• аргументу Тип присваиваем значение 1, так как предполагается, что первый
платеж будет совершен немедленно.
Рис. 11.2. Приведенное значение
будущей единовременной выплаты
Рис. 11.3. Вычисление приведенной
стоимости будущих платежей с по­
гашением
Из этой формулы выходит, что приведенная стоимость всех будущих выплат состав­
ляет 46698,82 доллара. Следовательно, можно сделать вывод: лучше вложить свои пять­
десят тысяч долларов в какое-либо другое предприятие, чем на данных условиях отдать
родственнику.
Глава 11. Знакомство с финансовыми формулами
295
Совет
Подставляя в аргументы функции различные значения, можно найти нужное
решение. Данный результат вы можете выставить в качестве контрпредло­
жения. При этом вы даже можете воспользоваться функцией подбора пара­
метра программы Excel. Для этого выберите команду Данные^Работа с
данными^Анализ “что если’,с>Подбор параметра. Эта функция поможет по­
добрать такие значения аргументов, при которых приведенная стоимость
будущих выплат составит нужную вам сумму.
Вычисление будущей стоимости
Будущая стоимость является оборотной стороной временных изменений денег. Будущая
стоимость говорит о том, сколько будет стоить известная сумма денег (или известная серия
выплат) через некоторый промежуток времени. Синтаксис функции БС следующий:
БС(ставка;кпер;плт;п с ;т и п )
Будущая стоим ость платеж ей
В этом примере мы предположим, что открыли накопительный счет для своего ре­
бенка, чтобы к окончанию школы насобирать ему сумму, необходимую для платного
обучения в университете. Начиная со следующего месяца, вы будете ежемесячно откла­
дывать 50 долларов на этот счет под 3% годовых. Следующая формула показывает, что
к совершеннолетию у вашего сына на счету будет 14297,02 долларов (рис. 11.4):
=БС(/ 0 3 / 1 2 ; 1 8 * 1 2 ; - 5 0 ; 0 ;0)
Годовую процентную ставку 3% мы преобразуем в месячную; 18 лет также преобра­
зуем в месяцы. Приведенная стоимость отсутствует, так как вы только что открыли счет.
Аргумент Тип равен нулю, так как вносить суммы вы начинаете со следующего месяца.
Будущая стоим ость суммы вклада
В следующем примере вычисляется будущая стоимость суммы денег, которая не бу­
дет пополняться, и с нее не будут сниматься деньги.
Предположим, что вы открыли пенсионный счет, внесли на него 20 тысяч долларов
и планируете через 15 лет выйти на пенсию (рис. 11.5).
=БС (, 0 8 ; 15 ; 0 ; - 2 0 0 0 0 ; 0)
Рис. 11.4. Вычисление будущей суммы платежей
Рис. 11.5. Вычисление будущей стоимо­
сти вклада
В данном примере предполагается, что пенсионный вклад гарантирует получение 8%
годовых. Значение -2 00 00 представляет двадцать тысяч долларов, уходящих от вас в
Часть III. Финансовые формулы
296
банк. В результате мы получаем 63443,38 долларов— эту сумму вы получите через 15
лет при выходе на пенсию.
Округление в финансовых ф орм улах
При использовании финансовых формул проблема округления значений ощущается
особенно остро. Excel предлагает несколько функций для выполнения этой задачи:
ОКРУГЛ, ОКРУГЛВНИЗ И ОКРУГЛВВЕРХ.
Чтобы предотвратить накопительные ошибки, округляйте только конечный получае­
мый результат. Другими словами, избегайте округления промежуточных данных.
Обычно результаты финансовых расчетов отображаются в виде чисел с двумя деся­
тичными разрядами или вообще без таковых. В промежуточных расчетах это предпола­
гает получение результатов с точностью до цента или доллара.
В отдельных случаях вычисления базируются на приблизительных данных или дан­
ных, полученных в результате эмпирического анализа или подбора параметров. Поэто­
му уже давно обычной практикой стало применение округленных значений (чтобы не
утруждать себя вводом длинных значений). Предположим, что вы арендуете торговое
помещение площадью 1537 квадратных метров по цене 43,55 долларов за квадратный
метр. Простое умножение приводит к получению суммы $66936,35. Однако вы знаете,
что арендная плата может изменяться (скажем, в диапазоне от 42 до 45 долларов).
В результате конечная сумма аренды будет колебаться в небольших пределах. Чтобы
избежать излишней неточности, конечную сумму можно округлить до ближайших ста
или даже тысячи долларов.
Одна из потенциальных опасностей, привнесенная современными технологиями, —
это быть обманутым видимой точностью на самом деле приблизительных оценок.
Будущ ая стоим ость платеж ей и суммы вклада
Также можно вычислить будущую стоимость и уже существующего вклада, на кото­
рый периодически будут добавляться (или сниматься) деньги.
В предлагаемом примере мы собираемся вносить ежемесячные платежи в сумме 900
долларов по закладной на сумму 150 тысяч долларов. Процентная ставка составляет 5,75%
годовых. Следующая формула вычисляет, сколько мы останемся должны через пять лет:
=БС ( ,0 5 7 5 /1 2 /5 * 1 2 ;- 9 0 0 ;1 5 0 0 0 0 ;0 )
Платежи вносятся ежемесячно, поэтому все остальные аргументы мы соотносим с
месяцами— количество лет умножается, а процентная ставка делится на 12. Текущий
баланс показан как приход денег, хотя на самом деле они не поступают в настоящий мо­
мент — это движение было, когда мы изначально покупали дом. Так как область опреде­
ления задачи распространяется на пять будущих лет, начиная с текущего момента, со­
вершенно не имеет значения, когда на самом деле был выполнен начальный платеж.
Совет
Лучше представить себе данную задачу следующим образом. Некто одол­
жил вам 150 тысяч долларов, чтобы выкупить закладную на дом, хотя на са­
мом деле этого не произошло. Вычисленное значение - 1 3 7 4 3 5 , ю — это
сумма выходного потока по истечении пяти лет.
Глава 11. Знакомство с финансовыми формулами
297
Вычисление сумм платежей
Функция ПЛТ вычисляет суммы периодических платежей, необходимых для сведения
текущего баланса (пс) к нулю или некоторому другому значению (бс). Синтаксис этой
функции следующий:
П Л Т (ставка;клер ;пс ;б с ;т и п )
Вычисление платежей по займу
Когда деньги берут в кредит, ключевым вопросом является величина периодических
платежей.
В предлагаемом примере предполагается, что вы покупаете машину стоимостью 32
тысячи долларов в кредит, и вам нужно вычислить сумму ежемесячных платежей. Вы
внесли авансовый платеж размером в 4 тысячи долларов, а дилер предложил воспользо­
ваться кредитом на четыре года с процентной ставкой 2,1% годовых (рис. 11.7).
= П Л Т (,021/12;4*12;28000;0;0)
Рис. 11.6. Вычисление будущей стоимости
вклада и платежей
Рис. 11.7. Вычисление платежей по займу
Эта формула возвращает значение 608,69 долларов. Таким образом, если вы в со­
стоянии платить такие ежемесячные взносы, то можете получить в кредит 28 тысяч дол­
ларов и полностью погасить его за 48 месяцев.
Предупреждение
Если одна из ф инансовых ф ункций вернула ош ибку #число ! или заведомо не­
правильный результат, прежде всего нужно посм отреть на направление д е ­
нежного потока. О бращ айте внимание на знаки сумм в прим ерах настоящ его
раздела, и вы лучше поймете, какие знаки нужно присваивать аргументам.
Вычисление пенсионных платежей
В некоторые вычисления платежей нужно включать величину будущей стоимости.
В следующем примере предположим, что на пенсионном счету у вас имеется 700 ты­
сяч долларов. Теперь предположим, что вам нужно рассчитать снимаемые с этого счета
суммы на следующие 20 лет так, чтобы на нем в результате осталось 100 тысяч долла­
ров. Именно такие суммы вы сможете тратить каждый месяц (рис. 11.8).
=ПЛТ( , 0 6 / 1 2 ; 2 0 *1 2 ; - 7 0 0 0 0 0 ; 1 0 0 0 0 0 ; 0 )
Если вы точно знаете банковский процент на вклад (6%), то сможете снимать с пен­
сионного счета ежемесячно по 4798,59 долларов в течение 20 лет, и в результате у вас
останется еще 100 тысяч долларов.
298
Часть III. Финансовые формулы
Рис. 11.8. Вычисление выплат с пенсионного счета
Вычисление процентной ставки
Функция СТАВКА вычисляет процентную ставку по займу или инвестиции, базируясь
на величине будущей стоимости. В транзакциях, в которых процентная ставка не задана
жестко, эта функция может быть использована для вычисления неявной ставки (ставки,
по которой можно было бы получить такой же доход). Синтаксис функции следующий:
СТАВКА( клер ; с т а в к а ; п с ; б с ; т и п ; п р е д п о л о ж е н и е)
Ставки краткосрочных займов
Краткосрочные займы обычно должны погашаться в течение 14 дней и, как правило,
предполагают 15 долларов комиссии с каждых ста взятых взаймы долларов.
Если вы взяли в кредит 200 долларов и согласились через 14 дней отдать 260 долла­
ров, процентную ставку можно вычислить по следующей формуле:
=СТАВКА( 1 ; 0 ; 2 0 0 ; - 2 6 0 ; 0 ; # 0 1 ) * 3 6 5 / 1 4
Значение периода равно единице по той причине, что предполагается всего одна про­
плата. Этот единственный период охватывает 14 дней, поэтому результат нужно разде­
лить на количество дней в году (365) и умножить на 14. Полученный результат (782%)
такой большой потому, что заем краткосрочный (рис. 11.9).
Рис. 11.9. Вычисление процентной ставки кратко­
срочного займа
Примечание
Процентные ставки обычно опредёляются из расчета одного года, даже если
срок займа больше или меньше года. Преобразование процентной ставки
к годовой позволяет сравнить различные условия кредитных договоров. Если
попытаться сравнить месячную процентную ставку с годовой, то первая будет
выглядеть существенно меньшей, хотя на самом деле таковой не является.
Глава 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%.
Рис. 11.10. Вычисление темпов роста
Примечание
Аргумент приближенного результата (прбл) используется в нескольких фи­
нансовых функциях. Можно опустить этот аргумент; в таком случае 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). Если баланс стремится к нулю, значит, процентная ставка вычислена правильно.
Вычисление количества периодов
Функция КПЕР используется для определения количества платежей, необходимых
для выплаты займа или накопления на счету определенной суммы. Ее синтаксис сле­
дующий:
КПЕР(с т а в к а ; ПЛТ; п с ; б с ; т и п )
Часть III. Финансовые формулы
300
Рис. 11.11. Таблица погашения кредита проверяет результаты расчета про­
центной ставки
Количество л е т д о выхода на пенсию
Если вы знаете, сколько денег вам нужно, чтобы выйти на пенсию, и осуществляете
регулярные платежи на пенсионный счет, то можете воспользоваться функцией КПЕР
и вычислить возраст, в котором вам можно будет выйти на пенсию.
Предположим, что для выхода на пенсию вам нужно полмиллиона долларов, и вы
вносите ежемесячно на счет по сто долларов. Далее предположим, что текущий баланс
на пенсионном счету составляет 350 тысяч долларов. Следующая формула вернет коли­
чество лет, через которые вы сможете выйти на пенсию:
=КПЕР( , 1 / 1 2 ; - 1 0 0 ; - 3 5 0 0 0 0 ; 5 0 0 0 0 0 ;0)
Предположим, что вы получаете по своим инвестициям 10% годовых; в этом случае
функция вернет значение 41,8 месяцев, т.е. три с половиной года. Если вы знаете, сколь­
ко денег вам будет достаточно на неделю, и хотите накопить такую сумму, чтобы обес­
печить себя на 20 лет, то можете скомбинировать функции КПЕР и ПС, и вы узнаете, че­
рез какой срок накопите нужную для пенсии сумму.
=КПЕР( , 1 / 1 2 ; - 1 0 0 ; - 3 5 0 0 0 0 ; ПС( , 1 / 5 2 ; 2 0 * 5 2 ; - 1 0 0 0 ; 0 ; 0 ) ; 0 )
Функция ПС используется в качестве аргумента БС; предполагается, что вам каждую
неделю нужно снимать в течение 20 лет по тысяче долларов и что вы имеете 10% годо­
вых. При этих предположениях вы сможете выйти на пенсию через 2,4 года.
Обе формулы, описанные в настоящем разделе, показаны в работе на рис. 11.12.
Досрочное погаш ение кредита
В прошлые годы множество людей рефинансировали свои закладные на дома, чтобы по­
лучить выгоду от падающих процентных ставок. Функцию КПЕР можно использовать для
подсчета, насколько меньше платежей придется выполнить в схеме с рефинансированием.
В следующем примере предполагается, что вы имеете закладную на 200 тысяч долла­
ров под 7,5% годовых. Следующие 20 лет вам придется вносить по 1611,16 долларов в
месяц. Если рефинансировать в 5,75%, но оставить сумму платежей без изменений, сле­
дующая формула поможет подсчитать, на сколько лет раньше вы сможете погасить заем
(рис. 11.13).
Глава 11. Знакомство с финансовыми формулами
301
= ( 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 )
Рис. 11.12. Использование функции
расчетов
кпер
для пенсионных
В качестве аргумента платежей используется функция ПЛТ, вычисляющая значение
1 6 1 1 , 1 9 — это размер выплат по условиям текущей закладной. Вычтем полученный
результат из 240 месяцев (т.е. двадцати лет) и получим, что в схеме с рефинансировани­
ем кредит можно будет погасить на 51 месяц раньше.
Рис. 11.13. Вычисление эффекта досрочного погашения кредита
Примечание
Функция кпер может возвращать дробный результат (например, 4,26 меся­
цев), однако вас он, вероятно, не удовлетворит. В этом случае воспользуй­
тесь встроенными в Excel средствами подбора оптимального результата
(команда Данные^Работа с данными«=>Анализ “что если,,с>Подбор параметра).
Вычисление компонентов процентной ставки
и основных выплат
В этом разделе мы рассмотрим функции Excel, которые позволят сделать следующее:
•
вычислить компоненты выплаты процентов и основной составляющей кредита;
•
вычислить накопительную сумму компонентов выплаты процентов и основной со­
ставляющей кредита между любыми двумя периодами времени.
302
Часть III. Финансовые формулы
К ом пакт-диск
Примеры, приведенные в этом разделе, содержатся на прилагаемом ком­
пакт-диске в файле 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 )
Рис. 11.14. Вычисление основной и процентной
составляющих выплат по кредиту
Формулы для остальных периодов те же, за исключением аргумента периода. Сумми­
рование компонентов дает тот же результат, что и вычисление общего платежа с помо­
щью функции ПЛТ.
Глава 11. Знакомство с финансовыми формулами
303
Примечание
Не правда ли, интересный (и удручающий) факт, насколько мала доля ос­
новной составляющей первой выплаты.
Использование функций
общдоход
и общплат
Функции ОС ПЛТ и ПРПЛТ позволяют вычислить основную и процентную составляю­
щие проплаты для конкретного периода. Функции ОБПЩОХОД и ОБЩПЛАТ позволяют
вычислить те же величины для заданной серии платежей. Синтаксис этих функций пока­
зан ниже (обязательны все аргументы).
ОБПЩОХОД(ставка;кпер;пс;начальнпериод;конечнпериод;тип)
ОБЩПЛАТ(ставка;кпер;пс;начальнпериод;конечнпериод;тип)
В следующем примере вычисляется процентная составляющая выплат за кредит на
покупку дома за 2006 год. Предполагается, что сумма кредита равна 220 тысяч долларов;
кредит был взят в октябре 2004 года, а процентная ставка составляет 6%.
=0БЩПЛАТ(,06 /12 ;30 *12 ;220000 ;16 ;27 ;0 )
Январь 2006 года представляет собой шестнадцатый период, а декабрь 2006 года —
двадцать седьмой. Проценты, выплаченные за промежуток времени, ограниченный эти­
ми периодами, составляют 12916,64 долларов.
Следующая формула вычисляет, на сколько за тот же период уменьшилась сумма ос­
новной составляющей (2911,50 долларов):
=ОБЩЦОХОД(,06 /12 ;30 *12 ;220000 ;16 ;27 ;0 )
На рис. 11.15 показана рабочая книга, вычисляющая накопительные составляющие
платежей для любой последовательности периодов. Введите в ячейку В4 номер началь­
ного периода, а в ячейку В5 — номер конечного. Общая сумма основной составляющей
отображается в ячейке Е4, а общая сумма процентов — в ячейке D5.
Проверить правильность вычислений вам поможет размещенная на этом же рабочем
листе таблица погашения кредита.
Рис. 11.15. Использование функций
общ дох од и о б щ п л а т
304
Часть III. Финансовые формулы
Преобразование процентных ставок
В предыдущих примерах был использован упрощенный метод преобразования про­
центных ставок. Мы использовали либо номинальную ставку, хорошо подходящую к пе­
риоду займа, или оценивали ставку. Частота номинальных ставок предполагалась той же,
что и у платежей — как правило, помесячная. В данном случае никаких преобразований
не требовалось.
В предыдущих примерах дисконтирования оценивалась процентная ставка (например,
8% пенсионной ставки), которую нет необходимости преобразовывать. Преобразование
приблизительных ставок, заданных с определенной долей точности, бессмысленно. Однако
все же существуют ситуации, когда процентные ставки нужно преобразовывать. В этом
разделе рассмотрены разные типы процентных ставок и методы их преобразования.
Методы ограничения процентных ставок
Существует три распространенных метода ограничения процентных ставок.
•
Номинальная ставка. Это и есть ограниченная ставка. Она ограничена времен­
ным периодом года, и частота начислений по вкладу также соответствует году
(к примеру, 6% годовых по пенсионному накопительному вкладу начисляется по­
месячно).
•
Годовая эффективная ставка. Это фактическая процентная ставка, начисляемая
или выплачиваемая ежегодно. К примеру, номинальная ставка 6%-ного пенсион­
ного счета, начисляемая ежемесячно, фактически приносит 61,68 долларов дохода
по вкладу в одну тысячу долларов. В данном случае эффективная ставка составля­
ет 6,168%.
•
Периодическая эффективная ставка. Применяется к основной сумме за теку­
щий период, обычно меньший года. К примеру, 6%-ная ставка пенсионного вкла­
да, приведенная к периодической, составляет 0,5% в месяц.
Формулы преобразования
Ограниченные процентные ставки можно преобразовать друг в друга; для этого Excel
предлагает две функции: НОМИНАЛ и ЭФФЕКТ. Периодическая ставка равна номиналь­
ной, деленной на количество составляющих периодов; никакой специальной функции
для такого преобразования не требуется. Синтаксис данных функций таков:
НОМИНАЛ(эффективнаяставка;клер)
ЭФФЕКТ(номинальная_ставка;кпер)
Примечание
Большинство банков и других финансовых учреждений рассчитывает годо­
вую номинальную процентную ставку и добавляет суммы на счет ежемесяч­
но. Однако в отчетах о доходах от инвестиций или при сравнении процент­
ных ставок чаще всего используются эффективные процентные ставки.
К примеру, 12 процентов годовых, начисляемых ежемесячно, гораздо боль­
ше тех же 12 процентов, начисляемых ежеквартально, и на первый взгляд
трудно оценить, сколько составляет разница.
Глава 11. Знакомство с финансовыми формулами
305
Номинальная ставка в 12%, начисляемая ежемесячно, может быть преобразована
в периодическую по следующей формуле:
=, 12/12
Таким образом, получается результат 1% в месяц. Для преобразования этой ставки
в эффективную используется следующая формула:
=ЭФФЕКТ(/ 1 2 ; 1 2 )
К ом пакт-диск
Примеры этого раздела содержатся в файле r a t e
( c h a p t e r i i _ R U S . x l s x ) на прилагаемом компакт-диске.
con version .xlsx
Применяя эту формулу, мы получим, что фактическая сумма начислений за год со­
ставит 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% — именно такова годовая номи­
нальная процентная ставка, начисляемая ежемесячно.
Ограничения финансовых функций Excel
Основные финансовые функции (ПС, БС, ПЛТ, СТАВКА, КПЕР, ОБПЩОХОД и ОБЩПЛАТ)
Excel имеют немало достоинств, однако существуют и некоторые ограничения:
•
они обрабатывают только один уровень процентной ставки;
•
они обрабатывают только один уровень платежа.
Например, функция КПЕР не может использоваться при изменении суммы платежа,
что характерно при использовании кредитной карточки. В таких вычислениях ежемесяч­
ная выплата основывается на уменьшении остаточного баланса. Она может также подчи­
няться правилу минимальной суммы.
Общее решение задачи переменных платежей состоит в создании плана платежей на­
личными и применении других финансовых функций, которые могут обрабатывать раз­
личные ставки и периодические выплаты. Примеры подобных расчетов приведены в
следующих двух главах. Если вкратце, то для этого применяются следующие функции.
•
БЗРА С П И С . Возвращает будущую стоимость первоначальной основной суммы
после применения ряда ставок сложных процентов.
•
ВСД. Возвращает внутреннюю ставку доходности для ряда потоков денежных
средств, представленных численными значениями.
•
ЧПС. Возвращает величину чистой приведенной стоимости инвестиции, используя
ставку дисконтирования, а также стоимости будущих выплат (отрицательные зна­
чения) и поступлений (положительные значения).
•
МВСД. Возвращает модифицированную внутреннюю ставку доходности для ряда
периодических денежных потоков. Функция МВСД учитывает как затраты на при-
306
Часть III. Финансовые формулы
влечение инвестиции, так и процент, получаемый от реинвестирования денежных
средств.
•
ЧИСТВНДОХ. Возвращает внутреннюю ставку доходности для серии денежных
•
ЧИСТНЗ. Возвращает чистую приведенную стоимость для денежных потоков, ко­
потоков, которые не всегда носят периодический характер.
торые не всегда являются периодическими.
В ситуациях, слегка отличающихся от стандартных, финансовые функции можно
комбинировать и вкладывать друг в друга.
Ком пакт-диск
Примеры этого раздела содержатся в файле 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 ) на прилагаемом компакт-диске.
Отсроченное начало ряда регулярных выплат
В некоторых случаях ряд выплат может иметь отстроченное начало. Существует воз­
можность вычислить приведенную стоимость регулярного ряда потоков с отсроченным
началом, вкладывая функции ПС.
В следующем примере предполагается, что мы берем кредит, чтобы открыть свой
бизнес. Ежемесячно мы способны выплачивать по 7000 долларов, однако договорились с
банком, что первый платеж будет отсрочен на 12 месяцев. Если ставка по кредиту со­
ставляет 8%, а кредит был взят на 10 лет, следующая формула подскажет, сколько можно
взять взаймы (рис. 11.16):
=ПС( 0 , 0 8 / 1 2 ; 1 2 ; 0 ; -ПС( 0 , 0 8 / 1 2 , 1 0 * 1 2 ; - 7 0 0 0 ) )
Рис. 11.16. Двухэтапный процесс вычисления приве­
денной стоимости регулярных платежей с отсрочкой
Вначале вычисляем приведенную стоимость, равную 576950 долларов. Это значение
используется в качестве аргумента будущей стоимости внешней функции. Внешняя
функция вычисляет проценты за год, получая в результате 532733 долларов. Другими
словами, если одолжить 532733 долларов сейчас, эта сумма увеличится до 576950 долла­
ров, если платежи не выполнять один год и далее выплачивать по 7 тысяч долларов еже­
месячно в течение оставшихся лет.
Глава 11. Знакомство с финансовыми формулами
307
Оценка серии различных по сумме платежей
В следующем примере вычисляется приведенная стоимость серии платежей, изме­
няющихся во времени.
•
Годы 1-3: 5000 долларов в месяц.
•
Годы 4-6: 6500 долларов в месяц.
•
Годы 7-9: 8500 долларов в месяц.
Следующая формула вычисляет приведенную стоимость такого кредита в предполо­
жении 10% годовых.
=ПС( , 1 / 1 2 ; 3 6 ; - 5 0 0 0 ) +
ПС(,1/12;3*12;0;-ПС(,1 /1 2 ; 3 6 ; -6 5 0 0 ) )+
ПС(,1 / 1 2 ; 6 * 1 2 ; 0 ; -ПС( , 1 / 1 2 ; 3 6 ; - 8 5 0 0 ) )
Результатом этой формулы будет сумма в 449305 долларов. Получена она будет
в три этапа.
1. Вычисляется приведенная стоимость трехлетних выплат.
2. Следующие три года используется та же формула, но со смещенной приведенной
стоимостью. Вычисляется приведенная стоимость уже выполненных проплат,
и она становится будущей стоимостью внешней функции ПС. Эта будущая стои­
мость вычисляется за трехлетний период, в течение которого выполнялись пла­
тежи по 5 тысяч долларов.
3. Последние три года платежей обрабатываются аналогичным образом, однако на
этот раз вычет производится уже за шестилетний период.
Вычисления, связанные с облигациями
Excel предлагает ряд функций, используемых для вычисления различных финансовых
показателей облигаций. Облигацией называется финансовый инструмент, в котором по­
купатель выступает в роли заимодателя, а учреждение или государство, выпустившее об­
лигации, — в роли заемщика. Однако многие функции, связанные с облигациями, выхо­
дят за рамки материала настоящей книги. В этом разделе представлены примеры некото­
рых наиболее распространенных функций.
К ом пакт-диск
Примеры этого раздела содержатся в файле 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 ) на прилагаемом компакт-диске.
Некоторые свойства облигаций являются также и аргументами функций, связанных
с облигациями.
•
Расчетный день. Дата, в которую долговые обязательства переходят к покупателю.
•
Срок погашения. Дата, в которую заем (представленный облигацией) возвраща­
ется покупателю.
•
Ставка (также называемая купоном). Процентная ставка, которую выпустивший
облигацию выплачивает покупателю.
•
Доходность. Норма прибыли, получаемая покупателем. Включает в себя выплаты
по процентам и дисконт.
308
Часть III. Финансовые формулы
•
Погашение. Выкупная стоимость ценных бумаг за 100 долларов номинальной
стоимости.
•
Частота. Количество выплат дивидендов за год.
Оценка облигаций
Предприятия, выпускающие ценные бумаги, устанавливают перечисленные выше по­
казатели, основываясь на текущей рыночной конъюнктуре. Когда конъюнктура меняется,
стоимость облигаций тоже изменяется.
Для примера предположим, что некоторая компания выпустила облигации с номи­
нальной стоимостью 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
ДОХОД (расчетныйдень;срокпогашения;ставка;ценапокупки ;
номинал;частота;б а з и с )
Рис. 11.17. Использование функции
цена
Инвестор все еще заинтересован в покупке десятилетней облигации с 6 процентами,
выплачиваемыми дважды в год, однако на этот раз он хочет заплатить всего 93,95 долла­
ров за сто долларовую облигацию. Следующая формула вычисляет процентную ставку за
восемь лет, оставшихся до даты погашения:
=ДОХОД(СЕГОДНЯ( ) ; СЕГОДНЯ( ) +ДАТА( 8 ; 1 ; 0 ) ; , Об ; 9 3 , 9 5 ; 1 0 0 ;2 )
Если инвестор заплатит за облигацию 93,95 долларов, то получит o t своих инвести­
ций 7%. Если бы он заплатил за облигацию больше ста долларов, то получил бы от инве­
стиций меньше 6% (рис. 11.18).
Рис. 11.18. Когда цена выше номинальной стоимости
облигации, прибыльность ниже купона
Глава
Формулы дисконтирования
и амортизации
В этой главе...
♦ Использование функции ЧПС
♦ Использование функции ВСД
♦ Несколько ставок в функциях ВСД и МВСД
♦ Нерегулярные денежные потоки
♦ Использование функции БЗРАСПИС
♦ Вычисление амортизации
Функции ЧПС (чистая приведенная стоимость) и ВСД (внутренняя ставка доходности) —
наиболее часто используемые инструменты финансового анализа. В этой главе представлены
примеры использования этих функций для различных типов финансовых расчетов.
Использование функции чпс
Функция ЧПС возвращает сумму любого ряда регулярных платежей, рассчитанных на
настоящий момент при использовании единой учетной ставки. Синтаксис функции ЧПС
приведен ниже (обязательные параметры выделены полужирным шрифтом).
ЧПС
(ставка;значение].; з н а ч е н и е 2 ; . . . )
Входящие потоки представлены в виде положительных значений, а исходящие — в виде
отрицательных. Функция ЧПС имеет те же ограничения, что и рассмотренные в главе 11
финансовые функции ПС, ПЛТ, БС, КПЕР и СТАВКА.
Если исходящие потоки превышают входящие, функция вернет отрицательную сум­
му. Точно так же, если входящие потоки превышают исходящие, функция ЧПС вернет
положительную сумму.
Аргумент ст авка представляет собой ставку дисконта — процент, на который бу­
дущие денежные потоки будут уменьшаться. Фактически это уровень доходности, кото­
312
Часть III. Финансовые формулы
рого стремится добиться инвестор. Если функция ЧПС возвращает нуль, это указывает на
то, что будущие денежные потоки обеспечат тот уровень доходности, который в точно­
сти равен заданной процентной ставке.
Если значение, возвращаемое функцией ЧПС, положительное, значит, будущие де­
нежные потоки обеспечат более высокий уровень доходности, чем заданная процентная
ставка. Полученное положительное значение представляет собой ту сумму, которую ин­
вестор мог добавить в изначальный денежный поток, чтобы получить заданный им уро­
вень доходности.
Если ЧПС возвращает отрицательное значение, то инвестор не получает необходи­
мой ему учетной ставки. Эта ставка часто называется пороговой рентабельностью. Для
достижения нужной ставки инвестор должен уменьшить изначальный исходящий денеж­
ный поток (или увеличить начальный входящий поток) на величину, возвращаемую от­
рицательным результатом ЧПС.
Примечание
Используемая учетная ставка -— это единая эффективная ставка на протя­
жении периода учета денежных потоков. Таким образом, если денежные по­
токи регистрируются ежемесячно, то необходимо использовать ежемесяч­
ную эффективную ставку.
Определение функции чпс
Функция ЧПС предполагает, что первый платеж выполняется в конце первого периода.
П редупреж дение
Это предположение отличается от определения, используемого большинст­
вом финансовых калькуляторов. Оно также не совпадает с определением,
используемым такими учреждениями, как Институт бухгалтеров США (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
Формула в ячейке В 9 дает результат, отличающийся от остальных двух. Она предпола­
гает, что инвестиция в 20 тысяч долларов сделана в течение первого месяца. Существуют
приложения, в которых используется именно такой порядок расчетов, однако в них редко
(если вообще) используются изначальные инвестиции. Остальные две формулы отвечают
на вопрос, будут ли инвестиции, вносимые немедленно, давать прирост 8%. Формулы
в ячейках С9 и D9 дают одинаковый результат и являются взаимозаменяемыми.
Рис. 12.1. Три метода вычисления чистой приведенной стоимости
Примеры использования функции чпс
В этом разделе содержится несколько примеров, демонстрирующих использование
функции ЧПС.
Компакт-диск
Все примеры этого раздела содержатся в файле 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
лет. Если у покупателя имеется десятилетний контракт на уборку снега, он может
точно оценить будущие входящие денежные потоки. В противном случае оценить
будущие доходы можно, только основываясь на собственном опыте и прогнозах.
•
В заключение, если вам удастся договориться с продавцом снегоочистителя
о скидке, десятилетняя инвестиция может оказаться вполне разумной.
О тсутств и е начальной инвестиции
На пример покупки снегоочистителя можно посмотреть и с другой точки зрения.
В предыдущем примере стоимость снегоочистителя была представлена в качестве начальной
инвестиции. В этом примере требовалось узнать, сможет ли покупка снегоочистителя принес­
ти десятипроцентную прибыль. Функцию ЧПС
можно также использовать и для вычисления вели­
чины начальной инвестиции, способной обеспе­
чить нужную прибыль. Применительно к данному
примеру, это значит определить, сколько имеет
смысл отдать за снегоочиститель. На рис. 12.3 по­
казано вычисление приведенной стоимости серии
денежных потоков в предположении отсутствия
начальной инвестиции.
Для вычисления чистой приведенной стои­
мости в ячейке В17 используется следующая
формула:
=ЧПС($В$3; В 7 :В 1 6 ) +В6
Итак, если бы будущий владелец снегоочи­
стителя смог бы его купить за 179303 доллара,
Рис. 12.3. Функцию чпс можно использо­
ему можно было бы рассчитывать на 10%-ную
вать и для определения требуемой на­
отдачу от инвестиций (в предположении, что
чальной инвестиции
расчеты доходов точны). Содержимое ячейки В6
добавляется в формулу исключительно из соображений единообразия с предыдущим
примером (так как изначальные инвестиции равны нулю).
Изначальный входящ ий поток
На рис. 12.4 показан пример, в котором изначальный денежный поток является вхо­
дящим. Подобно предыдущему примеру, результатом формулы будет сумма начальных
инвестиций, которые необходимы для получения нужной ставки доходности. Однако в
этом случае предполагается, что входящие инвестиции будут получены немедленно.
Вычисления чистой приведенной стоимости в ячейке В14 выполняются по следую­
щей формуле:
=ЧПС(ВЗ; В 7 :В 1 3 ) +В6
Глава 12. Формулы дисконтирования и амортизации
315
Этот пример может показаться необычным, однако в реальной жизни такая ситуация
часто случается в сфере недвижимости, когда рента выплачивается авансом. Как следует
из формулы, вы можете выплатить по ренте 197292,96 долларов, и эта сумма погасит бу­
дущие выплаты. Рента за первый год выплачивается авансом; поэтому она указана в ну­
левом периоде.
Суммы погашения
В последнем приведенном примере отсутствует один ключевой элемент: переход соб­
ственности по истечении семи лет. Вы можете арендовать жилье вечно, в случае чего по­
требуется постоянно увеличивать в расчетах количество временных периодов. Можете
также продать недвижимость (рис. 12.5).
Рис. 12.4. Некоторые вычисления чпс содер- Рис. 12.5. Изначальные инвестиции могут иметь стоижат начальный входящий денежный поток
мость и в конце периодов выплат
Чистая приведенная стоимость в ячейке D14 вычисляется по следующей формуле:
=ЧПС (ВЗ ; D7 : D13 ) +D6
В данном примере предполагается, что инвестор выплачивает за недвижимость по­
степенно 428214,11 долларов, а затем продает недвижимость за 450 тысяч долларов, что
приносит ему 10 процентов прибыли.
Величина начальной инвестиции и суммы погашения
В этом примере используются те же денежные потоки, что и в предыдущем, за ис­
ключением того, что владелец объекта недвижимости знает, сколько хочет получить. Это
типичный пример инвестиций, когда цель состоит в том, чтобы выяснить, превышает ли
запрашиваемая цена желаемую ставку, и если да, то на сколько (рис. 12.6).
Следующая формула показывает, что при запрашиваемой цене 360 тысяч долларов
дисконтированные входящие потоки обеспечат прибыль в 68214,11 долларов:
=ЧПС (ВЗ ; D9 : D 1 5 ) +D8
Положительное значение чистой приведенной стоимости показывает, что инвестор
может заплатить запрашиваемую сумму и обеспечить себе нужную прибыльность. Полу­
ченный результат также показывает, что инвестор может заплатить на 68214,11 долларов
больше запрашиваемой цены и все равно добиться нужной ему доходности.
316
Часть III. Финансовые формулы
Рис. 12.6. Функция ч п с может включать изначальную
сумму и сумму погашения
Будущ ие исходящ ие потоки
Обычная схема инвестиций предполагает наличие изначального исходящего денеж­
ного потока, компенсирующегося периодическими входными потоками, но на практике
это не всегда так. Гибкость функции ЧПС состоит в том, что она позволяет сочетать в
рассматриваемом периоде положительные и отрицательные значения.
В следующем примере предполагается, что компания планирует выпускать новый то­
вар, и для этого нужно инвестировать в покупку оборудования 475 тысяч долларов, а по
истечении пяти лет потратить на его капитальный ремонт еще 225 тысяч долларов. Так­
же предполагается, что новый товар не будет прибыльным в начале, но постепенно его
доходность будет увеличиваться.
На рис. 12.7 показан рабочий лист, описывающий эти денежные потоки.
Рис. 12.7. Функция ч п с может обрабатывать множество положительных и отри­
цательных денежных потоков
Положительное значение чистой приведенной стоимости означает, что для компании
есть смысл инвестировать в оборудование и начать выпуск нового товара. Если она это
сделает и оценка роста популярности товара окажется точной, компания получит при­
быль более 10% от суммы инвестиций.
Глава 12. Формулы дисконтирования и амортизации
317
Несоответствующие периоды процентной ставки
В предыдущих примерах предполагалось, что процентная ставка начисляется за те же
периоды, за которые осуществляется оборот денежных потоков. В то же время на прак­
тике зачастую эти периоды не соответствуют друг другу. Чаще всего задается годовая
процентная ставка желаемой прибыльности, а денежные потоки имеют месячную или
квартальную периодичность. В этом случае процентную ставку нужно привести к соот­
ветствующей периодичности.
Примечание
Преобразование процентных ставок рассматривается в главе 11.
На рис. 12.8 показаны расчеты с ежеквартальными авансовыми выплатами 12 тысяч
долларов. Также показана начальная цена (700 тысяч долларов) и цена продажи (900000
долларов). Обратите внимание на то, что, поскольку рента проводится авансовыми плате­
жами, цена изменяется. Однако по истечению трех лет (12 кварталов) применяется то же
правило, и рента выплачивается новым владельцем. Если эффективность инвестиции в 1%
вам кажется достаточной, чистая приведенная стоимость составит 166099,72 долларов.
Рис. 12.8. Вычисление чистой приведенной стоимости с ис­
пользованием квартальных денежных потоков
В некоторых ситуациях определение частоты денежных потоков является простой
операцией. Например, в договоре аренды четко указана частота выплаты ренты. Когда
будущие денежные потоки от использования купленного товара несложно предсказать,
используются приближенные оценки. В этом случае определить, какой период использо­
вать лучше (месячный, квартальный или годовой), не так просто. В общем случае часто­
та должна соответствовать точности данных. Это значит, что если объем продаж оцени­
вается на уровне года, не стоит делить это число на 12, чтобы получить оценку месячно­
го объема продаж.
318
Часть III. Финансовые формулы
Нарис. 12.9продемонстрированоразличие применяемы
х подходов. В немиспользо­
ванытеж
еданны
е, чтоинарис. 12.8, однакопредполагается, чтогодоваярентав48000
долларов вы
плачивается вконцегода. При тех ж
ерасчетных7% годовыхЧПС составит
уже 160635,26долларов.
Рис. 12.9. Вычисление ЧПС путем приведения денежных по­
токов в соответствие с годовыми периодами
Использование функции чпс для вычисления
накопительных величин
В этомразделеваш
емувниманиюпредставленодвапримераиспользования функции
ЧПС длявы
числениябудущихзначенийинакоплений. Примерыоснованынаследую
щ
ем
соотнош
ении:
БС=ПС*(1+Ставка)АК о л и ч е ст в о_п ер и од ов
Вычисление будущего значения
Данныеэтогопримераможноувидетьнарис. 12.10. Вычислениечистойприведенной
стоимостивыполняетсявячейкеВ15 последую
щ
ейформуле:
=ЧПС(ВЗ; В 7 : В 1 3 ) +В6
Рис. 12.10. Вычисление будущей стоимости с помощью функции ч п с
ВячейкеВ17 будущ
аястоимостьвычисляетсяпоследующ
ейформуле:
= (Ч П С (В З;В 7:В 13)+ ( 1+ВЗ) А7
Глава 12. Формулы дисконтирования и амортизации
319
Встолбце Dформулавычисляет текущийбаланс процентной ставки. Онавычисляет­
сяпутемумножения процентной ставки назначениебалансавпредыдущ
емм
есяце. Те­
кущ
ийбаланспредставляетсобойсуммупредыдущ
егобаланса, ставкииденежныхпото­
ковтекущ
егом
есяца.
Очень важ
но правильно установить знаки денежных потоков. Если текущ
ий баланс
впреды
дущ
емм
есяцебыл отрицательным, тоиставкабудет отрицательной. Правильное
определениезнаковпотоковиприменениесуммирования предпочтительнее использова­
ниязнаковвформулахдляставкиибаланса.
Сглаживание сумм платежей
В главе 11 рассматривается использование функции ПЛТ для вычисления платежей,
эквивалентны
х заданной чистой приведенной стоимости. Можно такж
е использовать
функциюЧПС, вложеннуювфункциюПЛТ, для вычисления единоразового платежа, эк­
вивалентногосерииизменяю
щ
ихсяплатежей.
Этазадачадовольнотипична: иногданужновычислитьвзвеш
енны
йповрем
ениодин
платеж
, которыйзам
еняетсобойсериюпоследовательныхплатежей. В качествепримера
м
ож
ет выступать платеж, заменяю
щ
ий собой ряд последовательных, увеличиваю
щ
ихся
посум
м
еплатежей. В примере, показанномнарис. 12.11, формулавячейке С24 возвра­
щ
аетзначение 10923,24долларов. Эторавноценны
еплатежи, способныезаменитьсобой
последовательностьплатежейвстолбцеВ.
=ПЛТ (С5 ; С4 ; - В 2 3 ; 0 ; С б )
Рис. 12.11. Вычисление эквивалентных платежей с помощью функции ч п с
Часть III. Финансовые формулы
320
Использование функции вед
Функция ВСД возвращ
ает процентнуюставку, которая сводит кнулючистуюприве­
деннуюстоимость. Другими словами, функция ВСД — этоспециальныйаналог функции
ЧПС. СинтаксисфункцииВСД следую
щий:
ВСД( диапазон; п р б л )
Предупреждение
А р гум е н т д и а п а з о н долж ен содерж ать значения. Пустые ячейки не р а с ­
см атриваю тся как содерж ащ ие значение нуль. Если д и а п а зо н значений с о ­
д ер ж ит нули или текст, ф ункция вед не возвращ ает ош ибку; вм есто это го
она возвращ ает неправильны й результат.
В больш
инстве случаев в ВСД применяется итерационный метод расчета. Аргумент
прбл (приближенное значение), если таковой используется, служит “основой” для ите­
рационного вычисления. Известно, что значение прбл=-0,9 почти всегда приводит
кконечному ответу. Другие значения, например 0, обычно (но не всегда) приводят к
достоверномурезультату.
Сущ
ественное требование к функции ВСД заклю
чается в том, что в задаче должны
использоваться какотрицательные, такиположительныеденеж
ны
епотоки. Для получе­
нияприбыли необходимыпоступления иплатежи. Необязательновспискесначалаука­
зы
ватьпоступления. При анализезайм
аспомощ
ьюВСД суммазайм
абудет отрицатель­
ной(иполучаемойпервой), апоследующ
иевыплаты— положительными.
Функция ВСД — довольномощ
ныйинструмент; онаиспользуется вгораздобольш
ем
спектре задач, чемпросто для вычисления доходности инвестиции. Эта функция мож
ет
использоваться в любой ситуации, в которой необходимо вычислить усредненный по
врем
енииданны
мдоход.
Компакт-диск
Все прим еры это го раздела содерж атся в файле i n t e r n a l r a t e o f
t u r n . x l s x (C h a p t e r 12_RUS. x l s x ) на прилагаем ом ком пакт-диске.
re­
Вычисление нормы доходности
В следую
щ
емпримерезадаетсяосновнаяматрицавычисленийВСД (рис. 12.12). Важ­
ноесоглаш
ение при вычислении ВСД связаносчастотой проплат. Если платежи осущ
е­
ствляются еж
ем
есячно, то и процентная ставкабудет месячной. Как правило, взадачах
процентнуюставку всегдапреобразую
т вгодовую. В представленномпримере проверя­
ется содерж
имое ячейки ВЗ, чтобыпользователь смог вы
брать периодичность проплат
(еж
емесячно, ежеквартальноилиразвгод), отображаемуювячейкеСЗ. Выборзначения
требует определенногопреобразованияпроцентнойставки; онтакжевлияет насодержи­
м
оестроки 5, гдеотображаетсятекст формулы, использованнойвячейкеСЗ.
ЯчейкаD19 содержитследующуюформулу:
=ВСД(D 6 :D18 ; - 0 ; 9 )
ВячейкеD20содержитсяследую
щ
аяформула:
=БС(D 1 9 ; СЗ; 0 ; - 1 ) - 1
Глава 12. Формулы дисконтирования и амортизации
321
Представленная ниж
е формула в ячейке D 21 проверяет достоверность полученных
данны
х.
=ЧПС (D19 ;D 7 :D 1 8 ) +D6
ВСД — это учетная ставка, при которой денеж
ны
е выплатыприводят кчистой при­
веденнойстоимости, равной нулю. В формуле вячейке D 21 используется ВСД вфунк­
цииЧПС относительнотехж
евыплат. Подстановка ВСД вЧПС (поквартально) приводит
к результату $ 0 , 0 0 — такпроверяетсярезультат основны
х вычислений.
Рис. 12.12. Функция вед возвращает процентную
ставку на основе заданной частоты денежных потоков;
эта ставка должна быть преобразована в годовую
Вычисление средней геометрической нормы прибыли
Иногда требуется вычислить средний темп прироста или средню
юнорму прибыли.
Из-засложных процентов простое арифметическое усреднение недает правильного от­
вета. Хуже того, если платежи выполняются в двух направлениях, то арифметическое
усреднениенебудетприниматьврасчет вариации.
Реш
ениесостоит виспользовании функции ВСД для вычисления среднейгеометри­
ческой нормыприбыли. Это простое вычисление, которое заклю
чается в определении
отдельногопроцентазапериод, аналогичныйнесколькимдругим.
В следую
щ
емпримере (рис. 12.13) показанафункция ВСД, которая используется для
вы
числения средней геометрической нормы прибыли, основанной на коэффициентах
столбца В. Вычисление темпов прироста на протяжении каждого года представлено
встолбцеС. Например, формулавячейкеС5 следую
щ
ая:
= (В 5 -В 4 )/В 4
В остальных столбцах показансреднийгеометрическийтемп приростазаразличны
е
периоды
. В формулахстроки 10 используетсяфункцияВСД для вычисления внутренней
норм
ыприбыли. Например, формулавячейкеF10 возвращ
аетзначение5,241%.
=ВСД (F4 :F8; - 0, 9)
322
Часть III. Финансовые формулы
Другимисловами, темпыприроста5,21%, 4,86%и5,66%длятрехотдельныхпериодов
эквивалентнысреднемугеометрическомутемпуприроста5,241%заодинобщ
ийпериод.
В функции ВСД учитывается направление платежей, и вней используются больш
ие
значениядлябольшихпотоков.
Рис. 12.13. Использование функции веддля вычисления среднего геомет­
рического темпа прироста
Проверка результатов
На рис. 12.14 показан рабочий лист, демонстрирующ
ий взаим
освязь функций ВСД,
ЧПСиПС. Проверкаих взаим
освязиосновананасам
омопределениифункции ВСД: сум­
м
аположительныхиотрицательныхденежныхпотоковдолжнабытьравнанулю.
Рис. 12.14. Проверка веди чпспутем суммирования текущих значений
ЧистаяприведеннаястоимостьвычисляетсявячейкеВ16.
=ЧПС(D3; В 7 : В 1 4 ) +В6
ВнутренняяставкадоходностивычисляетсявячейкеВ17.
=ВСД(Вб:В 1 4 ; - 0 , 9 )
В столбце С с помощ
ью формул вычисляется текущ
ее значение. Результат ВСД
(вячейкеВ17) используется вкачествеучетной ставки, аколичество периодов (в столб­
цеА) — вкачествеаргументакпер. Кпримеру, формулавячейкеС6следую
щ
ая:
= П С ($ В $ 1 7 ;А 6 ; 0 ; - В б )
Суммазначенийвстолбце Сравнанулю.
Глава 12. Формулы дисконтирования и амортизации
323
В формулах столбца D используется учетная ставка 10% (в ячейкеD3) для вычисле­
ниятекущ
егозначения. Например, формулавячейкеD6 следую
щ
ая:
=ПС ( $D$3 ; А6 ; 0 ; - Вб )
Суммазначенийв столбцеD равначистойприведеннойстоимости.
В сложных задачах функции ЧПС иВСД — этовзаим
озам
еняем
ы
есредства, исполь­
зуем
ы
едляперекрестногоконтроля.
Несколько ставок в функциях вед и мвед
В стандартныхденежных потоках знакплатежейизменяетсятолько один раз: от ми­
нусакплюсу илиот плю
сакминусу. Однако существуют финансовы
еситуации, вкото­
ры
хзнакможет изменяться несколькораз. В этих случаях возможно сущ
ествование не­
сколькихучетныхставок.
Множество процентных ставок
Нарис. 12.15приведенпримерсдвумя ставкамиВСД, каж
даяизкоторыхиспользует
различное “начальное значение” в качестве аргумента прбл. Как видите, формула воз­
вращ
аетразличны
ерезультаты.
Компакт-диск
Все примеры этого раздела содержатся в файле 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. Одни и те же денежные потоки могут иметь множество процентных ставок
ФормулаВСД вячейкеВ 2 1 (котораявозвращ
аетрезультат 13,88%) следую
щ
ая:
=ВСД(В7:В 1 6 ; В З )
ФормулаВСД вячейкеВ 22 (котораявозвращ
аетрезультат 7,044%) такова:
=ВСД(В7:В16;В4)
324
Часть III. Финансовые формулы
Какаяж
еставкаправильная? К сожалению
, обе. Нарис. 12.15показанаучетная став­
каипродемонстрированыбалансовы
евычислениядлядвухзначенийВСД. Обарезульта­
тапоказы
ваю
т, чтоинвесторможетвыплачиватьиполучатьлюбуюпроцентнуюставкуи
в результате обеспечить конечный баланс $0. Интересно, что суммарны
й доход (1875
долларов) одинаков.
Однакоподобномуспособувычисленияприсущодиннедостаток. Этот примериллю­
стрирует “сценарийнаихудш
его случая” практическойош
ибкимногих вычислений ВСД.
АнализЧПС иВСД основаннадвухпредположениях:
• реально возмож
но получить прогнозируемый (для ЧПС) или вычисленный (для
ВСД) процент наневы
плаченномбалансе;
• процент неизменяетсявзависимостиот направленияпотокаденежныхсредств.
Первое предположение может быть и правильным, и неправильным. Балансымогут
бы
ть реинвестированы
. Настоящ
ая ж
е проблема связана со вторы
м предположением.
Банкиникогданеназначаю
тодинаковуюставкузакредит идепозит.
Разделение потоков
Функция МВСД поможет реш
ить последнююзадачу нескольких ставок. В примере
этогоразделадемонстрируетсяэффективностьиспользованияфункцииМВСД.
На рис. 12.16 показан рабочий лист, в котором используются те же данные, что и в
предыдущем. Для займа (ячейка ВЗ) и вклада (ячейка В4) предоставляются разные став­
ки. Они используются в качестве аргументов функции МВСД (ячейка В19), а результат
равен 6,1279%.
=МВСД(В7:В16;ВЗ;В4)
Рис. 12.16. Модифицированная внутренняя ставка доходности
Функция МВСД разделяет отрицательные иположительныеденеж
ны
е потоки, вычис­
ляя ихпоразны
мставкам
: ставказайм
адля исходящих потоков идепозитная ставкадля
входящ
ихпотоков.
Проанализируемалгоритмвычислений МВСД, видоизменив денежный поток, вкото­
ромсравниваю
тсядвазначения чистой приведенной стоимости (см. рис. 12.16; столбцы
Глава 12. Формулы дисконтирования и амортизации
325
С : Е). ОтрицательноезначениеЧПС разм
ещ
аетсявточке0, аположительноевы
раж
ается
какэквивалентноебудущ
еезначение(врезультатенакоплениянадепозите) вконцесро­
каинвестиции. ВСД измененногоденежногопотокатаж
е, что иМВСД исходногоденеж­
ногопотока.
Этот примерпоказы
вает, что методикавычисленийможет бытьразной. При разделе­
нии отрицательных и положительных потоков в МВСД используется подход, в котором
процент рассчиты
вается на основе денежных потоков. Банки, естественно, определяют
процент, исходя избалансовойстоимости. Попыткареш
ить подобнуюзадачу продемон­
стрированавследую
щ
емпримере.
Использование баланса вместо потоков
Функция МВСД использует двепроцентны
е ставки: одну для отрицательных, адругую
дляположительныхплатеж
ей. Насам
омделепроцентны
еставкиосновы
ваю
тсянабалансе,
аненаденеж
ны
хпоступлениях. Вприм
ереэтогоразделаприменяю
тсяразличны
еставкив
отрицательны
хиположительных балансах. Вычислениемодифицированногопроцентаба­
зируетсянаиспользованиифункцииЕСЛИ дляопределенияприменяемойставки.
Анализируяпроект, вкоторомпроцент выплачиваетсяиначисляется, несложнопред­
положить, что суммарны
йбаланс должен бытьравеннулю. Если онбольш
енуля, то вы
действительнополучили больш
е, чемустановлено вдепозитнойставке. Если онм
еньш
е
нуля, то выещ
едолжнывнестиденьги, аставказайм
абыланедооценена. В рассматри­
ваем
омпримере принимается фиксированная ставка займ
а и вычисляется депозитная
ставка, необходимаядляобеспечениянулевогоконечногобаланса.
В данномпримере ставка займ
а устанавливается пользователем(это 9%). Процент,
получаем
ы
йнаположительных балансах, подбирается программой. Для этого использу­
етсякомандаДанные1^ Работа с данными1^ Анализ “Что-если”1
^ Подбор параметра.
ЗначениеячейкиD 2 1 устанавливаетсявнульпутемподбораячейкиСб.
Рис. 12.17. Получение баланса для нескольких учетных ставок
326
Часть III. Финансовые формулы
Ряд потоков превращ
ается вряд балансов, ане висходныеденежны
е потоки. Внут­
ренняя ставка возврата в этих управляемых балансомпотоках становится равной нулю
(илиблизкойкнулю). Учитываются всефинансовы
епотокииинвестиции, необходимы
е
для реализации проекта. Эквивалентнуюставку ВСД можно затемсравнить с другой
ставкой, такой как ставка не связанной с рисками нормыдоходности (как правило, ис­
пользуется ставка по 90-дневному казначейскому векселю
). В результате можно будет
оценитьотносительныерискипроекта.
Что все это значит? Если оплачивать 9% на отрицательных балансах, то в проекте
возвращ
аетсяставка8,579%наположительныхбалансах. Терминэквивалентная ставка
ВСД свидетельствует отом, что определяется эффективность возвращ
ения денег, инве­
стированныхвбанкилипредоставляемыхпо90-дневномуказначейскомувекселю
.
Ставка займ
а не обязательно должна быть фиксированной. Банк мог быпостроить
вычисления такимж
е образом
, но фиксировать депозитнуюставку и с помощ
ьюфунк­
цииПодбор параметра вычислитьэквивалентнуюставкузайм
а.
Нерегулярные денежные потоки
Всефункции, которы
еужебылирассмотрены(ЧПС, ВСД иМВСД), имелиделосрегу­
лярными денежны
ми потоками. Это значит, что выплатыосуществлялись еж
емесячно,
ежеквартально, ежегодноилисиспользованиемкакого-либодругогопостоянногоинтер­
валаврем
ени. Excel предоставляет вваш
ераспоряжениедве функции, позволяю
щ
иера­
ботатьснерегулярнымиденежны
мипотоками: ЧИСТНЗ иЧМСТВНДОХОД.
Чистая приведенная стоимость
СинтаксисфункцииЧИСТНЗ следующ
ий:
ЧИСТНЗ(с т а в к а , п л т , даты)
Различие между функциями ЧИСТНЗ иЧПС состоит втом, что первая требует нали­
чия последовательности дат, с которыми связаныплатежи. В примере, показанномна
рис. 12.18, приведенная стоимость последовательности платежей найдена с помощ
ью
функцииЧИСТНЗ.
Компакт-диск
Все прим еры это го раздела содерж атся в ф айле 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 ) на прилагаем ом ком пакт-диске.
Формулав ячейкеВ 1 7 следую
щ
ая:
=XNPV (ВЗ ; Вб : В15 ; Аб : А 1 6 )
Аналогично функции ЧПС, функция ЧИСТНЗ может быть проверена дублированием
денежны
х потоков и связы
ванием результата с первы
м денежны
м потоком. Функция
ЧИСТНЗ просм
атриваемы
хденежныхпотоковдолжнаиметьнулевойрезультат.
Примечание
В отличие от функции чпс, функция чистнз предполагает, что денеж ные пото­
ки связаны с началом каждого периода, а не с его концом. Работая с функцией
чпс, я исключал первый платеж из аргументов и добавлял его к результату
функции. Работа с ф ункцией чистнз не требует использования этого приема.
Глава 12. Формулы дисконтирования и амортизации
327
Рис. 12.18. Функция ч и с т н з работает с нерегулярны­
ми денежными потоками
Внутренняя ставка доходности
СинтаксисфункцииЧИСТВНДОХ следующ
ий:
=ЧИСТВНДОХ (сумма, даты, п редп олож ени е)
Подобно функции ЧИСТНЗ, функция ЧИСТВНДОХ учитывает даты платежей. На
рис. 12.19показанпример вычисления внутренней ставкидоходности для сериинерегу­
лярны
хплатежей.
Формулав ячейкеВ 1 5 следую
щ
ая:
ЧИСТВНДОХ (В4 :В13;А4 :А13)
Предупреждение
Ф ункция чиствндох им еет те же проблемы при работе с нескольким и ста в ­
ками, что и ф ункция вед, — она ожидает, что см ена знака денеж ны х потоков
будет однократной: с полож ительны х значений на отрицательны е или в о б ­
ратном направлении. Если знак изм еняется несколько раз, результат ф унк­
ции следует подставить в ф ункцию ч истнз и проверить, возвращ ает ли она
нуль. На рис. 12.19 проде м о н стр ир о ва н а такая проверка (в р а ссм а тр и ва е ­
мом прим ере знак изм еняется все го один раз).
Использование функции б з р а с п и с
Функция БЗРАСПИС вычисляет будущ
ее значение начальной суммыпосле примене­
ниявтечениеопределенноговрем
енирядаразны
хставок. Еесинтаксисследующ
ий:
БЗРАСПИС(сум м а; п л а н )
Вычисление годового дохода
Функция БЗРАСПИС мож
ет использоватьсядля преобразования сериимесячны
хпла­
теж
ейвгодовойдоход. На рис. 12.20 показаным
есячны
едоходыпаевого инвестицион­
ногофонда.
Часть III. Финансовые формулы
328
Рис. 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 ) на прилагаем ом ком пакт-диске.
Загодфондвозвращ
ает 37,84%. Формуладлявычисленияэтогозначенияследую
щ
ая:
=БЗРАСПИС( 1 ; В 5 : В 1 6 ) - 1
В качествеосновногоаргументабылаиспользованаединицапотой причине, что нас
интересуеттолькоставкадоходности, анефактическийбалансфонда. Этаединицазатем
вы
читается из результата функции, так что результатомформулыстановится приведен­
наяпроцентнаягодоваяставка.
Предупреждение
Обратите внимание на то, что функция бзр а с п и с не подчиняется соглашениям
о знаках. Она возвращает будущее значение с тем же знаком, что и текущее.
Вычисление амортизации
Внастоящ
емразделеречьидет обамортизации — концепции, связаннойсуменьш
е­
ниембалансовой стоимости активавтечение врем
ени его эксплуатации. Некоторые ак­
тивыполностьюобесцениваю
тся втечениеодного периода(это, вчастности, относится
кмалоценны
мосновны
мсредствам). Другие активыпостепенно обесцениваю
тся втече­
ние нескольких периодов врем
ени. Эти активывводятся в эксплуатацию и амортизи­
руются (каждый период с их балансовой стоимости списы
вается определенная сумма).
Для каждогоактивавычисляется определенная процентная ставкаамортизации или ука­
зы
вается период эксплуатации. К примеру, программны
е продуктысчитаю
тся полезны­
м
и(т.е. имею
щ
имикакую-либоценность) втечениечеты
рехлет. В этомслучаесписание
балансовой стоимости происходит равномерны
ми порциями в каж
домиз периодов, со­
ставляю
щ
их четы
ре года с моментавводаактивавэксплуатацию
. Как правило, аморти­
зация начисляется еж
еквартально. Следовательно, для программного продукта еж
еквар­
тальносписы
ваетсяоднаш
естнадцатаяегопервоначальнойстоимости.
Глава 12. Формулы дисконтирования и амортизации
329
В табл. 12.1 перечисленыфункции амортизации, предлагаемы
е Excel, атакж
е их ар­
гум
енты(обязательные аргументывы
деленыполужирным шрифтом). Чтобы получить
болееполное представление оработе этих функций, воспользуйтесь справочной систе­
м
ойExcel.
Таблица 12.1. Функции амортизации Excel
Функция Метод начисления
Аргументы
апл
Возвращает величину амортизации актива за один нач стоимость ;
период, рассчитанную линейным методом
остстоимость ,*
фуо
Возвращает величину амортизации актива для задан- нач стоимость ;
ного периода, рассчитанную методом фиксированно- остстоимость
го уменьшения остатка
срок_эксплуатации ;
ддоб
Возвращает значение амортизации актива за данный нач стоимость ;
период, используя метод двойного уменьшения ос- ост стоимость ;
татка или иной явно указанный метод
срок эксплуатации;
срокэксплуатации
период;
период;
асч
месяцы
коэффициент
Возвращает величину амортизации актива за данный нач стоимость ,
•
период, рассчитанную методом суммы (годовых) чисел ост стоимость ,
•
срокэксплуатации;
период
пуо
Возвращает величину амортизации актива для любого нач стоимость
выбранного периода, в том числе для частичных пе- ост стоимость
риодов, с использованием метода двойного уменьше- срок эксплуатации ;
ния остатка или иного указанного метода
начпериод ;
конпериод;
коэффициент;
без_переключения
Аргументыфункцийамортизацииопределяю
тсяследующ
имобразом
.
• н а ч _ с т о и м о с т ь. Первоначальнаястоимостьактива.
• о с т _ с т о и м о с т ь. Стоимость активапослеполногообесценивания.
•
с р о к _ э к с п л у а т а ц и и . Рядпериодов, втечениекоторы
хактивобесценится.
•
п е р и о д . Периодврем
ени, длякотороговыполняетсявычисление.
•
м ес я ц ы . Числом
есяцеввпервомгоду; поумолчаниюExcel использует 12.
• к о э ф ф и ц и е н т . Ставка снижения баланса; по умолчаниюпредполагается равной
двум(т.е. двойноепонижение).
•
с т а в к а . Процентная ставка запериод. Наприм
ер, если осущ
ествлять еж
ем
есяч­
ны
еплатежи, тоследуетделитьежегоднуюпроцентнуюставкуна12.
• б е з п е р е к л ю ч е н и я . Имеет значение ИСТИНА или ЛОЖЬ. Уточняет, нужно ли
переклю
читьсяналинейноеначислениеамортизации, еслиобесцениваниебольш
е
величины, рассчитаннойметодомснижаю
щ
егосяостатка.
330
Часть III. Финансовые формулы
На рис. 12.21 продемонстрировано вычисление амортизации с использованиемопи­
санны
хвы
ш
ефункций. Первоначальная стоимость активав 10тысячдолларов установ­
ленатакой, чтобыполучился срок 10лет состаточнымзначениемводну тысячу долла­
ров. В таблице Сумма а м о р т и з а ц и и отображенаежегодная амортизация актива. Диа­
пазон Б а л а н с о в а я с т о и м о с т ь отображает амортизированнуюстоимость актива на
протяжениисрокаегоэксплуатации.
Рис. 12.21. Сравнение четырех функций амортизации
Компакт-диск
Все примеры этого раздела содерж атся в файле d e p r e c i a t i o n . x l s x (ch apte r i2 _ R U S . x l s x ) на прилагаемом компакт-диске.
На рис. 12.22показанадиаграммаизменения балансовой стоимости актива. Как ви­
дите, функцияАПЛ имеет видпрямойлинии; другиефункцииизогнутыпопричинетого,
чтосуммаамортизациинараннихстадияхсрокаэксплуатацииактивабольш
е.
Рис. 12.22. На этой диаграмме показана балансовая стоимость ак­
тива, рассчитанная с помощью четырех функций обесценивания
Функция ПУОиспользуетсядля вы
числения ам
ортизациинапротяж
ении нескольких пе­
риодов(наприм
ер, годы2и3). Нарис. 12.23показанрабочийлист, настроенны
йнавы
числе­
ниеам
ортизацииспом
ощ
ьюфункцииПУО. ВячейкеВ12 использованаследую
щ
аяформ
ула:
=ПУО( В 2 ; В 4 ; В З ; В б ; В 7 ; В 8 ; В 9 )
Глава 12. Формулы дисконтирования и амортизации
331
Рис. 12.23. Использование функции пуо
для вычисления амортизации на протя­
жении нескольких периодов
Эта формула вычисляет амортизациюактива с момента его покупки до момента
продажи.
Глава
Финансовые планы
В этой главе...
♦ Созданиефинансовыхпланов
♦ Созданиеплановпогаш
ениякредита
♦ Сведениепараметровзайм
автаблицуданных
♦ Финансовыеотчетыикоэффициенты
♦ Созданиеиндексов
Вэтойглавеиспользуется материал двух предыдущ
их глав. Здесь вынайдетемноже­
ствополезны
хпримеров, демонстрирующ
ихраспространенныефинансовы
евычисления.
Создание финансовых планов
Финансовыепланыпредставляют финансовуюинформациювомножестверазличных
ф
орм
. Одни форм
ыподают информациювсводномвиде (такие как отчетыорасходах
идоходахкомпании), другие— ввидедетализированных списков (например, планыпо­
гаш
ениякредита).
Финансовые планымогут бы
ть статическими идинамическими. В статических пла­
нахобы
чно фигурирует небольш
ой набор функций Excel и, как правило, использую
тся
преим
ущ
ества электронных таблиц, отлично подходящих для форматирования планов.
Наприм
ер, пользователь может изменить некоторы
е входны
е параметры
, и это немед­
ленноотразитсянарезультатахотчетов.
В следующ
их разделах продемонстрированы статические и динамические, а такж
е
сводны
еидетализированныепланы.
Создание планов погашения кредита
Всвоейпростейш
ейформ
еплан погашения кредита отслеживает платежи(разделен­
ны
енаосновнуючасть ипогаш
ениепроцентов) ибаланс поконкретному займ
у. В этом
разделеприведенонесколькопримеровплановпогаш
ениякредита.
334
Часть III. Финансовые формулы
Простой план погашения кредита
В этомприм
ере использован простой план, демонстрирую
щ
ий основны
е концепции,
вклю
чаем
ы
евсозданиединамическогоплана. Обратимсяктаблиценарис. 13.1. Строки с
19по369скры
ты
, поэтомувокневиднытолькопервы
епятьипоследниепятьплатеж
ей.
Рис. 13.1. Простой план погашения кредита
Компакт-диск
Все прим еры , приведенны е в этой главе, доступны на прилагаем ом ком ­
пакт-диске в файле 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 ) .
Раздел пользовательского ввода
Областьнадпланомпогаш
ениясодержит ячейки, предназначенны
едля вводапользо­
вателемисходных параметров, атакжедля промежуточных вычислений. Ячейки, пред­
назначенны
е для ввода пользователя, отмеченыдругим цветомфона, поэтому хорош
о
видно, чтоможетбытьизм
ененоигдесодержатсяформулы.
Пользовательможетвводитьстоимостьпокупкииразм
еравансовогоплатежа. Объем
финансирования вычисляется для дальнейш
его использования в расчетах погаш
ения
кредита. ФормулавячейкеВ5имеетследующийвид:
=Цена_покупки-Аванс
Совет
Чтобы сделать ф ормулы более понятны м и, в них использованы о п иса те ль­
ные им ена д иапазонов. И менованные диапазоны и ячейки рассм атриваю тся
в главе 3.
Все остальные вычисления, необходимы
е для заполнения плана погаш
ения, предна­
значеныдляполучениясуммеж
емесячны
хплатежей. ФормулавячейкеВ9следую
щ
ая:
= - ОКРУГЛ(ПЛТ(Ставка/12; С р о к * 1 2 ; О бъем _ф и н ансир ов ан и я);2)
Глава 13. Финансовые планы
335
Функция ПЛТ используетсядля вычислениясуммыеж
емесячны
хплатежей. Диапазон
Ставка (ячейка В7) делится на 12, адиапазон Срок (ячейка В8) умножается нато ж
е
число. Такимобразом
, всеаргументыприводятся к месячному базису, что гарантирует
получениерезультатафункциитоженаосновемесячногобазиса.
Функция ОКРУГЛ округляет результат функции ПЛТ додвух десятичных знаков. Ко­
нечно, мож
нонеокруглятьрезультат докопеекилицентов, чтобыдостичь больш
ейточ­
ности, однако вряд ли какой-либо банк примет у вас платежв десятых долях копеек.
Следовательно, этидесяты
едолинужноисключитьизпланапогаш
ения.
Сводная информация
В первой строке плана, непосредственно под заголовком, содержатся сводны
е фор­
м
улы
. В данном примере виднытолько общ
ие итоговые суммы
, однако при желании
м
ож
новключить итоги погодам, кварталамилю
бымнужнымпериодам. Формула, вве­
деннаявячейкеВ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. Финансовые формулы
В заклю
чениеобновляетсябаланс, чтобыотразитьосновнуючастьплатежа. Формула
вячейкеЕ 15 следую
щ
ая:
=E14-D15
Планы погаш
ения проверяю
т сам
и себя. Если все настроено правильно, заклю
чи­
тельный баланс в последнемпериоде будет равен нулю(или близок к нулю, учитывая
ош
ибкиокругления).
Совет
Еще одна проверка добавлена в ком понент осн о вн о й со ставляю щ ей плате­
жа. С умма всех этих значений долж на равняться исходной сум м е займа.
Ограничения
Этот тип плана погаш
ения кредита отлично подходит для займ
ов, неизменяю
щ
ихся
воврем
ени. Он настраивается одинразидействует втечениевсегосроказайм
а. В даль­
нейш
емонможет быть скопировандля созданияновогоплана, вкоторыйнужно внести
всегонесколькоизменений.
Наверное, вызаметили, чтобаланс вконцесроказайм
асоставляет ненуль, а-4 , 07.
Причиной этого являю
тся ош
ибки округления, накопивш
иеся при вычислении всех ос­
новны
х ипроцентных составляю
щ
их платежа. Поскольку все эти округления жизненно
необходимы
, более гибкий план позволит скорректировать заклю
чительный платежтак,
чтобыбалансбыл нулевы
м.
Приведенныйвы
ш
епланпогаш
ениякредиталишенгибкостиивдругихаспектах.
• Платежвычисляется иприменяется кажды
йм
есяц, но неучитывает возможность
досрочныхипросроченныхплатежей.
• Многиезайм
ыимею
тпеременны
епроцентныеставки, аданныйпланнепозволяет
скорректироватьпроцентнуюставкувконкретномпериоде.
• Несмотря на то что пользователюпредоставлена возможность определить срок
займ
а, количество строк вплане фиксировано. Определение более короткого или
болеепродолжительногосроказайм
апотребуетудаленияилидобавленияформул.
В следую
щ
емразделем
ыреш
имнекоторы
еизэтихвопросовисоздадимболеедина­
мичны
йпланпогаш
ения.
Динамический план погашения кредита
Примерэтогоразделаоснованнапредыдущ
ем. Нарис. 13.2показанплан погаш
ения
займ
а, позволяю
щ
ий вычислить параметры
, отличные от объемов, процентной ставки
исроказайм
а. Обратитевниманиенато, чтострокис22по 114скры
ты
.
Первое зам
етное отличие состоит втом, что в плане больш
е затененны
х ячеек, т.е.
тех, вкоторы
епользователь может вносить изменения. Также был добавлен столбец го­
довойпроцентнойставки, котораяможетбытьопределенадлякаждогопериода.
Раздел пользовательского ввода
Вэтомразделеизмененийнетакмного. Процентнаяставкатеперьполучиланазвание
начальной, аплатеж— вычисляемого. Это указы
вает нато, что данны
е значения могут
динамическиизменяться.
Глава 13. Финансовые планы
337
Рис. 13.2. Динамический план погашения кредита
Сводная информация
Теперь пользователь может изменять срокзайм
а, процентнуюставку исум
м
ыплате­
ж
ей, которы
е влияют на срок погаш
ения займ
а. В сводной информации суммирую
тся
толькодопустимыестроки. ФормулавячейкеС13 следую
щ
ая:
=СУММЕСЛИ( $G 1 5 : $G3 7 4 ; " > = 0 " ; С 1 5 : СЗ 74)
ПослетогокакбалансвстолбцеG становитсянулевы
м
, вы
числениепрекращ
ается. Функ­
цияСУММЕСЛИ используетсядлясум
м
ированиязначенийстолбцатолькодоэтойточки. Эта
форм
улакопируетсявстолбцыпроцентнойиосновнойсоставляю
щ
ейплатеж
а. Абсолю
тная
ссы
лкагарантирует, чтоновы
еформулытакж
ебудутуказы
ватьнастолбецG.
План погашения кредита
Когдапланпогаш
ения содержит многополей, изм
еняем
ы
хпользователем, многиеиз
формул должныизменяться всоответствиисразны
миусловиями. Такой план имеет два
типавводимы
хданных:
• данны
е, изменяю
щ
иетолькоодинплатеж;
• данны
е, которы
еизменяю
т всепоследующ
иеплатежи.
Когда процентная ставка изменяется для одного платежа, она оказы
вает влияние на
всепоследую
щ
иеплатежи. Напредыдущ
иеплатежиникакоговлияния новаяпроцентная
тсятольконадан­
ставканеоказы
вает. По этойпричинеячейкистолбцаС т а в к а ссылаю
ны
е, находящ
иеся вы
ш
е. Формула в столбце В15 наследует начальную процентную
ставкуизразделапользовательскоговвода. ФормулавячейкеВ16, копируемаявнижние
ячейки, простоповторяет процентнуюставкупредыдущ
егом
есяца.
=В15
Этодает возможность пользователюввестиновуюпроцентнуюставку только водну
ячейку, после чего онабудет размнож
ена навсе последую
щ
ие м
есяцы
. Такимобразом
,
онабудет распространяться до тех пор, пока снова не будет изм
енена вручную
. В рас-
338
Часть III. Финансовые формулы
см
атриваем
омпримере банк информировал, что начиная с пятого платежа (строка 1 9 )
процентная ставкапонижаетсядо4,8%. Этаставкавводится вячейку В 1 9 , ивсеячейки
поднейнаследуютданноеизм
енение.
Изменение датыплатежа оказывает влияние только насвоюстроку. Если платеж
запоздал, это незначит, что ивсепоследующие платежи будут осуществленыпозже.
Вданномпримеретретий платеж(строка 17) был осущ
ествлендесятьюднями позднее.
Этонеповлияло наследующийплатеж, которыйбыл сделанужевоврем
я. Для этоготи­
паданных приращ
ениедатыдолжно выполняться относительнодатызайм
а, которая ос­
таетсянеизменной. ФормулавячейкеА15следую
щ
ая:
=ДАТА(ГОД(Дата_3айма); МЕСЯЦ(Дата_займа)+СТРОКА( ) - 1 4 ;
Д ЕН Ь (Д ата_займ а))
Эта формула копируется вниз во все строки. В отличие от предыдущ
его примера,
формула не ссы
лается на ячейку вы
ш
е; вместо этого она ссылается на базу Д а т а _ з а й м а . Так какплатеж
иначинаю
тсятолько с 15-йстроки, текущ
ая (лроказавы
че­
томчетырнадцатойиспользуетсядлявычисленияприращ
енийм
есяца.
Клю
чевыммоментомэтойформулыявляетсято, чтопользовательможетзаменитьее
внекоторойячейкеконстантой, что неокажет влияния наследую
щ
ие строки. В ячейке
А17 датаплатежабы
лаизм
енена, чтоповлиялонавычислениетекущ
егоплатежа, нони­
какнеотразилосьнаследующихплатежах.
Так какдля дополнительных платежейбыл выделендополнительный столбец, общ
ая
сум
м
а платежа не изменяется, заисклю
чениемтого, что нужно учитывать ош
ибки ок­
ругленияпредыдущ
егоплатежа. ФормулавячейкеС15 следую
щ
ая:
=ЕСЛИ(014+Е15-М есячный_платеж-Б15<5; G 1 4 + E 1 5 -D 1 5 ;
Месячный_платеж)
Если оставш
ийся баланс м
еньш
е обычного платежа, оплачивается только баланс
(плюс проценты). Однаковданномпримерем
ыналагаемзапрет наплатежиссуммойдо
пяти долларов. Если обычный платежоставляет после себя такой небольш
ой баланс,
этот остатокпростодобавляетсякплатежу. Вообще-товпоследнихплатежахнет ничего
предосудительного, иесливас ониустраиваю
т, вымож
етеупростить предыдущ
уюфор­
мулуследующ
имобразом
:
=ЕСЛИ(014+Е15<Месячный_платеж+Б15; G 1 4 + E 1 5 -D 1 5 ;
Месячный_платеж)
Вычисление процентной составляю
щ
ейдолжно теперь учитывать тот факт, что пла­
тежбыл сделанраньш
еили позж
е. Вместоделения процентной ставкина 12, каквпре­
дыдущ
емпримере, процентная ставкаумножается начастное количествадней по отно­
ш
ениюк365. ФормулавячейкеЕ15 следую
щ
ая:
=ОКРУГЛ(G 1 4 * B 1 5 * (А 1 5 -А 1 4 ) / 3 6 5 ; 2 )
Формула в столбце основной части платежа практически не изменилась, но теперь
вклю
чаетвсебядополнительныеплатежи. ФормулавячейкеF15 следую
щ
ая:
=C15+D15-Е15
Баланс вычисляется врезультате вычитания основной составляю
щ
ей текущ
его пла­
тежаизпредыдущ
егобаланса— точнотакж
е, какивпредыдущ
емприм
ере.
Заключительные штрихи
Какследует изрис. 13.2(наэтомрисункескры
там
ассасреднихстрок, такчтомож
но
увидетьпоследние), заклю
чительныйплатежсодержитсявстроке 127; вычисленияниж
е
Глава 13. Финансовые планы
339
этойстроки неосущ
ествляю
тся. Однако это ещ
еневсе. Все ячейки вплане погаш
ения
кредита, начинаяспятнадцатой, имею
т условноеформатирование. Если значениестолб­
цаG предыдущ
ейстроким
еньш
еилиравнонулю, цвет фонаитекстастановятсябелы
ми,
поэтомуихсодерж
имоеневидимо.
Для применения условного форматирования выделите диапазон ячеек А15 :G374, по­
сле чего выберите команду Главная^Стили^Условное форматирование^Создать
правило. В качестве формулы введите следующее правило:
=$G14<=0
Абсолютная ссы
лканастолбецгарантирует, что всестолбцывыделенногодиапазона
будут ссылатьсянастолбецG. Относительная ссылканастроку 14 обеспечит всемстро­
камссылкунапредыдущуюстроку.
Перекрестная ссылка
Более подробно условное форматирование рассматривается в главе 19.
Формулы, находящ
иеся под строкой 127 (вплоть до 360 месяцев), скры
тыс помо­
щ
ьюусловного форматирования. Таким образом
, применение условного форматирова­
нияпозволяетдинамическиизменятьразм
ерытаблицы.
Использование таблиц платежей и процентных ставок
В предыдущ
емпримере пользователь мог вводить данные непосредственно в план
погаш
ения. Такой подход обеспечивает максимальнуюгибкость; кром
етого, он интуи­
тивнопонятен. Однако взависимости от квалификации пользователя такая свобода мо­
ж
ет стать источником ош
ибок. В частности, зам
ена формулыконстантой не позволит
скорректировать ош
ибку, еслипользователь незнакомсвнутреннейструктуройрабоче­
голиста. И такие константымогут появиться повсеместно; при этомпользователь даж
е
небудетзнать, чтоотображаю
тсянасам
омделенерезультатывычисленияформул.
Существует ещ
еодин метод, обеспечиваю
щ
ий такуюж
е гибкость работыпользова­
телястаблицейвыплат. Онзаклю
чаетсявполномотделенииобластивводапользователя
от областирасчетов иотчетности. В этомслучае прощ
е определить, что ввел пользова­
тель, икакиеданныеотсутствуют.
Вследую
щ
емпримереиспользуютсятеж
еданны
е, чтоивпредыдущихдвух, однако
добавленыдополнительные таблицы— платежей, процентных ставок и платежей, вы
­
полненныхневсрок. Соответствующимобразомизм
ененыиформулы. Нарис. 13.3по­
казанаобластьпользовательскоговводагибкогопланапогаш
ения.
В плане погаш
ения кредита ничто не может быть изменено пользователем. Измене­
ниявтаблицеплатежейвыполняютсякакреакцияназначения встолбцеВилизначения
водной из трех таблиц, расположенных правее. Формулы, которы
е не были изм
енены
,
неупоминаю
тсявэтомразделе.
Даты
=ДАТА(ГОД(Дата_займа2) ; МЕСЯЦ(Дата_займа2)+СТРОКА( ) - 1 4 ;
ДЕНЬ(Дата_займа2) ) +ЕСЛИОШИБКА(ПРОСМОТР(ДАТА(ГОД(
Дата_займ а2)/М ЕС Я Ц (Д ата_займ а2) +СТРОКА( ) - 1 4 /ДЕНЬ(
Дата_займ а2)) ; t b l L a t e ; Задерж ка2) / 0 )
Этаформулавыглядитнесколькозагромож
денной, однакоонанетакплоха. Начинается
онавсестойж
еформулы
, котораябы
лаиспользованавпреды
дущ
емприм
ереивкоторую
340
Часть III. Финансовые формулы
добавлено количество дней опоздания из таблицы t b l L a t e . Функция ПРОСМОТР ищ
ет
точноесоответствиевпервомстолбцетаблицыt b l L a t e , извлекаетзначениеизеевторого
столбца(положительноеилиотрицательное), котороезатемдобавляетсякдатеположенно­
гоплатеж
а. Функция ЕСЛИОШИБКА используетсядля возвращ
ениянуля, еслисоответствие
ненайдено(вданнойситуациисохраняетсяисходнаявы
численнаядата).
Рис. 13.3. Изоляция области пользовательского ввода
Процент
Таблица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.
Расчеты по кредитной карточке
Последнимтипомплановпогаш
ениякредитаявляю
тсярасчетыпокредитнойкарточ­
ке. Кредитныекарточкиимею
т своиособенности, поскольку минимальныйплатежварь­
ируетсявзависимости от внеш
него баланса. Для карточки можно использовать описан­
ны
йвы
ш
еметод таблицыплатежей, однако количество строк внемограничено, что не
подходит для большинства приложений. Также можно использовать описанный ранее
м
етод, гдеплатеживводилисьнепосредственновпланпогаш
ения. Однакокогдаплатежи
отличаю
тся, плантеряет свойсмысл какосновапрогнозированияилипланирования. Не­
обходим
о создать такой план, который позволил быпрогнозировать платежи по займу
спом
ощ
ьюкредитнойкарточки.
Расчетыпокредитнойкарточкесвязаныснесколькиминестандартнымипроблемами.
Деловтом, что финансовы
ефункцииExcel (такиекакПС, БС иКПЕР) предполагают ре­
гулярны
еплатежи с одной итой ж
есуммой. Функция ПЛТ также возвращ
ает один уро­
веньплатежей. При использовании функций ЧПС и ВСД пользователь может вставить в
денеж
ны
епотокиразны
еплатежи.
Банки, вы
пускаю
щ
иекредитныекарточки, обычнотребуют выполнениястандартного
набораправил.
• Сумма платежа ограничена снизу. К примеру, счет кредитной карточки может
требоватьминимальныйплатежв25долларов.
• Платеж должен быть равен, по крайней мере, процентам от просроченной
суммы. Обычно платежрассчитывается как процент остаточного баланса, но не
м
еньш
еуказаннойсум
мы
.
• Платеж округляется (обычнодоближайшихпятицентов).
• Ставка неизменна на протяжении некоторого периода (обычномесяца).
Нарис. 13.4показанрабочийлист, настроенныйдля расчетаплатежей по кредитной
карточке.
Формула расчета минимального платежадостаточно сложна, равно как и самприн­
ципрасчета. В данномпримереиспользуется минимальныйплатежв25долларов или 3
процентовбаланса, чтоможет намногоувеличитьврем
япогаш
ениякредита. Если креди­
тор надеется погасить кредит заразумны
й промежуток времени, ем
у потребуются до­
полнительны
естолбцырасчетов.
Формуламинимальногоплатежа(ячейкаВ13) имеетследующийвид:
= М И Н (F 12+D 13 ;ОКРУГЛ(МАКС( $ В $ 7 ; ОКРУГЛ( $ B $ 6 * F 1 2 ;
2 ) ) ;$В $8))
Поэтойформуле вычисляется минимумсуммыбалансаили минимальныйпроцент,
азатемрезультат округляется до ближайших пяти центов. Это округленное значение
затемсравнивается с просроченным балансом, после чего используется меньш
ее из
двухзначений.
Всестановитсязначительносложнее, есливносятсядополнительныеплатежи. В этом
случае формулыдолжны учитывать “благоприятные периоды” для покупок. Дополни­
342
Часть III. Финансовые формулы
тельнуюпутаницу вноситто, чтовподобныхслучаяхставкарассчитываетсянаежеднев­
нойосновеиберет врасчетдневнойэффективныйэквивалентпроцентнойставки.
Рис. 13.4. Расчет платежей по кредитной карточке
Сведение параметров займа в таблицу данных
Если вырешили взять кредит, вампридется подобрать множество переменны
х, не
последней из которых является процентная ставка. Команда Данные^ Работа с дан­
ными^ Анализ “что-если,,с:>Таблица данных позволяет подытожить результаты вы­
числений, использующ
ихразны
евходныеданны
е.
Функциятаблицыданныхявляется однимизсам
ы
хвостребованны
хинструментов Ex­
cel. Таблица данных представляет собой динамический диапазон, которы
й подытоживает
ячейкисформуламидля различны
хвходныхданны
х. Таблицыданныхмож
носоздатьис­
клю
чительнопросто, однакоониобладаю
т некоторы
миограничениями. В частности, таб­
лицаданны
хм
ож
етодновременноработатьтолькосоднойилидвумяячейкам
и.
Создание односторонней таблицы данных
Односторонняя таблица показы
вает результатылюбого количества вычисленийдля
различных значений одной ячейки ввода. На рис. 13.5 показана общ
ая структура одно­
стороннейтаблицыданных.
Компакт-диск
Все прим еры э то го раздела содерж атся в ф айле lo a n d a ta
(c h a p te ri3 _ R U S . x l s x ) на прилагаем ом ком пакт-диске.
ta b le s . x ls x
На рис. 13.6 показана односторонняя таблица данных (диапазон D2:G9), отобра­
ж
аю
щ
ая три вычисления (разм
ер платежа, общ
ая сумма платежей и общ
ая сумма про­
центов) для займ
ас использованиемвосьмипроцентных ставок от 6,75%до 8,50%. Для
ввода используется ячейка В2. Обратите внимание, что диапазон E1:G1 принадлежит
таблицеданных— этиячейкисодержат обы
чны
енадписи.
Глава 13. Финансовые планы
343
Значения одной ячейки ввода
Рис. 13.5. Структура односторонней таблицы данных
Рис. 13.6. Использование односторонней таблицы данных, отображающей три
вычисления займа для различных процентных ставок
Длясозданиятаблицыданныхвыполнитеследующ
иедействия:
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. Финансовые формулы
Рис. 13.7. Диалоговое окно Таблица данных
Совет
М ож но отф орм атировать таблицу данных; к прим еру, можно затенить з а го ­
ловки строк и столбцов.
Обратите внимание, что формула массива не вводится в весь диапазон ячеек, выбран­
ный в п. 4, — первый столбец и первая строка выделения остаются неизменными.
Создание двусторонней таблицы данных
Двусторонняя таблица данных отображает результаты одного вычисления для раз­
личных значений двух входных ячеек. На рис. 13.8 показана общая структура двусторон­
ней таблицы данных.
Рис. 13.8. Структура двусторонней таблицы данных
На рис. 13.9 показана двусторонняя таблица данных (диапазон В7 : J 1 6 ), которая ото­
бражает платежи по займу, используя восемь процентных ставок и девять сумм кредита.
Рис. 13.9. Использование двусторонней таблицы данных для отображения платежей по зай
мам с различными процентными ставками и суммами
345
Глава 13. Ф инансовы е планы
;
Для создания этой таблицы данных выполните следующие действия.
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>.
Финансовые отчеты и коэффициенты
Многие компаниииспользуют Excel для оценкисвоегофинансовогосостояния исоз­
дания отчетов о финансовых результатах. Финансовые отчетыи коэффициенты— это
дватипа анализа, которы
е может использовать компания для достижения своих целей.
Excel отличноподходитдлясозданияфинансовыхотчетов, таккактабличныйинтерфейс
програм
м
ыпозволяет без труда корректировать столбцы. Коэффициентыпредставляют
Часть III. Финансовые формулы
346
собойвсеголишь простые формулы; именнодля выполнения таких задачисоздавалась
програм
маExcel.
Основные финансовые отчеты
Финансовые отчеты подытоживают результаты финансовых операций компании.
Двумя основными отчетами являю
тся бухгалтерский баланс и отч ет о прибылях и
убытках.
• Бухгалтерский баланс оценивает состояние компании на определенный момент
врем
ени. Внемотображаетсятакаяинформация.
•Активы. Это то, чемвладеет компания: движимое и недвижимое имущ
ество,
атакженематериальны
еактивы
.
• Обязательства. Делятсянадолгосрочныеикраткосрочны
е.
• Собственный капитал. Стоимостькомпании.
• Отчет о прибылях и убытках подытоживает транзакции компании заопределен­
ный периодврем
ени, такойкакм
есяц, кварталилигод.
Типичный отчет отражает доходыот продаж, расходы, атакже общ
уюприбыль
(илиубытки) предприятия.
Преобразование пробных балансов
Большинство бухгалтерских программавтоматически формирует финансовы
е отче­
ты. Однако эти программы
, как правило, не предоставляют достаточной гибкости и па­
раметровформатирования, которы
едоступнывExcel. Один изспособовсозданиясобст­
венны
х финансовых отчетов— это экспорт из бухгалтерского пакета оперативных дан­
ны
х и их обобщ
ение в Excel. На рис. 13.10 показан фрагмент плана счетов, в котором
отображаю
тсясальдопосчетам
.
Рис. 13.10. В пробном балансе перечислены все счета и сальдо по ним
Компакт-диск
Все примеры этого раздела приведены в файле 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.11показанбаланспредприятия, вкоторомсведеныитогипоклассамсчетов.
Рис. 13.11. На листе баланса предприятия сведены
однотипные счета
Столбец К л а с с сводного баланса используется для классификации счетов. В этом
случаедлявычислениябалансапредприятияобычноиспользуетсяследую
щ
аяформула:
=СУММЕСЛИ (К л а с с , А4 , Б а л а н с )
Для всехсчетовсводногобалансасклассомК а с с а этаформуласуммирует значения
ихсальдо. Данная формулаповторяетсядля всехклассов финансовыхрезультатов. Если
счетанекоторого классаимею
т кредитный баланс (такой какзадолженности идоходы),
даннаяформуладополняетсязнаком“минус”. К примеру, формуладля класса Р а с ч е т ы
с кредиторами м
ожет иметьследующийвид:
=- СУММЕСЛИ(К л а с с ; А17 ; Б а л а н с )
Счет, который связы
вает баланс и отчет о доходах, назы
вается нераспределенная
прибыль. Нарис. 13.12показанотчет оприбылях иубытках, вклю
чаю
щ
ий всебянерас­
пределеннуюприбыль.
Функции классанераспределеннойприбыли вбалансеобращ
аю
тся кклассификации
К о н с о л и д и р о в а н н а я н е р а с п р е д е л е н н а я п р и бы л ь вотчете оприбы
лях иубыт­
ках. Консолидированнаянераспределеннаяприбыльвычисляется путемсложения нерас­
пределеннойприбылинаначалопериодаичистойприбыли(иливычитанияизнераспре­
деленнойприбыличистыхубытков) ипоследующ
еговычитаниядивидендов.
Ивзаклю
чение, вбалансовомотчетедолженподдерживатьсябаланс, т.е. общ
аясум­
м
аактивовдолжнабыть равнасум
меобязательств исобственного капитала. Ниже при­
веденаформулапроверкиош
ибоквлистебаланса.
=ЕСЛИ(ABS( В 2 6 - В 1 5 ) > 0 , 0 1 ; "Баланс н аруш ен";"")
348
Часть III. Финансовые формулы
Рис. 13.12. Отчет о прибылях и убытках может включать
в себя пункт нераспределенной прибыли
Если разница между активами и суммой обязательств и собственного капитала пре­
вы
ш
ает одну копейку (цент), под отчетомотображается сообщ
ениеобош
ибке. Функция
ABS используетсядля проверкиэтойразницыпомодулю(абсолютномузначению
). Если
балансвотчетесоблю
ден, формулавозвращ
ает пустуюстроку.
Приведение финансовых результатов к общему знаменателю
Сравнение финансовыхрезультатовразны
х компанийможет оказаться проблематич­
ны
м
. Одна изтрудностей связанасмасш
табамипредприятий. Для небольш
ого предпри­
ятия прибыль в миллион может оказаться хорош
им результатом, в то врем
я как для
транснациональнойкорпорацииприбыль водин миллиард— плохим. Разны
ем
асш
табы
чиселзатрудняютоценкуэффективностиоперацийтакихразличныхкомпаний.
Обобщ
енныефинансовы
екоэффициентыотображаю
т счетаотносительно одного ко­
эффициента, такимобразомсводя финансовы
е результаты к общ
ему знаменателю
. На
рис. 13.13 показанобобщ
енный отчет оприбылях иубытках, вкоторомвсечисла пока­
заныотносительнообщ
егообъем
апродаж.
Кпримеру, формулавячейкеС4 следую
щ
ая:
=В4/$В $4
Рис. 13.13. Записи в обобщенном отчете о при­
былях и убытках представлены относительно
общего дохода
Глава 13. Финансовые планы
349
Знам
енателемвэтойформулевыступает абсолю
тная ссы
лка, котораяостаетсяпосто­
яннойпри копировании формулывдругие ячейкиобычного отчета оприбылях иубыт­
ках. В данномслучае всезначения показанывпроцентах к общ
ему доходу. Чтобыото­
браж
алисьтолькопроцентныевеличины, нужноскрытьстолбецВ.
Анализ коэффициентов
Финансовыми коэффициентами назы
ваю
т значения, основанны
е насводных ипро­
чихфинансовы
х данных ипредназначенны
едля оценкиразличных аспектовдеятельно­
стикомпании. Коэффициентыпредприятия можносравниватьскоэффициентамидругих
компаний и с отраслевыми стандартами. В данномразделе будет показано, как вычис­
лятьнекоторы
ефинансовы
екоэффициенты(рис. 13.14).
Рис. 13.14. Различные финансовые коэффициенты
Анализ ликвидности
Коэффициенты ликвидности дают возможность определить способность компании
бы
строоплачиватьвыставленны
есчета.
Коэффициент чистого оборотного капитала вычисляется путемвычитания кратко­
срочны
хобязательствизтекущихактивов.
=Общ ие_текущ ие_активы -О бщ ие_краткосрочны е_обязательства
Текущие активы обы
чнопреобразую
тсявденеж
ны
есредствавтечениеодногорасчетно­
гопериода(какправило, года). Краткосрочными назы
ваю
т обязательства, которы
едолжны
бы
тьоплаченывтечениеодногорасчетногопериода. Положительныйрезультатуказы
ваетна
то, чтоком
панияим
еетдостаточноактивов, чтобыоплачиватькраткосрочны
еобязательства.
Коэффициентом текущей ликвидности назы
ваю
т аналогичнуюм
еру, нополученную
врезультатеделениятекущихактивовнакраткосрочны
еобязательства.
= О бщ ие_текущ ие_активы /К раткосрочны е_обязательства
350
Часть III. Финансовые формулы
Коэффициент текущ
ейликвидности, больший, чем1:1, аналогиченположительному
значениюсобственныхоборотныхсредств.
Последнимкоэффициентомликвидности является коэффициент быстрой ликвидно­
сти. В товрем
якаккоэффициент чистого оборотного капиталавклю
чает всебяактивы
,
такиекакскладскиезапасыидебиторскуюзадолженность, которы
емогут бытьпреобра­
зованывденьгизакороткоеврем
я, коэффициент быстройликвидностивклю
чает только
кассуитеактивы
, которы
емогут бытьобращ
енывденьгинемедленно.
= (К а сс а + Ц ен н ы е _ б у м а г и )/К р а т к о с р о ч н ы е _ о б я з а т е л ь с т в а
Если коэффициент быстрой ликвидности больш
е, чем1:1, это является признаком
того, чтокомпанияспособнанемедленнооплачиватькраткосрочны
еобязательства.
Совет
Для форматирования коэффициентов текущей и быстрой ликвидности можно применять пользовательский числовой формат 0, 00" : ! " _) .
Коэффициенты оборачиваемости активов
Коэффициенты оборачиваемости активов являю
тся мерой эффективности исполь­
зованиякомпаниейсвоихактивов. Онипоказы
ваю
т, насколькобыстрокомпанияперево­
дит своиактивывденежны
есредства. Коэффициент оборачиваемости дебиторской за­
долженности получаетсяврезультатеделенияобъем
апродажнасредню
юдебиторскую
задолженность.
= Д о х о д /( (Дебиторская_задолженность+
Д еб и т о р с к а я _ за д о л ж е н н о с т ь _ за _ п р о ш л ы й _ г о д ) / 2 )
Этот коэффициент затемиспользуется для вычисления периода погашения дебитор­
ской задолженности.
= 3 6 5 /О б о р а ч и в а е м о с т ь _ д е б и т о р с к о й _ з а д о л ж е н н о с т и
Период погаш
ения дебиторской задолженности обычно сравниваю
т со сроками кре­
дитования компаниейклиентов. Если компания предоставляет клиентам30-дневнуюот­
срочку платежа, а период погаш
ения дебиторской задолженности больш
е этого срока,
этоуказы
ваетнапроблемысполитикойкредитованияилинакоплением.
Аналогичным образомможет быть вычислена эффективность, с которой компания
использует своискладские запасы
. Оборачиваемость запасов вычисляется врезультате
деленияобъем
апродажнасреднийобъемскладскихзапасов.
= О бъ ем _п р одаж /( (Сл адски е_запасы +
С к л а д с к и е _ за п а с ы _ п р о ш л о г о _ г о д а )/ 2 )
Период оборота запасов определяет врем
я хранения товаров наскладе, прежде чем
онибудутпроданы.
= 3 6 5 /О б о р а ч и в а е м о с т ь _ з а п а с о в
Складывая период погаш
ениядебиторскойзадолженностиипериод оборотазапасов,
м
ож
но получить общ
ееколичество дней, необходимых для переводавсехскладских за­
пасоввденежны
есредства. Этот коэффициент назы
ваю
топерационным циклом.
= П е р и од_ п ога ш ен и я _деби т ор ск ой _ задол ж ен н ости +
Период_оборота_запасов
s
Глава 13. Финансовые планы
351
Коэффициенты управления задолженностью
В то врем
якаккоэффициентыликвидностиуказы
ваю
т наспособность компанииоп­
лачивать краткосрочны
е обязательства, коэффициент финансового рычага сравнивает
общ
иеактивысобщ
имиобязательствами.
= О бщ и е_ак ти вы /(К р атк осроч ны е_обязател ьства+
Д о л г о с р о ч н ы е _ о б я за т е л ь с т в а )
Соотношение собственных и заемных средств используется для определения того,
чтовпервуюочередьоплачиваеткомпания: дивидендыпоакциямиликредиты.
= (К раткосрочны е_обязательства+Д олгосрочны е_обязательства)/
(Акции+Эмиссия+Нераспределенная_прибыль)
Коэффициент покрытия процентов показы
вает, во сколько раз прибыль компании
м
ож
етперекры
тьееобязательствапопроцентам.
= (Ч и стая_прибы ль_или_убы тки+О бязательства_по_процентам ) /
О бя за тел ь ст в а _ п о _ п р о ц ен т а м
Коэффициенты рентабельности
Как вы
, наверное, ужедогадались, коэффициенты рентабельности являю
тся м
ерой
прибыльности компании. Рентабельность валовой прибыли ирентабельность чистой
прибыли можно вычислять на основе более ранних финансовых коэффициентов, по­
сколькуобаэтикоэффициентавычисляю
тсяотносительнопродаж. Формулыдлярасчета
этихкоэффициентовследующ
ие(соответственно):
=Общая_прибыль/ Д оход
=Чистая_прибыль/ Доход
Коэффициент рентабельности активов дает возможность определить, насколько
хорош
окомпанияиспользуетсвоиактивыдляполученияприбыли.
=Чистая_прибыль/ ( (В с е г о _ а в т и в о в +
В сего_актив ов _в_п р ош л ом _году) / 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 ) на прилагаем ом ком пакт-диске.
Рис. 13.15. Создание индекса
Формулы для вычисления процентов роста (вторая таблица) просты. К примеру,
вячейкеС И содержитсятакаяформула:
= (С 4 - В 4 ) /В 4
Формула возвращ
ает значение -3,45%, которое представляет изм
енение цены^за
квадратныйметржилья (с 14,5до 14долларов). Этаформулакопируется вдругиеячей­
китаблицы(диапазонС И :Н 1 5 ). Подобная информациядостаточно полезна, однакодо­
вольно сложно отслеживать общ
ие изменения между периодами, больш
ими, чемгод.
Именноздесьимогут потребоватьсяиндексы.
Вычислениеиндексоввтретьейтаблиценесоставляет особоготруда. Индекс за2003
год устанавливается взначение 1 0 0 (столбецВ), что иявляется базисоминдексов. Фор­
мулавячейкеС 18 следую
щ
ая:
= B 1 8 * (1+С11)
Глава 13. Финансовые планы
353
Эта формула копируется в остальные ячейки таблицы (диапазон С18 : Н22).
Индексыделают возм
ож
ны
мсравнение, например, цен заофисывлю
бые два года,
атакж
е относительный рост цен между двумя типами недвижимости. К примеру, из
третьейтаблицымож
ноузнать, чтоаренднаяплатазажильес2003до2009годавы
росла
бы
стрее, чемаренднаяплатазаофисы
.
Средние значения (столбец I) вычисляю
тся с помощ
ьюфункции СТАВКА. Этот ре­
зультатпредставляетсобойусредненнуюгодовуюставкузавесьпериод.
Формулавячейке118, вычисляю
щ
аясредниетемпыроста, имеетследующийвид:
=СТАВКА( 6 ; 0 ; В 1 8 ; -Н 1 8 ;0 )
В этой формуле аргумент КПЕР равен шести, потому что именно такое количество
лет прошло с первоначальной даты.
Формулы массивов
В этой части...
Глава 14
Знакомство с массивами
Глава 15
Магия формул массива
Глава
Знакомство с массивами
В этой главе...
♦ Концепцияформул м
ассива
♦ Концепцияразмерностим
ассива
♦ Присвоениеим
енм
ассивамконстант
♦ Работасформуламим
ассива
♦ Использованиемногоячеечны
хформул м
ассива
♦ Использованиеодноячеечныхформулм
ассива
Одно из наиболее интересных и сложных средств Excel — формулы массива. С их
пом
ощ
ьюмож
нотворить настоящ
иечудесаистать м
астеромвExcel. Главное— понять
концепциюформул м
ассива; именноэтому вопросу посвящ
енаданная глава. В главе 15
будутрассмотреныболеесложныепримеры
.
Концепция формул массива
Впрограммированииприреш
ениисложныхзадаччастоиспользуетсяпонятием
ассива.
Массив — этосовокупностьэлементов, которы
еинтерпретирую
тсякакедины
йобъект или
какнаборотдельных объектов. В Excel м
ассивымогут бы
ть одномерны
ми (их ещ
еназы
­
ваю
твекторами) илидвухмерны
ми{матрицы). Разм
ерностьм
ассивазависит от количест­
вастрокистолбцов. Например, одномерный массив мож
ет храниться вдиапазоне, состоя­
щ
емизоднойстроки(горизонтальныймассив), или столбце(вертикальныйм
ассив). Двух­
ка
мерный массив хранится в прямоугольном диапазоне ячеек. Excel (в отличие от язы
програм
м
ированияVBA) неподдерживаеттрехм
ерны
ем
ассивы
.
Какбудет показанодалее, м
ассивывовсенеобязательнохранить вячейках. С помо­
щ
ьюформул м
ассива мож
но выполнять операции над массивами, которы
е существуют
тольковпамятиExcel. Крометого, формулым
ассиваможноиспользоватьдля выполне­
нияоперацийиполучениярезультатов вычисления вы
ражений. Формулам
ассиваможет
находитьсявомногихячейкахилитольководной.
358
Часть IV. Формулы массивов
В этой главе представленодвавидаформул м
ассива: формула м
ассива, которая воз­
вращ
ает несколько значений (многоячеечная), и формула, которая возвращ
ает только
однозначение(одноячеечная).
Компакт-диск
Все прим еры этой главы содерж атся на прилагаем ом ко м пакт-диске в ф ай­
ле C h a p t e r l 4 _ R U S . x l s x .
Многоячеечная формула массива
Нарис. 14.1 показанрабочийлист, накоторомвы
полняется простейш
ийрасчет объем
а
продажтоваров. Для этого вычисляется значение в столбце D (объемпродажкаждого
товара) с использованиемследую
щ
ей формулы, которая скопирована врасположенные
ниж
еячейки.
=В2*С2
После копирования этой формулы рабочий лист будет содержать ш
есть формул
встолбцеD.
Рис. 14.1. Столбец D содержит формулы для
вычисления цены партии товара
Альтернативныйпуть вычислений— использованиеединой формулы(формулым
ас­
сива) для вычисления всех ш
ести значений вдиапазоне D2:D7. Эта единственная фор­
мулазанимаетш
естьячеекивозвращ
ает м
ассивизш
естизначений.
Длясозданияединойформулым
ассивавыполнитеследующ
иедействия.
1. Выделите диапазон, в которомбудет сохраняться результат вычислений. В дан­
номслучаеэтодиапазонD2:D7.
2. Введитеследующуюформулу:
= В 2 :В 7 *С 2: С7
3. Обычнопослевводаформулыследует наж
атьклавишу<Enter>, однакоэтонеот­
носится к формулам массивов. Так как введенная формула является формулой
м
ассива, нужнонажатькомбинациюклавиш<Ctrl+Shift+Enter>.
Этаформулабудет добавленавовсеш
есть выделенныхячеек. В строкеформул поя­
витсяследую
щ
еевы
раж
ение:
{ = В 2 :В 7*С 2: С 7}
Программа заклю
чила формулу в фигурные скобки. Это говорит о том, что данная
формулаявляетсяформулойм
ассива.
Глава 14. Знакомство с массивами
359
Данная формула выполняет вычисления и возвращ
ает массив из ш
ести элементов.
Вприведенномпримереформулам
ассивапроизводит операциинаддвумядругимим
ас­
сивам
и, хранящ
имисявдиапазонахячеек. Значенияпервогом
ассивахранятсявдиапазо­
неВ2 :В7, авторого— вС2 : С7.
Для отображения итогового м
ассива требуется ш
есть ячеек (в одной ячейке нельзя
отобразитьболееодногозначения). Этимобъясняетсяпричина, покоторойпередвводом
форм
улынеобходимовыделитьш
естьячеек.
Даннаяформулам
ассивавозвращ
ает теж
езначения, что иш
естьформул, введенны
е
всоответствую
щ
иеячейкидиапазонаD2 : D7.
=В2*С2
=ВЗ*СЗ
=В4*С4
=В5*С5
=В6*С6
=В7*С7
Использованиеединой формулым
ассивапредпочтительнее, чемнескольких, так как
онапредоставляетопределенныепреимущ
ества.
• Несложноубедиться, чтовсеформулывдиапазонеидентичны.
• Использораниеформул м
ассива, возвращ
аю
щ
ихсразунесколькозначений, избав­
ляет от случайных изменений в формуле. Невозможно в формуле м
ассива изм
е­
нитьоднуячейку.
• Использование формул м
ассива почти всегда предотвращ
ает вмеш
ательство на­
чинаю
щ
ихпользователей, которы
ехотят внестисвоиизменениявформулы.
Одноячеечная формула массива
Перейдемкрассмотрениюформулым
ассива, возвращ
аю
щ
ейоднозначение. Вернем­
сякрис. 14.1. Следующаяформулам
ассиванаходитсяводнойячейке:
{ =СУММ (В2 : В7*С2 : С7) }
Этуформулумож
новвестивлюбуюячейку. При вводеформулыможнонеиспользо­
ватьфигурные скобки, однако после введения незабудьте наж
ать, комбинациюклавиш
<Ctrl+Shift+Enter>.
Эта формулам
ассивавозвращ
ает общ
уювыручку от продажитоваров. Важно пони­
м
ать, что значение, возвращ
аем
оеэтой формулой, независит от информации встолбце
D. Даж
ееслиудалитьстолбецD, формулабудетработатьпо-прежнему.
Даннаяформулаоперирует значениями, находящ
имисявдвух м
ассивах. Обам
ассива
хранятсявячейках. Первый— вдиапазонеячеекВ2 :В7, второй— вдиапазоне С2 : С7.
Формулаперемнож
ает соответствую
щ
иезначениявэтихдвух м
ассивахисоздает новый
м
ассив (который сущ
ествует только в памяти компью
тера). Функция СУММ выполняет
операциюнадэтимновы
мм
ассивомивозвращ
аетзначениесуммыегоэлементов.
Примечание
Того же результата можно до стичь с пом ощ ью ф ункции суммпроизв:
= С У М М П Р 0 И З В (В 2:В 7;С 2:С 7 )
Однако, как будет показано, это почти единственны й случай, когда ф ормулу
м ассивов можно зам енить одной ф ункцией. Чаще все го это невозм ож но.
Часть IV. Формулы массивов
360
Создание массива констант
В предыдущ
их примерахиспользовались м
ассивы
, хранящ
иеся вдиапазонерабочего
листа. Примеры этого раздела демонстрируют важнуюособенность: м
ассив не обяза­
тельно должен храниться вдиапазоне ячеек. Массив, который хранится исключительно
впамяти, назы
ваетсямассивом констант.
При создании м
ассиваконстант список его элементов нужно заклю
чить в фигурные
скобки. Ниже приведен пример горизонтального м
ассива констант, состоящ
его из пяти
элементов.
{ 1; 0; 1; 0; 1}
Следующ
ая формуласодержит функциюСУММ, аргументомкоторойявляется преды­
дущий м
ассив констант. Формула возвращ
ает сумму элементов м
ассива, равнуютрем.
Отметим, что данная формула принимает массив в качестве аргумента, но при этомне
являетсяформулойм
ассива. Поэтомудля вводаформулыненужно использовать клави­
ш
и<Ctrl+Shift+Enter>.
=СУММ( { 1 ; 0 ; 1 ; 0 ; 1 } )
Примечание
В случае непосредственного задания массива (как показано выше) необхо­
димо заключать элементы массива в фигурные скобки. С другой стороны,
при вводе формулы массива фигурные скобки можно не ставить, потому что
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
Элементы массива констант
Массивыконстант могут состоять из чисел, текста, логических значений (например,
ИСТИНА, ЛОЖЬ) идаж
езначенийош
ибки(такихкак#Н/Д). Числавм
ассивемогут быть
целы
м
и, с десятичной точкой или в экспоненциальномформате. Текст в м
ассиве кон­
стант заклю
чаетсявдвойныекавы
чки(например, " В т о р н и к " ). Массив констант может
состоятьизэлементовразноготипа, какпоказановследую
щ
емпримере:
{ 1 ; 2 ; 3 ; ИСТИНА; ЛОЖЬ; ИСТИНА; " В а с я " ; " П е т я "}
М
ассивыконстант немогут вклю
чатьвсебяформулы, функции илидругие массивы
.
Числовы
е значения не должны содержать символыдоллара, точки с запятой, круглые
скобкиилисимвол процента. Например, нижеприведенневерны
йм
ассивконстант.
{КОРЕНЬ( 3 2 ) ; $ 5 6 , 3 2 / 1 2 , 5 % }
Концепция размерности массива
Как уж
е отмечалось, м
ассивы Excel могут быть одномерными или двухмерными.
Ориентацияодномерногом
ассиваможетбытьгоризонтальнойиливертикальной.
Одномерные горизонтальные массивы
Элементы в одномерном горизонтальном м
ассиве разделяю
тся точкой с запятой1
.
Ниж
еприведенпримеродномерногогоризонтальногом
ассиваконстант.
{1; 2 ; 3 ; 4 ; 5 }
Для отображенияэтогом
ассивавдиапазонепотребуется пять последовательныхяче­
еквстроке. Чтобыввестиэтот м
ассив вдиапазон, выделитедиапазонячеек, состоящ
ий
изодной строки и пяти столбцов. Затемвведите формулу ={1;2;3;4;5} и нажмите
<Ctrl+Shift+Enter>.
Если ввести этот м
ассив в горизонтальный диапазон, состоящ
ий более чемиз пяти
ячеек, толишниеячейкибудут содержать #Н/Д (что указы
вает нанедопустимые значе­
ния). Есливвестиэтот м
ассивввертикальныйдиапазонячеек, товкаждойячейкедиапа­
зонапоявитсяпервы
йэлемент (1) м
ассива.
Ниже приведен пример ещ
е одного горизонтального м
ассива. Он состоит из сем
и
элем
ентовисоздаеттекстовуюпоследовательность.
{"Понедельник"; "Вторник"; "С р еда"; " Ч е т в е р г " ; "Пятница";
"Суббота"; " В о с к р е с е н ь е " }
Длявводаэтогом
ассивавыделитесем
ьячееквстрокеивведитеследую
щ
уюформулу:
= { "Понедельник"; "Вторник"; "С р еда"; " Ч е т в е р г " ; "Пятница";
"Суббота"; " В о с к р е с е н ь е " }
Нажмите<Ctrl+Shift+Enter>.
1Символы разделителей определяются региональными настройками операционной систе­
мы. — Примеч. ред.
362
Часть IV. Формулы массивов
Одномерные вертикальные массивы
Элементыв одномерном вертикальном м
ассиве разделяю
тся двоеточием (точкой с
запятойванглийской версиипрограммы). Ниже приведенпримервертикального масси­
ваконстант, состоящ
егоизш
естиэлементов.
{10 :2 0 :3 0 :4 0 :5 0 :6 0 }
Для отображенияэтогом
ассивавдиапазонепотребуетсяш
естьячееквстолбце. Что­
быввестиэтот м
ассиввдиапазон, выделитедиапазонячеек, состоящ
ийизш
естистроки
одногостолбца. Затемвведитеприведеннуюнижезаписьинажмите<Ctrl+Shift+Enter>.
= {10:2 0 :3 0 :4 0 :5 0 :6 0 }
Ниже приведен пример ещ
е одного вертикального м
ассива, состоящ
его из четы
рех
элементов.
{ "Иванов": "П етров": "С идоров": "И того"}
Двухмерные массивы
В двухмерных массивах используется точка с запятой (запятая в английской версии
программы
) для разделения горизонтальных элементов и двоеточие (точка с запятой
ванглийской версиипрограммы) для разделения вертикальных элементов. Ниже приве­
денпримерм
ассиваконстантразмерностью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).
Рис. 14.2. Массив 3x4, введенный в диапазон ячеек
Если ввести м
ассив в диапазон, состоящ
ий из больш
его количества ячеек, чемсам
м
ассив, Excel отобразит #Н/Д влишних ячейках. Нарис. 14.3 показано, что получится,
есливвестим
ассив3x4вдиапазонячеек10x5.
Каждая строка двухмерного м
ассивадолжна содержать одинаковое количество эле­
ментов. Например, представленный ниже м
ассив не может сущ
ествовать, так как его
третьястрокасостоиттолькоизтрехэлементов.
{1;2;3;4:5;6;7;8:9;10;11}
Excel не позволит ввести формулу, в которой присутствует недопустимый формат
м
ассива.
Глава 14. Знакомство с массивами
363
Значение #Н/Д можно использовать в качестве заполнителя отсутствующего элемен­
та массива. Например, следующий массив синтаксически правильный.
={ 1; 2 ; 3 ; 4 : 5 ; 6 ; 7 ; 8 : #Н/Д; 1 0 ; 1 1 ; 1 2 }
Присвоение имен массивам констант
Можно создать массив констант, присвоить ему имя и затем использовать это имя
в формулах. Присвоение имени массиву сводится к присвоению имени формуле.
Перекрестная ссылка
В главе 3 объясняется понятие имени и описывается методика присвоения
имени формуле.
На рис. 14.4 показано, как присвоить имя массиву, используя диалоговое окно При­
своение имени. Чтобы открыть его, выберите команду Формулы^Определенные
именам Присвоить имя^ Присвоить имя.
Рис. 14.3. Массив 3x4, введенный в диапазон
ячеек 10x5
Рис. 14.4. Присвоение имени мас­
сиву констант
Приведенному ниже массиву констант присвоено имя ДниНедели.
{ "Понедельник"; "Вторник"; "С р еда"; " Ч е т в е р г " ; "Пятница";
"С уббота"; " В о с к р е с е н ь е " }
Отметим, что в диалоговом окне Создание имени для задания массива необходимо
использовать знак равенства (=). В противном случае массив будет воспринят как тек­
стовая строка. Также необходимо самостоятельно заключить элементы массива в фигур­
ные скобки. Excel в данном случае не вводит скобки автоматически.
После присвоения имени массиву это имя можно использовать в формулах. На рис. 14.5
представлен рабочий лист, в котором находится формула, вводящая массив в диапазон
А1: G1. Она имеет следующий вид.
{=ДниНедели}
Рис. 14.5. Использование имени массива в формуле массива
364
Часть IV. Формулы массивов
Таккакэлементым
ассиваразделяетточкасзапятой, ориентациям
ассивабудет гори­
зонтальной. Для созданиявертикальныхмассивовиспользуетсядвоеточие. Такжемож
но
воспользоваться функцией ТРАНСП и вставить горизонтальный м
ассив в вертикальный
диапазонячеек (операция транспонирования рассматривается далее). Для этого введите
вдиапазонизсем
ивертикальныхячеекследующуюформулум
ассива:
{=ТРАНСП(ДниНедели)}
ПрииспользованиифункцииИНДЕКС можнополучитьдоступ котдельномуэлементу
м
ассива. Например, приведенная ниже формула возвращ
ает значение “Четверг” — чет­
верты
йэлементм
ассиваД н и Н е д е л и .
=ИНДЕКС(ДниНедели;4)
Работа с формулами массива
В этомразделе рассматриваю
тся вопросы выделения ячеек, содержащ
их м
ассивы
,
атакж
еобсуждаю
тсяпроблемывводаиредактированияформулм
ассива. Этипроцедуры
имею
т определенны
е отличия от методов управления обы
чными диапазонами ячеек
иформулами.
Ввод формулы массива
Длятогочтобыпрограммазнала, какаявводится формула(массиваилиобычная), не­
обходимо при вводе формулым
ассивавдиапазон ячеек придерживаться определенных
правил. Обычная формула вводится вячейку путемнажатия <Enter>, аформула масси­
ва— путемнажатия<Ctrl+Shift+Enter>.
Формулу м
ассиванесложноузнать: встрокеформул оназаклю
ченавфигурныескоб­
ки. Например, следую
щ
аяформулаявляетсяформулойм
ассива:
{=СУММ(ДЛСТР(А1:А5)) }
Не вводитефигурные скобкиприсозданииформулым
ассива. Excel вставит их авто­
матическипри нажатии <Ctrl+Shift+Enter>. Если результат вычисления формулымасси­
васостоит из нескольких значений, необходимо вначале выделить весьдиапазон ячеек,
вкоторыйпомещ
аетсярезультат, итолькозатемприступать квводу формулы. Если это­
гонесделать, будетотображентолькопервы
йэлементвозвращ
аем
ы
хзначений.
Выделение диапазона формулы массива
Можно выделить диапазон ячеек, в которомнаходится формула м
ассива, используя
обычнуюпроцедурувыделенияячееклибоиспользовавследующ
иеметоды
.
• Активизируйте любуюячейку вдиапазоне формулым
ассива. Выберите команду
Главная^Редактирование^Найти и выделить^Выделение группы ячеек
или нажмите клавишу <F5>. Установите переклю
чатель текущий массив. Щ
елк­
нитенакнопкеОКдлязакры
тиядиалоговогоокна.
• Активизируйте любуюячейку вдиапазоне формулым
ассиваи нажмите <Ctrl+/>
для выделениявсегом
ассива. Если вклю
ченарусскаяраскладкаклавиатуры, вко­
торойкосаячертаприведенавверхнемрегистре, нажмите<Ctrl+Shift+/>.
Глава 14. Знакомство с массивами
365
Редактирование формулы массива
Если формула м
ассива находится в разны
х ячейках, то необходимо редактировать
весьдиапазон. Помните, что нельзя изменить содержимоетолько одного элемента фор­
м
улым
ассива. Если попытатьсяэтосделать, появится окнопредупреждения, показанное
нарис. 14.6.
Существует ряд правил, которых следует придержи­
ватьсяприработесформулойм
ассива, расположеннойв
ячейках. Если не выполнить хотя быодно из них, Excel
сразудаст знатьобэтом.
• Нельзя изменять содержимое отдельной ячейки,
входящ
ейвформулум
ассива.
Рис. 14.6. Excel напоминает о
невозможности
редактирова-
• Нельзя перемещ
атьячейки, которы
е входят вфор- ния только одной ячейки фор­
мулум
ассива(номож
нопереместитьвсюформулу МУЛЫ массива
м
ассива).
• Нельзя удалять ячейки, которы
е входят в формулу м
ассива (но мож
но удалить
весьмассив).
• Нельзявставлятьновы
еэлементывдиапазонм
ассива. Это правилораспространя­
ется инавставку строк или столбцов, которы
едобавят новы
еячейки вдиапазон
м
ассива.
• Нельзя использовать многоячеечны
е формулым
ассивавтаблице (имеется ввиду
таблица, созданная с помощ
ьюкомандыВставка^Таблицы^Таблица). Анало­
гично, еслидиапазонсодержит многоячеечнуюформулу м
ассива, егонельзя пре­
образоватьвтаблицу.
Чтобыотредактировать формулым
ассива, выделите все ячейки его диапазона. Пе­
рейдитевстроку формул, щ
елкнув внейили наж
авклавишу <F2>. Excel удалит фигур­
ны
ескобкивокруг формулы. Отредактируйтеформулуинажмите<Ctrl+Shift+Enter>для
сохранения внесенны
х изменений. Внесенные изменения будут отображены во всех
ячейкахм
ассива.
Предупреждение
Если после редактирования формулы массива по ош ибке нажать <C trl+Enter>
(вместо <C trl+Shift+E nter>), формула будет введена в каждую выделенную
ячейку, но она уже не будет ф ормулой массива. Соответственно, она, скорее
всего, вернет неправильный результат. Чтобы исправить ошибку, выделите
ячейки и нажмите сначала <F2>, а затем <C trl+Shift+E nter>.
Несмотря на то что невозмож
но изменить отдельную ячейку, входящ
ую в состав
формулым
ассива, кнейможноприменитьособоеформатирование.
Расширение или сокращение формулы массива
Часто возникает необходимость увеличить или уменьш
ить количество ячеек в фор­
м
улем
ассива. Для этогопотребуетсявыполнитьследующ
иедействия.
1. Выделите весьдиапазон, содерж
ащ
ий формулу м
ассива. Это м
ож
носделать с по­
м
ощ
ьюклавиш<Ctrl+/> (если вклю
ченарусская раскладка клавиатуры
, вкоторой
символкосойчертырасположенвверхнемрегистре, нужнонаж
ать<Ctrl+Shift+/>).
366
Часть IV. Формулы массивов
2. Нажмите<F2>дляпереходавреж
имредактирования.
3. Нажмите <Ctrl+Enter>. Это действие вводит одну иту ж
е формулу (не формулу
массива) вкаждуювыделеннуюячейку.
4.
Изменитедиапазонвыделения, добавивилиисключивячейки.
5. Нажмите<F2>, чтобывновьвключитьреж
имредактирования.
6. Нажмите<Ctrl+Shift+Enter>.
' Недостатки формул массива
Если проанализировать излож енны й выше м атериал, м ож но прийти к вы воду о ве­
сомы х преим ущ ествах ф ормул м ассива. Конечно, главным преим ущ еством исп о л ьзо ­
вания ф ормул м ассива является возм ож ность вы полнения ранее недоступны х м етодов
вы числений. П реим ущ ества прим енения м ассивов очевидны , однако есть и с у щ е с т­
венные недостатки.
Ф ормулы м ассива являются одной из сам ы х слож ны х возм ож ностей Excel. Е стест­
венно, ж елательно избегать прим енения ф ормул м ассива, если предполагается с о в м е ­
стное редактирование рабочей книги. М ногие пользователи Excel, сталкиваясь с ф о р ­
мулами массива, чувствую т себя сове р ш е н н о б е спом ощ ны м и.
Не забывайте нажимать <C trl+Shift+E nter> для ввода формулы массива. При редакти­
ровании сущ ествую щ его массива необходим о всякий раз использовать эту комбинацию
клавиш после заверш ения редактирования. Помимо логических ошибок, вышеуказанная
ошибка — наиболее распространенная среди пользователей. Если при редактировании
формулы массива по ош ибке нажата клавиша <E nter>, необходим о нажать <F2>, т.е. вер­
нуться обратно в режим редактирования, и затем нажать <C trl+Shift+E nter>.
Другая потенциальная проблем а, возникаю щ ая при работе с ф ормулам и м а с с и ­
вов, — это зам едление пересчета рабочего листа. Однако эта проблем а о щ утим о ска ­
зывается только при использовании очень больш их м ассивов. Для ее разреш ения п о ­
требуется вы сокопроизводительны й ком пью тер. В то же время ф ормулы м ассива п о ­
зволяю т получить необходим ы е данны е бы стрее, чем это возм ож но при прим енении
пользовательских ф ункций VBA.
Использование многоячеечных формул массива
Этот раздел содержит примеры
, которы
едемонстрируют дополнительные возможно­
сти формул м
ассива, возвращ
аю
щ
их несколько значений (формулы м
ассива, которы
е
вводятся вдиапазон ячеек). Эти формулым
ассиваоткрываю
т новы
е возможности: соз­
дание м
ассивов из значений, использование операторов и функций, транспонирование
м
ассивовигенерированиепоследовательныхчисел.
Создание массива на основе значений диапазона
Приведенная ниж
е формула создает м
ассив значений в ячейках. На рис. 14.7 пред­
ставленрабочийлист сданными, введенны
мивдиапазонA I : С4. ДиапазонD 8 : F 1 1 со­
держитформулум
ассива.
{ =А1: С4}
Массив в диапазоне D 8 : F 1 1 связан с диапазоном А 1 : С 4 . Внесение изменений в
диапазонAI: С4 приведетксоответствующ
имизменениямвячейкахD8 : F 11.
Глава 14. Знакомство с массивами
367
Рис. 14.7. Создание массива на основе диапазона
Создание массива констант на основе значений
диапазона
Впредыдущ
емпримереформулам
ассивавD8 : F11 бы
ласвязанасдиапазономячеек
AI: С4. Существует возможность разорвать эту связь и создать м
ассив констант, со­
стоящ
ийиззначенийвдиапазонеAI: С4.
Для этого вы
делите ячейки, которы
е вклю
чаю
т формулу м
ассива (диапазон D 8: F11 в
этомприм
ере). Нажмите<F2>длязапускареж
им
аредактирования, азатем<F9>— дляпре­
образованияссы
локнаячейкивзначения. Воспользуйтеськлавиш
ам
и<Ctrl+Shift+Entei>для
фиксацииформулым
ассиваконстант. М
ассивконстантбудетим
етьследую
щ
ийвид:
{ 1 ; " с о б а к а " ; 3 : 4 ; 5 ; "кошка": " о б е з ь я н а " ; 1 1 ; 1 2 }
Нарис. 14.8показано, каквыглядит послеописанныхпреобразованийстрокаформул.
Рис. 14.8. После нажатия клавиши <F9> строка формул ото­
бражает массив констант
Выполнение операций над массивом
До настоящ
его врем
енибольшинство примеров этой главыбыло посвящ
ено просто­
м
у вводу массивов в диапазон. Представленная ниже формула м
ассива создает прямо­
угольный массив, кажды
й элемент которого вычисляется путемумножения исходного
м
ассивана2.
{= { 1 ; 2 ; 3 ; 4 : 5 ; 6 ; 7 ; 8 : 9 ; 10 ; 11 ; 12 }* 2 }
Нарис. 14.9показанрезультатвводаэтойформулывдиапазон.
368
Часть IV. Формулы массивов
Рис. 14.9. Выполнение математических операций в
массиве
Следующая формула массива умножает каждый элемент массива на этот же элемент.
{={1 ;2 ;3 ;4 :5 ;6 ;7 ;8 :9 ;1 0 ;1 1 ;1 2 }*{1 ;2 ;3 ;4 :5 ;6 ;7 ;8 :9 ;1 0 ;1 1 ;1 2 }}
Приведенная ниже формула массива приводит к тому же результату, но более про­
стым способом (рис. 14.10).
{ = { 1 ; 2 ; 3 ; 4 : 5 ; 6 ; 7 ; 8 : 9 ; 10 ; 11 ; 12}А2 }
Рис. 14.10. Умножение каждого элемента массива на
самого себя
Если массив хранится в диапазоне ячеек (в данном случае А 1 : С4), для возведения в
квадрат каждого элемента этого массива можно воспользоваться следующей формулой
массива.
{= А 1 :С 4 а 2 }
Совет
В некоторых примерах фигурные скобки, использованные в формулах, вво­
дятся программой автоматически после нажатия <Ctrl+Shift+Enter>, другие же
нужно вводить вручную. Чтобы не запутаться, запомните следующий принцип:
если открывающая фигурная скобка расположена до знака равенства, она
вставляется автоматически, если после — ее следует вводить вручную.
Использование функций в операциях с массивами
Естественно, существует возможность использовать функции при работе с массива­
ми. Например, можно создать формулу массива, которая вычисляет квадратный корень
каждого из десяти элементов массива констант.
{=К О Р Е Н Ь ({1:2:3:4:5:6:7:8:9:10})}
Если массив хранится в диапазоне (в данном случае А 1 :А 1 0 ) , можно вычислить
квадратный корень каждого элемента, входящего в массив, с помощью следующей фор­
мулы массива.
{= КОРЕНЬ(А1:А 1 0 )}
Глава 14. Знакомство с массивами
369
Транспонирование массива
При транспонировании массива происходит преобразование строк в столбцы и
столбцов в строки. Другими словами, таким образом можно преобразовать горизонталь­
ный массив в вертикальный или наоборот. Для транспонирования в 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 } }
Рис. 14.11. Использование функции т р а н с п д л я
транспонирования двухмерного массива
Диапазон А6 : С 9 содержит следующую формулу:
{=ТРАНСП( { 1 ; 2 ; 3 ; 4 : 5 ; б ; 7 ; 8 : 9 ; 1 0 ; 1 1 ; 1 2 } ) }
Как и раньше, функцию транспонирования можно применять и к массиву, храняще­
муся в диапазоне ячеек. Например, в приведенной ниже формуле используется массив,
хранящийся в диапазоне A I : С4 (четыре строки, три столбца). Формула массива вводит­
ся в диапазон из трех строк и четырех столбцов.
{=ТРАНСП(A I : С4) }
Обычные функции, возвращающие массив
Некоторые стандартные функции Excel используют массивы. Следует ввести фор­
мулу, в которой используется одна из этих функций, во множество ячеек, подобно тому,
как и формулу массива. К таким функциями относятся: п р е д с к а з , ч аст ота , р о с т ,
ЛИНЕЙН, ЛГРФПРИБЛ, ТЕНДЕНЦИЯ И Т .Д .
370
Часть IV. Формулы массивов
Генерирование массива последовательных
целых чисел
Как будет показано вглаве 15, для реш
ения многих задач необходимо генерировать
м
ассивы
, состоящ
ие из последовательных целых чисел, азатемиспользовать их в фор­
мулах м
ассива. Идеальныминструментомдля этого является функция СТРОКА, возвра­
щ
аю
щ
аязначениеном
ерастроки. Представленнаяформулавведенаввертикальныйдиа­
пазониз 12ячеек.
{ =СТРОКА( 1 : 1 2 ) }
Этаформулагенерирует м
ассивиз 12элементов, содержащ
ийцелы
ечислаот 1до 12.
Выделите диапазон, состоящ
ий из 12 строк и 1столбца, и введите формулу м
ассива.
Диапазонячеекбудетзаполненпоследовательнымицелы
мичислами(рис. 14.12).
Представленнаявы
ш
еформулаиспользуетсядлясозданияпоследовательностичисел,
ноонанеидеальна. Чтобыузнать онедостаткахееиспользования, вставьтеновуюстро­
ку наддиапазоном. Excel внесет изменения вформулу. Теперь онабудет иметь следую­
щ
ийвид:
{ =СТРОКА( 2 : 1 3 ) }
Формула, которая изначально возвращ
ала значения целых чисел от 1до 12, теперь
генерируетзначенияот 2до 13.
Лучшимреш
ениемявляетсядругаяформула:
{=СТРОКА(ДВССЫЛ( " 1 : 1 2 " ) ) }
В этой формуле используется функция ДВССЫЛ, которая в качестве аргумента при­
нимает текстовуюпоследовательность. Excel неизменяет ссылку, содержащ
ую
сяваргу­
м
енте функции ДВССЫЛ. Поэтому данная формула м
ассива всегда возвращ
ает целы
е
числаот 1до 12.
Перекрестная ссылка
В главе 15 приведены интересны е прим еры ге нерирования послед ователь­
ных целых чисел.
Использование одноячеечных формул массива
Все примерыпредыдущ
егоразделаиллюстрировали использование формул м
ассива,
возвращ
аю
щ
ихнесколькозначений, приэтомвдиапазонячееквводиласьоднаформула.
Но почувствовать настоящ
ие возможности формул м
ассива можно при использовании
формул м
ассива, возвращ
аю
щ
их одно значение. Такие примерырассматриваю
тся в на­
стоящ
емразделе.
Подсчет количества символов в диапазоне
Предположим, чтосуществуетдиапазонячеек, содержащ
ихтекст (рис. 14.13).
При традиционномподсчете количества символов в ячейках вначале создайте фор­
мулу, подобнуюприведеннойниж
е.
=ДЛСТР(А1)
Далеескопируйтееевниздля вычисления количествасимволоввкаждойячейке. За­
тем, используяформулуСУММ, вычислитесуммупромежуточныхзначений.
371
Глава 14. Знакомство с массивами
Рис. 14.12. Использование формулы
массива для создания последовательности целых чисел
Рис. 14.13. Подсчет количества символов в
ячейках, содержащих текст, с помощью формулы массива
Формула м
ассива выполняет всюработу сразу, без использования промежуточных
форм
ул.
{=СУММ(ДЛСТР(А1:А14)) }
Вэтой формуле функция ДЛСТР используется для создания массива (в памяти), кото­
рый содержит количество знаков в каждой ячейке диапазона. В нашем случае новый
массив имеет следующий вид:
{1 1 ; 1 2 ; 1 1 ; 8 ; 1 1 ; 1 6 ; 1 2 ; 1 0 ; 9 ; 1 0 ; 9 ; 1 4 ; 1 3 ; 1 1 }
Формулум
ассиватеперьможнопредставитьпрощ
е:
=СУММ ( { 1 1 ; 12 ; 1 1; 8 ; 1 1; 16 ; 12 ; 10 ; 9 ; 10 ; 9 ; 14 ; 13 ; 11} )
Сложение трех наименьших элементов диапазона
Представленная ниж
е формула возвращ
ает сумму трех наименьш
их значений вдиа­
пазонесим
енемЧисла.
{=СУММ(НАИМЕНЬШИЙ(Числа;{ 1 ; 2 ; 3 } ) ) }
Вэтойформулеиспользуетсямассивконстант вкачествевторогоаргументафункции
НАИМЕНЬШИЙ. Функция генерирует новыйм
ассив, которыйсостоит изтрехнаименьш
их
значенийдиапазона. Затемм
ассив обрабаты
вается функцией СУММ, которая возвращ
ает
сум
м
узначенийм
ассива.
На рис. 14.14 показан пример массива Числа, находящ
ийся в диапазоне А1:А10.
Функция НАИМЕНЬШИЙ выполняетсятрираза, кажды
йраз с новы
мвторы
маргументом.
Впервы
йразэтот аргумент имеет значение 1, ифункция возвращ
ает -5. Во второйраз
аргум
ентомявляется 2, ифункция возвращ
ает нуль (второеповеличинезначениевдиа­
пазоне). Втретийразаргументомявляется 3, ифункциявозвращ
аетдвойку.
ФункцияСУММ получаетследующийм
ассив:
{- 5; 0; 2 }
Формулавозвращ
ает суммуэлементовэтогом
ассива(-3).
372
Часть IV. Формулы массивов
Рис. 14.14. Формула массива возвращает сумму
трех наименьших значений массива
Подсчет количества текстовых ячеек в диапазоне
На первый взгляд, для решения этой задачи лучше всего подходит функция С Ч Ё Т Е С ЛИ, но это не так. Функция С Ч ЁТ Е С ЛИ проверяет не тип значения, а условие вхождения
в заданный интервал, поэтому для данной задачи она неприменима.
Функция ЕСЛИ используется в примере этого раздела для того, чтобы проверить, явля­
ется ли содержимое ячейки текстом. В результате формируется новый массив, состоящий
из нулей и единиц в зависимости от того, является ячейка текстовой или нет. Следует отме­
тить, что новый массив имеет тот же размер и ориентацию, что и исходный. Затем новый
массив передается функции СУММ, которая возвращает сумму элементов в массиве. Таким
образом, формула предоставляет результат — количество текстовых ячеек в диапазоне.
{ = С У М М ( Е С Л И ( Е Т Е К С Т (А 1 : D 5) ; 1 ; 0 ) ) }
Перекрестная ссылка
Такой тип формулы массива (а именно функция е с л и , вложенная в функцию
с у м м ) используется во многих расчетах (подробнее см. главу 7).
Результат использования описанной выше формулы вводится в ячейку
(рис. 14.15), а массив, созданный функцией ЕСЛИ, имеет следующий вид:
{0; 1 ; 1 ; 1 :1 ; 0 ; 0 ; 0 :1 ; 0 ; 0 ; 0 :1 ; 0 ; 0 ; 0 :1 ; 0 ; 0 ; 0}
С8
Рис. 14.15. Формула массива возвращает количество
ячеек с текстом в указанном диапазоне
Обратите внимание, что этот массив содержит пять строк из трех элементов (те же
размерности, что и в диапазоне).
К такому же результату приведет использование следующей формулы:
{ = СУ ММ( ЕТЕ КСТ(A I : D 5 ) * 1 ) }
Глава 14. Знакомство с массивами
373
Вэтой формуле не используется функция ЕСЛИ; вместо этого используется тот факт, что
ИСТИНА*1=1
И
ЛОЖЬ*1=0
Значения и с т и н а
и
л о ж ь в формулах массивов
Когда м ассив возвращ ает булево значение (ист и н а и л и ложь), в ы д о л ж н ы п р е о б р а ­
зовать его в число. Ф ункция сумм игн о р и р уе т булевы значения, но с ним и м ожно вы ­
полнять обычные матем атические о перации. В Excel эквивалентом значения и с т и н а
является 1, а эквивалентом значения ложь — о. П реобразование булевых значений в
числа гарантирует правильную их трактовку ф ункцией сумм.
Для преобразования булевых значений в числа без изм енений сам их этих значений
можно использовать след ую щ ие три матем атические о перац ии:
•
ум нож ение на единицу: (х * 1 = х );
•
добавление нуля: (х+ о = х );
•
прим енение д в о й н о го знака “ м и н ус” : (— х = х ).
П рименение лю бого из этих операторов к булеву значению “ приказывает” программ е
преобразовать его в число. Все следую щ ие ф ормулы вернут один и то т же результат.
(=СУММ(ЕТЕКСТ( A I :D 5) * 1 ) }
(=СУММ(ЕТЕКСТ( A I :D5) + 0 ) }
(=СУММ(— ЕТЕКСТ (A1:D5) ) }
Не сущ ествует идеального с п о со б а преоб разования булева значения в число, п о ­
этому вы бирайте метод, которы й больш е подход ит в данной ситуации. В то же время
помните обо всех трех методах, поскольку эти конструкции вы мож ете встретить на р а ­
бочих листах д р уги х пользователей.
Устранение промежуточных формул
Однимизглавных достоинств использования формул массиваявляется возможность
устранениявэлектроннойтаблицепромежуточныхформул. Этоделает рабочиетаблицы
м
енеегромоздкимииисклю
чает необходимость отображения несущ
ественных вычисле­
ний. Нарис. 14.16показанрабочийлист сбаллами, набранны
минапервомивторомэта­
пахтестирования. СтолбецD содержит разницумеждубалламивстолбцахВ иС. Ячейка
D17 отображает формулу, вычисляю
щ
уюсреднеезначениевстолбцеD.
=СРЗНАЧ(D 2:D 15)
Использование формулым
ассива позволяет исключить промежуточные вычисления.
Ниж
епредставленаформула, вычисляю
щ
ая средню
юразницу баллов безиспользования
значенийвстолбцеD.
{=СРЗНАЧ(С2: С 1 5 - В 2 :В 1 5 ) }
Вэтойформулеиспользуютсядвам
ассива, элементыкоторыххранятсявдвухдиапа­
зонах(В2 : В15 и С2 : С15). Формула создает новы
й массив, состоящ
ий из разности со­
ответствую
щ
их элементов исходных массивов. Новый м
ассив хранится только впамяти
Excel, аневячейкахэлектроннойтаблицы. Функция СРЗНАЧ получает этот новы
йм
ас­
сиввкачествеаргумента. Новыймассивсостоит изследующихэлементов:
{11 ;1 5 ;-6 ;1 ;1 9 ;2 ;0 ;7 ;1 5 ;1 ;8 ;2 3 ;2 1 ;-1 1 }
374
Часть IV. Формулы массивов
Рис. 14.16. Если для подсчета средней
разницы баллов не использовать формулы
массива, то потребуются промежуточные
формулы в столбце D
Следовательно, в развернутом виде формула принимает следующий вид:
=СРЗНАЧ( { 1 1 ; 1 5 ; - 6 ; 1 ; 1 9 ; 2 ; 0 ; 7 ; 1 5 ; 1 ; 8 ; 2 3 ; 2 1 ; - 1 1 } )
На основе данных этого примера можно вычислить и другие значения, используя
формулы массива. Например, следующая формула возвращает наибольшую разницу
(характеризующую наиболее значительное улучшение успеваемости). Эта разница равна
23 и соответствует результатам тестирования студента С ер гей .
{ =М АКС ( С 2 : С 1 5 - В 2 : В 1 5 ) }
Приведенная ниже формула возвращает наименьшую разницу (характеризующую
ухудшение успеваемости). Она составляет - 1 1 и соответствует результатам тестирова­
ния студента А льфред.
{= М И Н ( С 2 : С 1 5 - В 2 : В 1 5 ) }
Использование массива вместо диапазона ссылок
Некоторые функции в качестве аргумента используют диапазон ссылок. Если в фор­
муле используется такая функция, можно заменить диапазон ссылок на массив констант
(особенно в том случае, если значения в диапазоне ссылок не изменяются).
Примечание
Исключение составляют функции работы с базами данных (например, бдсумм).
Эти функции в качестве обязательного аргумента получают критерий, нахо­
дящийся в диапазоне ячеек. К сожалению, использовать массив констант
вместо ссылки на диапазон условий нельзя.
На рис. 14.17 показан рабочий лист, в котором используется таблица преобразования
для отображения слова, соответствующего числу. Например, числу 9 в таблице преобра­
зования (диапазон D 1:E 10) соответствует значение Д е в я т ь . Формула, возвращающая
это значение, находится в ячейке С1.
=ВПР( В1; D l : Е 1 0 ; 2 ; ЛОЖЬ)
Глава 14. Знакомство с массивами
375
Рис. 14.17. Таблицу преобразований, нахо­
дящуюся в диапазоне D i:E io , м о ж н о заме­
нить на массив констант
Вместотаблицыпреобразованийчастоприменяю
т двухмерныймассив. Приведенная
ниж
е формула возвращ
ает тот ж
ерезультат, что и предыдущ
ая, но нетребует наличия
таблицыпреобразований:
=ВПР(В1 ; { 1 ; "Один": 2 ; " Д в а " : 3 ; " Т р и " : 4 ; " Ч е т ы р е " :5 ; " П я т ь " : 6 ;
"Шесть": 7 ; "Семь" : 8 ; " В о с е м ь " : 9 ; " Д е в я т ь " : 1 0 ; " Д е с я т ь " } ; 2 ; ЛОЖЬ)
Глава
Магия формул массива
В этой главе...
♦ Работасодноячеечны
миформуламим
ассива
♦ Работасмногоячеечны
миформуламим
ассива
В предыдущ
ейглавебыливведеныпонятия м
ассиваиформулым
ассива, атакж
еда­
нысоответствую
щ
иепримеры
. Этаглавапосвящ
енаформуламмассивовисодержит по­
лезны
епримеры
, которы
епродемонстрируют ихэффективность.
Эти примерывым
ож
ете непосредственно использовать вработе, только вряде слу­
чаевследует изменить им
енадиапазонов или ссылок. Во многие примерылегко внести
изм
енения, чтобыониработалиименнотак, какнужнодляреш
енияпрактическихзадач.
Компакт-диск
Все прим еры этой главы содерж атся в русиф ицированном файле C h a p t e r i 5 _
R U S . x l s x на прилагаем ом ком пакт-диске (названия листов соответствую т
номерам рисунков), а также в нескольких авторских файлах, о которы х будет
сказано дополнительно.
Работа с одноячеечными формулами массива
Какописывалось впредыдущ
ейглаве, формулу м
ассивамож
новводить водну ячей­
ку(а не вдиапазон ячеек). Такие формулыобрабатываю
тм
ассивы
, хранящ
иеся либо в
диапазонеячеек, либовпамятиExcel. В этомразделепредставленынекоторы
едополни­
тельны
епримерыодноячеечныхформул м
ассива.
О примерах этой главы
Данная глава со де р ж ит ряд п рим еров ф ормул м ассива. П омните, что формулы м а с­
сива вводятся с пом ощ ью ком бинации клавиш <C trl+ S h ift+ E n te r> , а не просто <E nter>.
После нажатия этой ком бинации клавиш Excel вставит введенную вами ф ормулу в ф и ­
гурные скобки. П риведенны е в тексте главы ф ормулы м ассива заключены в ф игурны е
скобки только для наглядности, вам их вводить в строке ф ормул не придется.
Часть IV. Формулы массивов
378
Компакт-диск
В се п р и м е р ы э т о го р а зд е л а в а в то р с к о м в а р и а н те с о д е р ж а тс я в ф айле
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 на прилагаем ом ком пакт-диске.
Суммирование в диапазоне, содержащем ошибки
МногиепользователиExcel знаю
т, чтофункция СУММ неработает, еслипросуммиро­
вать диапазон ячеек, содержащ
их сообщ
ения об ош
ибках (например, # Д Е Л / 0 ! или
#Н /Д ). Рис. 15.1 иллю
стрирует такой случай. Формула СУММ вячейке С И возвращ
ает
сообщ
ение обош
ибке, так каквдиапазонеячеек С4 : СЮ, которы
е онасклады
вает, со­
держатсясообщ
енияобош
ибках.
Hi
:
I_________
Рис. 15.1. Формула массива может складывать значе­
ния в диапазоне, содержащем ошибки
Следующая формулам
ассивавозвращ
ает сумму значений, даж
еесливходнойдиапа­
зонсодержит сообщ
енияобош
ибке.
{ =СУММ(ЕСЛИОШИБКА(С 4 : С10 ; " " ) }
Эта формула создает новый массив, включающий значения диапазона, но без со­
общ
ений об ош
ибке. Функция ЕСЛИ заменяет сообщ
ения об ош
ибке напустые значе­
ния. Затемфункция СУММ складывает элементы “отфильтрованного” таким образом
м
ассива. Аналогичнуюметодику можноиспользоватьидля других функций, например
МИН иМАКС.
В данномпримерефункция СУММ обрабаты
вает следующийвнутреннийм
ассив, хра­
нящ
ийсяпамяти:
{8; 20; 12; ""и;5;10}
Примечание
В о зн ика ю т случаи, когда вм е сто е с л и о ш и б к а н е о б хо д им о исп о л ьзо ва ть
д р у ги е ф ункции. Д ело в том , что е с л и о ш и б к а в о звр а щ а е т значение
ИСТИНА при лю б ы х значени ях о ш и бки ( # Н / Д , # З Н А Ч ! , #ССЫЛКА ! , # Д Е Л / 0 ! ,
# число ! , #имя? или # п у с т о !) . Ф ункц ия е о ш в о звр а щ а е т значение и с т и н а
при лю бы х значени ях о ш и бки , кром е # н / д , а ф ункция е н д — только при
значениях о ш и б ки # н / д .
Глава 15. Магия формул массива
379
Новинка
ШШ
Ф ункция а г р е г а т предоставляет ещ е один с п о с о б сум м ирования д и а п а зо ­
на, содерж ащ его ош ибочны е значения:
=АГРЕГАТ ( 9 , 2 , С4 : СЮ)
Первый а ргум ент со д е р ж и т значение 9 — код ф ункции сумм. В торой а р гу ­
мент приказы вает ф ункции а г р е г а т и гн о р ир о ва ть ош ибки.
Подсчет количества ошибок в диапазоне
Представленная ниж
е формула м
ассива подобна формуле предыдущ
его примера, за
исклю
чением того, что она возвращ
ает количество ош
ибок в диапазоне с им
енем
Данные.
{=СУММ(ЕСЛИ(ЕОШИБКА(Данные) ; 1 ; 0 ) ) }
Эта формуласоздает м
ассив, состоящ
ий из единиц (если соответствую
щ
ая ячейка со­
держ
итсообщ
ениеобош
ибке) инулей(есливячейкеотсутствуетсообщ
ениеобош
ибке).
Можнонемногоупроститьформулу, удаливтретийаргумент функцииЕСЛИ. В резуль­
тате, если условие не вы
полняется (ячейка несодержит сообщ
ение об ош
ибке), функция
ЕСЛИ будет возвращ
атьзначениеЛОЖЬ. Усоверш
енствованная формулавозвращ
ает такой
ж
ерезультат, чтоипреды
дущ
ая, новнейнеттретьегоаргументафункцииЕСЛИ.
{=СУММ(ЕСЛИ(ЕОШИБКА(Данные);1)) }
Вдействительностимож
ноещ
ебольш
еупроститьэтуформулу:
{=СУММ(ЕОШИБКА(Данные) * 1 ) }
Вэтойверсииформулыиспользуютсятакиеравенства:
ИСТИНА*1=1
И
ЛОЖЬ*1=0
Суммирование п наибольших значений в диапазоне
Следую
щ
ая формула возвращ
ает значение суммы десяти наибольших значений в
диапазонесим
енемДанные:
{=СУММ(НАИБОЛЬШИЙ(Данные; СТРОКА(ДВССЫЛ( " 1 : 1 0 " ) ) ) ) }
Функция НАИБОЛЬШИЙ выполняетсядесятьраз, причемкажды
йразсдругимвторы
м
аргум
ентом(1, 2, 3... 10). Результатыэтихвычисленийхранятся вновомм
ассиве, кото­
ры
йслужитаргументомдляфункциисуммирования.
Чтобы просуммировать другое количество значений, необходимо заменить число 10
в аргументе функции ДВССЫЛ на другое значение.
Если количество суммируемы
хячеекнаходится вячейке С17, используйте оператор
конкатенациидлясозданияадресадиап^онадляфункцииДВССЫЛ.
{=СУММ(НАИБОЛЬШИЙ(Данные/СТРОКА(ДВССЫЛ( " 1 : "&С17)) ) ) }
Для суммирования п наименьш
их значений в диапазоне следует заменить функцию
НАИБОЛЬШИЙ функциейНАИМЕНЬШИЙ.
380
Часть IV. Формулы массивов
Вычисление среднего без учета нулевых значений
На рис. 15.2 показан рабочий лист, накоторомвычисляется средний объемпродаж.
ВячейкуВ14 помещ
енаследую
щ
аяформула:
=СРЗНАЧ(Данные)
Рис. 15.2. Вычисление среднего значения, при котором
исключаются ячейки, содержащие нуль
Эта формула вычисляет среднее значение именованного диапазона Д анн ы е. Два
продавца отсутствовали наработе некоторое врем
я. В результате представленная вы
ш
е
формуланеточноотображаетсреднийуровеньпродажторговыхпредставителей.
Примечание
Ф ункция с р з н а ч не учиты вает пусты е ячейки, зато п риним ает в расчет ячей­
ки, содерж ащ ие нулевые значения.
Следующая формула м
ассива возвращ
ает среднее значение в диапазоне и при этом
исклю
чаетячейки, содержащ
иенулевыезначения:
{ =СРЗНАЧ (ЕСЛИ (Д анны еоО / Данные) ) }
Эта формула создает новый м
ассив, состоящ
ий исключительно из ненулевых значе­
ний. Функция СРЗНАЧ принимает этот м
ассив вкачестве своего аргумента. Тот ж
ере­
зультатмож
нополучитьприиспользованииобычнойформулы(неформулымассива).
=СУММ(Данные)/СЧЁТЕСЛИ(Данные; "<>0")
Вначалерассчитываетсясуммавсехзначенийячееквдиапазоне. Затемэтасуммаде­
лится на количество ненулевых ячеек диапазона, полученное с помощ
ью функции
СЧЁТЕСЛИ.
Поиск значения в диапазоне
Длятогочтобыопределить, присутствует лиопределенноезначениевдиапазонеячеек,
необходимо вы
брать команду Главная^ Редактированием Найти и выделить*^ Найти,
послечеговручнуюзадатьпарам
етрыпоиска. Можнопоступитьдругимобразомиреш
ить
этузадачуавтоматическиспомощ
ьюформулым
ассива.
На рис. 15.3 показан рабочий лист со спискомим
ен в диапазоне АЗ:Е22, которому
присвоеноим
яС писокИ м ен. Формулам
ассивавячейкеD1 ищ
ет им
я, введенноевячейке
Глава 15. Магия формул массива
381
С1, которойприсвоеноим
я.Имя. Если заданноеим
яприсутствует вспискеим
ен, формула
вы
водиттекст Н а й д е н о . Впротивномслучаеонаотображ
аетфразуНе н а й д е н о .
ФормулавячейкеD1 им
еетследующийвид:
{=ЕСЛИ(ИЛИ(Имя=СписокИмен) ; "Н айдено"; "Не н а й д е н о " ) }
Эта формула сравнивает Имя с каж
ды
мэлементомвдиапазоне С п и сок И м е н . Она
создает новы
йм
ассив, который состоит из логических значений ИСТИНА или ЛОЖЬ.
ФункцияИЛИ возвращ
аетзначениеИСТИНА, еслихотябыоднозначениевновомм
асси­
ве— ИСТИНА. Функция ЕСЛИ использует этот результат для определения возвращ
аем
о­
госообщ
ения.
Более простой вариант этой формулы представлен ниж
е. Эта формула возвращ
ает
значениеИСТИНА, еслиим
янайдено, впротивномслучае— ЛОЖЬ.
{=ИЛИ(Имя=СписокИмен) }
Рис. 15.3. Использование формулы массива для
определения наличия значения в диапазоне
Ещ
еодинподходпредполагает использованиефункцииСЧЁТЕСЛИ:
==Если(СЧЁТЕСЛИ(СписокИмен153;Имя)> 0 ; "Найдено";"Не н айден о" )
Подсчет отличающихся значений в двух диапазонах
Представленнаянижеформуламассивасравнивает соответствующ
иезначениявдвух
диапазонах (имею
щ
их им
ена М оиДанные и Т в о и Д а н н ы е ) и возвращ
ает количество
различны
х элементов вэтих двух диапазонах. Если содержимое двух диапазонов иден­
тично, формулавозвращ
ает нуль.
{=СУММ(ЕСЛИ(МоиДанные=ТвоиДанные; 0 ; 1 ) ) }
Двадиапазонадолжныиметьодинаковы
еразм
ериориентацию
.
Даннаяформуласоздает новы
йм
ассивтакогож
еразм
ера, какисравниваем
ы
едиапа­
зоны
. Функция ЕСЛИ заполняет этот новый м
ассив нулями и единицами (нуль— если
есть различие, единица— если нет различий в соответствующ
их ячейках). Функция
СУММ возвращ
аетсуммузначенийэтогом
ассива.
Тот ж
ерезультат мож
нополучить, применивболеепростуюформулу:
{=СУММ (1* (МоиДанныеоТвоиДанные) ) }
Этаверсияформулыбазируетсянаследующихравенствах:
382
Часть IV. Формулы массивов
ИСТИНА*1=1
И
ЛОЖЬ*1=0
Местоположение максимального значения диапазона
Дляопределенияном
ерастроки, вкоторойнаходитсям
аксим
альноезначениеодномерно­
говертикальногом
ассивасим
енемДанные, м
ож
новоспользоватьсяследую
щ
ейформулой:
{=МИН(ЕСЛИ(Данные=МАКС(Данные); СТРОКА(Данные); " " ) ) }
Функция ЕСЛИ создает новый м
ассив, соответствующ
ий диапазону Данн ы е. Если
соответствую
щ
ая ячейкасодержит максимальное значениедиапазона Д ан н ы е, то вно­
вы
йм
ассив вклю
чается номер еестроки. В противномслучае м
ассив содержит пустую
текстовуюстроку. Функция МИН использует этот м
ассив как второй аргумент и возвра­
щ
ает минимальноезначение, котороесоответствует номерустроки, вкоторойнаходится
максимальноезначениедиапазонаД анны е.
Если диапазон Д ан н ы е содержит несколько ячеек с максимальны
м значением, то
возвращ
аетсяном
ерпервойтакойячейки.
Представленнаяниж
еформулам
ассиваподобнапредыдущ
ей, ноонавозвращ
аетдейст­
вительны
йадрес ячейкис м
аксим
альны
мзначениемвдиапазонеДанные. В формулеис­
пользуетсяфункцияАДРЕС, котораяим
еетдвааргумента: ном
ерстрокиином
ерстолбца.
{=АДРЕС(МИН(ЕСЛИ(Данные=МАКС(Данные) ; СТРОКА(Данные) ; " ")) ;
СТОЛБЕЦ(Данные)) }
ЕслидиапазонД ан н ы е занимаетбольш
еодногостолбца, следую
щ
аяформуламасси­
вавернетправильныйадрес:
{=АДРЕС(МИН(ЕСЛИ(Данные=МАКС(Данные) ; СТРОКА(Данные)
МИН(ЕСЛИ(Данные=МАКС(Данные)/СТОЛБЕЦ(Данные); " " ) ) ) }
") ) ;
Поиск номера строки, в которой находится л-е
значение, совпадающее с заданным
Приведенная ниже формула ищ
ет в одномерномвертикальномдиапазоне с им
енем
Данны е значения, которы
е совпадаю
т с содержимы
мячейки З н а ч е н и е , и возвращ
ает
ном
ерстрокил-госовпадаю
щ
егоэлемента.
^НАИМЕНЬШИЙ(ЕСЛИ(Д анн ы е=3начен ие; С Т Р О К А ( Д а н н ы е ) " ) ; п ) }
Функция ЕСЛИ создает новыймассив, состоящ
ийизномеровстрок, вкоторыхзначе­
ния из диапазона Д ан н ы е совпадаю
т со значением З н а ч е н и е . Если значение из
Д анны е несовпадает созначениемЗ н а ч е н и е , то новы
й массив содержит пустуютек­
стовуюстроку. Функция НАИМЕНЬШИЙ обрабаты
вает этот новыйм
ассививозвращ
ает пйнаименьш
ийном
ерстолбца.
Еслип превы
ш
ает количествозначенийвдиапазонеД ан н ы е, равны
хЗ н а ч е н и е , или
значениеЗ н а ч е н и е ненайдено, формулавозвращ
аетошибку#ЧИСЛО!.
Получение самого длинного текста в диапазоне
Следующ
ая формула отображает содержимое ячейки диапазона Д ан н ы е, в которой
находится наибольш
ее количество символов. Если сам
ы
й длинный текст содержится в
несколькихячейках, товозвращ
аетсясодержимоепервойтакойячейки.
Глава 15. Магия формул массива
383
{=ИНДЕКС(Данные; П0ИСКП03(МАКС(ДЛСТР(Данные)) ; ДЛСТР(Данные);ЛОЖЬ);1)}
Эта формулаработает сдвумя массивами, кажды
й из которых имеет длину соответ­
ствую
щ
его элемента из диапазона Данн ы е. Функция МАКС находит наибольш
ее значе­
ние, которое соответствует элементу с сам
ы
мдлинным текстом. Функция П0ИСКП03
вы
числяет см
ещ
ение ячейки с максимальной длиной. Функция ИНДЕКС возвращ
ает со­
держ
им
оеячейки, вкоторой находится текст с наибольш
имколичествомсимволов. Эта
форм
улавозвращ
ает правильныйрезультат только втомслучае, еслидиапазонДанн ы е
состоит изодногостолбца.
Определение допустимых значений диапазона
Перед вам
и может возникнуть следую
щ
ая задача: проконтролировать содерж
имое
списканапредмет допустимости внемзначений. Предположим, что список всехдопус­
тим
ы
хчисел хранится вдиапазонесим
енемО с н о в а . При импорте спискачисел вдиа­
пазонсим
енемМ ой С п и сок нужноубедиться, чтовсечисладопустимы. Для этогонеоб­
ходим
осравнитьэлементывимпортируемомспискесэлементамивспискеО с н о в а .
Приведенная ниж
е формула м
ассива возвращ
ает значение ИСТИНА, если кажды
й
элем
ент диапазона с им
енемМ ой С п и сок найден в диапазоне с им
енемО с н о в а . Оба
этихдиапазонадолжнысостоятьизодногостолбца(этонезависитот числастрок).
{=ЕНД(ПОИСКПОЗ(ИСТИНА;ЕНД(ПОИСКПОЗ(МойСписок;Основа; 0 ) ) ; 0 ) ) }
Можнотакж
еопределить количество недопустимых значений. Иными словами, если
требуется подсчитать количество элементов в М ой С п исок, которы
е отсутствуют в
Основа, воспользуйтесьследую
щ
ейформулой:
{=СУММ(1*ЕНД(ПОИСКПОЗ(МоиСписок; О с н о в а ; 0 ) ) ) }
Для определенияпервогонедопустимогоэлементавМ о й С п и с ок используйтеприве­
деннуюнижеформулу.
{=ИНДЕКС(МойСписок/ПОИСКПОЗ(ИСТИНА;
ЕНД(ПОИСКПОЗ(МойСписок;Основа;0)) ; 0 ) ) }
Вычисление суммы цифр числа
Для вычисления суммы цифр в положительном целом числе, которое хранится в
ячейкеА1, мож
ноиспользоватьследующуюформулу:
{=СУММ(ПСТР(А1;СТРОКА(ДВССЫЛ( " 1 : "&ДЛСТР(А1)) ) ; 1 ) *1) }
Например, еслиячейкаА1 содержит значение 409, приведенная вы
ш
еформулавер­
нетзначение13 (4+0+9=13).
Чтобыпонять, какработает этаформула, рассмотримфункциюСТРОКА вследую
щ
ей
ф
орм
уле:
{=СТРОКА (ДВССЫЛ ("1: "&ДЛСТР(А1) ) ) }
Этаформулавозвращ
ает м
ассивпоследовательных целыхчисел, которыйначинается
сединицыи заканчивается количествомцифр в числе, находящ
емся в ячейке А1. На­
прим
ер, если ячейка А1 содержит значение 409, функция ДЛСТР вернет значение 3,
афункциейСТРОКА будетсгенерированследующийм
ассив:
{1>
'2; 3}
384
Часть IV. Формулы массивов
Перекрестная ссылка
Подробная информация об использовании функции двссыл приведена в
главе 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.5 показан рабочий лист, который демонстрирует характерную проблему
всех электронных таблиц — ошибку округления. Как видно из рисунка, общая сумма в
ячейке Е 7 не является точной суммой чисел в столбце Е. Значения в столбце Е исполь­
зуют числовой формат, в котором отображаются две цифры после запятой. Фактические
значения имеют больше знаков после запятой, и некоторые из них не отображаются. Ре­
зультирующее влияние погрешностей округления может привести к общему неточному
результату. Общее значение составляет $ 1 6 8 ,3 2 0 9 9 7 , отображаемое — $ 1 6 8 ,3 2 .
Следующая формула массива создает новый массив, который состоит из значений
столбца Е, округленных до двух десятичных знаков:
{=СУММ(ОКРУГЛ(Е2:Е4;2 ) ) }
Эта формула возвращает правильную величину суммы округленных значений —
$ 1 6 8 , 31.
Глава 15. Магия формул массива
Рис. 15.4. Формула массива вычисляет сумму цифр
любого целого числа
385
Рис. 15.5. Использование формулы массива устраняет ошибку округления
Для устранения таких ошибок округления можно также ввести в ячейки столбца Е
уже округленные значения с помощью функции ОКРУГЛ. Этот подход не требует созда­
ния формулы массива.
Суммирование каждого л -го значения в массиве
Предположим, что существует диапазон значений, в котором необходимо определить
сумму каждого третьего значения: первого, четвертого, седьмого и т.д. Один из способов
решения этой задачи — внесение адреса ячеек в формулу суммирования. Однако луч­
шим решением будет использование формулы массива.
Обратимся к данным рис. 15.6. Значения хранятся в диапазоне В 4:В 22 с именем
Данные 156, а значение п задается в ячейке D4, названной п.
Рис. 15.6. Формула массива возвращает сумму
каждого п-го значения в диапазоне
386
Часть IV. Формулы массивов
Для суммирования каждого п-го элемента диапазона используется следующая формула:
{ = СУ ММ( Е СЛИ ( О СТ АТ ( СТ Р О К А( Д В ССЫЛ( " 1 : " &
ЧСТРОК(Данные156) ) ) - 1 ; п ) = 0 ; Д ан н ые1 5б; " " ) ) }
Эта формула создает массив последовательных целых чисел. Функция ОСТАТ прини­
мает его в качестве первого аргумента. Второй аргумент функции ОСТАТ — значение п.
Функция ОСТАТ создает другой массив, состоящий из остатков деления каждого после­
довательного целого числа на п. При равенстве элемента этого массива нулю (это значит,
что деление прошло без остатка) происходит суммирование соответствующих значений
в диапазоне Данные.
Если принять значение п равным нулю, приведенная выше формула возвращает со­
общение об ошибке. Улучшенная формула массива включает функцию ЕСЛИ для успеш­
ной работы при п=0.
{=ЕСЛИ(п= 0 ; 0 ; СУММ(ЕСЛИ(ОСТАТ(СТ РОКА(ДВССЫЛ( " 1 : "
&ЧСТРОК(Данные156) ) ) - 1 ; п ) = 0 ; Д ан н ые 156 ; " " ) ) ) }
Эта формула работоспособна только в том случае, когда диапазон Данные состоит из
одного столбца значений. Она не работает, если диапазон состоит из более чем одного
столбца или даже одной строки.
Приведенная выше формула всегда включает первый элемент диапазона. К примеру,
если п=5, будут суммироваться следующие элементы: 1, 6, 11 и 16. Рассмотрим не­
сколько модифицированную версию формулы, которая начинает суммирование именно с
n-го элемента. Когда п=5, формула суммирует следующие элементы: 5, 10 и 15.
{ = Е С Л И (п = 0 ; 0 ; СУММ(ЕСЛИ(ОСТАТ(СТРОКА(ДВССЫЛ( " 1 : "
&ЧСТРОК(Данные156) ) ) - п ; п ) = 0 ; Д а нн ые 1 56; " " ) ) ) }
Для создания формулы, работающей с горизонтальным диапазоном, необходимо
транспонировать массив целых чисел, генерируемых функцией СТРОКА. Модифициро­
ванная формула массива, предназначенная для обработки горизонтального диапазона
Данные, имеет следующий вид:
{ =ЕС ЛИ(п=0; 0 ; СУММ(ЕСЛИ(ОСТАТ(ТРАНСП(СТРОКА(ДВССЫЛ( " 1 : "
&ЧСТРОК(Данные)) ) ) - 1 ; п ) = 0 ; Д а нн ые ; " " ) ) ) }
Удаление нечисловых символов из текстовой строки
Приведенная ниже формула извлекает числа из текстовой строки. Например, если при­
менить формулу к строке, содержащей текст ABC145Z, будет возвращено значение 145.
{ =ПСТР(А 1 ; ПОИСКПОЗ( 0 ; ( ЕОШИБКА(ПСТР(А 1 ;
СТРОКА(ДВССЫЛ( " 1 : "&ДЛСТР(А1)) ) ; 1 ) * 1 ) * 1 ) ; 0 ) ;
ДЛСТР(А1)-СУММ((ЕОШИБКА(ПСТР(А1;
СТРОКА(ДВССЫЛ( " 1 : "&ДЛСТР(А1)) ) ; 1 ) * 1 ) * 1 ) ) ) }
Эта формула работает только с одним внедренным числом. К примеру, она даст не­
правильный результат при работе со строкой X45Z99 (вернет 4 5Z9).
Проверка правильности вычисления формул
Чтобы лучше понять, как выполняется конкретная сложная формула массивов, об­
ратитесь к специальному средству отладки формул. Для этого выделите ячейку с
формулой и выберите команду Формулы^Зависимости формул^Вычислить формулу.
На экране откроется диалоговое окно Вычисление формулы, показанное ниже.
Глава 15. Магия формул массива
387
Щелкните на кнопке Вычислить несколько раз, и увидите промежуточные резуль­
таты вычисления формулы. Это подобно замедленному, пошаговому воспроизведе­
нию процесса вычисления
Поиск ближайшего значения в диапазоне
Пусть ячейка с произвольным числом имеет имя Це ль 1 5 7 . Для определения бли­
жайшего к нему числа из массива Д а н ны е 1 5 7 воспользуемся формулой массива.
{=ИНДЕКС(Да нн ые157 ; ПОИСКПОЗ(НАИМЕНЬШИЙ(ABS(
Ц е л ь 1 5 7 - Д а н н ы е 1 5 7 ) ; 1 ) ; ABS( Ц е л ь 1 5 7 - Д а н н ы е 1 5 7 ) ; 0 ) ) }
Если в массиве существует два числа, ближайших к Це ль 1 5 7, то формула вернет
значение первого из них. На рис. 15.7 представлен пример использования этой формулы.
Рис. 15.7. Формула массива возвращает ближай­
шее значение
В этом примере массив Данные157 находится в диапазоне А4:А22, значение
Цель 157 составляет 45. Формула массива находится в ячейке D5 и возвращает бли­
жайшее к Цель 157 значение, равное 4 8.
Получение последнего значения в столбце
Предположим, что существует рабочий лист, в столбец А которого периодически
вносятся новые данные, и нам необходимо отобразить последнее введенное значение.
Если столбец А не содержит пустых ячеек, данную задачу можно решить сравнительно
просто, не прибегая к использованию формул массива.
=СМЕЩ(А 1 ; СЧЁТЗ(А:А)- 1 ; 0 )
В этой формуле функция СЧЁТЗ используется для подсчета количества непустых
ячеек в столбце А. Полученное значение (за вычетом единицы) используется в качестве
Часть IV. Формулы массивов
388
второго аргумента функции СМЕЩ. Например, пусть последнее значение было введено в
строку с номером 100. Функция СЧЁТЗ вернет значение 100, а функция СМЕЩ— значе­
ние в ячейке, находящейся на 99 строк ниже ячейки А1.
В то же время столбец А вполне может содержать хотя бы одну пустую ячейку внутри
диапазона. Это приведет к тому, что предыдущая формула будет выполняться непра­
вильно. Дело в том, что функция СЧЁТЗ не подсчитывает пустые ячейки.
Приведенная ниже формула массива возвращает содержимое последней непустой
ячейки столбца А.
{ =ИНДЕКС(А1:А;МАКС(СТРОКА(А1:А)* ( А1: А<>"" ) ) ) }
Естественно, что эту формулу можно модифицировать для работы с любым другим
столбцом. Для этого вместо ссылок на столбец А введите ссылки на любой другой столбец.
Предупреждение
Эту формулу нельзя размещать в том столбце, который она обрабатывает. Иг­
норирование этого правила приводит к циклической ссылке. Однако можно
немного модифицировать формулу. Например, разместите формулу в первой
строке и измените ссылки так, чтобы они начинались со второй строки.
Получение последнего значения в строке
Следующая формула массива аналогична предыдущей, однако возвращает послед­
нюю непустую ячейку строки (в данном случае строки 1):
{ =ИНДЕКС( 1 : 1 ; МАКС(СТОЛБЕЦ( 1 : 1 ) * ( 1 : 1 < > " " ) ) ) }
Для использования этой формулы в другой строке замените ссылку 1 :1 .
Упорядочение данных с помощью формулы массива
Часто приходится вычислять последовательность значений в диапазоне данных.
Предположим, существует рабочий лист с информацией о годовых объемах продаж, со­
вершенных'разными менеджерами. Нас интересует, какое место по объему продаж за­
нимает каждый менеджер.
Использование для этой цели стандартной функций РАНГ может привести к неожи­
данным результатам. Например, если два значения находятся на третьем месте, функция
РАНГ присваивает каждому из них значение, равное трем. Однако может возникнуть не­
обходимость определить их ранг как средний относительно других рангов. Иными сло­
вами, ранг 3,5 в этой функции для обоих значений связан с третьим местом.
На рис. 15.8 представлен рабочий лист, в котором применяются два метода оценки зна­
чений, находящихся в столбце В (диапазон Продажи). В первом методе (столбец С) ис­
пользуется функция РАНГ. В столбце D с помощью формулы массива вычисляется ранг.
В ячейке D5 находится формула массива.
{=СУММ( 1 * ( В5<=Продажи)) - (СУММ( 1 * ( В5=Продажи)) - 1 ) / 2 }
Эта же формула скопирована в нижние ячейки.
Примечание
Каждый ранг вычисляется с помощью отдельной формулы массива, а не
формулы массива, введенной в весь диапазон ячеек.
Глава 15. Магия формул массива
389
Рис. 15.8. Оценка данных с помощью функ­
ции р а н г и формулы массива
Формулы массива работают следующим образом. Вначале вычисляется количество
значений, больших анализируемого значения. Затем определяется количество равных зна­
чений минус один. В заключение из первого количества вычитается половина второго.
Новинка
Новая функция ранг . рв во многих случаях устраняет необходимость приме­
нения формулы массива для решения подобных задач. В частности, она воз­
вращает те же ранги, что и формула массива в столбце 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 на прилагаемом компакт-диске.
Извлечение положительных значений из диапазона
Представленная ниже формула массива работает с однрмерным вертикальным масси­
вом, имеющим имя Данные. Формула массива расположена в диапазоне такого же раз­
мера, что и Данные. Для извлечения из диапазона Данные только положительных зна­
чений (нулевые и отрицательные значения игнорируются) используется следующая фор­
мула массива:
{=ИНДЕКС(Данные; НАИМЕНЬШИЙ(ЕСЛИ(Данные>0;
СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные) ) ) ) ;
СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные) ) ) ) ) }
Как видно на рис. 15.9, эта формула работает, но имеет некоторые недостатки. Диа­
пазон Данные находится в ячейках А 5:А 24, а формула массива введена в диапазон
Часть IV. Формулы массивов
390
С5 : С24. Однако для ячеек, которые не содержат значения, формула массива возвращает
сообщение об ошибке #ЧИСЛО!.
Рис. 15.9. Использование формулы массива для
возвращения из диапазона только положительных
значений
Модифицированная формула массива, введенная в диапазон ячеек Е5 :Е24, исполь­
зует функцию ЕСЛИОШИБКА во избежание сообщений об ошибках.
{=ЕСЛИОШИБКА(ИНДЕКС(Данные; НАИМЕНЬШИЙ(ЕСЛИ(Данные>0;
ДВССЫЛ( ( " 1 : "&ЧСТРОК(Данные)) ) ) ;
СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные) ) ) ) ) ; " " ) }
Извлечение непустых ячеек из диапазона
Формула этого раздела — один из вариантов формулы предыдущего раздела. Она ра­
ботает с одномерным вертикальным массивом Д ан ные . Формула массива вводится в та­
кой же по размерности диапазон, что и Дан н ые, и возвращает только непустые ячейки
из этого диапазона.
{=ЕСЛИОШИБКА(ИНДЕКС(Данные;
НАИМЕНЬШИЙ (ЕСЛИ ( Дан ные оО ;
ДВССЫЛ(( " 1 : "&ЧСТРОК(Данные)) ) ) ;
СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные) ) ) ) ) ; " " ) }
В более старых версиях программы (до Excel 2007) можно использовать следующую
формулу:
{ =ЕСЛИ (ЕОШ(НАИМЕНЬШИЙ (ЕСЛИ ( Д а н н ы е о " " ;
СТРОКА(ДВССЫЛ("1:"&ЧСТРОК(Данные)) ) ) ;
СТРОКА(ДВССЫЛ( " 1 : "&ЧСТРОК(Данные)) ) ) ) ; " " ;
ИНДЕКС (Данные;НАИМЕНЬШИЙ (ЕСЛИ ( Д а н ны е о " " ;
СТРОКА(ДВССЫЛ( " 1 : "&ЧСТРОК(Данные)) ) ) ;
СТРОКА(ДВССЫЛ( " 1 : "&ЧСТРОК(Данные)) ) ) ) ) }
Глава 15. Магия формул массива
391
Изменение порядка следования элементов
в диапазоне на противоположный
Представленная ниже формула массива работает с одномерным вертикальным масси­
вом Данные. Она расположена в диапазоне, имеющем такой же размер, что и Данные.
Для возвращения массива с противоположным порядком следования элементов исполь­
зуется следующая формула:
{=ЕСЛИ(ИНДЕКС(Данные; ЧСТ РОК(Данные)
СТРОКА(ДВССЫЛ( " I s ”&ЧСТРОК(Данные) ) ) + 1 ) = " " ; " " ;
ИНДЕКС(Данные;ЧСТРОК(Данные)СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные) ) ) + 1 ) ) }
Присвоим диапазону А 4 : А 1 3 имя Данные, а формулу массива введем в диапазон
С4 : С13. На рис. 15.10 продемонстрирована работа представленной выше формулы массива.
Рис. 15.10. Порядок следования элементов
массива изменяется на противоположный
с помощью формулы массива
Динамическая сортировка значений диапазона
Предположим, существует рабочий лист с одномерным вертикальным диапазоном
Данные. Для сортировки значений массива по убыванию воспользуемся следующей
формулой массива. Следует заметить, что данная формула работает только с числовыми
значениями, но не с текстом.
{НАИБОЛЬШИЙ(Данные;СТРОКА(ДВССЫЛ( " 1 : "&ЧСТРОК(Данные)) ) ) }
На рис. 15.11 показан пример; диапазон ввода находится в столбце А; формула мас­
сива введена в столбец С.
Эта формула может оказаться полезной, если требуется отсортировать данные немед­
ленно. Начните с присвоения диапазону данных имени Д анные. Затем введите формулу
в другой диапазон данных, размещенный в тех же строках.
Если в исходной ячейке не содержится данных, формула массива отображает значе­
ние ошибки #ЧИСЛО!. В следующей, модифицированной формуле используется функ­
ция ЕСЛИОШИБКА. Она позволяет избежать отображения на экране сообщения об ошиб­
ке. Эта формула используется в столбце Е на рис. 15.11.
{ =ЕСЛИОШИБКА( НАИБОЛЬШИЙ (Данные;
С Т Р О К А ( Д В С С Ы Л ( " 1 : " & Ч С Т Р О К (Данные ) ) ) ) ; " " ) }
392
Часть IV. Формулы массивов
Эта формула должна вводиться в такой же по размеру диапазон, что и Данные. Она
тоже сортирует только числовые значения.
Для сортировки значений Данные по возрастанию можно использовать следующую
формулу:
{ НАИМЕНЬШИЙ(Данные;СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные) ) ) ) }
Рис. 15.11. Формула массива, введенная в столбце с, сортирует
значения, введенные в столбец а
Возвращение списка уникальных значений диапазона
Если существует одномерный диапазон с именем Д ан н ые, для вывода списка уни­
кальных элементов этого диапазона можно воспользоваться следующей формулой:
{ =ИНДЕКС(Данные; НАИМЕНЬШИЙ(ЕСЛИ(ПОИСКПОЗ(Данные;
Данные; 0 ) =СТРОКА(ДВССЫЛ( " 1 : " &ЧСТРОК(Данные)) ) ;
ПОИСКПОЗ(Данные; Данные; 0 ) ; " " ) ;
СТРОКА(ДВССЫЛ( " 1 : "&ЧСТРОК(Данные)) ) ) ) }
Эта формула не работает, если диапазон Д а н ны е содержит хотя бы одну пустую
ячейку. В незаполненных ячейках формулы массива будет отображаться сообщение об
ошибке #ЧИСЛО! . На рис. 15.12 представлен пример применения формулы массива.
Диапазон А5 : А23 имеет имя Д ан н ые, а формула массива введена в диапазон С5 : С23.
Обратите внимание, что в незаполненных ячейках отображается ошибка #ЧИСЛО!.
Чтобы избежать отображения значения ошибки, лучше воспользоваться функцией
ЕСЛИОШИБКА.
{ЕСЛИОШИБКА(ИНДЕКС(Данные; НАИМЕНЬШИЙ(ЕСЛИ
(ПОИСКПОЗ(Данные; Данные;0)=СТРОКА(ДВССЫЛ
( " "&ЧСТРОК(Данные)) ) ;
ПОИСКПОЗ(Данные; Данные; 0 ) ; " " ) ) ) ) ) ; " " ) }
На рис. 15.12 эта формула используется в столбце Е.
Отображение календаря в диапазоне
На рис. 15.13 представлен результат одной из формул, отображающей “живой” ка­
лендарь в диапазоне ячеек. Если изменить дату верхней части диапазона, календарь ав­
томатически отобразит даты соответствующего месяца и года.
Глава 15. Магия формул массива
393
Рис. 15.12. Формула массива применяется для созда­
ния списка уникальных элементов диапазона данных
Рис. 15.13. Отображение календаря с помощью одной формулы массива
Компакт-диск
Эта рабочая книга содержится на прилагаемом компакт-диске в файле a r ­
ray formula c a l e n d a r . x s l x .
Для создания приведенного выше календаря в диапазоне В2 :Н9 выполните следую­
щие действия.
1. Выделите диапазон ячеек В2 :Н2 и выберите команду Главная1^Выравнивание^
Объединить и поместить в центре.
2. Введите дату в объединенный диапазон. День месяца в данном случае не имеет
значения.
3. Введите аббревиатуры дней недели в диапазон ВЗ : НЗ.
4. Выделите ячейки В4 :Н9 и введите следующую формулу массива (не забывайте,
что после ввода формулы массива следует нажимать клавиши <Ctrl+Shift+Enter>,
а не просто <Enter>).
{ =ЕСЛИ(МЕСЯЦ(ДАТА(ГОД(В2);МЕСЯЦ(В2);1)) < >МЕСЯЦ(ДАТА(ГОД(В2) ;
МЕСЯЦ(В2) ; 1 ) ) - (ДЕНЬНЕД(ДАТА( (ГОД( В2) ;МЕСЯЦ(В2); 1) ) - 1 ) +
{ 0 ; 1 ; 2 ; 3 ; 4 ; 5 } * 7 + { 1 ; 2 ; 3 ; 4 ; 5 ; б ; 7 } - 1) ; "" ; Д А Т А ( Г О Д ( В 2 ) ;
Часть IV. Формулы массивов
394
МЕСЯЦ(В2) ; 1 ) - (ДЕНЬНЕД(ДАТА( (ГОД( В2) ;МЕСЯЦ(В2); 1) ) - 1 ) +
{0;1;2;3;4;5}*7+{1;2;3;4;5;6;7}-1)}
5. Отформатируйте диапазон В4 : Н9 с пользовательским форматом d. В таком форма­
те на экране будут отображаться только даты. Для выбора этого формата восполь­
зуйтесь категорией Дополнительно диалогового окна форматирования ячеек.
6. Скорректируйте ширину столбцов согласно своим предпочтениям.
Изменение месяца и года в ячейке В2 приводит к автоматическому обновлению ка­
лендаря. После создания календаря можно скопировать его диапазон в любое место ра­
бочего листа или книги.
Формула массива фактически возвращает даты, но ячейки отформатированы так,
чтобы отображать только дни. Также обратите внимание, что в формулах массива ис­
пользуются массивы констант.
©
Перекрестная ссылка
М ассивы констант р а ссм атриваю тся в главе 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). Предыдущая формула отображала ячейки, относящиеся к другим меся­
цам, пустыми.
Рис. 15.14. Упрощенная формула, отображающая даты предыдущего и следующего месяцев
Полезные методики
применения формул
В этой части...
Глава 16
Умышленные циклические ссылки
Глава 17
Диаграммы
Глава 18
Сводные таблицы
Глава 19
Условное форматирование и проверка данных
Глава 20
Создание мегаформул
Глава 21
Инструменты и методы отладки формул
Глава
Умышленные
циклические ссылки
В этой главе...
♦ Что такое циклическая ссылка
♦ Преднамеренное использование циклических ссылок
♦ Определение параметров итераций
♦ Примеры формул, в которых используются циклические ссылки
♦ Потенциальные проблемы, связанные с циклическими ссылками
Для большинства пользователей, работающих с электронными таблицами, термин
циклические ссылки ассоциируется с возникновением ошибки. В большинстве случаев
циклические ссылки приводят к неправильному результату и требуют выполнения опре­
деленных действий по их устранению. Однако в некоторых случаях циклические ссылки
могут оказаться полезными. В данной главе представлено несколько примеров предна­
меренного использования циклических ссылок.
Что такое циклическая ссылка
При вводе формул в электронный лист может появиться сообщение Excel, подобное
показанному на рис. 16.1. Таким образом программа сообщает о том, что введенная
формула приведет к возникновению циклической ссылки. Такая ссылка возникает в слу­
чае, когда формула ссылается на ячейку, в которую она занесена, прямо или косвенно.
Например, циклическая ссылка возникнет, если в ячейку А 10 ввести приведенную ниже
формулу (формула обращается к ячейке, содержащей ее).
=СУММ(А1:А 1 0 )
После каждого вычисления в ячейке А10 формула снова пересчитывается, так как со­
держимое данной ячейки было изменено. Теоретически вычисление должно продол­
жаться до тех пор, пока значение в ячейке А 10 не достигнет бесконечности.
Часть V. Полезные методики применения формул
398
Рис. 16.1. Таким образом Excel сообщает о том, что формула содержит цик­
лическую ссылку
Исправление случайных циклических ссылок
После вывода сообщения о возникновении циклической ссылки Excel предлагает два
варианта последующих действий:
•
щелкните на кнопке ОК, если циклическая ссылка введена преднамеренно;
•
щелкните на кнопке Справка, чтобы попытаться исправить ошибку, если цикли­
ческая ссылка возникла случайно.
Как правило, возникновение циклических ссылок обусловлено ошибками при вводе
символов или неверным указанием диапазонов. К примеру, при создании формулы
в ячейке В 1 0 мог быть ошибочно введен аргумент В 1 : В 1 0 вместо правильного В 1 : В 9 .
Если источник ошибки известен, щелкните на кнопке ОК. В строке состояния Excel
выведет сообщение, напоминающее о существовании циклической ссылки. В данном
случае это будет сообщение “Ц и к л и ч е с к и е с с ы л к и : В 1 0 ” . Если активизировать дру­
гую рабочую книгу или лист, вы увидите сообщение “Ц и к л и ч е с к и е с с ы л к и ” (без
указания адреса ячейки). После этого можно исправить формулу и устранить ошибку.
Если вы получили сообщение о возникновении циклической ссылки и не знаете, где она
находится, щелкните на кнопке Справка. При этом будет выведено окно справочной сис­
темы с информацией по циклическим ссылкам, а также будет выведена графическая диа­
грамма, помогающая идентифицировать проблему. Для более подробной информации об
ошибке выберите команду Формулы ^Зависимости формул^ Проверка наличия оши­
бок^ Циклические ссылки, и вы увидите список ячеек, вовлеченных в циклическую ссыл­
ку (на рис. 16.2 список содержит одну ячейку). Если вы не в состоянии выяснить, какая
именно из ячеек привела к возникновению циклической ссылки, переходите к следующей
в списке. И так продолжайте до тех пор, пока в строке состояния больше не будет отобра­
жаться сообщение о циклической ссылке.
Рис. 16.2. Список циклических ссылок
Глава 16. Умышленные циклические ссылки
399
Примечание
Если команда Циклические ссылки отсутствует, значит, во вкладке Формулы
диалогового окна параметров программы установлен флажок Включить ите­
ративные вычисления. Этот флажок рассматривается далее.
Косвенные циклические ссылки
Обычно циклические ссылки достаточно заметны, поэтому их можно легко обнару­
жить и устранить. Однако иногда имеют место и косвенные ссылки. В подобных случаях
одна формула ссылается на другую, которая ссылается еще на одну формулу, которая,
в свою очередь, ссылается на исходную. В некоторых случаях придется потратить до­
вольно много времени для обнаружения источника ошибки.
Перекрестная ссылка
Более подробно процесс отслеживания циклических ссылок описан в главе 21.
Преднамеренное использование
циклических ссылок
Как уже отмечалось, циклические ссылки иногда могут умышленно использоваться
для решения определенных задач. Правильно заданные циклические ссылки могут вы­
ступать функциональным эквивалентом циклических структур, используемых в языках
программирования (таких как VBA). С помощью преднамеренных циклических ссылок
выполняется рекурсия или итерация. Каждый промежуточный результат используется
в последующих вычислениях, в итоге приводя к решению задачи.
По умолчанию Excel не выполняет итерационные вычисления. Чтобы разрешить про­
грамме выполнение итеративных вычислений, следует указать это явно в окне парамет­
ров Excel. Для этого откройте диалоговое окно Параметры Excel, перейдите во вкладку
Формулы и установите флажок Включить итеративные вычисления (рис. 16.3).
Рис. 16.3. Для вычисления циклических ссылок необходимо установить флажок Включить
итеративные вычисления
Часть V. Полезные методики применения формул
400
На рис. 16.4 показан пример рабочего листа, в котором используется умышленная
циклическая ссылка. Компания отдает пять процентов своей чистой прибыли на благо­
творительность. Однако сам этот вклад относится к расходам и таким образом вычитает­
ся из значения чистой прибыли.
Рис. 16.4. Создав умышленную циклическую ссылку, компания вычи­
тает из чистой прибыли расходы на благотворительность в объеме
пяти процентов
Примечание
Циклическую ссылку нельзя вычислить, если отключен упомянутый выше
флажок поддержки итераций.
Текст в столбце А соответствует именованным ячейкам в столбце В, а ячейка СЗ на­
звана Д оля . Ячейка Б л а г о т в о р и т е л ь н о с т ь (ВЗ) содержит следующую формулу:
=Доля*Чистая_прибыль
Ячейка Ч и с т а я _ п р и б ы л ь (В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 ) .
Вкладка Ф о р м ул ы диалогового окна параметров программы содержит группу пара­
метров, относящихся к вычислению циклических ссылок.
Глава 16. Умышленные циклические ссылки
401
•
Флажок Включить итеративные вычисления. Если он не установлен, Excel не
производит итеративные вычисления и при наличии формулы с циклической
ссылкой отображает диалоговое окно предупреждения. Если создается умышлен­
ная циклическая ссылка, необходимо установить данный флажок.
•
Поле Предельное число итераций определяет максимальное число итераций, про­
изводимых Excel. Данное значение не может быть больше 32767 и меньше единицы.
•
Поле Относительная погрешность определяет, когда программа должна закон­
чить выполнение итераций. Например, если установлено значение 0 ,0 1 , итерации
прекратятся, когда будет получен результат вычисления, отличающийся на один
процент от предыдущего значения.
Примечание
Итерации продолжаются до тех пор, пока не будет достигнуто заданное чис­
ло итераций или пока повторное вычисление не будет изменять все ячейки
на значение меньшее, чем указано в поле Относительная погрешность (т.е.
до выполнения одного из этих условий). В зависимости от конкретной зада­
чи, может потребоваться изменить значение в поле Предельное число ите­
раций или Относительная погрешность. Для получения более точного резуль­
тата следует уменьшить значение допустимой погрешности.
Для того чтобы увидеть, как все это работает, откройте пример рабочей книги, пред­
ставленный в предыдущем разделе.
1. Установите флажок Включить итеративные вычисления, как было описано выше.
2. Установите значение Предельное число итераций равным единице.
3. Установите значение Относительная погрешность равным 0 ,0 1 .
4.
Введите другое значение в ячейке Общ ий_доход (ячейка В1).
5.
Нажмите клавишу <F9> для пересчета листа.
Так как максимальное количество итераций задано равным единице, нажатие клави­
ши <F9> приведет к выполнению лишь одного цикла вычислений. Нетрудно заметить,
что значение ячейки Б л а г о т в о р и т е л ь н о с т ь не совпадает с решением. Нажмите кла­
вишу <F9> еще несколько раз — и значение ячейки станет более близким к искомому
решению. После того как решение найдено, нажатие клавиши <F9> не приведет к суще­
ственным изменениям. Если задано небольшое количество итераций, решение появляет­
ся фактически незамедлительно (если оно не включает сложные вычисления).
Определение параметров итераций
Во всех открытых рабочих книгах используется один и тот же режим итераций и вы­
числений. Если, к примеру, вы работаете с двумя открытыми рабочими книгами, нельзя
для одной установить автоматическое выполнение вычислений, а в другой выполнять
вычисления вручную. Рабочая книга может быть сохранена со своими особыми парамет­
рами (например, вычисление вручную без итераций), однако данный режим может изме­
ниться при открытии другой рабочей книги.
При определении параметров итераций и вычислений, которые необходимо исполь­
зовать, Excel руководствуется следующими правилами.
402
Часть V. Полезные методики применения формул
•
В первой открытой рабочей книге применяется режим вычислений, который был
сохранен в ней. Если открыть другие книги, в них будет применяться тот же ре­
жим вычислений.
•
Предположим, что существуют две рабочие книги — К н и г а 1 и К н и г а 2 . В К н и г а 1
флажок Включить итеративные вычисления сброшен (по умолчанию это именно
так), а в К н и га 2 (использующей умышленные циклические ссылки) данный флажок
установлен. Если сначала открыть К н и г а 1 , а затем К н и г а 2 , в обеих рабочих кни­
гах функция вычисления итераций будет отключена. Но если открыть их в обратной
последовательности, данная функция будет включена для обеих книг.
•
Изменение режима вычислений для одной книги приводит к изменению режима
вычислений всех рабочих книг.
•
Если обе рабочие книги, К н и г а 1 и К н и г а 2, открыты, изменение режима вычис­
лений в одной из них коснется их обеих.
•
Все рабочие листы книги применяют один и тот же режим вычислений.
•
Если все рабочие книги закрыты и вы создаете новую, в ней будут применяться те
же установки, что имела последняя закрытая рабочая книга. Исключение состав­
ляет создание рабочей книги на основе шаблона. В этом случае используются па­
раметры, заданные в шаблоне.
•
Если режим вычислений в книге изменен, а файл пересохранен, к рабочей книге
будет применен текущий режим вычислений.
Подведем черту. При открытии рабочей книги, в которой применяются итерации, нет
никакой гарантии, что сохраненные вместе с книгой параметры будут восстановлены при
ее следующем открытии.
Предупреждение
Если установлен флажок Включить итеративные вычисления, Excel не ото­
бражает предупреждение о циклической ссылке в диалоговом окне и строке
состояния. Таким образом, вы можете случайно создать циклическую ссыл­
ку и никогда не узнать об этом.
Примеры формул, в которых используются
циклические ссылки
Ниже приведено несколько примеров использования умышленных циклических ссы­
лок. В них продемонстрировано создание циклических ссылок для генерации уникаль­
ных случайных чисел, решения рекурсивных уравнений, систем уравнений, а также ани­
мации диаграмм.
Примечание
При выполнении представленных ниже примеров флажок Включить итера­
тивные вычисления должен быть установлен.
Глава 16. Умышленные циклические ссылки
403
Генерация уникальных случайных чисел
В показанном далее примере циклические ссылки применяются для генерации уникаль­
ных (т.е. неповторяющихся) случайных целых чисел, находящихся в предварительно задан­
ном диапазоне. Рабочий лист, показанный на рис. 16.5, генерирует 15 случайных чисел, нахо­
дящихся в диапазоне между наименьшим (ячейка Е1) и наибольшим (ячейка Е2) значениями.
Рис. 16.5. Использование циклической ссылки для гене­
рирования уникальных целых чисел в диапазоне A i : А 1 5
В столбце В отображается количество вхождений числа из столбца А (этот диапазон но­
сит имя СлучайныеЧисла). В качестве примера ниже приведена формула для ячейки В1.
Эта формула показывает число вхождений в столбец А числа, содержащегося в ячейке А1.
=СЧЁТЕСЛИ(СлучайныеЧисла; А 1 )
В.-ячейке В1 7 с именем Ч и с л о Д у б л и к а т о в отображается количество дублирую­
щихся значений при помощи следующей формулы:
=СУММ(В1:В15)-ЕСЧЁТ(В1:В15)
Каждая ячейка в столбце А содержит циклическую ссылку. Формула в ячейке А1,
скопированная вниз, имеет следующий вид:
=ЕСЛИ (ИЛИ ( Ч и с л о Д у б л и к а т о в о О ; (И (А1>=Наименьшее ;
А1<=Наиболыиее)) ) ; СЛУЧМЕЖДУ(Наименьшее; Наибольшее); А1)
Эта формула проверяет значение ячейки Ч и с л о Д у б л и к а т о в . Если оно больше нуля
или находится в диапазоне между Н а и м е н ь ш е е или Н а и б о л ь ш е е , генерируется новое
случайное число. Когда ячейка Ч и с л о Д у б л и к а т о в равна нулю, все ячейки диапазона
С л у ч а йн ые Чи сл а уникальны и находятся внутри заданного диапазона.
Ячейка С17 описывает состояние. Если значение ячейки Ч и с л о Д у б л и к а т о в не
равно нулю, в ней отображается текст “Попытайтесь еще раз” (для выполнения следую­
щей итерации следует нажать <F9). Если же число дубликатов нулевое, в ячейке отобра­
жается текст “Решение найдено”.
=ЕСЛИ(4юлоДубликатов<>;"ПОПЫТАЙТЕСЬ ЕЩЕ РАЗ";
"РЕШЕНИЕ НАЙДЕНО")
404
Часть V. Полезные методики применения формул
Для генерации новой последовательности случайных чисел нажмите <F9>. Количест­
во вычислений зависит от следующих факторов.
•
От значения поля Предельное число итераций вкладки Формулы диалогового
окна параметров программы. Если установить большее значение поля, шансы
найти уникальные числа будут выше.
•
От количества возможных значений (т.е. тех, которые находятся между значения­
ми Н а и м е н ь ш е е и Н а и б о л ь ш е е ) . К примеру, вам потребуется меньшее число
итераций, если вы захотите отобрать 15 уникальных значений из 200 возможных.
Решение рекурсивного уравнения
К рекурсивным относятся такие уравнения, в которых переменная расположена с обе­
их сторон знака равенства. Ниже приведены примеры рекурсивных уравнений.
х= 1 / (х+1)
x = c o s (х)
x=SQRT( х + 5 )
х = 2 ж(1 /х )
х=5+(1/х)
Рекурсивные уравнения можно решать с помощью циклических ссылок. Прежде все­
го, убедитесь, что в окне параметров Excel разрешены итерации. Затем преобразуйте
уравнение в формулу со ссылкой на саму себя. Чтобы решить первое уравнение, введите
в ячейку А1 следующую формулу:
= 1 /( А1+1)
Формула сходится к числу 0,618033988749895, что является значением лг, удовлетво­
ряющим условиям уравнения.
В некоторых случаях данная методика не работает. Например, рассмотрим следую­
щее уравнение. Формула, пытающаяся выполнить деление на нуль, приведет к соответ­
ствующей ошибке. Если формула вызывает такую ошибку, прежде всего, попробуйте
слегка изменить значения.
=ЕСЛИОШИБКА( 1 / (А1 + 1 ) ; А 1 + 0 , 01)
В этой формуле была использована введенная в Excel 2007 функция ЕСЛИОШИБКА.
А вот еще одна формула, совместимая с предыдущими версиями Excel:
=ЕСЛИ(ЕОШ( ( 1 / (А1 + 1 ) ) ;А1 + 0 # 0 1 ; А 1 / ( А 1 + 1) )
На рис. 16.6 показан рабочий лист с примерами вычисления нескольких рекурсивных
формул в столбце В; формулы в столбце D проверяют результат. К примеру, формула
в ячейке D2 следующая:
= 1 / ( В2+1)
Формулы в столбце Е отображают разность между значениями в столбцах В и D. Если
решение корректно, в столбце Е мы видим нуль (или значение, близкое к нулю).
Контакт-диск
Рабочая книга, продемонстрированная на рис. 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
Рис. 16.6. Решение рекурсивного уравнения с помощью цикличе­
ской ссылки
Решение системы уравнений с помощью
циклических ссылок
Иногда циклические ссылки можно использовать для решения системы уравнений.
Рассмотрим следующую систему уравнений:
Зх + 4 у = 8
Зх + 8 у = 20
Требуется найти значения х и у, которые одновременно удовлетворяют двум уравне­
ниям. Сначала необходимо записать уравнения в виде функций х и у. Первое уравнение
в виде функции х имеет следующий вид:
х = (8- 4 у ) /3
Второе уравнение, представленное в виде функции у , приобретет следующий вид:
у= ( 2 0 - З х ) / 8
Как показано на рис. 16.7, ячейке В5 присвоено имя X, а ячейке В6 — Y. Формулы
в данных ячейках соответствуют приведенным выше уравнениям. Формула в ячейке В5
имеет следующий вид:
= (8 -(4*у))/3
В ячейке В 6 (Y) записана следующая формула:
= (20-(3 * х ) ) /8
На рисунке также представлены графики двух данных уравнений. Пересечение двух
кривых дает значения X и Y, соответствующие решению системы уравнений.
Обратите внимание на описанную выше циклическую ссылку. Ячейка X ссылается на
ячейку Y, а ячейка Y, в свою очередь, — на ячейку X. Значения в этих ячейках содержат
следующее решение:
X = -1,33
Y = 3,00
Использование циклических ссылок для решения систем уравнений представляет ин­
терес, главным образом, в демонстративных целях, а не в практических. Нетрудно заме­
тить, что многие итерационные вычисления никогда не сходятся. Другими словами, ре­
зультат успешного пересчета в данном случае никогда не будет являться решением. Для
примера рассмотрим приведенную ниже систему уравнений. Решение для нее существу­
ет, однако найти его с помощью циклических ссылок невозможно.
х=4-у/2
х =3+ 2 х
Часть V. Полезные методики применения формул
406
Рис. 16.7. На данном рабочем листе решена система двух уравнений
Компакт-диск
Рабочая книга с приведенным примером содержится в файле 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.
Анимация диаграмм с помощью итераций
Последний пример использования преднамеренных циклических ссылок в этой главе
связан с диаграммами (рис. 16.8). Он помогает понять назначение циклических ссылок.
Линия на диаграмме отображает функцию косинуса для значений от нуля до 12,6 ра­
диан, используя диапазон А6 : В24.
Эта диаграмма имеет дополнительный ряд данных, состоящий из одной точки в диа­
пазоне А2 : В2 — она указывает на местоположение маркера на графике. Формула цик­
лической ссылки в ячейке А2 следующая:
=ЕСЛИ(А2>12/ 6 ; 0 ; А 2 + 0 , 005)
Формула в ячейке В2 следующая:
=COS(В2)
При нажатии клавиши <F9> для пересчета рабочего листа значение в ячейке А2 увели­
чивается, вызывая таким образом изменение положения круглого маркера на диаграмме.
Если вы будете постоянно нажимать <F9>, то увидите постепенное передвижение маркера
по графику. Скорость движения маркера по графику зависит от двух факторов:
Глава 16. Умышленные циклические ссылки
407
•
от величины приращения в формуле (установите ее в 0 , 005);
•
от величины количества итераций, установленной во вкладке Формулы диалого­
вого окна параметров программы.
Рис. 16.8. На этом графике представлена последовательность данных с форму­
лами, использующими циклические ссылки
Когда значение параметра Максимальное число итераций равно 100, а прираще­
ние составляет 0 , 0 0 5 , при каждой итерации значение ячейки А2 увеличивается на 0 , 5 .
Функция ЕСЛИ возвращает это значение в нуль, когда оно превышает 1 2 , 6 . Таким обра­
зом, маркер циклически проходит по графику и возвращается в его начало.
Компакт-диск
Пример, описанный в этом разделе, содержится в файле 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 не бу­
дет выводить предупреждение о наличии циклических ссылок. Поэтому существует риск
создания случайных циклических ссылок, о наличии которых вам даже не будет известно.
Количество итераций, указанное в поле Максимальное число итераций, применя­
ется ко всем формулам в рабочей книге, а не только к тем, в которых используются цик­
408
Часть V. Полезные методики применения формул
лические ссылки. Если рабочая книга содержит большое количество сложных формул,
это может привести к существенному замедлению работы. Таким образом, при исполь­
зовании умышленных циклических ссылок необходимо стремиться к максимальной про­
стоте рабочих листов.
Иногда может возникнуть необходимость отправить рабочую книгу, в которой ис­
пользуются циклические ссылки, другим пользователям. Если при открытии такой рабо­
чей книги функция вычисления итераций не включена, Excel отобразит сообщение об
ошибке, что способно озадачить пользователей.
Глава
Диаграммы
В этой главе...
♦ Понятие формулы ряда
♦ Создание ссылок на ячейки
♦ Примеры диаграмм
♦ Тренды
Для большинства людей работа с Excel сводится к анализу строк и столбцов данных.
Однако программа Excel представляет собой нечто большее. В частности, это касается
отображения данных в виде диаграмм. Встроенные в Excel средства создания диаграмм
настолько совершенны, что Microsoft рекомендует использовать их для построения диа­
грамм во всех приложениях Office. На практике же диапазон их использования гораздо
шире — их часто применяют со многими другими приложениями.
После создания диаграммы пользователь получает практически полный контроль над лю­
бым ее элементом. В этой главе предполагается, что вы уже знакомы с базовыми концепция­
ми создания формул в Excel, потому что в диаграммах часто используются формулы.
Понятие формулы ряда
Диаграмма создается на основе набора чисел, расположенных на рабочем листе. Эти чис­
ла можно вводить вручную или получать в результате применения формул. При обычных ус­
ловиях данные, используемые диаграммой, расположены на одном рабочем листе, в одном
файле, однако этим ваши возможности не ограничены. В любой диаграмме можно использо­
вать данные из любого количества рабочих листов и даже рабочих книг.
Диаграмма состоит из одного или нескольких рядов данных, и каждый ряд отобража­
ется в виде линии, группы столбцов и т.п. Каждый ряд данных имеет формулу (спе­
циальную функцию) РЯД. Когда выбираются ряды данных на диаграмме, Excel выделяет
соответствующую группу данных на рабочем листе, а формула РЯД отображается в
строке формул (рис. 17.1).
Часть V. Полезные методики применения формул
410
Рис. 17.1. В строке формул отображается функция ряд
ных на диаграмме
для
выбранной серии дан­
Примечание
Специальную функцию р я д нельзя использовать в ячейке рабочего листа.
И наоборот, функции рабочего листа нельзя использовать в специальной
функции р я д . В то же время у вас есть возможность редактировать аргумен­
ты функции р я д для изменения состава данных, используемых на диаграм­
ме. Можно также перетаскивать маркеры выделения, чтобы изменять пара­
метры диаграммы.
Функция РЯД имеет следующий синтаксис:
= Р Я Д ( и м я ; п о д п и с и _ к а т е г о р и й ; значения/порядок /размеры)
Аргументы функции следующие.
•
Имя (необязательно). Ссылка на ячейку, содержащую имя ряда, используемое
в легенде (легенда— это название ряда, например, Т о в а р 1 на рис. 17.1). Если
диаграмма содержит лишь один ряд данных, этот аргумент по умолчанию исполь­
зуется в качестве заголовка. Этот аргумент также может состоять из текста, за­
ключенного в кавычки. Если этот аргумент опущен, Excel использует имена по
умолчанию (к примеру, Р я д 1 ).
•
П о д п и с и _ к а т е г о р и й (необязательно). Ссылка на диапазон, содержащий подпи­
си оси категорий. Если этот аргумент опущен, Excel использует последовательные
целые числа, начиная с единицы. В точечных диаграммах этот аргумент соответ­
ствует значению х. Допустима также ссылка на непоследовательный диапазон.
(Адреса диапазонов разделяются точками с запятыми и заключаются в круглые
скобки.) Аргумент может также состоять из массива разделенных точками с запя­
тыми значений, заключенных в фигурные скобки (или текста, обрамленного вос­
клицательными знаками).
•
З н а ч е н и я (обязательно). Ссылка на диапазон, содержащий значения. На точечных
диаграммах этот аргумент определяет значения у. Допустимы непоследовательные
адреса диапазонов, разделенные точками с запятыми и заключенные в круглые
скобки. Этим аргументом может также быть заключенный в фигурные скобки мас­
сив значений, разделенных точками с запятыми.
Глава 17. Диаграммы
411
• Порядок (обязательно). Целое число, определяющее последовательность по­
строения ряда (используется только тогда, когда диаграмма содержит несколько
рядов). Использование ссылки на ячейку не допускается.
• Размеры (используется только в круговых диаграммах). Ссылка на диапазон, со­
держащий размеры сегментов в круговой диаграмме. Допустима также ссылка на
непоследовательный диапазон, разделенный точками с запятыми и заключенный
в круглые скобки. Этим аргументом может быть заключенный в фигурные скобки
массив значений, разделенных точками с запятыми.
Ссылки на диапазоны в функции РЯД всегда должны быть абсолютными и содержать
имя листа, например:
= РЯД (Лист1 ! $ В $ 1 ; ; Л и с т 1 ! $В$2 : $В$7 ;*1)
Ссылка может указывать и на непоследовательный диапазон. В этом случае каждый
диапазон разделяется точкой с запятой, а весь аргумент заключается в скобки. В сле­
дующей формуле РЯД набор значений состоит из диапазонов В 2 : В З и В 5 : В 7 :
= РЯД( ; ; ( Л и с т 1 ! $ В $ 2 : $ В $ 3 ; Л и с т 1 ! $ В $ 5 : $ В $ 7 ) ;1)
Несмотря на то что функция РЯД может ссылаться на данные других рабочих листов, все
данные одного ряда должны находиться на одном листе. Следующая формула РЯД не дейст­
вительна, так как в ней присутствуют ссылки на данные в двух разных рабочих листах:
= РЯД( ; ; ( Л и с т 1 ! $ В $ 2 ; Л и с т 2 ! $ В $ 2 ) ;1)
Использование имен в функции р я д
В фукнции РЯД ссылки на диапазон могут быть заменены именами диапазонов. При
этом Excel изменяет ссылку в функции РЯД, включая в нее имя рабочей книги. Напри­
мер, в приведенной ниже формуле используется диапазон с именем МоиДанные (рас­
положенный в рабочей книге с именем b u d g e t . x l s ) . Excel добавляет имя рабочей кни­
ги и восклицательный знак.
= РЯД ( Л и с т 1 ! $ В $ 1 ; / b u d g e t . x l s ' ! МоиДанные; 1)
Использование имен в формуле ряда имеет одно существенное преимущество: при вне­
сении изменения, относящегося к имени диапазона, диаграмма автоматически отображает
новые данные. Предположим, что имя МоиДанные в предыдущем примере относится к
диапазону А 1 : А20. На диаграмме будет отображено двадцать значений из указанного диа­
пазона. Если затем с помощью диспетчера имен изменить определение этого имени
(предположим, на А 1 : АЗО), будут отображены уже 30 точек данных, определенных новым
диапазоном с этим же именем (редактировать диаграмму не потребуется).
Примечание
В формуле ряд нельзя использовать ссылки на структурированные таблицы.
Если при редактировании добавить ссылку на таблицу (например, Таблиu a i [то в ар 1 ] ), Excel преобразует ссылку на таблицу в стандартный адрес
диапазона.
Как уже отмечалось, в формуле РЯД нельзя использовать функции рабочего листа. Од­
нако можно создавать именованные формулы (использующие функции), которые приме­
няются в формуле РЯД. Этот прием позволяет реализовать самые невероятные задачи.
412
Часть V. Полезные методики применения формул
Отсоединение ряда диаграммы от данных
Обычно диаграмма Excel использует данные, хранящиеся в определенном диапазоне.
Стоит изменить данные, и диаграмма будет автоматически обновлена. Иногда может
возникнуть необходимость “отключить” диаграмму от ее данных и создать статическую
диаграмму, которая всегда сохраняет свой вид. Например, можно отобразить данные,
полученные методом подбора, и сохранить диаграмму, отражающую определенную ба­
зисную линию, чтобы ее можно было сравнивать с другими сценариями. Существуют
два способа создания статической диаграммы.
•
В ставка в виде рисунка. Активизируйте диаграмму и выберите команду Глав­
ная^ Буфер обмена^Копировать^Копировать как рисунок. В открывшемся
диалоговом окне примите параметры по умолчанию. После этого активизируйте
любую ячейку и выберите команду Главная^Буфер обмена^Вставить (или
нажмите <Ctrl+V>). Результатом будет изображение скопированной диаграммы.
Впоследствии можно удалить исходную диаграмму.
•
Преобразование ссылок на диапазоны в массивы. Щелкните на ряде диаграм­
мы, а затем — в строке формул, чтобы активизировать формулу РЯД. Нажмите
клавишу <F9> для преобразования диапазона в массив (рис. 17.2). Повторите это
действие для каждого ряда. Данный прием (в отличие от вставки в виде рисунка)
сохраняет возможность дальнейшего редактирования и форматирования диаграм­
мы. Описанная процедура не работает в том случае, если используется слишком
большой объем данных (функция РЯД ограничена 1024 символами).
Рис. 17.2. Функция
ряд
может использовать массивы вместо диапазонов
Советы по созданию диаграмм
Ниже приведен ряд советов, которые могут оказаться полезными при построении
диаграмм.
•
Щелкните правой кнопкой на любом элементе диаграммы и выберите в контекст­
ном меню пункт Формат (за этим словом всегда следует имя конкретного элемента)
или нажмите <Ctrl+1 >. Откроется диалоговое окно форматирования элемента диа­
граммы, позволяющее выполнить операции, недоступные на ленте. Это окно оста­
нется открытым до тех пор, пока вы сами его не закроете.
•
Чтобы открыть диалоговое окно Формат, можно также дважды щелкнуть на элемен­
те диаграммы.
Глава 17. Диаграммы
413
•
Чтобы создать диаграмму единственным нажатием клавиши, выделите данные, ко­
торые хотите отобразить графически, и нажмите клавиши <Alt+F1>. В результате
будет создан новый внедренный лист, содержащий диаграмму установленного по
умолчанию типа. Для создания этим способом диаграммы на отдельном листе
вместо <Alt+F1 > нажмите <F11>.
•
Если необходимо создать большое количество диаграмм одного типа, будет проще
создать одну диаграмму и сохранить ее как шаблон, выбрав в контекстной вкладке
команду Работа с диаграммами^Конструктор^Тип^Сохранить как шаблон. После
создания шаблона для создания новой диаграммы того же типа выберите команду
Вставка^Диаграммы^Другие^Все типы диаграмм, после чего выберите в списке
нужный шаблон.
•
Чтобы напечатать внедренную диаграмму на отдельной странице, выделите ее и
выберите команду Файл^Печать^Печать. Excel выведет на печать лишь диаграмму
(рабочий лист распечатываться не будет).
•
Если не хотите, чтобы внедренная диаграмма выводилась на печать, щелкните на
ней правой кнопкой мыши и выберите команду Формат области диаграммы. От­
кройте вкладку Свойства и снимите в ней флажок Выводить объект на печать.
•
В некоторых случаях выделять элементы диаграмм с помощью мыши довольно не­
удобно, потому что они перекрываются и закрывают друг друга. Использование кла­
виатуры для этой цели в некоторых случаях значительно проще. Когда диаграмма ак­
тивизирована, циклическое перемещение между всеми ее элементами осуществля­
ется с помощью клавиш со стрелками “вверх” и “вниз” . Если же выделен ряд данных,
при нажатии клавиш со стрелками “вправо” и “влево” происходит перемещение меж­
ду отдельными значениями ряда. Можно также выбрать нужный элемент диаграммы
с помощью раскрывающегося списка Работа с диаграммами^Формат^Текущий фрагмент1^Элементы диаграммы. Этот раскрывающийся список полезен не только для
выбора нужного элемента диаграммы, но и для отображения его имени. При работе
с диаграммами будет еще лучше поместить раскрывающийся список Элементы диа­
граммы на панель быстрого доступа, чтобы он был всегда на виду.
•
Из диаграммы можно удалить все ряды данных. Если это сделать, диаграмма ста­
нет пустой. Однако при этом она сохраняет свои параметры. Таким методом можно
добавить на пустую диаграмму новые ряды данных и тем самым создать диаграм­
му, которая будет подобна прежней.
414
Часть V. Полезные методики применения формул
•
Для более точного позиционирования диаграммы удерживайте нажатой клавишу
<Ctrl>. При нажатии клавиш со стрелками диаграмма будет смещаться на один
пиксель в указанном направлении.
•
Можно также скопировать диаграмму как рисунок (см. ранее). Обновлять ее после
этого нельзя, но можно применять к ней интересные визуальные эффекты, как по­
казано на иллюстрации.
Создание ссылок на ячейки
К различным элементам диаграммы можно добавлять ссылки на ячейки. Добавление
таких ссылок позволяет сделать диаграмму более динамичной. Динамические ссылки ус­
танавливаются для заголовков диаграммы, подписей данных, дополнительного описа­
тельного текста и рисунков.
Добавление ссылки заголовка
Обычно заголовки диаграммы не связаны ни с какими ячейками. Другими словами,
они содержат статический текст, который изменяется лишь в процессе ручного редакти­
рования диаграммы. Однако можно создать ссылку так, что заголовок будет ссылаться
на ячейку рабочего листа.
Чтобы создать связанный заголовок, сначала убедитесь в том, что он есть в диаграм­
ме. Если заголовка нет, создайте его с помощью команды Работа с диаграммами1^
Макета Подписи^ Название диаграммы. Затем выполните следующие операции
1. Выделите заголовок диаграммы.
2. Активизируйте строку формул и введите знак равенства (=).
3. Щелкните на ячейке, содержащей текст заголовка.
4. Нажмите клавишу <Enter>.
В результате появится абсолютная ссылка на рабочий лист и книгу, как в примере на
рис. 17.3. Как видите, на этом рисунке заголовок диаграммы содержит ссылку на ячейку
А1 текущего листа.
Добавление ссылок д ля подписей осей
Подписи осей не обязательны, они используются для описания данных соответст­
вующих осей. Процесс добавления и связывания подписей осей аналогичен тому, кото­
рый был описан в предыдущем разделе для заголовка диаграммы.
Добавление ссылок к подписям данных
Excel позволяет подписать каждую точку данных на диаграмме. Это можно сделать
с помощью команды Работа с диаграммами1^ Макета Подписи^ Подписи данных.
К сожалению, данное средство не обладает достаточной гибкостью. Например, нельзя
определить диапазон, содержащий подписи.
В то же время можно редактировать отдельные подписи данных. Для этого щелк­
ните на любой подписи, чтобы выделить их все, после чего щелкните на нужной под­
писи. Когда выделена одна ячейка, можете вводить текст. Можно также создать ссыл­
Глава 17. Диаграммы
415
ку на ячейку методом, описанным в предыдущих разделах (т.е. введя в строку формул
знак равенства и щелкнув на ячейке). Не забывайте, что ссылки должны быть абсо­
лютными и содержать имя листа.
Рис. 17.3. Заголовок диаграммы содержит ссылку на ячейку А 1
Добавление текстовых ссылок
Иногда может понадобиться отобразить на диаграмме определенный текст (вроде по­
яснительной записки), хранящийся в одной из ячеек. Выполнить это несложно — глав­
ное внимательно следовать описанным ниже действиям.
1.
2.
3.
4.
Выделите диаграмму и выберите команду Вставка^Текст^Надпись.
Щелкните внутри диаграммы, чтобы создать объект текстового поля.
Щелкните в строке формул и введите знак равенства.
Щелкните на ячейке, которая должна быть связана с надписью, или введите вруч­
ную статическую надпись.
5. Нажмите <Enter>.
Теперь можно применить любое желаемое форматирование.
Совет
После добавления на диаграмму текстового поля его можно преобразовать в
любую другую форму, поддерживающую текст. Выделите текстовое поле
и выберите команду Средства рисования^ФормаЮВставка фигура Изменить
фигуру. После этого вы вольны выбрать из галереи любую фигуру.
Добавление связанного рисунка в диаграмму
В диаграмме можно разместить “живой” рисунок диапазона ячеек. Изменение любой
ячейки в связанном диапазоне немедленно отображается в связанном рисунке в диа­
грамме. К сожалению, процесс создания такого рисунка не очень интуитивный. Создайте
диаграмму и выполните следующие операции.
416
Часть V. Полезные методики применения формул
1. Выделите диапазон, который нужно вставить в диаграмму как рисунок.
2. Нажмите <Ctrl+C>, чтобы скопировать диапазон в буфер обмена.
3. Активизируйте
какую-либо
ячейку
(не
диаграмму)
и
выберите
команду
Главная^Буфер обмена^Вставить^Связанный рисунок.
Связанный рисунок диапазона будет вставлен на слой рисования рабочего листа.
4. Выделите связанный рисунок и нажмите <Ctrl+X>.
5. Активизируйте диаграмму и нажмите <Ctrl+V>.
Связанный рисунок будет вырезан из рабочего листа и вставлен в диаграмму. Од­
нако связь при этом разрывается.
6. Выделите рисунок в диаграмме, активизируйте строку формул, введите знак ра­
венства (=) и опять выделите исходный диапазон.
7. Нажмите <Enter>. Рисунок в диаграмме теперь связан с диапазоном.
Примеры диаграмм
В этом разделе вы найдете множество примеров диаграмм, которые могут оказаться
для вас полезными или, по крайней мере, информативными.
Г рафик выполнения работ
Вероятно, вы знакомы с гистограммами, используемыми для отображения показателя
выполнения проекта. Создание подобной диаграммы в Excel осуществляется довольно
просто — нужно создать диаграмму, использующую в качестве ряда данных единствен­
ную ячейку (в ней содержится значение, показывающее процент выполнения плана).
На рис. 17.4 показан рабочий лист, созданный для отслеживания прогресса в реализации
проекта: увеличение числа потребителей на 1000 за 15-дневный период. Ячейка В18 содер­
жит запланированное значение, а в ячейке В 1 9 записана простая формула суммирования.
=СУММ(В2: В 1 6 )
Формула в ячейке В 2 1 вычисляет процент выполнения плана.
=В19/В18
к
При вводе новых данных в столбец В формула отображает текущий результат.
Чтобы создать диаграмму в виде термометра, выделите ячейку В 2 1 и создайте диа­
грамму на основе этой ячейки. Обратите внимание, что над ячейкой В 2 1 должна нахо­
диться пустая ячейка; если ее не будет, для диаграммы будет использован весь блок. Так
как ячейка В 2 1 изолирована от остальных данных, только она будет использована диа­
граммой для отображения данных.
Следует выполнить еще некоторые изменения.
•
Выделите горизонтальную ось категорий и нажмите <Delete>, чтобы удалить ее с
диаграммы.
•
Щелкните на заголовке диаграммы и отформатируйте его по своему усмотрению.
•
Удалите легенду.
•
Добавьте на диаграмму метки данных, чтобы процент привлеченных клиентов
был виден явно.
Глава 17. Диаграммы
417
•
Щелкните на вертикальной оси правой кнопкой и выберите пункт Формат оси.
В открывшемся диалоговом окне установите минимальное и максимальное значе­
ние, соответственно, в нуль и единицу (можно больше единицы, если ожидается
перевыполнение плана).
•
Щелкните на диаграмме правой кнопкой мыши и выберите в контекстном меню
пункт Формат ряда данных. Установите параметр Боковой зазор в нуль, чтобы
диаграмма занимала все отведенное для нее пространство.
Рис. 17.4. Данная диаграмма отображает процент
выполнения намеченного проекта
Кроме того, можете провести дополнительные “косметические” изменения по своему
усмотрению. Например, можно изменить ширину диаграммы для того, чтобы она приоб­
рела вид термометра, а также изменить шрифты, цвета и т.д.
Компакт-диск
Продемонстрированный пример содержится в файле t hermometr c h a r t . x l s x
( chapt eri 7_RUS . xslm) на прилагаемом компакт-диске.
Создание диаграмм измерений
На рис. 17.5 показан еще один пример диаграммы, основанной на одной ячейке. Это
круговая диаграмма, внешне напоминающая спидометр. На этой диаграмме отображает­
ся всего одно значение (из ячейки В1), но используются три точки данных (А4 : А6).
Один сектор круга (нижняя половина) всегда содержит 50 процентов, и этот сектор
скрыт (с помощью флажков Нет заливки и Нет линий в диалоговом окне Формат под­
писей данных диаграммы). Остальные два сектора пропорциональны значению ячейки
В1. Формула в ячейке А4 следующая:
=мин(В1 ;100%)/2
В этой формуле использована функция МИН для отображения минимального из двух
значений: либо ячейки В1, либо 100%; при этом результат функции делится на два, так
Часть V. Полезные методики применения формул
418
как мы оперируем только верхней половинкой круга. Использование функции МИН пре­
дотвращает возможность отображения более ста процентов.
Рис. 17.5. Эта диаграмма напоминает спидометр и отображает
значение между нулем и ста процентами
Формула в ячейке А5 вычисляет оставшуюся часть круга, находящуюся справа от
“стрелки спидометра”.
=50%-А4
Заголовок диаграммы вынесен в нижнюю половину круга. Диаграмма также содер­
жит подписи данных. Я удалил две из этих подписей и оставил одну, ссылающуюся на
ячейку В1.
Отображение условных цветов на гистограммах
Вкладка Заливка диалогового окна Формат ряда данных содержит флажок Варьи­
ровать цвета по точкам. Этот параметр позволяет использовать для ряда несколько
цветов. К сожалению, в Excel цвета никак не связаны со значениями.
В данном разделе описан процесс создания гистограммы, в которой цвета столбцов
зависят от отображаемых значений. На рис. 17.6 показана эта диаграмма. Данные, ис­
пользуемые для создания диаграммы, находятся в диапазоне ячеек A I : F14.
Рис. 17.6. Цвета столбцов зависят от отображаемых значений
Глава 17. Диаграммы
419
Компакт-диск
Продемонстрированный пример содержится в файле c o n d i t i o n a l
o r s . x l s x ( c h a p t e r i 7 _ R U S . x s l m ) на прилагаемом компакт-диске.
co l­
Как видите, на диаграмме отображено четыре ряда значений, однако в каждом из рядов
отсутствуют некоторые значения. Фактические данные для диаграммы введены в столбец В.
Формулы в столбцах С : F определяют, к которой из серий относятся данные, основываясь на
значениях первой строки. К примеру, формула в ячейке СЗ имеет следующий вид:
=ЕСЛИ(ВЗ<=$С$1; В З ;"")
Если значение в столбце В меньше числа в ячейке С1, то оно попадает в столбец. Все
формулы таблицы настроены таким образом, чтобы значение столбца В попадало в один
и только один столбец таблицы рангов.
Формула в ячейке D3 сложнее, поскольку должна определять вхождение значения
столбца В в интервал.
=ЕСЛИ(И( $ВЗ >С$1; $B3<=D$1) ; $ В З ;"")
Во все четыре ряда данных добавлены соответствующие заголовки. Необходимо так­
же увеличить значение Перекрытие рядов. Этот параметр устанавливает промежутки
между рядами. Для коррекции этого параметра воспользуйтесь вкладкой Параметры
ряда диалогового окна Формат ряда данных.
Примечание
Следует отметить, что параметр перекрытия рядов устанавливается для
всей диаграммы в целом. Его изменение для одного ряда данных отразится
на всех остальных рядах.
Создание гистограммы сравнения
Вам потребуется немного творческих усилий, чтобы создать диаграммы, построить
которые с помощью Excel, казалось бы, не представляется возможным. Примером может
служить приведенная на рис. 17.7 так называемая сравнительная гистограмма. Такие
диаграммы часто используются в демографических исследованиях.
Компакт-диск
Продемонстрированный пример содержится в файле 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 ) на прилагаемом компакт-диске.
Вот как создать диаграмму такого рода.
1. Введите данные в диапазон А1 :С8, как показано на рис. 17.7. Обратите внима­
ние, что значения, касающиеся женщин, указаны со знаком “минус”, и это очень
важно.
2. Выделите диапазон А 1 : С8 и создайте двухмерную линейчатую диаграмму.
3. Выделите горизонтальную ось и откройте диалоговое окно Формат оси.
4. Щелкните на вкладке Числовой и введите следующий пользовательский формат:
0%;0%;0%
При использовании данного форматирования удаляется знак “минус” перед про­
центными значениями.
420
Часть V. Полезные методики применения формул
Рис. 17.7. Для построения данной диаграммы требуется знание дополнительных методов
5. Выделите вертикальную ось и откройте диалоговое окно Формат оси.
6. Снимите все метки. Присвойте параметру Подписи делений значение В н и зу . Это
позволит разместить ось в центре диаграммы, а подписи — по левому ее краю.
7. Выберите любой ряд данных и откройте диалоговое окно Формат ряда данных.
8. Во вкладке Параметры ряда установите в сто процентов параметры Перекры­
тие рядов и Боковой зазор.
9. Удалите легенду и добавьте два текстовых поля (Мужчины и Женщины), кото­
рые ее заменят.
10. При желании примените другое форматирование.
Создание диаграммы Ганта
Диаграмма Ганта представляет собой горизонтальную линейчатую диаграмму; она
часто используется в управлении проектами. Несмотря на то что Excel не поддерживает
диаграмму Ганта как таковую, ее можно создать. Главное в этом процессе — правильно
организовать данные.
На рис. 17.8 показана диаграмма Ганта, отображающая временной график выполне­
ния работ в проекте. Диапазон данных находится в ячейках А2 : С 13. На горизонтальной
оси показано общее время, занимаемое реализацией проекта, а каждая полоска представ­
ляет собой конкретную задачу. На экране можно увидеть продолжительность каждой за­
дачи, а также идентифицировать пересекающиеся задачи.
Компакт-диск
Продемонстрированный пример содержится в файле g a n t t
на прилагаемом компакт-диске.
(c h a p t e r i7 _ R U S . xslm )
c h a rt.x ls x
Глава 17. Диаграммы
421
Рис. 17.8. Средствами линейчатой диаграммы можно создать диаграмму Ганта
В столбце А находятся названия задач, в столбце В — дата их начала, а в столбце С —
продолжительность решения задач в днях.
Для создания показанной на рис. 17.8 диаграммы выполните следующие действия.
1. Выделите диапазон ячеек А2 : С13 и создайте линейчатую диаграмму.
2. Удалите легенду.
3. Выделите вертикальную ось (категорий) и откройте диалоговое окно форматиро­
вания оси.
4. В открывшемся диалоговом окне установите флажок Обратный порядок кате­
горий для отображения задач в порядке, начиная с верхней. В группе Горизон­
тальная ось пересекает установите переключатель В максимальной. В ре­
зультате даты будут отображаться внизу.
5. Выделите ряд данных начальной даты и откройте диалоговое окно Формат ряда
данных.
6. В нем перейдите во вкладку Параметры ряда и присвойте параметру Перекры­
тие рядов значение 100%. Щелкните на вкладке Заливка и установите переклю­
чатель Нет заливки. Перейдите во вкладку Цвет границы и установите пере­
ключатель Нет линий. Выполнение этих действий позволит эффективно скрыть
ряды данных.
7. Выделите горизонтальную ось (значений) и откройте диалоговое окно Формат оси.
8. В открывшемся диалоговом окне Максимальное значение и Минимальное
значение установите подходящие даты.
К сожалению, в данном случае придется вводить не реальные даты, а соответст­
вующие им порядковые номера. В нашем примере установите минимальное зна­
чение в 3 9181 (9 апреля 2010 года), а максимальное— в 3 9 261 (28 июня 2010
422
Часть V. Полезные методики применения формул
года). Цену основных делений установите равной 7, что соответствует одной не­
деле. Для выбора подходящего типа данных откройте вкладку Число.
9. Примените другое необходимое форматирование.
Создание диаграммы разброса данных
Графики разброса часто используются для отображения сводных данных. На
рис. 17.9 показана диаграмма разброса, созданная для четырех наборов данных. Строки
данных находятся в столбцах от А до D. Диапазон G2 : J7, используемый в диаграмме,
содержит формулы обобщения. В табл. 17.1 показаны формулы, записанные в столбце G
(они скопированы в три столбца вправо).
Компакт-диск
Продемонстрированный пример содержится в файле box
(cha p te ri7 _ R U S . xslm ) на прилагаемом компакт-диске.
p lo t.x ls x
Рис. 17.9. На данном графике обобщены данные столбцов от а до d
Таблица 17.1. Формулы, используемые для создания диаграммы
разброса данных
Результат
Формула
Ячейка
G2
G3
G4
G5
G6
G7
25 процентов
Минимум
Среднее значение
50 процентов
Максимум
75 процентов
=КВАРТИЛЬ(А 2 :А2 6; 1)
=МИН(А 2 :А26)
=СРЗНАЧ(А 2 :А26)
=КВАРТИЛЬ(А 2 :А2 6 ; 2)
=МАКС(А 2:А26)
=КВАРТИЛЬ(А 2 :А2 6 ; 3)
Глава 17. Диаграммы
423
Для создания графика разброса данных выполните следующие действия.
1. Выделите диапазон F I : J 7 .
2. Во вкладке Вставка выберите график с маркерами.
3. Выберите команду Работа с диаграммамиОКонструктор^Данные^Строка/
Столбец, чтобы изменить ориентацию диаграммы.
4. Выберите команду Работа с диаграммами^Макет^Анализ^Полосы повышения/понижения^Полосы повышения/понижения для добавления верти­
кальных полос, соединяющих первый и последний ряды данных (соответственно,
Процентиль
25 и Процентиль
75).
5. Удалите маркеры с рядов процентилей.
6. Выберите команду Работа с диаграммамиОМакет^Анализ^Линии^Линии
проекции, чтобы добавить вертикальные линии, соединяющие минимальные
и максимальные значения в точках рядов данных.
7. Удалите линии каждого из шести рядов данных.
8. Измените вид маркеров для следующих рядов данных: Минимум, Мак с иму м
иПроцентиль
50 .
9. Выполните прочее необходимое форматирование.
Совет
После выполнения всех этих действий лучше создать пользовательский
шаблон, чтобы упростить в будущем создание аналогичных диаграмм. Акти­
визируйте диаграмму и выберите команду Работа с диаграммами«=>Конструктор^Тип^Сохранить как шаблон.
В легенде этой диаграммы отображаются ряды данных в том порядке, в котором они вво­
дились. Возможно, это не лучший порядок, и в некоторых случаях он может даже вводить в
заблуждение. К сожалению, вы не можете изменить этот порядок, поскольку он важен
(вертикальные полосы используют первый и последний ряды данных). Если легенда вводит
вас в заблуждение, удалите все ее элементы за исключением С р е д н е е и П р о ц е н т и л ь 50.
Управление отсутствующими данными
В ряде случаев в данных, на основе которых строится диаграмма, может отсутствовать
одна или несколько точек. Excel предлагает три варианта решения данной проблемы.
• Пустые значения. Отсутствующие данные игнорируются, и в ряде образуется
брешь. Этот вариант принят по умолчанию.
• Нулевые значения. Отсутствующие данные трактуются как нули.
• Линия. Отсутствующие данные интерполируются — они вычисляются на основе
окружающих их значений. Этот вариант доступен только для линейных, точечных и
объемных графиков.
Характер обработки отсутствующих данных на диаграмме определяется с помощью
окна выбора источника данных. Для его открытия выберите команду Работа с диаграммами^Конструктор^Выбрать данные. В открывшемся окне щелкните на кнопке Скры­
тые и пустые ячейки. Откроется новое диалоговое окно, в котором можно определить
способ обработки отсутствующих и скрытых значений. Имейте в виду, что выбранные
параметры повлияют на всю диаграмму, а не только на выделенный ряд.
Часть V. Полезные методики применения формул
424
Обычно на диаграмме не отображаются данные, находящиеся в скрытых строках
и столбцах. Можно изменить правила отображения, установив флажок Показывать дан­
ные в скрытых строках и столбцах.
Построение каждой л-й точки данных
Обычно Excel не добавляет в диаграмму точки, находящиеся в скрытых строках или
столбцах. Иногда это можно использовать в своих целях, поскольку таким образом легко
управлять видом диаграммы.
Предположим, что в столбце содержится огромное количество данных и нужно ото­
бразить на диаграмме только каждое десятое значение. Один из способов решения зада­
чи состоит в совместном использовании фильтра и формулы. На рис. 17.10 показан ра­
бочий лист с таблицей, состоящей из двух столбцов, к которым применен фильтр. На
диаграмме отображаются лишь значения, находящиеся в видимых строках, а значения в
скрытых строках игнорируются.
Компакт-диск
Продемонстрированный пример содержится в файле 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
жит нуль. Стрелка фильтрации в ячейке ВЗ используется для выделения только строк,
содержащих в столбце В нуль.
Рис. 17.10. На диаграмме отображается каждая десятая точка (кратность опре­
деляется значением ячейки А1); строки, скрытые фильтром, игнорируются
Примечание
При изменении значения в ячейке А1 необходимо переопределить критерий
для столбца в, так как строки не будут скрываться автоматически.
Несмотря на то что в данном примере использовалась таблица (созданная командой
Вставка^Таблицы^Таблица), этот прием можно использовать с любыми диапазона­
ми данных, которые содержат заголовки столбцов. В этом случае для включения фильт­
рации следует выбрать команду Данные^Сортировка и фильтр^Фильтр.
Отображение последних л точек данных
Существует способ отображать на диаграмме только актуальные данные. Например, мож­
но создать диаграмму, которая отображает данные последних шести месяцев (рис. 17.11).
Рис. 17.11. Эта диаграмма отображает шесть последних точек данных
Часть V. Полезные методики применения формул
426
Ниже представлено описание метода создания диаграммы, показанной на рис. 17.11.
1. Создайте рабочий лист, подобный тому, который показан на рис. 17.11 (диапазон
ячеек A I : В2 6).
2. Во вкладке Формулы активизируйте диспетчер имен.
3. Щелкните на кнопке Создать, чтобы открыть диалоговое окно создания нового
имени.
4. В поле Имя введите MonthRange, а в поле Диапазон — формулу следующего вида:
=СМЕЩ(Лист1! $ А $ 1 ; СЧЁТЗ(Лист1! $ А: $ А ) - 6 ; 0 ; 6 ; 0 )
Обратите внимание, что функция СМЕЩ ссылается на ячейку А1, а не на ячейку
с данными первого месяца.
5. Щелкните на кнопке ОК, чтобы закрыть диалоговое окно создания имени.
6. Снова щелкните на кнопке Создать, чтобы создать еще одно имя.
7. В диалоговом окне создания нового имени в поле Имя введите SalesRange,
а в поле Диапазон — следующую формулу:
=СМЕЩ(Лист1! $ В $ 1 ; СЧЁТЗ(Лист1! $ В : $ В ) - 6 ; 0 ; 6 ; 1 )
8. Щелкните на кнопке ОК и закройте диспетчер имен.
9. Создайте диаграмму и выделите ряд данных.
10. В формуле РЯД замените ссылки на диапазоны именами, определенными в пп. 4
и 7. Формула должна принять следующий вид:
=РЯД( ; Л и с т 1 !Mo n t hRange ;Ли с т 1 ! S a l e s R a n g e ;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 на прилагаемом компакт-диске.
Выбор ряда в раскрывающемся списке
На рис. 17.12 показана диаграмма, отображающая данные, определенные элементом
раскрывающегося списка. В диаграмме используются данные из диапазона AI :D2, од­
нако месяц, выбираемый в раскрывающемся списке, определяет отображаемые данные.
В диапазоне A6 :D17 содержатся ежемесячные данные, формулы в диапазоне A2:D2
отображают эти данные, используя значение ячейки F1 (связанной с раскрывающимся
списком). К примеру, когда в ячейке F1 содержится значение 4, на диаграмме отобра­
жаются данные за апрель (т.е. за четвертый месяц).
Формула в ячейке А2 следующая:
=ИНДЕКС(А6:А 1 7 ; $ F $ 1 )
Эта формула была скопирована в ячейки В2 : D2.
Глава 17. Диаграммы
427
Рис. 17.12. Выбор данных для диаграммы с помощью раскрывающегося списка
Основная проблема заключалась в том, чтобы отобразить в раскрывающемся списке
названия месяцев и поместить соответствующий индекс в ячейку F1. Для создания рас­
крывающегося списка выполните следующие действия.
1. Убедитесь, что в окне Excel отображается вкладка Разработчик. Если вы ее не
видите, откройте диалоговое окно параметров программы и в области Основные
вкладки категории Настройка ленты установите флажок Разработчик.
2. Выберите команду Разработчик^Элементы управления^Вставить^Поле
с раскрывающимся списком.
3. Перетащите этот элемент на рабочий лист.
4. Щелкните правой кнопкой на элементе раскрывающегося списка и выберите
в контекстном меню пункт Формат объекта.
5. В открывшемся диалоговом окне Формат элемента управления перейдите во
вкладку Элемент управления.
6. В поле Формировать список по диапазону укажите диапазон А6 : А 1 7 , а в поле
Связь с ячейкой — F1.
После выполнения всех этих действий в раскрывающемся списке будут отображаться
названия месяцев, а индекс выбранного месяца будет помещаться в ячейку F1. Формулы
в строке 2 отображают выбранные данные, которые затем выводятся на диаграмме.
Компакт-диск
Продемонстрированный пример содержится в файле 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, позволяющая
вычислять формулу, не изменяя входные значения.
Часть V. Полезные методики применения формул
428
Примечание
Не следует путать таблицы данных с таблицами, создаваемыми с помощью
команды Вставка^Таблицы^Таблица.
Построение графика функции одной переменной
Для создания графиков математических и тригонометрических функций лучше всего
подходят точечные диаграммы и графики. В качестве примера на рис. 17.13 представлен
график функции синуса SIN. На этом графике показаны значения у для х из диапазона от
-5 до +5 с шагом 0 , 5 . Каждая пара значений х и у отображается на графике как одна
точка, и все эти точки соединены линиями.
Совет
Тригонометрические функции Excel требуют задания углов, выраженных
в радианах. Для преобразования градусов в радианы можете воспользо­
ваться функцией РАДИАНЫ.
Рис. 17.13. График функции SIN(x)
Сама функция имеет следующий вид:
y=SIN (х)
Соответствующая формула в ячейке В2 (копируемая в ячейки ниже) имеет следую­
щий вид:
= S I N (А2)
На рис. 17.14 показан лист, создающий диаграммы произвольного вида. Диаграмма
оперирует математическими функциями одной переменной. Данные для диаграммы вы­
числяются по формулам в столбцах I : J. Для отображения графика нужной функции вы­
полните следующие действия.
1. В ячейку В7 введите формулу. Эта формула должна содержать хотя бы одну пе­
ременную х. Удалите апостроф, добавленный для преобразования в текстовый
формат. В предложенном примере формула имеет следующий вид:
=SIN (ПИ () *х) * (ПИ () *х)
2. В ячейку В 8 введите минимальное значение х.
3. В ячейку В 9 введите максимальное значение х.
Глава 17. Диаграммы
429
Рис. 17.14. Рабочая книга создания графика функции одной переменной
Формула в ячейке ВЗ отображает значение у для минимального значения х. Однако
таблица данных вычисляет эту формулу для двухсот значений х, равномерно распреде­
ленных в заданном интервале. Все вычисленные значения отображаются на диаграмме.
Компакт-диск
Примеры этого раздела содержатся в файле f u n c t i o n
(c h a p t e r 1 7 _ r u s . x s l m ) на прилагаемом компакт-диске.
plot
2D.x l s x
Построение графиков функций двух переменных
В предыдущем разделе было показано, как вывести на диаграмму график функции
одной переменной (х). Можно также построить график функции двух переменных.
Предположим, что следующая функция вычисляет значение z для различных значений
двух переменных (х и у):
z=SIN (х) *COS (у)
На рис. 17.15 показана поверхность, образуемая значениями z для 21 значения х в
диапазоне от 2 до 5 (приращение составляет 0 , 1 5 ) и 21 значения у в диапазоне от -3 до
0 (приращение также составляет 0 , 1 5 ) .
430
Часть V. Полезные методики применения формул
Рис. 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.16. Лист построения графика произвольной функции двух переменных
Рисование окружности
Для того чтобы создать двухмерную диаграмму, которая выводит на экран идеальную
окружность, вам потребуется два диапазона: один для значений х и другой для у. Коли­
чество данных в рядах определяет гладкость окружности. Можете также в диалоговом
окне Формат ряда данных установить флажок сглаженная линия.
На рис. 17.17 показана диаграмма, использующая для создания окружности 13 точек.
Если вы работаете в единицах градусов, сгенерируйте последовательность значений, по­
добно тем, которые показаны в столбце А. Эта последовательность начинается с нуля и
имеет приращение 30 градусов. Если вы работаете с радианами (столбец В), первая по­
следовательность начинается с нуля; при этом приращение составляет ПИ/ 6.
Компакт-диск
Продемонстрированный пример содержится в файле p l o t
( C h a p t e r i 7 _ R U S . x l s m ) на прилагаемом компакт-диске.
circles.xlsx
Диапазоны, используемые в диаграмме, показаны в столбцах D и Е. Если вы работае­
те с градусами, формула в ячейке D2 будет следующей:
=SIN( РАДИАНЫ (А2) )
Формула в ячейке Е2 такова:
=COS( РАДИАНЫ (А2) )
432
Часть V. Полезные методики применения формул
Рис. 17.17. Создание окружности с использованием точечной диаграммы
Если вы работаете с радианами, в ячейке D2 используйте следующую формулу:
= S I N (А2)
В ячейке Е2 можете использовать следующую формулу:
=COS(А2)
Формулы ячеек D2 и Е2 копируются в нижние строки.
Чтобы нарисовать окружность с большим числом точек данных, нужно скорректиро­
вать приращение и количество точек данных в столбце А (или столбце В, если вы рабо­
таете с радианами). Окончательное значение должно быть тем же, которое показано в
строке 14. В градусах приращение составляет 360°, деленное на количество точек дан­
ных, минус единица. В радианах приращение составляет число 71, деленное на количест­
во точек данных минус единица, деленное дополнительно на два.
На рис. 17.18 показан лист, рисующий произвольную окружность по 37 точкам дан­
ных. В диапазоне Н2 7 : Н2 9 определены координаты х и у центра окружности и ее радиус
(все эти ячейки именованные). На рисунке центр круга находится в точке (1 ; 3), а ее ра­
диус составляет 7 , 3 5 .
Формула в ячейке D2 такова:
= ( S I N ( РАДИАНЫ(А 5 ) ) * r a d i u s ) + x _ o r i g i n
Формула в ячейке Е2 следующая:
= (COS (РАДИАНЫ (А5) ) * r a d i u s ) + y _ o r i g i n
Компакт-диск
Продемонстрированный пример содержится в файле 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.18. Общее приложение создания диаграммы окружности
Создание диаграммы часов
На рис. 17.19 показана точечная диаграмма, имеющая вид часов. Эта диаграмма не
только выглядит, но и функционирует как часы. В реальной жизни вряд ли кто-либо за­
хочет выводить часы, подобные этим, на рабочем листе, однако умение решать пробле­
мы, возникающие при создании этой рабочей книги, несомненно пригодится вам в дру­
гих проектах.
Рис. 17.19. Эти полнофункциональные часы на самом деле представляют собой точечную диаграмму
434
Часть V. Полезные методики применения формул
Компакт-диск
Продемонстрированный пример содержится в файле c l o c k
( c l o c k RUS. x ls m ) на прилагаемом компакт-диске.
chart.xlsm
В диаграмме используются четыре набора данных: один для часовой стрелки, второй
для минутной, третий для секундной стрелки и еще один для цифр. Последний набор дан­
ных используется для рисования окружности с 12-ю точками; числа вводятся вручную как
подписи. В дополнение я добавил овальную форму в верхней части диаграммы.
В формулах, описанных в табл. 17.2, использованы основные тригонометрические
функции для построения наборов данных. (Диапазон G4 : L4 содержит нулевые значения,
а не формулы.)
Таблица 17.2. Формулы, используемые для создания наборов данных
Ячейка
Описание
Формула
G5
Начало часовой стрелки
Н5
Конец часовой стрелки
15
Начало минутной стрелки
J5
Конец минутной стрелки
К5
Начало секундной стрелки
L5
Конец секундной стрелки
= 0 , 5 * S I N ( (ЧАС(ТДАТА( ) ) + ( МИНУТЫ(ТДАТА
( ) )/60)) * (2*ПИ( ) / 1 2 ) )
= 0 , 5 * COS( (ЧАС(ТДАТА( ) ) + ( МИНУТЫ(ТДАТА
( ) ) / 6 0 ) ) * ( 2 * ПИ () / 1 2 ) )
= 0, 8*SIN( (МИНУТЫ (ТДАТА () ) + (СЕКУНДЫ
(ТДАТА( ) ) / 6 0 ) ) * (2*ПИ( ) / 6 0 ) )
= 0 , 8 * COS( (МИНУТЫ(ТДАТА( ) ) + (СЕКУНДЫ
(ТДАТА( ) ) / 6 0 ) ) * (2*ПИ( ) / 6 0 ) )
= 0 , 8 5 * S I N (СЕКУНДЫ(ТДАТА( ) ) / 6 0 ) ) *
(2*ПИ()/ 6 0 ) )
= 0 , 85*COS(СЕКУНДЫ(ТДАТА( ) ) / 6 0 ) ) *
(2*ПИ()/ 6 0 ) )
В данной рабочей книге используется простая процедура VBA, пересчитывающая ра­
бочий лист каждую секунду, что заставляет стрелки часов двигаться.
Кроме диаграммы часов, рабочая книга содержит текстовое поле, в котором с помощью
функции ТДАТА () отображается время (рис. 17.20). Данное поле, которое обычно скрыто,
можно отобразить, сбросив флажок Стрелочные часы. В зависимости от состояния
флажка связанная с ним простая процедура VB А скрывает или отображает диаграмму.
Рис. 17.20. Отобразить цифровые часы на
рабочем листе проще, но менее интересно
При изучении данной рабочей книги учтите следующее.
•
Объект диаграммы, названный ДиаграммаЧасов, скрывает диапазон ЦифровыеЧасы, который используется для отображения времени в цифровом виде.
Глава 17. Диаграммы
435
•
Две имеющиеся на рабочем листе кнопки взяты из группы Разработчика
Элементы управления^Вставить^Элементы управления формы. Каждой
из них назначена VBA-процедура ( S t a r t C l o c k и S t o p C l o c k ) .
•
Находящийся на рабочем листе флажок c b C l o c k T y p e предназначен для пере­
ключения режима видимости диаграммы. Когда диаграмма скрыта, отображаются
обычные цифровые часы.
•
Процедура U p d a t e C l o c k использует метод On Ti m e объекта A p l i c a t i o n .
Данный метод позволяет выполнять процедуру в определенное время. Перед тем
как завершить свою работу, процедура U p d a t e C l o c k вызывает новое событие
OnTi me, которое происходит через одну секунду. Другими словами, процедура
U p d a t e C l o c k вызывается каждую секунду.
•
Процедура U p d a t e C l o c k вставляет в ячейку с именем Ци ф ров ые Ча с ы следую­
щую формулу:
=ТДАТА()
Вставка этой формулы вызывает пересчет рабочей книги, что, в свою очередь,
приводит к обновлению часов.
Создание причудливых форм
На рис. 17.21 показан пример точечной диаграммы, отображающей циклические пе­
рекрещивающиеся кривые; при этом используются случайные значения. Это именно тот
тип кривых, который был использован в игрушке Spirograph.
Рис. 17.21. Гипоциклоидная кривая
Компакт-диск
Продемонстрированный пример содержится в файле 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. Полезные методики применения формул
В диаграмме используются данные в столбцах D и Е (диапазоны х и у). В этих столб­
цах находятся формулы, которые зависят от данных, содержащихся в столбцах от А до С.
В первом столбце (столбец D) отображается такая формула:
= ( А б - В б ) *COS( С б ) +B6*COS( ( А 6 / В 6 - 1 ) * С 6 )
Формула во втором столбце (столбец Е) имеет следующий вид:
= (Аб-Вб)*SIN(C6)+B6*SIN ((Аб/Вб-1)*С6)
При нажатии клавиши <F9> выполняется пересчет листа; при этом генерируются но­
вые возрастающие значения (случайные) для столбцов от А до С и создается новое изо­
бражение на диаграмме. Разнообразие и красота диаграмм, генерируемых данной фор­
мулой, не оставят вас равнодушными.
Тренды
В некоторых диаграммах для более наглядного представления данных может потре­
боваться построение линии тренда. Тренд отображает характер изменения ряда данных.
В некоторых случаях с помощью линий трендов можно выполнять прогнозирование.
Один ряд данных может иметь несколько трендов.
Добавить тренд на диаграмму в Excel довольно просто. Для этого выберите команду
Работа с диаграммами^Макет^Анализ^Линия тренда^Линейное приближение.
Дополнительные параметры управления линией тренда приведены в специальном диало­
говом окне, открываемом с помощью команды Работа с диаграммами1^ Макета
Анализ^Линия тренда^Дополнительные параметры линии тренда.
Рис. 17.22. Диалоговое окно параметров линии тренда предлагает автоматическое построе­
ние различных типов линий тренда
Наиболее подходящий тип линии тренда зависит от характера данных. Линейные
тренды используются чаще всего, однако некоторые типы данных лучше описывают
другие типы трендов.
Глава 17. Диаграммы
437
Вкладка Параметры линии тренда позволяет определить название линии, которое
будет отображено на диаграмме, и количество будущих прогнозируемых периодов. До­
полнительные параметры позволяют определить точку пересечения с осью Y, а также
отобразить на диаграмме уравнение линии тренда и показатель достоверности аппрок­
симации (R-квадрат).
Когда Excel вставляет на диаграмму линию тренда, это может выглядеть как новый
ряд данных, но на самом деле это не так. Это просто новый элемент диаграммы с име­
нем, таким как Ряд 1 Тренд 1 . И естественно, линия тренда не имеет связанной с ней
формулы РЯД.
Линейные тренды
На рис. 17.23 показаны две диаграммы. Диаграмма, находящаяся слева, отображает
ряд данных без линии тренда. На рисунке анализируется линейная зависимость данных
от времени. Справа изображена та же диаграмма, но уже с линией тренда, показывающей
ход изменения данных.
Компакт-диск
Примеры этого раздела содержатся в файле l i n e a r
( c h a p t e r i7 _ R U S . x ls m ) на прилагаемом компакт-диске.
tr e n d lin e .x lsx
Рис. 17.23. Диаграмма до (слева) и после (справа) добавления на нее линии тренда
На второй диаграмме отображены также уравнение тренда и показатель достоверно­
сти аппроксимации. В данном примере уравнение имеет следующий вид:
у = 5 3 , 194х
+ 514,93
Показатель достоверности аппроксимации составляет 0 , 6748.
Что означают все эти числа? Любая прямая линия описывается уравнением следую­
щего вида:
у = тх
+Ь
С помощью этого уравнения для каждого значения х (в данном случае это столбец В)
можно получить расчетное значение у (значение на графике тренда). Переменная т
представляет угол наклона прямой, а Ь — это точка пересечения прямой с осью Y. На­
пример, для марта значение х равно 3, а расчетное значение, полученное с помощью
указанной формулы, составило 674 , 4 7.
=(53,194*3)+514,93
Часть V. Полезные методики применения формул
438
Показатель достоверности аппроксимации, называемый также коэффициентом со­
ответствия, может изменяться в пределах от нуля до единицы. Это значение указывает,
насколько близки расчетные данные к реальным. Линия тренда наиболее точна, когда
показатель достоверности аппроксимации равен единице или близок к ней.
Вычисление наклона и точки пересечения с осью Y
Excel может отображать на диаграмме
описывает наклон (ш) и точку пересечения
вычислить эти величины самостоятельно с
функция ЛИНЕЙН.
На рис. 17.24 показано 10 точек данных
у — в столбце С).
уравнение линии тренда. Данное уравнение
линии тренда с осью Y (Ь). Несложно также
помощью формулы, в которой используется
(значения х находятся в столбце В, значения
Рис. 17.24. Использование функции линейн для вычисления угла на­
клона и точки пересечения с осью Y
Приведенная ниже формула является формулой массива, отображающей результат
в двух ячейках.
{ =ЛИНЕЙН (С2 : С И ; В2 : В 1 1 ) }
Чтобы ввести эту формулу, начните с выделения двух ячеек (в примере G2 :Н2). За­
тем введите формулу (без фигурных скобок) и нажмите комбинацию клавиш
<Ctrl+Shift+Enter>. В ячейке G2 будет отображен угол наклона, а в ячейке Н2 — точка
пересечения с осью Y.
Вычисление расчетных значений
После того как будут определены угол наклона и точка пересечения с осью Y, можно
найти расчетное значение у для произвольного значения х. На рис. 17.25 показан ре­
зультат. В ячейке Е2 содержится формула, которая была скопирована вниз по столбцу.
= ( B 2 *$ G$2) +$Н$2
Вычисленные значения в столбце Е фактически применяются для построения ли­
нейного графика тренда. Расчетные значения можно найти и без вычисления угла на­
клона и точки пересечения с осью Y. Это можно сделать с помощью формулы массива,
использующей функцию ТЕНДЕНЦИЯ. Выделите диапазон D2 :D 11, после чего введи­
те приведенную ниже формулу (без фигурных скобок) и нажмите комбинацию клавиш
<Ctrl+Shift+Enter>.
{ =ТЕНДЕНЦИЯ (С2 : С И ; В2 : В 1 1 ) }
Глава 17. Диаграммы
439
Рис. 17.25. Столбец е содержит формулы, находящие расчетные значения у
Линейное прогнозирование
Если диаграмма имеет четко выраженный тренд, Excel может предсказать и отобра­
зить на диаграмме дополнительные точки (чтобы предвидеть будущее, не обязательно
быть оракулом). Данная возможность реализуется во вкладке Параметры линии трен­
да диалогового окна Формат линии тренда. Необходимо просто указать число пред­
сказываемых точек. На рис. 17.26 показана диаграмма, прогнозирующая значения для
двух предстоящих периодов.
Рис. 17.26. Использование тренда для прогнози­
рования двух дополнительных значений
Если известны угол наклона и точка пересечения с осью Y, можно создать прогноз
для любых значений х. Например, чтобы вычислить значение у, при котором х=11
(ноябрь), воспользуйтесь следующей формулой:
у = (53,194*11)
+ 514,93
Существует также возможность прогнозирования значений с помощью функции
ПРЕДСКАЗ. Ниже приведен пример формулы, прогнозирующей значение для ноября (т.е.
для х=11), в которой используются известные значения х и у.
=ПРЕДСКАЗ( 1 1 ; С 2 : C l 1 ; В 2 : В11)
Вычисление достоверности аппроксимации
Показатель достоверности предсказываемых и расчетных значений позволяет судить
о том, насколько точно линейный тренд соответствует реальным данным. Показатель
достоверности аппроксимации показывает степень этого соответствия. Чем ближе значе­
ние показателя к единице, тем выше степень соответствия и тем выше точность прогно­
440
Часть V. Полезные методики применения формул
за. Другими словами, величину достоверности аппроксимации можно рассматривать как
отношение расхождения значений у к расхождению значений х.
Как уже отмечалось, можно приказать Excel отображать показатель достоверности
аппроксимации на диаграмме. Несложно также вычислить данное значение и самостоя­
тельно, с помощью функции КВПИРСОН. Приведенная ниже формула определяет показа­
тель достоверности аппроксимации для значений х, находящихся в диапазоне В1 :В 11,
и для значений у из диапазона C l : С И .
=КВПИРСОН (В1 : В 1 1 ; С 1 : С И )
Предупреждение
Вычисление показателя достоверности аппроксимации с помощью функции
квпирсон применимо только в случае линейного тренда.
Нелинейные тренды
Наряду с линейными трендами, Excel может отображать тренды следующих типов.
•
Логарифмический. Используется в случае, когда значения данных имеют высо­
кую скорость нарастания или спада, а затем стабилизируются.
•
Степенной. Используется, когда значения данных увеличиваются или спадают
с постоянной скоростью. Данные не могут содержать нулевых или отрицательных
значений.
•
Экспоненциальный. Используется, когда значения увеличиваются или умень­
шаются с нарастающей скоростью. Данные не могут содержать нулевых или от­
рицательных значений.
•
Полиномиальный. Используется для неустойчивых данных. Необходимо выбрать
порядок полинома (от 2 до 6) в зависимости от количества колебаний графика.
Примечание
Во вкладке Параметры линии тренда диалогового окна Формат линии тренда
предоставляется также возможность выбрать вариант Линейная фильтрация.
На самом деле этот вариант не является линией тренда, однако он позволяет
сгладить зашумленные данные. При выборе этого варианта следует указать
количество точек данных, по которым выполняется усреднение. К примеру,
если выбрать пять точек, Excel будет находить среднее каждой группы из пяти
точек и отображать полученное значение на сглаженной линии.
В этой главе уже говорилось о том, как найти угол наклона и точки пересечения с
осью Y для линейного уравнения, описывающего линейный тренд. Нелинейные тренды
тоже основаны на определенных уравнениях, о чем речь пойдет в следующих разделах.
Компакт-диск
Примеры этого раздела содержатся в файле n o n l i n e a r
( Ch apt er i 7 _RUS . x l s m ) на прилагаемом компакт-диске.
Логарифмический тренд
Логарифмический тренд описывается уравнением следующего вида:
у = (с * LN (х) ) - b
trend lin e.xlsx
Глава 17. Диаграммы
441
На рис. 17.27 показана диаграмма с добавленной линией логарифмического тренда.
Формула массива, записанная в ячейках Е2 : F2, вычисляет значения для переменных с и Ь.
{ =ЛИНЕЙН (В2 : В 1 1 ; LN (А2 : А Н ) ) }
Рис. 17.27. Диаграмма, отображающая логарифмический тренд
В столбце С содержатся расчетные значения у для каждого значения х, полученные
на основе вычисленных значений b и с. Например, в ячейке С2 содержится следующая
формула:
= ($Е$2 *LN(А2) ) +$F$2
Как видите, логарифмический тренд не дает удовлетворительную аппроксимацию
имеющихся данных. Показатель достоверности аппроксимации низкий, а график тренда
не совпадает с диаграммой данных.
Степенной тренд
Степенной тренд описывается уравнением следующего вида:
у = с * х жЬ
На рис. 17.28 показана диаграмма с добавленной линией степенного тренда. Первый
элемент в двухъячеечной формуле массива, записанной в диапазоне Е2 :F2, вычисляет
значения переменной Ь. Формула массива имеет следующий вид:
{=ЛИНЕЙН(LN( В 2 : B l l ) ;LN(A2:A11) ; ;ИСТИНА) }
Значение переменной с вычисляется с помощью формулы, находящейся в ячейке F3.
=ЕХР(F 2 )
В столбце С содержатся прогнозируемые значения у для каждого значения х, полу­
ченные на основе вычисленных значений b и с. Например, в ячейку С2 введена следую­
щая формула:
= ($F$3 * (А2Х$Е$2)
442
Часть V. Полезные методики применения формул
Рис. 17.28. Диаграмма, отображающая степенной тренд
Экспоненциальный тренд
Экспоненциальный тренд описывается уравнением следующего вида:
у = с * ЕХР(Ь * х )
На рис. 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
Рис. 17.29. Диаграмма, отображающая экспоненциальный тренд
Полиномиальный тренд
При выборе полиномиального тренда требуется дополнительно указать порядок по­
линома (число от 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. Полезные методики применения формул
Рис. 17.30. Диаграмма, отображающая полиномиальный тренд
Глава
Сводные таблицы
В этой главе...
♦ О сводных таблицах
♦ Пример сводной таблицы
♦ Данные, пригодные для создания сводных таблиц
♦ Создание сводной таблицы
♦ Другие примеры сводных таблиц
♦ Группировка элементов сводной таблицы
♦ Распределение частот
♦ Создание вычисляемых полей и элементов
♦ Фильтрация сводных таблиц с помощью срезов
♦ Ссылки на ячейки сводной таблицы
♦ Еще один пример сводной таблицы
♦ Создание отчета на основе сводной таблицы
Сводные таблицы — наиболее сложный компонент Excel. Некоторые пользователи
могут возразить, что сводные таблицы выполняют свою работу и без использования ка­
ких-либо формул. Однако это не совсем так. Если вы еще не открыли для себя все воз­
можности сводных таблиц, то данная глава поможет вам понять, что сводные таблицы
могут стать прекрасной альтернативой созданию многих сложных формул.
О сводных таблицах
Сводная таблица является, по существу, динамическим итоговым отчетом, генери­
руемым на основе базы данных. База данных может находиться как на рабочем листе,
так и во внешнем файле. Сводные таблицы помогут создать доступное для понимания
представление огромного количества строк и столбцов.
С помощью данного средства можно, например, создавать частотные распределения
и таблицы массивов данных разных размерностей. Кроме того, существует возможность
446
Часть V. Полезные методики применения формул
отображать промежуточные итоги с любой необходимой степенью детализации. Пожа­
луй, сдмой важной особенностью сводных таблиц является их интерактивность. В свод­
ной таблице можно переупорядочить информацию практически любым образом; можно
даже вставить специальные формулы, которые будут выполнять новые вычисления. Или,
к примеру, скомбинировать итоговые данные северного и южного регионов. Кроме того,
с помощью всего нескольких щелчков мыши вы можете превратить сводную таблицу
в готовый к презентации аналитический отчет.
Сводные таблицы появились в версии Excel 97. К сожалению, многие пользователи
проигнорировали этот инструмент, поскольку считали создание сводных таблиц уделом
исключительно профессионалов. В версии Excel 2007 сводные таблицы были в значи­
тельной мере улучшены; теперь их создание и форматирование на порядок проще, чем
когда бы то ни было. Единственный небольшой недостаток использования сводных таб­
лиц заключается в том, что они не обновляются автоматически при изменении исходных
данных, как это происходит в случае создания итогового отчета с использованием фор­
мул. Однако это не представляет серьезную проблему: для того чтобы сводная таблица
использовала последние измененные данные, необходим всего один щелчок на кнопке.
Пример сводной таблицы
Лучше всего понять концепцию сводной таблицы— это взглянуть на нее. Начнем
с рис. 18.1. На нем отображены данные, которые будут использоваться для создания
сводных таблиц в этой главе.
Рис. 18.1. Данная таблица используется для создания сводной таблицы
Эта таблица состоит из ежемесячно обновляемой информации о счетах банка, имею­
щего три отделения. Таблица состоит из 712 строк, каждая строка содержит информа­
цию об отдельном счете. Таблица включает следующие столбцы:
•
дата открытия счета;
•
размер открытого счета;
•
тип счета (начальный, накопительный, внутренний или международный);
•
кто открыл счет: кассир или менеджер;
Глава 18. Сводные таблицы
447
•
отделение, в котором открыт счет (центральный, западный или северный филиал);
•
тип клиента (старый или новый).
Компакт-диск
Демонстрируемые примеры содержатся в файле bank
( c h a p t e r i8 _ R U S . x s l x ) на прилагаемом компакт-диске.
accounts .x ls x
База данных банковских счетов содержит довольно много информации. Однако из
данных, представленных в такой форме, понять можно немного. Чтобы из отображенных
данных можно было извлечь больше полезной информации, их следует определенным
образом обобщить. Такое обобщение данных является, по существу, процессом выбора
ответов на ряд вопросов. Некоторые вопросы, которые обычно интересуют банковских
работников, представлены ниже.
•
Какова общая сумма депозита в каждом отделении и какова доля каждого типа
счета?
•
Сколько счетов было открыто в каждом отделении и какова доля, каждого типа
счета?
•
Каково распределение различных типов счетов?
•
Какие типы счетов открывают чаще всего кассиры?
•
Как соотносятся результаты работы центрального отделения банка со всеми
остальными?
•
В каком отделении открыто наибольшее количество счетов для новых клиентов?
Безусловно, для получения ответов на все эти вопросы можно написать соответствую­
щие формулы. Однако во многих случаях использование сводных таблиц представляется
более удачным решением. Создать сводную таблицу можно за считанные секунды, не на­
писав при этом ни единой формулы и получив презентабельный отчет. К тому же сводные
таблицы в меньшей степени подвержены потенциальным ошибкам, чем формулы.
По ходу изложения материала я попытаюсь ответить на эти вопросы, создавая на ос­
нове данных на рис. 18.1 соответствующие сводные таблицы.
На рис. 18.2 показана сводная таблица, которая создана из данных банка, представ­
ленных на рис. 18.1. В этом примере показана величина депозитов, разбитых по отделе­
ниям и типам счетов. Это одно из десятков возможных обобщений имеющихся данных.
Рис. 18.2. Простая сводная таблица
На рис. 18.3 показана еще одна сводная таблица, созданная из той же базы банков­
ских данных. В ней используется раскрывающийся список фильтрации по полю типа
448
Часть V. Полезные методики применения формул
клиента. В таблице отображены данные лишь для старых клиентов (можно также вы­
брать из списка поля варианты Новый или В с е ) . Обратите внимание на изменение ори­
ентации таблицы: отделения указываются уже в строках, а типы счетов — в столбцах.
Этот пример демонстрирует гибкость сводных таблиц.
Рис. 18.3. Сводная таблица, использующая поле страницы
Данные, пригодные для создания
сводных таблиц
Для сводной таблицы нужно, чтобы исходные данные были организованы в виде
прямоугольной базы данных. Эти данные могут находиться либо в диапазоне базы дан­
ных (обычном или организованном в форме таблицы с помощью команды Вставка^Таблицы^Таблица), либо во внешнем файле базы данных. Несмотря на то что
программа Excel способна генерировать сводные таблицы на основе любой базы данных,
не все базы данных могут извлечь из этого пользу.
Поля в таблице базы данных могут быть двух типов.
•
Данные. Содержат значения или данные, которые должны быть обобщены. На
рис. 18.1 поле Сумма является полем данных.
•
Категории. Они описывают данные. На рис. 18.1 поля Д а т а , Тип, О т д е л е н и е
и К л и е н т являются полями категорий, так как они описывают данные, содержа­
щиеся в поле Сумма.
Таблица базы данных может иметь любое количество полей данных и категорий. При
создании сводной таблицы обычно ставится задача подведения итогов для одного или
нескольких полей данных. И наоборот, значения полей категорий в сводной таблице мо­
гут появляться в качестве категорий, полей столбцов или строк, а также фильтров.
Однако существуют и исключения. Средства создания сводных таблиц Excel могут
оказаться полезными, даже если вы работаете с базами данных, не содержащими на­
стоящих числовых полей данных. В таком случае сводная таблица выполняет подсчет
полей, а не их суммирование.
На рис. 18.4 показан диапазон данных Excel, вообще не подходящий для создания
сводной таблицы. В этом диапазоне содержится описательная информация о каждом
значении, однако он не организован в форму таблицы. На самом деле этот диапазон сам
очень похож на сводную таблицу.
Глава 18. Сводные таблицы
449
На рис. 18.5 показаны эти же данные, но упорядоченные определенным образом. Те­
перь данные нормализованы. Нормализованный диапазон состоит из столбцов и строк,
причем каждая строка содержит информацию об одном элементе данных и каждый
столбец имеет заголовок.
1 9 ____________________________________________________________________________________________________________________
Рис. 18.4. Этот диапазон не подходит для создания сводной таблицы
Рис. 18.5. Нормализованные данные
В рассматриваемом примере нормализованный диапазон состоит из 78 строк данных
и одной строки заголовков. Обратите внимание на то, что каждая строка содержит ин­
формацию о категориях каждой продажи — штат, регион, месяц и квартал. Этот диапа­
зон — идеальный “кандидат” для создания сводной таблицы, поскольку он содержит всю
информацию, необходимую для обобщения данных по категориям.
На рис. 18.6 показана сводная таблица, созданная на основе нормализованного диапа­
зона (см. рис. 18.5). Как видите, она весьма похожа на ненормализованную таблицу, по­
казанную на рис. 18.4.
Часть V. Полезные методики применения формул
450
Рис. 18.6. Сводная таблица на основе данных на рис. 18.5
Обращение сводной таблицы
Инструменты Excel создают итоговую сводную таблицу на основе списка. Однако
иногда нужно выполнить противоположную операцию — преобразовать двустороннюю
итоговую таблицу в нормализованный список.
Ниже приведен рисунок, на котором диапазон a i : Е13 содержит итоговую таблицу с
48 точками данных. Обратите внимание на то, что она очень похожа на сводную табли­
цу. Столбцы G: I содержат таблицу из 48 строк, сгенерированную на основе таблицы,
показанной слева. Каждое значение итоговой таблицы слева преобразовано в строку
нормализованной таблицы. Полученная таким образом нормализованная таблица мо­
жет быть полезной, когда нужно заново отсортировать или отфильтровать данные (или
выполнить над ними какие-либо иные операции), а затем снова создать на ее основе
сводную таблицу.
Преобразование выполняется с помощью макроса, внедренного в рабочие книги
r e v e r s e p i v o t . x l s m и C h a p te rl8 _ R U S . x lsm .
Глава 18. Сводные таблицы
451
Терм инология, используем ая при работе со сводными таблицам и
Понимание терминологии, ассоциированной со сводными таблицами, является
первым шагом в освоении этого инструмента. Упростить изложение материала помо­
жет показанная ниже сводная таблица.
•
Поле столбца — это поле (т.е. столбец) исходной таблицы, имеющее в сводной
таблице ориентацию столбца. Каждый элемент в сводной таблице занимает стол­
бец. На приведенном рисунке Клиент является полем столбца с двумя элементами
(Старый и новый). В сводной таблице можно использовать вложенные поля.
•
Общий итог — это строка или столбец, отображающий итоги для всех ячеек в
строке или столбце. При создании сводной таблицы можно определить отображе­
ние итогов для строк, столбцов, для строк и столбцов или отсутствие итогов.
• Группа — это набор элементов, рассматриваемых как один элемент. Элементы
можно группировать как вручную, так и автоматически (например, можно сгруппи­
ровать даты в месяцы). Приведенная выше в качестве примера сводная таблица не
содержит определенных групп.
• Элемент — это элемент поля, выступающий в сводной таблице в качестве заго­
ловка строки или столбца. На приведенном рисунке Старый и Новый являются эле­
ментами поля Клиент. Поле О тдел ен ие имеет три элемента, поле Тип — четыре.
•
Обновление — это пересчет сводной таблицы после внесения изменений в исход­
•
Поле строки — это поле (т.е. столбец) исходной таблицы, имеющее в сводной таб­
ные данные или структуру.
лице ориентацию строки. Каждый элемент в поле занимает строку. Поля строки
можно объединять. На рисунке отображены два поля строки: О тделение и Тип.
•
Исходные данные — это данные, используемые для создания сводной таблицы.
Они могут находиться как на рабочем листе, так и во внешней базе данных.
•
Промежуточные итоги — это строка или столбец, отображающий промежуточные
суммы для части ячеек в строке или столбце сводной таблицы. В представленной
таблице показаны промежуточные суммы для каждого отделения.
•
Фильтр таблицы — это поле, имеющее ориентацию страницы сводной таблицы.
Оно похоже на срез трехмерного куба. В поле фильтра (страницы) может одновре­
452
Часть V. Полезные методики применения формул
менно содержаться любое количество элементов. На рисунке поле Открыт фильтра
отображает значение Кассир.
• Область данных — это ячейки сводной таблицы, содержащие обобщенные дан­
ные. Excel предлагает возможность обобщения данных несколькими способами
(суммирование, среднее значение, подсчет и т.д.).
Создание сводной таблицы
В этом разделе описаны действия, необходимые для создания сводной таблицы на
основе базы данных банка. Создание сводной таблицы — интерактивный процесс, он за­
висит от того результата, которого вы стараетесь достичь.
Указание расположения данных
В диапазоне или таблице данных на рабочем листе выделите любую ячейку и выбе­
рите команду Вставка^Таблицы^Сводная таблица^Сводная таблица. Откроется
диалоговое окно, показанное на рис. 18.7.
Рис. 18.7. В диалоговом окне Создание свод­
ной таблицы следует указать местонахождение
исходных данных и результирующей сводной
таблицы
Excel попытается самостоятельно определить диапазон, основывая свое решение на
местонахождении выделенной ячейки. Если сводная таблица создается из внешнего ис­
точника данных, установите переключатель Использовать внешний источник данных
и щелкните на кнопке Выбрать подключение.
Совет
Если сводная таблица создается из диапазона рабочего листа, лучше предва­
рительно преобразовать его в таблицу, выбрав команду Вставка^Таблицы^
Таблица. В этом случае при добавлении в таблицу новых строк данных Excel
будет обновлять сводную таблицу без необходимости переопределения ново­
го исходного диапазона.
Определение местонахождения сводной таблицы
В нижней части диалогового окна создания сводной таблицы определяется ее место­
нахождение. По умолчанию сводная таблица выносится на отдельный рабочий лист, од­
Глава 18. Сводные таблицы
453
нако можно указать диапазон на любом рабочем листе книги, включая тот, который со­
держит исходные данные.
Щелкните на кнопке OK — Excel сгенерирует пустую сводную таблицу и отобразит
панель списка доступных полей (рис. 18.8).
“т з г
Рис. 18.8. С помощью панели списка полей формируется сводная таблица
Совет
Панель списка полей сводной таблицы обычно закреплена у правой границы
окна Excel, однако, перетаскивая ее заголовок, можно перем естить эту па­
нель в лю бое д р уго е м есто. Если щелкнуть на ячейке вне сводной таблицы,
панель списка полей будет скры та.
Компоновка сводной таблицы
Далее следует скомпоновать поля сводной таблицы. Это можно сделать одним из
следующих способов:
•
перетащить имена полей в одну из четырех областей панели списка полей;
•
установить флажок напротив поля; Excel поместит поле в одну из четырех облас­
тей под списком;
•
щелкнуть правой кнопкой на имени поля и выбрать в контекстном меню его ме­
стонахождение.
Примечание
В преды дущ их версиях (до Excel 2007) п риход илось перетаскивать им ена
полей н епосредственно в конкретную область сводной таблицы. Э тот м етод
ф орм ирования сводной таблицы остается доступны м , однако по умолчанию
он отключен. Для включения этой ф ункции вы берите команду Работа со
сводными таблицами^П араметры ^С водная таблица^Параметры^П араметры .
В открывш емся диалоговом окне перейдите на вкладку Вывод и установите
флажок Классический макет сводной таблицы.
454
Часть V. Полезные методики применения формул
Описанная далее последовательность действий поможет создать сводную таблицу,
представленную ранее. Для создания этого примера перетащите названия полей в соот­
ветствующие области панели списка полей сводной таблицы.
1. Перетащите поле Сумма в область Значения. На этом этапе сводная таблица бу­
дет отображать сумму всех значений столбца Сумма.
2. Перетащите поле Тип в область Названия строк. Теперь в сводной таблице бу­
дут отображаться суммы для всех типов счетов.
3. Перетащите поле Отделение в область Названия столбцов. Теперь в сводной
таблице будут отображаться суммы для каждого типа счета и каждого отделения
(рис. 18.9).
Рис. 18.9. После нескольких простых действий сводная таблица отображает итоговые данные
Форматирование сводной таблицы
Обратите внимание, что созданная сводная таблица использует общее числовое фор­
матирование. Для изменения формата выделите любое поле и выберите команду Работа
со сводными таблицами^Параметры^Активное поле^Параметры поля. В от­
крывшемся диалоговом окне щелкните на кнопке Числовой формат и выберите нуж­
ный формат данных.
К сводной таблице можно применить любой из встроенных в Excel стилей. В группе
Работа со сводными таблицами1^Конструктор«=> Стили сводной таблицы раскройте
галерею стилей сводной таблицы и выберите подходящий стиль.
Можете также использовать элементы управления группы Работа со сводными таб­
лицами^ Конструктор^ Макет. К примеру, при желании можно скрыть общие итоги.
Группа Работа со сводными таблицами«=>Параметры«=>Показать или скрыть со­
держит дополнительные параметры, влияющие на внешний вид сводной таблицы.
К примеру, переключатель Заголовки полей позволяет включать и отключать отобра­
жение заголовков полей.
Больше параметров сводной таблицы вы можете найти в диалоговом окне параметров
(рис. 18.10), открываемом с помощью команды Работа со сводными таблицами^
Параметры ^Сводная таблица^Параметры^Параметры. Для открытия этого диа­
логового окна можно также щелкнуть правой кнопкой на сводной таблице и выбрать в
контекстном меню пункт Параметры сводной таблицы.
Глава 18. Сводные таблицы
455
Рис. 18.10. Диалоговое окно параметров сводной таблицы
Вычисления в сводной таблице
Данные сводной таблицы чаще всего обобщаются путем суммирования. Однако
можно отображать данные с помощью других методов. Выберите любую ячейку в об­
ласти значений сводной таблицы и откройте окно параметров поля (с помощью коман­
ды Работа со сводными таблицами1^Параметры^Активное поле^Параметры поля). Это
окно имеет две вкладки: Операция и Дополнительные вычисления.
Вкладка Операция используется для выбора итоговой функции. Можно выбрать сле­
дующие функции: Сумма, Количество, Среднее, Максимум, Минимум, Произведение, Ко­
личество чисел, Смещенное отклонение, Несмещенное отклонение, Смещенная диспер­
сия и Несмещенная дисперсия.
Для отображения значений в другой форме используйте раскрывающийся список
вкладки Дополнительные вычисления. Доступны варианты: % от общей суммы, % от об­
щей суммы по столбцу, Доля и др.
Модификация сводной таблицы
После создания сводной таблицы ее можно довольно просто модифицировать.
К примеру, можно добавить дополнительную итоговую информацию с помощью панели
456
Часть V. Полезные методики применения формул
полей сводной таблицы. На рис. 18.11 показана сводная таблица после перетаскивания
поля Открыт в область Названия строк.
Рис. 18.11. Для названий строк используются два поля
Примите к сведению следующие рекомендации относительно модификации сводной
таблицы.
•
Для удаления некоторого поля из сводной таблицы перетащите его из области
в нижней части панели полей в верхнюю.
•
Если в некоторой области находится несколько полей, можно изменить их поря­
док с помощью перетаскивания имен.
•
Для временного удаления поля из сводной таблицы снимите флажок около его
имени в верхней части панели полей. Сводная таблица будет отображаться без
этого поля. Как только вы восстановите этот флажок, данное поле появится в том
разделе, в котором находилось ранее.
•
При добавлении поля в область Фильтр отчета элементы этого поля будут ото­
бражаться в раскрывающемся списке в верхней части сводной таблицы. Это по­
зволит фильтровать отображаемые данные по одному или нескольким критериям.
На рис. 18.12 показан пример такой фильтрации. Я перетащил поле Дата в об­
ласть Фильтр отчета. Теперь в таблице отображаются данные только для одного
дня (который я выбрал из раскрывающегося списка).
Рис. 18.12. Сводная таблица, отфильтрованная по дате
Глава 18. Сводные таблицы
457
Копирование сводной таблицы
Сводные таблицы достаточно гибкие, но в то же время имеют некоторые ограниче­
ния. К примеру, в них невозможно вставить новую строку или столбец, изменить вычис­
ленные значения и ввести формулы. Если вам необходимо выполнить манипуляции со
сводной таблицей, которые в ней недопустимы, создайте ее копию.
Для копирования сводной таблицы выделите ее и выберите команду Главная1^
Буфер обмена^Копировать (или нажмите клавишу <Ctrl+C>). После этого выберите новый
рабочий лист и выберите команду Главная^Вставить^Вставить значения. С созданной ко­
пией сводной таблицы можно выполнять любые действия. При копировании сводной
таблицы можно воссоздать и ее формат. Для этого выделите всю сводную таблицу
и выберите команду Главная1^Буфер обмена^Формат по образцу. После этого щелкни­
те в верхнем левом углу скопированного диапазона.
Следует отметить, что скопированная информация уже не является сводной табли­
цей, и она более не связана с исходными данными. Если данные источника изменятся,
это никак не отразится на копии сводной таблицы.
Другие примеры сводных таблиц
В этом разделе будет продемонстрирована гибкость сводных таблиц. Во всех пред­
ставленных примерах используются данные о банковских счетах; при этом вы получите
ответы на вопросы, поставленные ранее.
Вопрос 1
Какова сумма новых депозитов в каждом из отделений банка?
На рис. 18.13 показана сводная таблица, отвечающая на этот вопрос.
•
Поле О т д е л е н и е находится в области Названия столбцов.
•
Поле Д а т а находится в разделе Названия строк.
•
Поле Сумма находится в области Значения.
Обратите внимание, что сводная таблица может быть отсортирована по любому
столбцу. К примеру, столбец Общий и т о г можно отсортировать по убыванию, чтобы
найти дни, в которые было совершено больше вкладов. Чтобы выполнить сортировку по
любой ячейке столбца, выберите в контекстном меню пункт Сортировка.
Вопрос 2
В каком отделении самая большая сумма открытых счетов?
На этот вопрос отвечает сводная таблица, показанная на рис. 18.14.
•
Поле О т д е л е н и е помещено в область Названия строк.
•
Поле Сумма помещено в область Значения. Добавлено суммирование значений
Сумма.
Вопрос 3
Сколько счетов было открыто в каждом из отделений банка с разбиением по
типам счетов?
На рис. 18.15 показана сводная таблица, дающая ответ на этот вопрос.
458
Часть V. Полезные методики применения формул
находится в области Названия столбцов.
•
Поле
Тип
•
Поле
Отделение
•
Поле С у м м а находится в разделе Значения. Обобщение выполнено по количест­
ву значений.
находится в разделе Названия строк.
Рис. 18.13. В этой сводной таблице отображены сводные
ежедневные поступления во все отделения банка
Рис. 18.14. Распределение сумм открытых счетов по отделениям
В сводной таблице видно, что самая большая сумма — в отделении
Рис. 18.15. Эта сводная таблица использует функцию с ч ё т
для
Центр.
обобщения данных
Наиболее часто используемой обобщающей функцией является С У М М , однако в дан­
ном примере я заменил ее функцией С Ч Ё Т . Чтобы выполнить эту замену, щелкните пра­
вой кнопкой на любой ячейке в области значений и выберите в контекстном меню пункт
Итоги по«=>Количество.
Глава 18. Сводные таблицы
459
Вопрос 4
Каково распределение сумм по счетам?
На рис. 18.16 показана сводная таблица, отвечающая на этот вопрос. К примеру, 358
из новых счетов имеют вклады в размере менее 5000 долларов.
Рис. 18.16. В этой сводной таблице под­
считывается количество счетов, попадаю­
щих в определенные диапазоны
Эта таблица несколько необычна, поскольку в ней использовано всего одно поле —
Сумма.
•
Поле Сумма находится в области Названия строк (для выполнения группировки).
•
Поле Сумма также находится в области Значения; обобщение выполняется по
количеству.
•
Третий экземпляр поля Сумма находится также в области Значения, но обобще­
ние выполняется по проценту от общей суммы.
Когда я изначально перетащил поле Сумма в область Названия строк, в сводной
таблице отображалось по одной строке для каждого уникального значения суммы. Затем
я щелкнул на одной из ячеек столбца названий строк и выбрал в контекстном меню
пункт Группировать. В открывшемся диалоговом окне я выбрал шаг в 5 0 0 0 .
Второй экземпляр поля Сумма (в области Значения) обобщен по количеству значе­
ний. Для этого я щелкнул правой кнопкой на ячейке области значений и выбрал в кон­
текстном меню пункт Итоги по ^ Количество.
Третий экземпляр поля Сумма помещен в область Значения. Данные обобщены по
проценту от общей суммы. Для этого я перешел во вкладку Дополнительные вычисле­
ния диалогового окна параметров поля значений и выбрал в раскрывающемся списке ва­
риант Доля от суммы по столбцу. Для открытия этого окна следует щелкнуть на любой
ячейке столбца и выбрать в контекстном меню пункт Итоги по1^ Дополнительно.
Часть V. Полезные методики применения формул
460
Вопрос 5
Какие типы счетов кассиры открывают чаще всего?
На этот вопрос отвечает рис. 18.17.
•
Поле Тип находится в области Названия строк.
•
Поле О ткрыт находится в области Фильтр отчета.
•
Поле Сумма находится в области Значения, и обобщение выполнено по количеству.
•
Второй экземпляр поля Сумма находится в области Значения, и обобщение вы­
полнено по проценту от общей суммы.
Рис. 18.17. В этой сводной таблице использован фильтр отчета
для отображения только данных о счетах, открытых кассирами
В этой сводной таблице в качестве фильтра использовано поле Открыт; при этом
данные отображены только для счетов, открытых кассирами. Данные отсортированы так,
чтобы наибольшие значения находились вверху. Также использовано условное формати­
рование, чтобы отображать проценты в виде полос.
Вопрос 6
Каковы успехи центрального отделения банка по сравнению с остальными
двумя?
На рис. 18.18 показана сводная таблица, проливающая свет на этот туманный вопрос.
Показаны результаты центрального офиса и сумма значений остальных отделений банка.
•
Поле Тип находится в области Названия строк.
•
Поле О тд ел ен и е находится в области Названия столбцов.
•
Поле Сумма находится в области Значения.
Я сгруппировал северное и западное отделения и назвал эту группу О стальн ы е.
В сводной таблице показаны объемы для разных типов счетов. Также с целью демонст­
рации приведена сводная диаграмма.
Вопрос 7
В каком отделении банка кассиры открыли больше международных счетов для
новых клиентов?
На рис. 18.19 показана сводная таблица, дающая ответ на этот вопрос. В центральном
отделении банка кассиры открыли для старых клиентов 11 таких счетов.
Глава 18. Сводные таблицы
461
•
Поля К л и ен т , Тип и О ткры т находятся в области Фильтр отчета.
•
Поле О т д е л е н и е находится в области Названия строк.
•
Поле Сумма находится в области Значения; это поле обобщено по количеству.
Рис. 18.18. Сводная таблица и сводная диаграмма срав­
нивают результаты работы центрального отделения с ос­
тальными отделениями
Рис. 18.19. В сводной таблице исполь­
зованы три фильтра отчета
В этой сводной таблице определены три фильтра отчета. Поле Клиент отфильтрова­
но для показа только старых клиентов; поле Открыт — для показа только сведений
о счетах, открытых кассирами; а поле Тип — для показа только международных счетов.
Группировка элементов сводной таблицы
Одним из самых полезных свойств сводных таблиц является возможность объединения
элементов в группы. Пользователь может сгруппировать элементы, вынесенные в области
названий строк и столбцов. Excel предлагает два способа группировки элементов.
•
Ручной. После создания сводной таблицы выделите элементы, подлежащие группи­
ровке, а затем выберите команду Работа со сводными таблицами1^Параметры^
462
Часть V. Полезные методики применения формул
Группировать1^Группировка по выделенному. Также можете щелкнуть правой
кнопкой и выбрать в контекстном меню пункт Группировать.
• Автоматический. Если элементы являются числами или датами, можете опреде­
лить способ группировки в специальном диалоговом окне Группировка. Для это­
го выделите любой элемент в заголовках строк или столбцов и выберите команду
Работа со сводными таблицами^Параметры«=>ГруппироватьоГруппировка
по выделенному. Также можете щелкнуть правой кнопкой и выбрать в контекст­
ном меню пункт Группировать. В любом случае будет открыто диалоговое окно
Группировка.
Пример ручной группировки
На рис. 18.20 показана сводная таблица, созданная из списка сотрудников, находяще­
гося в столбцах А : С. В этих столбцах содержатся поля заголовков Р аб о тн и к , Р е г и о н и
Пол. Сводная таблица, содержащаяся в столбцах Е : Н, отображает список работников в
каждом из регионов.
Рис. 18.20. Сводная таблица до группировки по регионам
Наша задача— создать две группы регионов: западный (города Москва, Калуга и
Тверь) и восточный (города Казань, Тула и Пермь). Для создания первой группы, удер­
живая клавишу <Ctrl>, выделите города Москва, Калуга и Тверь.
После этого щелкните правой кнопкой и выберите в контекстном меню пункт Груп­
пировать. Ту же операцию повторите и для второй группы. На рис. 18.21 показаны ре­
зультаты такой группировки.
Рис. 18.21. Сводная таблица с двумя группами и про­
межуточными итогами групп
Глава 18. Сводные таблицы
463
Можно создать любое количество групп, и даже объединить их в более общие группы.
Компакт-диск
Демонстрируемые примеры содержатся в файле e m p lo y e e
( C h a p t e r i8 _ R U S . x s l x ) на прилагаемом компакт-диске.
lis t.x lsx
Просмотр сгруппированных данных
Excel предлагает массу вариантов отображения сводных таблиц, и вы вольны экспе­
риментировать с этими параметрами при использовании групп. Все команды формати­
рования содержатся в контекстной вкладке Работа со сводными таблицами1^Конст­
руктор. Для выбора этих параметров не существует никаких правил. Немного поэкспе­
риментируйте и добейтесь подобающего внешнего вида сводной таблицы. В дополнение
можете попробовать применить разные стили сводных таблиц, как с чередующимися
столбцами и строками, так и без. Правильно выбранный стиль в большинстве случаев
улучшает читабельность сводной таблицы.
На рис. 18.22 показаны сводные таблицы, в которых используются различные пара­
метры отображения промежуточных и общих итогов, а также стили.
Рис. 18.22. Сводные таблицы с разными параметрами форматирования и итогов
Примеры автоматической группировки
Когда некоторое поле содержит числа, даты или время, Excel может автоматически соз­
давать группы. Два примера, приведенные в настоящем разделе, демонстрируют автомати­
ческую группировку.
Часть V. Полезные методики применения формул
464
Группировка по дате
На рис. 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 ) на прилагаемом компакт-диске.
Для группировки элементов по месяцам выделите лю­
бую дату и выберите команду Работа со сводными
таблицами^Параметры^Группировать^Группировк
а по полю или щелкните правой кнопкой на поле и выбе­
рите в контекстном меню команду Группировать. От­
кроется диалоговое окно, показанное на рис. 18.25.
В поле с шагом выделите элементы Месяцы и Годы;
при этом проверьте правильность начальной и конечной
дат. Щелкните на кнопке ОК. Элементы Дата в сводной
таблице будут сгруппированы по годам и месяцам, после
чего таблица примет вид, показанный на рис. 18.26.
Рис. 18.25. С помощью диалого­
вого окна Группирование мож­
но сгруппировать элементы свод­
ной таблицы по датам
Глава 18. Сводные таблицы
465
Примечание
Если в диалоговом окне Группирование выбрать только элемент Месяцы,
одинаковые месяцы разных лет будут объединены. К примеру, в строке
Январь будут сведены данные о продажах за два января 2005 и 2006 года.
На рис. 18.27 показано еще одно представление тех же данных, однако в этом случае
группировка выполнена по годам и кварталам.
Рис. 18.26. Сводная таблица после группировки по годам и месяцам
Рис. 18.27. В этой сводной таблице
показаны данные о продажах за раз­
ные годы и кварталы
Группировка по времени
На рис. 18.28 в столбцах А и В рабочего листа показаны данные, считанные с некото­
рого датчика на протяжении суток с интервалом в одну минуту. Всего данная таблица
содержит 1440 строк. В сводной таблице эти данные обобщены по часам.
Компакт-диск
Демонстрируемые примеры содержатся в файле h o u r l y
( c h a p t e r i 8 _ R U S . x s l x ) на прилагаемом компакт-диске.
re a d in g s.x lsx
Для создания сводной таблицы, показанной на рисунке, были использованы следую­
щие настройки.
•
В области значений содержится три экземпляра поля Ч тен и е . Использовано диа­
логовое окно Параметры поля значений для обобщения первого экземпляра по­
ля по среднему, второго— по минимальному и третьего— по максимальному
значению.
•
Поле В р ем я помещено в область Названия строк; при этом в диалоговом окне
Группирование выполнена группировка по часам.
466
Часть V. Полезные методики применения формул
Рис. 18.28. Сводная таблица, сгруппированная по часам
Распределение частот
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^
Параметры^Сервис^Сводная диаграмма.
Рис. 18.30. Сводная таблица и диаграмма показывают распределение тестовых баллов
Примечание
В данном примере для автоматического создания групп было использовано
диалоговое окно Excel Группирование. Вручную можно создать нестандарт­
ные, не равные по размеру группы. К примеру, для определенных диапазо­
нов баллов можно назначить символьные оценки. Выделите строки для пер­
вой группы, а затем выберите в контекстном меню пункт Группировать. По­
вторите это действие для каждой из создаваемых групп. После этого
можете присвоить созданным группам смысловые имена.
Создание вычисляемых полей и элементов
Пожалуй, самым запутанным вопросом в отношении сводных таблиц является созда­
ние в них вычисляемых полей и вычисляемых элементов. Большинство пользователей
стараются избегать использования в сводных таблицах вычисляемых полей и элементов.
В то же время данная функция может оказаться достаточно полезным подспорьем в ра­
боте; к тому же, если вы поймете ее работу, то увидите, что она не такая уж и сложная.
Прежде всего, приведем основные понятия.
•
Вычисляемое поле. Это новое поле, создаваемое на основе других полей сводной
таблицы. Если источником данных сводной таблицы является база данных рабо­
чего листа, лучшей альтернативой будет добавить вычисляемое поле в саму эту
базу и ввести в него соответствующую формулу. Вычисляемое поле может нахо­
диться только в области Значения сводной таблицы — его нельзя помещать в об­
ласти Названия строк, Названия столбцов и Фильтр таблицы.
468
•
Часть V. Полезные методики применения формул
Вычисляемый элемент. Такой элемент использует содержимое других элемен­
тов в пределах поля сводной таблицы. Если источником данных сводной таблицы
является база данных рабочего листа, в качестве альтернативы в ней можно соз­
дать дополнительные строки и вставить в них формулы, основанные на сущест­
вующих строках. Вычисляемый элемент может находиться в областях Названия
строк, Названия столбцов и Фильтр таблицы — в области Значения его ис­
пользовать нельзя.
Формулы, применяемые для создания вычисляемых полей и элементов, не являются
стандартными формулами Excel. Другими словами, эти формулы не вводятся в ячейки —
для их ввода используется специальное диалоговое окно. Эти формулы хранятся вместе
с другими Данными сводной таблицы.
В примерах, приведенных в этом разделе, используется таблица базы данных рабоче­
го листа, показанная на рис. 18.31. Таблица содержит 5 полей и 48 записей. Каждая за­
пись представляет информацию о месячных продажах некоторого торгового представи­
теля. Например, Эльза, торговый представитель в северном региоде, продала за январь
239 единиц продукции на общую сумму 23049 долларов.
Рис. 18.31. На основе этих данных продемонст­
рированы возможности вычисляемых полей и
элементов
Компакт-диск
Демонстрируемые примеры содержатся в файле c a l c u l a t e d f i e l d s
i t e m s . x l s x (C h ap te rl8_ R U S . x s l x ) на прилагаемом компакт-диске.
and
На рис. 18.32 показана простая сводная таблица, созданная на основе этих данных.
В ней показаны объемы продаж (область Значения), сгруппированные по месяцам
(область Названия строк) и торговым представителям (область Названия столбцов).
Глава 18. Сводные таблицы
469
Рис. 18.32. Эта простая сводная таблица создана на основе
данных о продажах
В представленных далее примерах продемонстрировано следующее:
•
создание вычисляемого поля для определения средней стоимости единицы про­
дукции;
•
создание вычисляемого элемента для нахождения общей суммы по кварталам.
Создание вычисляемого поля
Поскольку сводная таблица является рсобым типом диапазона данных, в нее нельзя
вставлять строки или столбцы. Это означает, что нельзя вставить формулы, которые бы
производили расчеты на основе данных, содержащихся в сводной таблице. Для этой це­
ли следует создавать специальные вычисляемые поля. Вычисляемое поле содержит вы­
числения, в которых задействованы другие поля.
Вычисляемое поле обычно используется в качестве средства отображения в
сводной таблице новой информации. По существу, оно выступает альтернативой
создания нового столбца в исходной базе данных. В большинстве случаев проще
вставить новый вычисляемый столбец в источник данных, однако при этом источник
данных должен быть доступен. Как правило, вычисляемые поля сводных таблиц ис­
пользуют, когда доступ к источнику данных ограничен, — например, когда источ­
ником является внешняя база данных.
Примечание
Вычисляемые поля можно использовать только в области Значения сводной
таблицы. В областях Названия столбцов, Названия строк и Фильтр отчета ис­
пользовать их нельзя.
Для примера предположим, что требуется вычислить среднюю стоимость единицы
продукции. Данная величина может быть найдена путем деления значения поля
П родажи на значение поля Е д и н и ц п р о д а н о . Результат должен находиться в новом
поле сводной таблицы (в вычисляемом поле).
Чтобы создать вычисляемое поле, содержащее результат деления значений поля
Продажи на значения поля Е д и н и ц п р о д а н о , используйте следующую процедуру.
470
Часть V. Полезные методики применения формул
1. Выделите любую ячейку сводной таблицы.
2. Выберите команду Работа со сводными таблицами^Параметры^Вычисле-
ния>=>Поля, элементы и наборы^Вычисляемое поле.
3. В открывшемся диалоговом окне (рис. 18.33) введите описательное имя поля и
нужную формулу. Формула может содержать функции рабочего листа и другие
поля источника данных. В примере мы назовем поле С р ед н я я ц е н а и введем
следующую формулу:
= П р одаж и /1Единиц продан о 1
Рис. 18.33. Диалоговое окно Вставка вычисляемого поля
4. Щелкните на кнопке Добавить, и новое поле будет добавлено в список.
5. Щелкните на кнопке О К, чтобы закрыть диалоговое окно.
Примечание
Формулу можно записать вручную, воспользовавшись клавиатурой или два­
жды щелкнув на элементе списка Поля. При двойном щелчке элемент пере­
носится в поле Формула. Так как в имени поля Единиц продан о есть пробел,
Excel заключает его в одиночные кавычки.
Программа Excel добавляет созданное вычисляемое поле в область Значения свод­
ной таблицы (оно также появится на панели списка полей). С ним можно обращаться так
же, как и с любым другим полем, за одним исключением: его нельзя переместить в об­
ласть Фильтр таблицы, Названия строк или Названия столбца — оно должно оста­
ваться в области Значения.
На рис. 18.34 показана часть сводной таблицы после добавления в нее вычисляемого
поля. В новом поле отображается средняя стоимость единицы продукции для каждого
торгового представителя.
Совет
Используемые формулы могут содержать функции рабочего листа, однако
последние не должны ссылаться на ячейки или именованные диапазоны.
Вставка в сводную таблицу вычисляемого элемента
В предыдущем разделе был описан процесс создания вычисляемого поля. Excel также
позволяет создать для поля сводной таблицы вычисляемый элемент. Напомним, что соз­
дание вычисляемого поля сводной таблицы является альтернативой вставке в источник
Глава 18. Сводные таблицы
471
данных нового поля. С другой стороны, вычисляемый элемент сводной таблицы является
альтернативой добавления в источник данных новой строки, содержащей формулы, ссы­
лающиеся на другие строки.
Рис. 18.34. В данной сводной таблице используется вычисляемое поле
В рассматриваемом примере созданы четыре вычисляемых элемента, содержащие
комиссионные за квартальные объемы продаж согласно следующей схеме:
•
квартал 1 — 10% от объема продаж за январь, февраль и март;
•
квартал 2 — 11 % от объема продаж за апрель, май и июнь;
•
квартал 3 — 12% от объема продаж за июль, август и сентябрь;
•
квартал 4 — 12,5% от объема продаж за октябрь, ноябрь и декабрь.
Примечание
Модификация источника данных для получения этой информации потребо­
вала бы вставки шестнадцати новых строк, содержащих формулы. Таким
образом, в данном примере создание вычисляемых элементов представля­
ет собой значительно более легкую задачу.
Для создания вычисляемого элемента комиссионных за первый квартал выполните
следующие действия.
1. Переместите курсор ячейки в область Названия строк или Названия столбцов
сводной таблицы и выберите команду Работа со сводными таблицами^Па-
раметры«=>Вычисления«=>Поля, элементы и наборы^Вычисляемый объект.
2. В открывшемся окне в соответствующих полях введите имя элемента и формулу
(рис. 18.35). В формуле можно использовать элементы других полей, но не функ­
ции рабочего листа. В нашем примере именем элемента является К ом иссия 1
кв ., а формула имеет следующий вид:
=10%*(Янв+Фев+Мар)
3. Щелкните на кнопке Добавить.
4. Повторите пп. 2-3 для создания трех остальных вычисляемых элементов, исполь­
зуя следующие формулы:
472
Часть V. Полезные методики применения формул
• комиссия 2 кв.=11%*(Апр+Май+Июн);
• комиссия 3 кв.=12%*(Июл+Авг+Сен);
• комиссия 4 кв.=12,5%*(Окт+Ноя+Дек).
5. Щелкните на кнопке О К, чтобы закрыть диалоговое окно.
Рис. 18.35. Диалоговое окно вставки вычисляемого
элемента
Примечание
Вычисляемые элементы, в отличие от вычисляемых полей, не отображаются
на панели списка полей.
Предупреждение
При использовании в сводной таблице вычисляемых элементов лучше
отключить строку итогов, чтобы избежать двойного суммирования.
В представленном примере комиссионные также включаются в общий
итог продаж (что не логично), так что для их отключения выберите ко­
манду Работа со сводными таблицами^Конструктор^Макет^Общие итоги^Включить только для строк.
После создания вычисляемых элементов они будут отображаться в сводной табли­
це. На рис. 18.36 показана сводная таблица после добавления вычисляемых элементов.
Обратите внимание, что по умолчанию вычисляемые элементы добавляются в конец
списка. Однако при желании можно перетащить вычисляемые строки и заголовки в
другое место. Альтернативой является создание для вычисляемых элементов отдель­
ных групп. На рис. 18.37 показаны две группы: о д н а— для объемов продаж и дру­
гая — для комиссионных вознаграждений. Это позволяет вычислять промежуточные
итоги по каждой группе.
Фильтрация сводных таблиц с помощью срезов
Срезы позволяют легко фильтровать данные сводных таблиц. На рис. 18.38 показана
сводная таблица с двумя срезами. Каждый срез представляет определенное поле. В при­
веденном ниже примере сводная таблица отображает данные новых клиентов, счет кото­
рым открывал менеджер.
Глава 18. Сводные таблицы
Рис. 18.36. В этой сводной таблице вычисляемые элементы ис­
пользуются для создания квартальных итогов
Рис. 18.37. Сводная таблица после создания двух групп и добавления про­
межуточных итогов
Рис. 18.38. Использование срезов для фильтрации данных, выводимых сводной таблицей
473
474
Часть V. Полезные методики применения формул
Новинка
Срезы введены в Excel 2010.
Такую же фильтрацию можно реализовать и без срезов с помощью надписей полей
в сводной таблице, но срезы предоставляют более удобный и понятный пользователь­
ский интерфейс. С их помощью можно создавать интерактивные приборные панели не­
посредственно на рабочем листе.
Чтобы добавить на лист один или несколько срезов, выделите любую ячейку сводной
таблицы и выберите команду Вставка^Фильтр^Срез. Активизируется диалоговое ок­
но Вставка срезов, содержащее список всех полей сводной таблицы. Установите флаж­
ки напротив полей среза и щелкните на кнопке ОК.
Чтобы срез учитывал несколько полей, установите флажки напротив каждого нужно­
го поля.
Путем перетаскивания можно изменять размеры срезов и перемещать их. Несложно
также изменить их внешний вид, открыв диалоговое окно Размер и свойства. Чтобы
устранить эффект фильтрации конкретного среза, щелкните на значке в его верхнем пра­
вом углу (см. рис. 18.38).
На рис. 18.39 показаны сводная таблица и сводная диаграмма. Срез применяется для
фильтрации данных по штатам. Как видите, срезы предоставляют быстрый и удобный
способ создания интерактивных диаграмм.
Компакт-диск
Этот пример содержится в файле 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 ) на прилагаемом компакт-диске.
Рис. 18.39. Использование среза для создания интерактивной сводной диаграммы
Глава 18. Сводные таблицы
475
Ссылки на ячейки сводной таблицы
В некоторых случаях может понадобиться вставка ссылок на ячейки сводной таблицы. На
рис. 18.40 показан пример сводной таблицы, отображающей доходы и затраты за три года.
В данной таблице поле месяца скрыто; по этой причине отображаются только годовые итоги.
Рис. 18.40. Формулы в столбце F ссылаются на ячейки сводной таблицы
Компакт-диск
Демонстрируемые примеры содержатся в файле in co m e and
s e s . x l s x ( C h a p t e r i8 _ R U S . x s l x ) на прилагаемом компакт-диске.
expen­
В столбце F содержатся формулы, и он не является частью сводной таблицы. Эти
формулы вычисляют соотношение доходов и расходов за каждый год. Вы, наверное,
ожидаете, что в ячейке F5 находится следующая формула:
=С5/В5
Однако это не так. Необходима такая формула:
=ПОЛУЧИТЬ. ДАННЫЕ. СВОДНОЙ. ТАБЛИЦЫ("Сумма по полю
Доходы"; $А $ 3 ; "Годы"; 2 0 0 4 ) /ПОЛУЧИТЬ. ДАННЫЕ. СВОДНОЙ. ТАБЛИЦЫ(
"Сумма по полю Р асхо ды " ; $ А $ 3 ; "Годы"; 2 0 0 4 )
Для ссылки на ячейки сводной таблицы при создании формул нужно использовать
специальную встроенную функцию ПОЛУЧИТЬ . ДАННЫЕ . СВОДНОЙ. ТАБЛИЦЫ. Если
вводить ссылки вручную, Excel не будет заменять их этой функцией.
В чем же смысл использования этой функции? Она гарантирует, что при изменении ком­
поновки сводной таблицы формула будет продолжать ссылаться на нужные ячейки. На
рис. 18.41 показана та же сводная таблица после отображения данных по месяцам. Таким об­
разом, формулы в столбце F продолжают показывать корректный результат, даже несмотря
на то, что итоговые данные за годы теперь изменили свое местоположение. Если бы исполь­
зовались обычные ссылки на ячейки, формулы показывали бы теперь неверные результаты.
Предупреждение
Использование функции п олучить . данные . сводной . таблицы имеет один
подвох — извлекаемые ею данные должны отображаться в сводной таблице.
Если изменить структуру сводной таблицы таким образом, чтобы эти данные
были скрыты, формула вернет ошибку.
Совет
Если по некоторой причине вы хотите избежать использования программой
функции получить . данные . сводной . таблицы в формулах, примените ко­
манду Работа со сводными таблицами^Параметры^Сводная таблица^Параметры1^Создать GetPivotData. Эта команда работает как переключатель.
476
Часть V. Полезные методики применения формул
Рис. 18.41. После раскрытия сводной таблицы формулы, исполь­
зующие функцию п о л у ч и т ь . д а н н ы е . сводной . т а б л и ц ы , продолжают отображать корректный результат
Еще один пример сводной таблицы
Пример, используемый в этом разделе, демонстрирует некоторые полезные приемы ра­
боты со сводными таблицами. На рис. 18.42 показана таблица с множеством строк данных
переписи населения США — по одной для каждого из округов. Перечислим эти поля:
•
О к р у г — название округа;
•
Штат — название штата;
•
Р е г и о н — порядковый номер региона (римские цифры от I до V);
•
П ерепись
2 000 — население округа согласно данным переписи 2000 года;
•
Перепись
1990 — население округа согласно данным переписи 1990 года;
•
Площадь
•
Площадь в оды — площадь, покрытая в округе водой.
з е м л и — площадь округа за вычетом площади, покрытой водой;
Компакт-диск
Демонстрируемые примеры содержатся в файле c o u n t y d a t a . x l s x (chapt e r i 8 _ R U S . x s l x ) на прилагаемом компакт-диске.
На рис. 18.43 показана сводная таблица, созданная на основе данных таблицы пере­
писи населения. В качестве названий строк использованы поля Р е г и о н и Штат, а в ка­
честве значений— поля П е р е п и с ь 2000 и П е р е п и с ь 1990.
Для отображения дополнительной информации создано три вычисляемых поля.
•
И з м е н е н и е . Изменение численности населения с 1990 по 2000 год в абсолютных
значениях.
Глава 18. Сводные таблицы
477
•
П р о ц . и зм . Изменение численности населения с 1990 по 2000 год в процентах.
•
П л о т н о с т ь . Плотность населения в расчете на одну квадратную милю земли.
Рис. 18.42. В этой таблице содержатся данные переписи населения США для некоторых
регионов
Рис. 18.43. Эта сводная таблица создана на основе данных переписи
населения
Вычисляемые поля и элементы можно документировать. Для этого выберите команду Ра­
бота со сводными таблицами^Параметры^Вычисления^Поля, элементы и наборы^Вывести формулы. После этого Excel вставит в рабочую книгу новый лист с ин­
формацией о вычисляемых полях и элементах. На рис. 18.44 показан пример такого ра­
бочего листа.
Приведенная в качестве примера сводная таблица отсортирована по двум столбцам —
регионам и штатам. Для задания сортировки выберите любую ячейку с данными, по ко­
торым нужно выполнить сортировку, щелкните на этой ячейке правой кнопкой и выбе­
рите в контекстном меню пункт Сортировка.
Если порядок сортировки отличается от стандартного (в рассматриваемом примере на­
звания регионов содержали римские цифры), следует создать пользовательский список.
Для этого откройте окно параметров Excel, перейдите во вкладку Дополнительно и щелк­
ните на кнопке Изменить списки. Выберите в левом списке элемент НОВЫЙ СПИСОК,
478
Часть V. Полезные методики применения формул
Рис. 18.44. На этом рабочем листе перечислены вычисляемые поля и элементы сводной таблицы
Рис. 18.45. Пользовательский список позволяет правильно от­
сортировать названия регионов
Создание отчета на основе сводной таблицы
С помощью сводных таблиц можно преобразовать огромные таблицы данных в при­
влекательные печатные отчеты. На рис. 18.46 показана небольшая часть сводной табли­
цы, созданной на основе таблицы, содержащей более 40 тысяч строк. В этой таблице со­
держатся данные о моей музыкальной коллекции, при этом каждая строка содержит ин­
формацию только об одной композиции: ее жанре, исполнителе,' названии альбома,
имени файла, его размере и продолжительности произведения.
Компакт-диск
Демонстрируемые примеры в авторском варианте содержатся в файле mu­
s i c l i s t . x l s x на прилагаемом компакт-диске.
Отчет, созданный на базе этой сводной таблицы, занимает 132 страницы, и для его
настройки требуется порядка пяти минут (на самом деле для более тщательной настрой­
ки может понадобиться больше времени).
Глава 18. Сводные таблицы
479
Рис. 18.46. Отчет, созданный на основе сводной таблицы
Вот краткий список действий, которые нужно выполнить для создания этого отчета.
1. Выделите ячейку таблицы и выберите команду Вставка^Таблицы^Сводная
таблица.
2. В диалоговом окне создания сводной таблицы подтвердите предложенные пара­
метры, щелкнув на кнопке ОК.
3. На новом рабочем листе на панели списка полей перетащите в область названий
строк следующие поля: Жанр, И с п о л н и т е л ь и А л ь б о м .
4. Следующие поля перетащите в область Значения: К о м п о з и ц и я , Р а з м е р
и Д лительность.
5. В диалоговом окне Параметры полей значений задайте подсчет количества
композиций, а также просуммируйте их размеры и продолжительность.
6. Удобнее отображать размеры в мегабайтах, поэтому для этого столбца создайте
пользовательский формат следующего вида:
# # # , # # # , "Mb";;
7. В столбце длительности примените пользовательский
[h] : mm: s s ; ; чтобы отображать часы, минуты и секунды.
числовой
формат
8. Отредактируйте заголовки столбцов, чтобы отчет помещался на стандартных
листах по горизонтали.
9. Измените формат сводной таблицы, выбрав команду Работа со сводными таб­
лицами1^ Конструктор^ Макета Макет отчета^Показать в сжатой форме.
10. Отключите заголовки полей, выбрав команду Работа со сводными таблицами^
Параметры«=>Показать1^Заголовки полей.
Часть V. Полезные методики применения формул
480
11. Отключите отображение кнопок, выбрав команду Работа со сводными табли-
цами^Параметры^Показать^Кнопки +/-.
12. Задайте вставку пустой строки перед каждым исполнителем. Для этого выберите
команду Работа со сводными таблицами^Конструктор^Макет^Пустые
строки«=>Вставить пустую строку после каждого элемента.
13. В галерее стилей сводной таблицы выберите подходящий стиль.
14. Для названия жанра увеличьте размер шрифта.
15. Переключите таблицу в режим разметки страницы. Измените размеры столбцов
так, чтобы все они вместились по горизонтали на один лист бумаги.
Примечание
На самом деле для выполнения п. 14 нужна некоторая изобретательность.
Необходимо изменить размер шрифта только для названия жанра, но оста­
вить прежний размер для промежуточных итогов. Таким образом, нельзя
было менять стиль для сводной таблицы. Я выделил весь столбец а и нажал
клавиши <Ctrl+G>, чтобы открыть диалоговое окно Перейти. В открывшемся
окне я щелкнул на кнопке Выделить и установил переключатель в положение
Константы, после чего щелкнул на кнопке ОК. В результате в столбце А были
выделены только непустые ячейки. После этого уже можно изменить шрифт
только для выделенных ячеек.
Глава
Условное форматирование
и проверка данных
В этой главе...
♦ Условное форматирование
♦ Проверка данных
В данной главе вы познакомитесь с двумя очень полезными средствами Excel. На
первый взгляд может показаться, что эти два инструмента не могут быть связаны с фор­
мулами, однако это не так. В совокупности с формулами они обеспечивают пользовате­
лей Excel широкими возможностями.
Условное форматирование
Условное форматирование позволяет применять к ячейкам заданные форматы избира­
тельно и автоматически, основываясь на их содержимом. К примеру, можно задать, чтобы
все ячейки с отрицательными значениями в определенном диапазоне имели желтый фон.
При вводе или изменении значений в диапазоне программа Excel проверяет их и автомати­
чески применяет правила условного форматирования. Если значение отрицательное, при­
меняется желтая заливка; в противном случае форматирование не применяется.
Новинка
7
Средства условного форматирования в версиях Excel 2007 и Excel 2010 пре­
терпели существенные изменения и стали еще более полезными для визуа­
лизации числовых данных. В некоторых случаях можно использовать услов­
ное форматирование даже вместо диаграмм.
Условное форматирование является полезным средством идентификации ошибочных
значений в ячейках, а также ячеек заданного типа. В данном случае использование ус­
ловного форматирования (такого как выделение ячеек красным фоном) позволит быстро
выявить искомые ячейки.
482
Часть V. Полезные методики применения формул
На рис. 19.1 показан рабочий лист, содержащий девять диапазонов, в каждом из ко­
торых использован особый тип условного форматирования. Вот краткое описание каж­
дого из них.
•
Больше 10. Значения, превышающие десять, выделяются соответствующим фо­
ном. Это правило— всего лишь пример безграничных возможностей правил,
применяемых к числовым значениям.
•
Больше среднего. Выделяются ячейки, значения которых превышают среднее
значение диапазона.
•
Дублирующиеся значения. Выделяются значения, которые встречаются в диапа­
зоне в нескольких экземплярах.
•
Слова, содержащие букву X. Если ячейка содержит букву X (независимо от реги­
стра), она выделяется.
•
Гистограммы. В каждой из ячеек диапазона отображается горизонтальная полоса
с длиной, пропорциональной значению.
•
Цветовая шкала. Цвет фона ячейки изменяется в зависимости от ее значения.
•
Набор значков. Использование одного из доступных наборов значков, отобра­
Можно выбрать любую из существующих шкал или создать собственную.
жаемых в ячейке наряду со значением. Внешний вид значка зависит от содержи­
мого ячейки.
•
Еще один набор значков. В нем скрыты все значки, кроме одного.
•
Пользовательское правило. Правило, использованное в данном примере, осно­
вано на следующей формуле:
=ОСТАТ(СТРОКА( ) ; 2 ) =ОСТАТ(СТОЛБЕЦ( ) ;2)
Рис. 19.1. На этом рабочем листе продемонстрировано несколько правил
условного форматирования
Глава 19. Условное форматирование и проверка данных
483
Определение условного форматирования
Для применения условного форматирования к диапазону ячеек его нужно выделить, а за­
тем применить одну из следующих команд раскрывающегося списка Главная^Стили^Ус-
ловное форматирование.
•
Правила выделения ячеек. Примеры правил включают в себя: выделение ячеек,
больших некоторого значения; находящихся между двумя заданными значениями;
содержащих заданную текстовую строку; а также дублирующихся ячеек.
•
Правила отбора первых и последних значений. Примеры правил включают
в себя: выделение ячеек, превышающих среднее значение; первого десятка ячеек;
а также последних 20 процентов ячеек.
•
Гистограммы. Применение гистограмм непосредственно в ячейках с данными;
длина полос пропорциональна значению ячеек.
•
Цветовые шкалы. Применение цвета фона, пропорционального значению ячейки.
•
Наборы значков. Отображение в ячейках значков. Тип значка зависит от значе­
ния в ячейке.
•
Создать правила. Возможность создания нового правила условного форматиро­
вания, включая правила, содержащие логические формулы.
•
Удалить правила. Удаление из выделенного диапазона всех правил условного
форматирования.
•
Управление правилами. Открытие диалогового окна, в котором можно созда­
вать новые правила условного форматирования, а также редактировать и удалять
уже существующие.
Новинки в Excel 2010
Если вы уже использовали условное форматирование в предыдущих верси­
ях Excel, в новой версии программы вы найдете множество улучшений и но­
вовведений.
Гистограммы выводятся пропорционально значению. Можно добавить или удалить
градиент и рамку.
Теперь гистограммы лучше обрабатывают отрицательные значения.
В гистограммах используются цветовые схемы. Если определить новую цветовую
схему документа, цвета гистограмм изменятся.
Можно определять минимальное и максимальное значения гистограммы для пра­
вильного масштабирования.
Доступно создание наборов пользовательских наборов значков.
Легче скрыть в наборе один или несколько значков.
Применяемые типы форматирования
Когда выбирается некоторое правило условного форматирования, Excel открывает диа­
логовое окно, специфичное для этого правила. Однако все диалоговые окна имеют один
общий элемент — раскрывающийся список с распространенными вариантами форматиро­
вания. На рис. 19.2 показано диалоговое окно, открываемое после выбора команды Главная^Стили^Условное форматирование^Правила выделения ячеек^Между. Это
484
Часть V. Полезные методики применения формул
конкретное правило позволяет применять к ячейке форматирование в том случае, если ее
значение находится между двумя заданными. В данном случае следует ввести эти два зна­
чения (или ссылки на соответствующие ячейки), после чего в раскрывающемся списке вы­
брать форматирование, применяемое в случае, когда условие выполняется.
Рис. 19.2. Одно из нескольких возможных диалоговых окон опре­
деления условного форматирования
Варианты форматирования, предлагаемые программой в раскрывающемся списке,
являются всего малой подвыборкой из тысяч комбинаций форматирования. В большин­
стве случаев ни один из предлагаемых вариантов вас может не устроить, в таком случае
вы вправе создать собственную комбинацию параметров форматирования. Для этого
в раскрывающемся списке выберите пункт Пользовательский формат. В открывшемся
диалоговом окне в различных вкладках можно определить числовой формат, а также па­
раметры шрифта, границы и заливки.
Примечание
Диалоговое окно Формат ячеек, используемое для определения условного
форматирования, является модифицированной версией стандартного од­
ноименного окна. В нем отсутствуют вкладки Число, Выравнивание и Защи­
та, а также недоступны некоторые параметры форматирования шрифта. Это
диалоговое окно также содержит кнопку Очистить, позволяющую очистить
уже выбранные параметры форматирования.
Создание собственных правил
Для создания дополнительных правил Excel предлагает диалоговое окно Создание
правила форматирования (рис. 19.3). Для открытия этого диалогового окна выберите
команду Главная^Стили^Условное форматирование^Создать правило.
Диалоговое окно Создание правила форматирования позволяет воссоздать все
правила условного форматирования, содержащиеся на ленте, равно как и создать новые.
В первую очередь в списке в верхней части окна следует выбрать общий тип правила.
Содержимое нижней части окна зависит от выбранного элемента в его верхней части.
После определения правила щелкните на кнопке Формат и установите параметры фор­
матирования, применяемые при выполнении заданного условия. Исключение составляет
только первый тип правил, не содержащий этой кнопки (этот тип использует графику, а
не форматирование ячеек).
Рассмотрим вкратце все предлагаемые типы правил.
•
Форматировать все ячейки на основании их значений. Этот тип правил позволяет
отображать гистограммы, наборы значков, а также применять цветовые шкалы.
•
Форматировать только ячейки, которые содержат. Этот тип позволяет созда­
вать правила форматирования ячеек на основании математических операций срав­
нения (больше, меньше, равно, между и т.п.). Также можно создавать правила, ос­
нованные на тексте, датах, пустоте ячеек и ошибках.
Глава 19. Условное форматирование и проверка данных
485
Рис. 19.3. С помощью этого диалогового окна можно соз
дать собственные правила условного форматирования
•
Форматировать только первые или последние значения. Этот тип использу­
ется для создания правил отбора наибольших или наименьших значений (или про­
цента значений) диапазона.
•
Форматировать только значения, которые находятся выше или ниже сред­
него. Этот тип позволяет создавать правила отбора значений, находящихся выше
или ниже среднего, а также попадающих в диапазон, ограниченный стандартным
отклонением от среднего.
•
Форматировать только уникальные или повторяющиеся значения. Этот тип
позволяет создавать правила форматирования уникальных или дублирующихся
значений диапазона.
•
Использовать формулу для определения форматируемых ячеек. Этот тип
используется для создания правил, основанных на некоторой логической формуле.
Далее этот тип будет рассмотрен подробно.
Условное форматирование, использующее графику
В данном разделе будут описаны три варианта условного форматирования: гисто­
граммы, цветовые шкалы и наборы значков. Эти типы условного форматирования полез­
ны для повышения наглядности значений в диапазоне ячеек.
Использование гистограмм
Условное форматирование с использованием гистограмм отображает горизонталь­
ные полоски непосредственно в ячейках диапазона. Длина этих полосок пропорциональ­
на текущему значению ячейки и зависит от минимального и максимального значений.
Новинка
В Excel 2010 гистограммы существенно улучшены. Теперь они отображают­
ся пропорционально (как на диаграммах), добавлена возможность настраи­
вать заливку и рамки, отрицательные значения можно отображать другим
цветом слева от оси.
486
Часть V. Полезные методики применения формул
На рис. 19.4 показан пример использования гистограмм. Это список клиентов и соот­
ветствующие объемы продаж. На листе условное форматирование было применено
к значениям столбца В. Таким образом, с первого взгляда можно определить, объем сде­
лок с какими клиентами был самым высоким.
Компакт-диск
Демонстрируемые примеры содержатся в файле d a t a b a r s
x l s x (c h a p t e r 1 9 _ r u s . x s l x ) на прилагаемом компакт-диске.
ex a m p les,
Рис. 19.4. Длина полосок гистограммы пропорциональна значениям ячеек
©
Совет
Различия между длиной ячеек становятся более заметными при увеличении
ширины столбца.
В помощью команды Главная1^ Стил и^Условное форматирование^ Гистограм­
мы Excel обеспечивает доступ к шести предопределенным цветам полосок. При необхо­
димости можно выбрать другие цвета, выбрав пункт Другие правила. В открывшемся
диалоговом окне можно сделать следующее:
•
настроить отображение только полосок (скрыть числа);
•
задать минимальное и максимальное значения для масштабирования;
•
настроить внешний вид полоски;
•
задать способ отображения отрицательных значений;
•
задать направление полосок.
При внесении изменений в это диалоговое окно можно воспользоваться полем пред­
варительного просмотра Образец и увидеть, как будут выглядеть полоски после щелчка
на кнопке ОК.
Использование гистограмм данных вместо диаграмм
Использование условного форматирования в виде гистограмм может служить быстрой
альтернативой созданию диаграмм. На рис. 19.5 показана таблица данных, состоящая из
трех столбцов; к последнему столбцу было применено условное форматирование. Ячейки
третьего столбца содержат ссылки на значения ячеек второго, при этом в параметрах ус­
ловного форматирования был установлен флажок Показывать только столбец.
На рис. 19.6 показана диаграмма, созданная на основе тех же данных. Эта гистограм­
ма требует примерно столько же времени на создание, что и использование условного
форматирования; в то же время она более гибкая. Для быстрого визуального просмотра
Глава 19. Условное форматирование и проверка данных
487
данных условное форматирование является вполне пригодным вариантом, особенно если
нужно создать несколько гистограмм.
Рис. 19.5. В этой таблице использовано условное форматирование в виде гис­
тограммы
Рис. 19.6. Реальная диаграмма, созданная на основе данных,
показанных на рис. 19.5
Использование цветовой шкалы
Условное форматирование в виде цветовой шкалы изменяет цвет фона ячейки в зави­
симости от ее значения по отношению к значениям других ячеек диапазона.
На рис. 19.7 показан диапазон ячеек, в котором используется условное форматирова­
ние в виде цветовой шкалы. В диапазоне указано ежедневное количество работающих
сотрудников компании в течение года. В условном форматировании задействовано три
цвета: красный для наименьшего значения, желтый для среднего и зеленый для наи­
большего. В промежуточных значениях используется градиент.
Компакт-диск
Демонстрируемые примеры содержатся в файле c o l o r s c a l e
p l e s . x l s x (C h a p te r 19_RUS. x s l x ) на прилагаемом компакт-диске.
exam ­
Часть V. Полезные методики применения формул
488
Рис. 19.7. В этом диапазоне использовано условное форматирование в виде цве­
товой шкалы
Excel предлагает предустановленные четыре двухцветные и четыре трехцветные шка­
лы, которые можно непосредственно применить с помощью меню Главная^Стили1
^
Условное форматированием Цветовые шкалы. Для настройки цветов и других пара­
метров можно воспользоваться командой ГлавнаяМСтилимУсловное форматированиеМЦветовые шкалыМДругие правила. При этом открывается диалоговое окно, по­
казанное на рис. 19.8.
Рис. 19.8. Настройка цветовой шкалы
Очень важно понимать, что условное форматирование в виде цветовой шкалы ис­
пользует градиент. К примеру, при форматировании диапазона с помощью двухцветной
шкалы вы получите в результате больше двух цветов, так как некоторые ячейки имеют
переходные цвета, находящиеся в спектре между двумя заданными.
На рис. 19.9 представлен экстремальный пример условного форматирования в диапа­
зоне, содержащем 10000 ячеек (100 строк и 100 столбцов). Масштаб рабочего листа
уменьшен до 20%, чтобы показать весь спектр трехцветного градиента. Диапазон сфор­
мирован с помощью формул, подобных следующей (для ячейки С5):
= S I N ( $А2) + COS(В$1)
Глава 19. Условное форматирование и проверка данных
489
Значения в столбце А и строке 1 варьируются в диапазоне от нуля до четырех с при­
ращением, равным 0 , 0 4 . При изменении значения в ячейке А1 цвет мгновенно изменя­
ется. Если вы просмотрите результат на экране (воспользовавшись рабочей книгой на
компакт-диске), он вас ошеломит — при преобразовании в серые цвета палитра теряет
очень многое.
Рис. 19.9. На рабочем листе с масштабом в 20% используется условное форматирование
в виде цветовой шкалы
Примечание
Содержимое ячеек при использовании цветовых схем можно скрывать. В дан­
ном случае применен пользовательский числовой формат следующего вида:
Компакт-диск
Этот пример содержится в файле e x t r e m e c o l o r s c a l e . x l s x (Chapt 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 .
Использование наборов значков
Еще один вариант условного форматирования позволяет отображать в ячейках знач­
ки. Отображаемый значок зависит от значения в ячейке.
Для назначения набора значков диапазону выберите команду Главная^ Стили >=>
Условное форматирование^Наборы значков. Excel предлагает вашему вниманию 20
наборов значков. Следует заметить, что создать собственный набор значков невозможно.
Количество значков в существующих наборах колеблется от трех до пяти.
На рис. 19.10 показан пример использования набора значков, названный 3 с и м в о л а
б е з к р у ж к о в . Эти символы графически показывают состояние каждого из проектов,
основываясь на значении столбца С.
490
Часть V. Полезные методики применения формул
Рис. 19.10. Использование набора значков
для отображения состояния проектов
Компакт-диск
Примеры этого раздела содержатся в файле i c o n s e t
( c h a p t e r i 9 _ R U S . x s l x ) на прилагаемом компакт-диске.
exa m p les . x l s x
По умолчанию символы назначаются с использованием процентов. В наборе, со­
стоящем из трех значков, элементы группируются в три диапазона; если в наборе четыре
значка, группировка выполняется по четырем диапазонам процентов и т.д.
Чтобы контролировать назначение значков, воспользуйтесь вариантом Другие пра­
вила. В открывшемся диалоговом окне можно изменить правила назначения значков. На
рис. 19.11 показан пример, в котором на 100% выполненным проектам назначается зна­
чок “галочки”, крестиком помечаются не начатые проекты (0% выполнения), а все ос­
тальные проекты не помечаются.
На рис. 19.12 показан тот же список задач, что и на рис. 19.10, но уже с внесенными
изменениями в параметры условного форматирования.
Рис. 19.11. Изменение правил назначения значков
На рис. 19.13 показана таблица, состоящая из результатов двух тестирований студен­
тов. В столбце И з м е н е н и я показаны различия между второй и первой оценками.
В столбце Т е н д е н ц и я графически показано улучшение или ухудшение результатов.
Глава 19. Условное форматирование и проверка данных
Рис. 19.12. Использование настроенного набора значков для отображения состояния проекта
491
Рис. 19.13. Стрелки отображают тенденции в успеваемости студентов между двумя тестированиями
В этом примере использованы три серые стрелки, при этом правило их применения
было настроено следующим образом.
•
Стрелка вверх. Изменение больше или равно 5.
•
Стрелка вправо. Изменение больше - 5 и меньше 5.
•
Стрелка вниз. Изменение меньше или равно -5 .
Другими словами, изменение в пять баллов в любом направлении рассматривается
как четко выраженная тенденция: если в сторону увеличения, то как положительная, если
в сторону уменьшения, то как отрицательная.
Примечание
Столбец Тенденция содержит формулу, ссылающуюся на столбец Изменения.
В окне параметров условного форматирования столбца тенденция установ­
лен флажок Показывать только значок, что позволяет также отцентрировать
значок в ячейке.
В некоторых случаях может потребоваться отображать только один или два значка из
набора (например, для чисел, на которые следует обратить особое внимание). На
рис. 19.14 показан диапазон значений, отображающих значок, только если есть заметная
тенденция. В остальных случаях в диалоговом окне Создание правила форматирова­
ния установлено значение Нет значка в ячейке.
Применение условных форматов на листе
В этом разделе вы найдете дополнительную информацию об условном форматирова­
нии, которая может вам пригодиться в работе.
Управление правилами
Диалоговое окно диспетчера правил условного форматирования полезно для проверки,
изменения и удаления существующих правил, а также для добавления новых. Доступ к
этому диалоговому окну осуществляется с помощью команды Главная ^Стили^Условное форматирование<=>Управление правилами (после выделения диапазона).
492
Часть V. Полезные методики применения формул
Рис. 19.14. Отображение только двух значков из набора
С помощью кнопки Создать правило можно определить сколько угодно правил. Как
следует из рис. 19.15, в ячейках можно одновременно использовать гистограммы, цвето­
вые шкалы и наборы значков (хотя для этого вряд ли есть веские основания).
Рис. 19.15. В диапазоне одновременно используются гистограммы, цветовые схемы и
наборы значков
Копирование ячеек, содержащих условное форматирование
Информация об условном форматировании хранится в ячейках так же, как и инфор­
мация об обычном форматировании. В результате при копировании ячейки, содержащей
условное форматирование, оно копируется вместе со значением.
Совет
Чтобы скопировать только форматирование (включая условное), воспользуйтесь
диалоговым окном Специальная вставка, где установите переключатель в поло­
жение Форматы. Или выделите диапазон и выберите команду Главная^Буфер
обмена^Вставить^Другие параметры вставки^Форматирование.
Глава 19. Условное форматирование и проверка данных
493
Вставка строк или столбцов в диапазон, содержащий условное форматирование, при­
водит к применению к новым ячейкам того же условного форматирования.
Удаление условного форматирования
При нажатии клавиши <Delete> для удаления содержимого ячейки условное форма­
тирование, если таковое существует, не удаляется. Для удаления условного форматиро­
вания (равно как и любого другого) воспользуйтесь командой Главная ^Редактиро­
вание^ Очистить*^ Очистить форматы. Можете также воспользоваться командой
Очистить^Очистить все для удаления содержимого ячеек вместе с их условным фор­
матированием.
Для удаления только условного форматирования (без основного) примените команду
Главная^Стили^Условное форматирование^Удалить правила.
Ограничения поиска и замены
Диалоговое окно Найти и заменить позволяет искать на рабочем листе ячейки,
имеющие обычное форматирование. В то же время нельзя найти ячейки, содержащие ус­
ловное форматирование.
Поиск ячеек, содержащих условное форматирование
По внешнему виду ячейки невозможно определить, содержит ли она условное форма­
тирование. Для поиска таких ячеек можно воспользоваться диалоговым окном Выделе­
ние группы ячеек.
1. Выберите команду Главная^Редактирование^Найти и выделить1^ Выделе­
ние группы ячеек.
2. В открывшемся диалоговом окне установите переключатель условные форматы.
3. Для выделения всех ячеек рабочего листа, содержащих условное форматирова­
ние, установите подчиненный переключатель всех. Для выделения только тех
ячеек, которые имеют условное форматирование, идентичное с активной ячейкой,
установите переключатель этих же.
4. Щелкните на кнопке ОК и доверьтесь программе.
Создание правил, основанных на формулах
Средства условного форматирования Excel универсальны, однако не могут охватить
все возможные ситуации. Вы сами можете расширить их область использования за счет
применения формул.
В примерах, которые вы встретите в этом разделе, описано, как создать формулы ус­
ловного форматирования для следующих целей:
•
идентификация вхождений текста;
•
идентификация дат, выпадающих на выходные дни;
•
форматирование ячеек, находящихся в четных строках и столбцах;
•
форматирование групп строк (к примеру, для затенения каждой группы из двух
строк);
•
отображение сумм только в том случае, если все входящие в них ячейки содержат
значения;
494
Часть V. Полезные методики применения формул
•
идентификация текстовых ячеек, начинающихся с той же буквы, что и текущая
ячейка;
•
выделение ячеек со значениями, удовлетворяющими критерию, введенному в дру­
гую ячейку.
Некоторые из этих формул можно использовать для решения реальных задач или
создания других формул условного форматирования.
Для создания условного форматирования, основанного на формуле, выберите коман­
ду Главная^Стили^Условное форматирование^Создать правило. В открывшемся
диалоговом окне следует выбрать вариант Использовать формулу для определения
форматируемых ячеек, после чего ввести в соответствующее поле нужную формулу.
Формулу можно вводить непосредственно в текстовое поле; в него также можно вве­
сти ссылку на уже существующую формулу. Как и обычные формулы Excel, формулы
условного форматирования должны начинаться со знака равенства (=).
я*Ч
Примечание
Формулы должны возвращать логические значения истина и л и ложь. В первом
случае условие считается выполненным, и к ячейкам будет применено заданное
форматирование; в противном случае форматирование не применяется.
Понятие относительной и абсолютной ссылки
Если формула, вводимая в диалоговом окне Условное форматирование, содержит
ссылку на некоторую ячейку, она рассматривается как ссылка относительно верхней ле­
вой ячейки выделенного диапазона.
Для примера предположим, что требуется настроить условное форматирование диа­
пазона ячеек A I : В10 так, чтобы выделить только те ячейки, которые содержат текст. Ни
один из стандартных вариантов условного форматирования Excel не способен справить­
ся с этой задачей. По этой причине нужно создать формулу, возвращающую значение
ИСТИНА, если ячейка содержит текст, или ЛОЖЬ в противном случае. Выполните сле­
дующие действия.
'
1. Выделите диапазон ячеек A I : В10 и убедитесь в том, что активна ячейка А1.
2. Выберите команду Главная^Стили^Условное форматирование^Создать
правило.
3. В открывшемся диалоговом окне выберите тип Использовать формулу для
определения форматируемых ячеек.
4. Введите следующую формулу:
=ЕТЕКСТ(А1)
5. Щелкните на кнопке Формат, чтобы открыть диалоговое окно Формат ячеек.
6. Перейдите во вкладку Заливка и выберите цвет, который будет использоваться
для фона ячейки, если результатом формулы будет ИСТИНА.
7. Щелкните на кнопке О К, чтобы вернуться в окно создания правила форматирова­
ния (рис. 19.16).
8. В диалоговом окне создания правила форматирования проверьте поле Образец,
чтобы убедиться, что форматирование выбрано правильно.
9. Щелкните на кнопке ОК, чтобы закрыть диалоговое окно.
Глава 19. Условное форматирование и проверка данных
495
Рис. 19.16. Создание правила условного формати­
рования, основанного на формуле
Обратите внимание на то, что формула, введенная в п. 4, содержит относительную
ссылку на верхнюю левую ячейку выделенного диапазона.
В общем случае при вводе формулы условного форматирования для диапазона ячеек
используется ссылка на активную ячейку, в качестве которой чаще всего выбирают верх­
нюю левую ячейку диапазона. Исключение составляет случай, когда нужна ссылка на кон­
кретную ячейку. Для примера предположим, что выделен все тот же диапазон A I : В10, и
нужно применить форматирование ко всем ячейкам, значение которых превышает значе­
ние ячейки С1. В данном случае формула условного форматирования будет следующей:
=А1>$С$1
Как видите, ссылка на ячейку С1 является абсолютной — она не изменяется во всех
ячейках выделенного диапазона. Другими словами, формула условного форматирования
для ячейки А2 будет выглядеть следующим образом:
=А2>$С$1
Относительная ссылка на ячейку автоматически корректируется, в отличие от абсо­
лютной.
Использование ссылок на другие листы
Если вы планируете использовать рабочую книгу совместно с людьми, работающими
с предыдущими версиями Excel, не применяйте ссылки на другие рабочие листы, потому
что они разрешены только начиная с Excel 2010. Вместо этого создайте ссылку на ячейку
текущего листа, содержащего условное форматирование. Например, если в формуле ус­
ловного форматирования необходима ссылка на ячейку А1 листа Л и ст1, вставьте сле­
дующую формулу в ячейку на активном листе:
=Л ист1!А1
После чего в формуле условного форматирования этого листа можно без проблем со­
слаться на эту ячейку.
Совет
Еще один вариант использования в формуле условного форматирования
ссылки на ячейку другого листа предполагает создание для последней име­
ни с областью определения уровня книги (во вкладке Формулы выберите ко­
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 ) на прилагаемом компакт-диске.
Идентификация выходных дней
Excel предлагает множество правил условного форматирования, работающих с дата­
ми, однако нельзя идентифицировать даты, выпадающие на выходные дни. Для этого
можно использовать следующую формулу:
=ИЛИ(ДЕНЬНЕД(А1)= 7 ; ДЕНЬНЕД(А1)=1)
Эта формула предполагает, что в выделенном диапазоне ячейка А1 является активной.
Идентификация ячеек, содержащих несколько слов
Условное форматирование может использоваться и при работе с текстом. К примеру,
можно применить следующую формулу для условного форматирования ячеек, содержа­
щих больше одного слова:
=ДЛСТР(СЖПРОБЕЛЫ(А1)) -ДЛСТР(ПОДСТАВИТЬ(А1;" " ; " " ) ) > 0
Эта формула предполагает, что выделенный диапазон начинается в ячейке А1. Формула
удаляет лишние пробелы в начале и конце строки (с помощью функции СЖПРОБЕЛЫ), а за­
тем удаляет в ней все пробелы, после чего сравнивает получившиеся значения. Если пер­
вый результат больше второго, значит, в строке содержатся пробелы между словами (т.е.
она содержит больше одного слова), и формула возвращает значение ИСТИНА.
Эффект чередующихся строк
Следующая формула условного форматирования применяется к диапазону ячеек
A I : D18; результат показан на рис. 19.17. Как видите, четные и нечетные строки имеют
разный фон.
=ОСТАТ(СТРОКА( ) ; 2 ) =0
Применение эффекта чередующихся строк повышает читабельность данных рабочего
листа. Если в области условного форматирования добавляются или удаляются строки,
форматирование обновляется автоматически.
В представленной формуле используется функция СТРОКА (возвращающая номер
строки) и функция ОСТАТ (возвращающая остаток от деления первого аргумента на вто­
рой). Таким образом, в данном примере четные строки возвращают остаток 0, результа­
том формулы является ИСТИНА и строки форматируются.
Глава 19. Условное форматирование и проверка данных
497
Для создания эффекта чередующихся столбцов вместо функции СТРОКА используйте
функцию СТОЛБЕЦ.
Создание эффекта шахматной доски
Следующая формула является аналогом предыдущей. Ее использование в условном
форматировании создает в выделенном диапазоне эффект шахматной доски (рис. 19.18).
=ОСТАТ(СТРОКА( ) ;2)=ОСТАТ(СТОЛБЕЦ( ) ;2 )
Рис. 19.17. Использование условного форматирования для созда­
ния эффекта чередования строк
Рис. 19.18. Эффект шахматной доски
Отображение сумм только в том случае, если введены все значения
На рис. 19.19 показан диапазон с формулой, использующей функцию СУММ в ячейке
Сб. Условное форматирование в данном случае применяется для сокрытия тех сумм, над
которыми хотя бы одна из четырех ячеек пустая. Формула условного форматирования
для ячейки С6 (и ячейки Вб, содержащей надпись) следующая:
=СЧЁТ($С$2: $ С $ 5 ) =4
Эта формула возвращает значение ИСТИНА только в том случае, если диапазон
С2 : С5 не содержит пустых ячеек.
На рис. 19.20 показан рабочий лист в случае, когда одно из значений отсутствует.
19.19. Сумма отображается толь­
ко в том случае, если введены значе­
ния для всех четырех кварталов
РИС.
Рис. 19.20. Отсутствие одного зна­
чения вызывает сокрытие суммы
498
Часть V. Полезные методики применения формул
Идентификация текстовых ячеек, начинающихся с определенной буквы
Рабочий лист, показанный на рис. 19.21, в диапазоне А5 : В15 содержит список имен,
а в ячейке А1 содержатся некоторые буквы алфавита. Формула условного форматирова­
ния вызывает выделение имен, начинающихся с букв, которые содержатся в ячейке А1.
Формула условного форматирования для диапазона А5 : F15 следующая:
=ЛЕВСИМВ(А5) =ЛЕВСИМВ( $А $1)
Рис. 19.21. Выделяются имена, начинающиеся с буквы, введен­
ной в ячейку А1
Идентификация ячейки, удовлетворяющей числовому критерию
Пример, приведенный в этом подразделе, аналогичен предыдущему, но в нем задей­
ствованы числа. В диапазоне А 5 : Р22 определена следующая формула условного фор­
матирования:
=СЧЁТЕСЛИ(А5; $А $1)=1
В этой формуле использован тот факт, что функция СЧЁТЕСЛИ может обрабатывать
критерии, введенные в ячейку. На рис. 19.22 показан рабочий лист в состоянии, когда
в ячейку А1 введен критерий >90.
Рис. 19.22. Выделяются ячейки, удовлетворяющие
критерию, введенному в ячейку А1
Глава 19. Условное форматирование и проверка данных
499
Применение пользовательских функций в формулах условного
форматирования
Средства условного форматирования Excel достаточно универсальны. Если этой уни­
версальности недостаточно, можно создать собственные условия (см. предыдущие раз­
делы). Если же и дополнительные формулы не позволяют решить задачу, можно создать
пользовательские функции VBA и применить их в формулах условного форматирования.
В этом разделе вам будет предложено три примера функций VBA, используемых
в формулах условного форматирования.
©
Перекрестная ссылка
В части 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 ).
Идентификация ячеек с формулами
К сожалению, в Excel отсутствует функция, которая определяет, содержит ли опреде­
ленная ячейка формулу. В случаях, когда средств Excel оказывается недостаточно, на
помощь приходит язык VBA. Приведенная ниже функция VBA использует свойство
H a sF o rm u la. Функция, введенная в модуль VBA, возвращает значение ИСТИНА, если
ячейка (определенная в качестве аргумента) содержит формулу; в противном случае воз­
вращается значение ЛОЖЬ.
F u n c t io n ISFORMULACELL(cell) As B o o l e a n
ISFORMULACELL = c e l l . H asF orm u la
End F u n c t i o n
После ввода такой функции в модуль VBA ее можно использовать в формулах рабо­
чего листа. Например, следующая формула возвращает значение ИСТИНА, если ячейка
А1 содержит формулу:
=ISFORMULACELL(А 1)
Такая функция может быть использована и в формуле условного форматирования.
Например, в рабочем листе, показанном на рис. 19.23, условное форматирование исполь­
зуется для выделения ячеек, содержащих формулы.
Рис. 19.23. Использование функции VBA в
формуле условного форматирования
500
Часть V. Полезные методики применения формул
Примечание
Найти формулы можно также с помощью команды Главная^Редактирование^Найти и выделить^Выделение группы ячеек. В открывшемся диалого­
вом окне установите переключатель в положение Формулы и щелкните на
кнопке ОК — на листе будут выделены все ячейки, содержащие формулы.
Идентификация ячеек с датами
В Excel отсутствуют функции, которые могут определить, содержится ли в ячейке да­
та. Следующая функция VBA, использующая встроенную функцию I s D a te , позволяет
преодолеть данное ограничение. Пользовательская функция HASDATE возвращает зна­
чение ИСТИНА, если в ячейке сдержится дата.
F u n c t i o n H A S D A T E (cell) As B o o l e a n
HASDATE = I s D a t e ( c e l l )
End F u n c t i o n
Следующая формула условного форматирования применяет форматирование к ячей­
ке А1, если в ней содержится дата и эта дата относится к июню:
=И(HASDATE( А 1 ) ; МЕСЯЦ(А 1)= 6)
Следующая формула условного форматирования применяет форматирование к ячей­
ке А1, если в ней содержится дата и эта дата приходится на выходной день:
=И(HASDATE(А1) ; ИЛИ(ДЕНЬНЕД(А 1) = 7 ; ДЕНЬНЕД(А 1) = 1 ) )
Идентификация некорректных данных
Возможны ситуации, когда введенные данные должны подчиняться определенным
правилам. В этом случае удобно использовать условное форматирование для выделения
ячеек, нарушающих это правило. В качестве примера предположим, что серийные номе­
ра комплектующих состоят из семи символов: четырех букв верхнего регистра, дефиса
и двух цифр, например JESV-0 9, BAVW-43.
Можно написать формулу условного форматирования, проверяющую, соответствует
ли номер детали заданной структуре, но такая формула будет весьма сложной и громозд­
кой. К примеру, следующая формула возвращает значение ИСТИНА, если значение ячей­
ка А1 удовлетворяет описанному выше правилу.
=И(ДЛСТР(А1) = 7 ; И(ЛЕВСИМВ(А 1 )> = " А", ЛЕВСИМВ(А1) < = " Z" );
И(ПСТР(А1; 2 ; 1 ) > = " А", ПСТР(А1; 2 ; 1 ) < = " Z " );
И(ПСТР(А1; 3 ; 1 ) > = "А", ПСТР(А1; 3 ; 1 ) <="Z") ;
И (ПСТР(А 1 ; 4 ; 1 ) > = " А", ПСТР(А1; 4 ; 1 ) < = " Z " ) ;
ПСТР (А 1 ; 5 ; 1) = " - 11; И (ЕЧИСЛО (ПСТР (А 1; б ; 2 ) ) > = 0;
ЕЧИСЛО(ПСТР(А1; 6 ; 2 ) ) < = 9 9 ) )
Для большей простоты напишите пользовательскую VBA-функцию рабочего листа.
Иструкция VBA L ik e выполняет такие сравнения относительно просто. Следующая
функция VBA возвращает значение ИСТИНА, если ее аргумент не соответствует указан­
ным выше правилам для серийного номера комплектующего.
F u n c t i o n INVALIDPART(n) As B o o l e a n
I f n L i k e " [ A - Z ] [ A - Z ] [ A - Z ] [ A - Z ] -## " Then
INVALIDPART = F a l s e
E lse
INVALIDPART = True
End I f
End F u n c t i o n
Глава 19. Условное форматирование и проверка данных
501
После определения этой функции в модуле VBA можно применить условное форма­
тирование к ячейке А 1, содержащей недостоверный номер детали, используя следую­
щую формулу:
=INVALIDPART(А1)
На рис. 19.24 показан диапазон, применяющий пользова­
тельскую функцию INVALIDPART в формуле условного
форматирования. Ячейки, содержащие некорректные серий­
ные номера комплектующих, выделены более темным фоном.
Во многих случаях можно просто воспользоваться сред­
ствами проверки вводимых значений программы Excel, речь
о котором пойдет далее.
Проверка данных
Средства проверки данных программы Excel во многих
отношениях сходны со средствами условного форматирования. Они позволяют установить правила, определяющие, какое содержимое может вводиться в ячейку. Например, можно
задать условие, ограничивающее вводимые данные пределами
от 1 до 12. Если пользователь введет ошибочную запись, будет отображено настраиваемое сообщение, подобное пока­
занному на рис. 19.25.
рис 1д 24
использование
условного форматирования
для выделения ячеек с некорректными данными
Рис. 19.25. Отображение сообщения при неверном вводе данных
Как и в случае со средством условного форматирования, для определения критерия
проверки вводимых значений может использоваться логическая формула.
Предупреждение
Средства проверки данных имеют серьезный недостаток. Если некоторую
ячейку скопировать и вставить в другую ячейку, содержащую проверку дан­
ных, правила проверки данных удаляются. Впоследствии данная ячейка
сможет принимать любые данные.
Определение критерия достоверности данных
Для того чтобы определить тип данных, разрешенный для ячейки или диапазона, вы­
полните следующие действия.
1. Выделите ячейку или диапазон.
2. Выберите команду Данные^Работа с данными^Проверка данных^Проверка
данных.
502
Часть V. Полезные методики применения формул
3. В открывшемся диалоговом окне перейдите во вкладку Параметры (рис. 19.26).
4. Из раскрывающегося списка Тип данных выберите соответствующее значение.
Содержимое диалогового окна отличается для каждого из типов данных. Чтобы
ввести формулу, выберите тип Другой.
5. В отображаемых элементах управления определите условия проверки. Ваш выбор
в п. 4 определяет состав доступных элементов управления.
|Проверкавводимыхзначений
]
Г
Рис. 19.26. Вкладка Параметры диалого­
вого окна Проверка вводимых значений
6. (Необязательно.) Щелкните на вкладке Сообщение для ввода и определите со­
общение, которое будет выводиться при выборе ячейки. Это сообщение поможет
пользователю узнать, какой тип данных допустим. Если это действие опустить,
при выборе ячейки никакого сообщения выводиться не будет.
7. (Необязательно.) Щелкните на вкладке Сообщение об ошибке и определите со­
общение, которое будет выводиться при вводе некорректного значения. С помощью
раскрывающегося списка Вид можно определить, какие действия будут доступны
пользователю при вводе неверных данных. Для того чтобы предотвратить ввод не­
корректного значения, выберите значение Останов. Если этот шаг опустить, при
вводе некорректного значения будет выводиться стандартное сообщение.
8. Щелкните на кнопке ОК.
После выполнения данных действий ячейка или диапазон будут содержать заданные
условия проверки вводимых значений.
Типы возможных условий д ля проверки
вводимых значений
Вкладка Параметры диалогового окна Проверка вводимых значений позволяет
определить широкий спектр критериев проверки данных. Элементы управления вкладки
Параметры варьируются в зависимости от выбранного пункта в списке Тип данных.
В раскрывающемся списке Тип данных доступны следующие пункты.
•
Любое значение. Выбор данного значения приводит к удалению существующих
правил проверки вводимых значений. Однако учтите следующее: если не снять
флажок во вкладке Сообщение для ввода, подсказка, определенная в ней, будет
по-прежнему отображаться.
Глава 19. Условное форматирование и проверка данных
503
•
Целое число. Необходимо ввести целое число. Диапазон допустимых значений
определяется с помощью раскрывающегося списка Значения. Например, можно
указать, что вводимое значение должно быть больше или равно ста.
•
Действительное. Необходимо ввести действительное число. Диапазон допусти­
мых значений определяется с помощью раскрывающегося списка Значения. На­
пример, укажите, что вводимое значение должно быть больше или равно 0 и
меньше или равно 1.
•
Список. Пользователь должен выбрать одно из значений созданного вами рас­
крывающегося списка. Об этом очень полезном варианте мы поговорим позже в
отдельном разделе.
•
Дата. Необходимо ввести дату. Диапазон допустимых дат определяется с помо­
щью раскрывающегося списка Значения. Например, можно задать, что вводимая
дата должна быть больше или равна 1 января 2010 года и меньше или равна 31 де­
кабря 2010 года.
•
Время. Необходимо ввести время. Диапазон допустимых значений времени опре­
деляется с помощью раскрывающегося списка Значения. Например, укажите, что
вводимое время должно быть больше, чем 12:00.
•
Длина текста. Длина данных (цифровых или символьных) ограничена. Допусти­
мая длина определяется с помощью раскрывающегося списка Значения. Напри­
мер, можно задать длину вводимых данных равной одному символу.
•
Другой. Вводится логическая формула, возвращающая значения ИСТИНА или
ЛОЖЬ и определяющая, являются ли введенные данные допустимыми. Формула
задается непосредственно в поле Формула или же определяется как ссылка на
ячейку, содержащую формулу. В данной главе приведены примеры некоторых по­
лезных формул.
Вкладка Параметры диалогового окна Проверка вводимых значений содержит
два флажка.
•
Игнорировать пустые ячейки. Если флажок установлен, допускаются пустые записи.
•
Распространить изменения на другие ячейки с тем же условием. Если фла­
жок установлен, вносимые изменения применяются ко всем другим ячейкам, со­
держащим условия проверки достоверности данных.
Важно понимать, что даже при включенной проверке вводимых значений можно вве­
сти ошибочные данные. Если в раскрывающемся списке Вид вкладки Сообщение об
ошибке диалогового окна Проверка вводимых значений выбрано любое значение,
кроме Останов, недопустимые значения могут быть введены. Помните, что проверка
данных не применяется к вычисляемым результатам формул. Другими словами, если
ячейка содержит формулу, применение проверки данных к этой ячейке не будет иметь
никакого эффекта.
Совет
Меню команды Данные^ Работа с данными о Проверка данных содержит эле­
мент Обвести неверные данные. Если щелкнуть на этой команде, все ячейки, со­
держащие некорректные данные, будут обведены овалом. Как только данные
будут исправлены, эти обводки исчезают. Чтобы снять обводку некорректных
504
Часть V. Полезные методики применения формул
данных, выберите команду Данные1^ Р абота с данными^Проверка да н н ы х^
Снять обводку неверных данных. На рис. 19.27 некорректными считаются дан­
ные, превышающие 1 0 о, и все они обведены.
Создание раскрывающихся списков
Пожалуй, одним из самых распространенных методов, обеспечивающих правиль­
ность вводимых данных, является создание в ячейках раскрывающихся списков. На
рис. 19.28 показан пример, в котором названия месяцев из ячеек А 1 : А12 использованы
в качестве источника данных раскрывающегося списка.
Рис. 19.27. Excel может обводить некорректные значения (в данном случае это
ячейки, содержащие числа больше 100)
Рис. 19.28. Этот раскрывающийся список был создан
с помощью проверки данных
Для создания раскрывающегося списка в ячейке выполните следующие действия.
1. Введите элементы списка в диапазон, состоящий из одного столбца или одной
строки. Именно эти элементы будут содержаться в раскрывающемся списке.
2. Выделите ячейку, в которой должен находиться раскрывающийся список, и от­
кройте диалоговое окно Проверка вводимых данных.
3. Во вкладке Параметры выберите тип Список, и в поле Источник задайте диапа­
зон, содержащий список допустимых значений.
4. Убедитесь, что установлен флажок Список допустимых значений.
5. Установите другие необходимые параметры проверки данных.
После выполнения этих действий при активизации ячейки будет отображаться эле­
мент раскрывающегося списка. Для выбора значения щелкните на стрелочке элемента
и выберите из списка любое значение.
Совет
Если сп и со к достаточно короткий, можно ввести его элем енты не п о ср е д ст­
венно во вкладке Параметры д и а л о го во го окна Проверка вводимых значений.
Разделяйте отдельны е элем енты сп иска сим волам и, определенны м и в ка­
честве разделителей в региональны х парам етрах систем ы W indow s (к при­
меру, в С Ш А это запятые, а в Р оссии — точки с запятой).
Глава 19. Условное форматирование и проверка данных
505
Совет
Если для списка вы определили диапазон, он должен находиться на том же
рабочем листе. Если диапазон, используемый для списка, находится на дру­
гом рабочем листе, присвойте ему имя с областью определения книги, и в
качестве источника данных укажите именно это имя (предваренное знаком
равенства). К примеру, если диапазон находится на другом листе и ему при­
своено имя Список20Ю, введите следующую формулу:
=Список2010
Использование формул в условиях проверки
вводимых значений
В простых случаях проверки вводимых значений работа с данным средством доста­
точно проста и понятна. Но подлинная сила этой функции проявляется при использова­
нии формул проверки вводимых значений.
Примечание
Вводимая формула должна быть логической, т.е. возвращать либо значение
и стин а, либо ложь. Если формула равна значению истин а, данные считают­
ся корректными и остаются в ячейке. Если формула равна значению ложь,
открывается диалоговое окно с сообщением, определенным на вкладке Со­
общение об ошибке диалогового окна Проверка вводимых значений.
Для определения формулы в диалоговом окне Проверка вводимых значений необ­
ходимо выбрать из раскрывающегося списка Тип данных значение Другой. В поле
Формула можно либо напрямую ввести формулу, либо указать ссылку на ячейку, содер­
жащую необходимую формулу. Следует заметить, что поле Формула отображается во
вкладке Параметры только при выборе типа Другой.
Если во вводимой формуле используется ссылка, она рассматривается как относи­
тельная, с привязкой к активной ячейке выбранного диапазона. Здесь имеет место полная
аналогия с формулами условного форматирования.
Применение пользовательских функций в формулах проверки данных
В этой главе уже было описано, как использовать функции VBA для произвольного
форматирования. По некоторым причинам Excel не позволяет использовать такие
функции в формулах проверки данных. Если вы попытаетесь сделать это, то получите
сообщение о том, что заданный именованный диапазон не может быть найден.
Чтобы обойти это ограничение, можно поместить ссылку на пользовательскую
функцию VBA в некоторую ячейку, а затем в формуле проверки данных использовать
ссылку на эту ячейку.
Ввод только определенных значений
В каждом из приведенных ниже примеров используется формула, заданная непо­
средственно в диалоговом окне Проверка вводимых значений. Такие формулы
могут использоваться для того, чтобы ячейка или диапазон содержали только текст,
определенное значение, недублирующиеся записи или текст, начинающийся с опре­
деленной буквы.
506
Часть V. Полезные методики применения формул
Компакт-диск
Примеры ЭТОГО раздела содержатся в файле d a t a v a l i d a t i o n
p l e s . x l s x (c h a p t e r 1 9 _ r u s . x s l x ) на прилагаемом компакт-диске.
exam ­
Принятие только текста
Excel имеет встроенный вариант проверки данных на ограничение длины текста, од­
нако он не может ограничить ввод только текстом (а не числовыми значениями). Для та­
кой проверки придется использовать следующую формулу:
=ЕТЕКСТ(А1)
В данной формуле предполагается, что ячейка А1 является активной в выделенном
диапазоне.
Принятие только значений, больших, чем в предыдущей ячейке
Следующая формула проверки вводимых значений позволяет ввести только такое
значение, которое больше значения, находящегося в соседней сверху ячейке:
=А2>А1
В данной формуле предполагается, что ячейка А2 — это активная ячейка выбранного
диапазона. Заметьте, что данная формула не используется для ячеек в первой строке.
Принятие только недублирующихся данных
Следующая формула проверки вводимых значений не позволит вводить повторяю­
щиеся записи в диапазоне A I : С20:
=СЧЁТЕСЛИ( $ А $ 1 : $ С $ 2 0 ;А 1 )= 1
В данной формуле предполагается, что ячейка А1 является активной в выбранном
диапазоне. Обратите внимание, что первый аргумент функции СЧЁТЕСЛИ — абсолютная
ссылка. Второй аргумент является относительной ссылкой и изменяется для каждой
ячейки диапазона. На рис. 1^.29 показана эта формула проверки значений в действии
(открыто окно с сообщением об ошибке). В данном случае пользователь пытается ввести
число 17 в ячейку В 5.
Рис. 19.29. Использование проверки вводимых значений для исключения возможно­
сти ввода повторяющихся значений
Глава 19. Условное форматирование и проверка данных
507
Принятие текста, начинающегося с заданного символа
Следующая формула проверки вводимых значений демонстрирует, как можно вы­
полнить проверку ввода определенного символа. В данном случае формула используется
для гарантии того, что вводимая запись будет текстовой строкой, начинающейся с буквы
“А” (в верхнем или нижнем регистре).
=ЛЕВСИМВ(А1)= "а"
В этой формуле предполагается, что ячейка А1 активна в выбранном диапазоне.
Следующая формула — вариация предыдущей. В данном случае формула гарантиру­
ет, что запись начинается с буквы “А” и содержит ровно пять символов.
=ЛЕВСИМВ(А 1 А ? ? ? ? " ) = 1
Принятие только дат, относящихся к понедельнику
Следующая формула проверяет, является ли вводимая дата понедельником:
=ДЕНЬНЕД(А1)=2
В примере предполагается, что ячейка А1 является активной в выделенном диапазо­
не. В примере использована функция ДЕНЬНЕД, возвращающая значение 1 для воскре­
сенья, 2 для понедельника и т.д.
Принятие только значений, не превосходящих общую сумму
На рис. 19.30 показан простой лист с бюджетом вечеринки. Элементы бюджета нахо­
дятся в ячейках В 1 : Вб. Допустимая сумма бюджета введена в ячейку Е4, а пользователь
пытается ввести в ячейку В4 число, в результате добавления которого общая стоимость
вечеринки превысит выделенный бюджет. Следующая формула проверки данных гаран­
тирует, что сумма вводимых элементов бюджета никогда не превысит заданный предел:
=СУММ( $ В $ 1 :$ В $ 6 )< = $ Е $ 4
Рис. 19.30. Использование проверки данных для гарантии того, что сумма значений диа
пазона не превысит заданного порога
Создание зависимого списка
На рис. 19.31 показан пример зависимого списка, созданного средствами проверки
данных. В ячейке Е2 определен список проверки данных, выводящий значения диапазо­
на А1 : С1 (Овощи, Фрукты, Мясо). Когда пользователь выбирает значение в списке Е2,
в ячейке F2 выводится соответствующий список (он появляется только после щелчка на
стрелке списка).
Часть V. Полезные методики применения формул
508
На рабочем листе определено три именованных диапазона:
•
Овощи; А2 :А 15;
•
Фрукты; В2 : В9;
•
Мясо; С2 : С5.
Ячейка F2 содержит следующую формулу проверки данных:
=ДВССЫЛ($Е$2)
Следовательно, список, выведенный в F2, зависит от значения, установленного в Е2.
Рис. 19.31. Зависимый раскрывающийся список
Глава
Создание мегаформул
В этой главе...
♦ Что такое мегаформула
♦ Создание мегаформул: простой пример
♦ Примеры мегаформул
♦ Преимущества и недостатки мегаформул
Данная глава посвящена описанию методов комбинирования нескольких формул в одну
(которую называют мегаформулой). Такой подход позволяет устранить необходимость ис­
пользования промежуточных формул и повысить скорость вычислений. Недостатком явля­
ется то, что редактирование результирующей формулы существенно затруднено.
Что такое мегаформула
Часто при работе с электронными таблицами для получения желаемого результата
приходится использовать промежуточные формулы. Другими словами, формула может
зависеть от других формул, которые, в свою очередь, зависят от третьих. Если вам уда­
лось заставить все формулы работать правильно, можете удалить промежуточные фор­
мулы и создать всего одну (но более сложную) формулу. Ввиду отсутствия лучшего тер­
мина я решил назвать такие формулы “мегаформулами”.
В чем состоит преимущество использования мегаформул? Они занимают меньшее
количество ячеек, а также могут повысить скорость пересчета. Кроме того, вы имеете
возможность произвести впечатление на людей, прославившихся своим умением созда­
вать формулы. Каковы недостатки? Часто такие формулы не подлежат расшифровке или
модификации даже человеком, их создавшим.
Примечание
О писанны е в данной главе методы использовались при создании м ногих
слож ных ф ормул, приведенны х в книге.
Применить ли мегаформулу в каждом конкретном случае — непростой вопрос. Не­
сколько коротких формул вместо одной длинной легче создать и “отладить”, поэтому
510
Часть V. Полезные методики применения формул
многие люди считают, что преимущества мегаформул не компенсируют их недостатки.
Решать вам.
Создание мегаформул: простой пример
Создание мегаформулы в основном заключается в копировании текста одной форму­
лы и его вставке в другую формулу. Начнем с относительно простого примера. Посмот­
рите на рабочий лист, показанный на рис. 20.1. На данном листе слева для вычисления
займов под залог недвижимости используется множество формул.
Рис. 20.1. В данной электронной таблице для вычисления займов под залог не­
движимости используется большое количество формул
Компакт-диск
Д е м онстрируем ы е прим еры содерж атся в ф айле t o t a l
(ch a p ter 2 0 _ R U S . x s l x ) на прилагаем ом ком пакт-диске.
in te r e st .x lsx
В разделе результатов рабочего листа используется информация, представленная
в разделе вводимых данных, и содержатся формулы, показанные в табл. 20.1.
Таблица 20.1. Формулы, используемые для вычислений
Ячейка
Формула
СЮ
СИ
С12
С13
С14
=С4 *С5
=С4-С10
=ПЛТ (С7 /1 2 ; С6 ; - С И )
=С12 *Сб
=С13-СИ
Описание
Вычисляет аванс
Вычисляет сумму займа
Вычисляет месячные выплаты
Вычисляет суммарные основные выплаты
Вычисляет суммарные проценты
Предположим, что нас интересует только суммарный процент (ячейка С14). Вы, ко­
нечно же, можете скрыть строки, содержащие лишнюю информацию, однако существует
возможность создать единственную формулу, которая бы выполняла работу нескольких
промежуточных.
Примечание
Данный прим ер привод ится исклю чительно для д е м о н стр а ц ии методики
создания м егаф орм ул. На сам ом деле с этой же задачей отлично справля­
ется функция ПРОЦПЛАТ.
Глава 20. Создание мегаформул
511
Формула, вычисляющая выплаченный процент, зависит от формул в ячейках С И
иС13 (прямая зависимость). Кроме того, формула в ячейке С13 зависит от формулы
в ячейке С12, которая, в свою очередь, подчиняется ячейке С И . Таким образом, для вы­
числения общего дохода используется пять формул. Ниже приведено описание действий,
которые необходимо выполнить для того, чтобы создать единственную формулу, вычис­
ляющую общий процент (без использования промежуточных формул). В ячейке С14 со­
держится следующая формула:
=С13-С11
Ниже приведено описание процесса преобразования данной формулы в мегаформулу.
1. Ссылку на ячейку С13 замените формулой, содержащейся в данной ячейке. Пе­
ред этим заключите данную формулу в круглые скобки. Формула в ячейке С14
примет следующий вид:
= (С12*С6) - С И
2. Ссылку на ячейку С12 также замените формулой, содержащейся в данной ячейке.
Формула в ячейке С14 примет следующий вид:
= (ПЛТ (С 7/12 ;С 6 ;- С И ) *С6) - С И
3. Ссылки на ячейку С И замените формулой, содержащейся в данной ячейке. Пе­
ред копированием формулу необходимо заключить в круглые скобки. Теперь
формула в ячейке С14 имеет следующий вид:
= ( П Л Т (С 7 /1 2 ;С 6 ;- ( С 4 - С 1 0 ) ) * С 6 ) - (С4-С10)
4. Ссылки на ячейку СЮ замените формулой, содержащейся в данной ячейке. Пе­
ред копированием формулу необходимо заключить в круглые скобки. После это­
го формула в ячейке С14 примет следующий вид:
= (П Л Т(С 7/12; С б; - ( С 4 - ( С 4 * С 5 ) ) ) * С 6 ) - ( С 4 - ( С 4 * С 5 ) )
Теперь формула содержит ссылки только на ячейки вводимых данных. Можно, не
опасаясь, удалить формулы в ячейках С 10:С 13, так как работу всех промежуточных
формул заменила всего одна мегаформула.
Если вы не специалист мирового класса по написанию формул Excel, маловероятно,
что вы сможете написать подобную мегаформулу без предварительного создания про­
межуточных.
Создание мегаформул по своей сути сводится к подстановке текста формул вместо
ссылок на соответствующие ячейки. Эти подстановки выполняются до тех пор, пока
в окончательной формуле не исчезнут ссылки на ячейки с промежуточными формулами.
На каждом этапе проверка мегаформулы сводится к проверке ее результата, который не
должен меняться. В приведенном выше примере некоторые действия требовали заклю­
чения копируемых формул в круглые скобки с целью обеспечения корректного порядка
вычислений.
Копирование текста из формулы
Создание м егаф орм улы с о с то и т в копировании текста ф ормулы и замене этим те к­
стом ссы лки на ячейку. Для копирования со д е р ж и м о го ф ормулы активизируйте ячейку
и нажмите клавиш у <F 2>. После это го вы делите те кст ф ормулы (без знака равенства),
используя ком бинацию клавиш <S h ift+ H o m e > , а затем — < S h ift+ -> > . Нажав ком бина­
цию клавиш <C trl+ C > , ско п ир уй те вы деленны й те кст в буф ер обмена. А ктивизируйте
ячейку, содерж ащ ую мегаф орм улу, и нажмите <F 2>. И спользуйте клавиши со стрел ка­
512
Часть V. Полезные методики применения формул
ми совм естно с клавишей <S hrft> для вы деления зам еняем ой ссы лки. В заклю чение
с пом ощ ью клавиш <C trl+V > зам ените вы деленны й текст содерж им ы м буф ера обмена.
В некоторы х случаях для обеспечения корректной работы ф ормулы копируем ы й
текст необходим о заклю чить в круглые скобки. Если после вставки текста в ф ормулу
возвращ аемое ею значение изм еняется, отм ените вставку, нажав <C trl+ Z> . Заклю чите
копируем ую ф ормулу в скобки и попробуйте вставить снова.
Примеры мегаформул
Данный раздел содержит еще три примера использования мегаформул. Эти примеры
призваны продемонстрировать, как использование мегаформул позволяет рационализи­
ровать выполнение ряда задач. Используя эти примеры, вы сможете очистить списки со­
трудников путем удаления отчеств и промежуточных инициалов, найти позицию послед­
него пробела в строке, а также определить правильность номера кредитной карточки.
Использование мегаформулы д л я удаления отчеств
и промежуточных инициалов
Рассмотрим рабочий лист со столбцом, включающим
полные имена людей (рис. 20.2). Предположим, что рабо­
чий лист содержит тысячи фамилий, при этом требуется со­
кратить все записи, удалив имена и инициалы, но вы не
способны написать макрос VBA, а на редактирование спи­
ска вручную уйдет не один час. Таким образом, остается
лишь использовать формулы. Заметьте, что не во всех по­
лях существуют отчества и промежуточные инициалы, что
делает задание еще более сложным. Для решения этой за­
дачи применим несколько промежуточных формул.
На рис. 20.3 представлено решение, для получения ко­
торого потребовалось шесть промежуточных формул, описанных в табл. 20.2. Список
сотрудников отображен в столбце А, а результат — в столбце Н. В столбцах с В по G со­
держатся промежуточные формулы.
Компакт-диск
Ф айлы 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. Для удаления фамилий и инициалов потребовалось шесть промежуточных формул
513
Глава 20. Создание мегаформул
Таблица 20.2. Промежуточные формулы в первой строке рабочего листа,
показанного на рис. 20.3
Описание действия
Промежуточная формула
Ячейка
В1
С1
D1
=СЖПРОБЕЛЫ(А1)
=НАЙТИ(" ";В1;1)
=НАЙТИ(" ";В1;С1+1)
Удаляет лишние пробелы
Е1
=ЕСЛИОШИБКА(Dl;С1)
Использует первый пробел, если второго
не существует
F1
=ЛЕВСИМВ(В1;Cl-1)
=ПРАВСИМВ(В1;ДЛСТР(В1)-Е1)
=F1&" "&G1
Извлекает имя
G1
Н1
Находит позицию первого пробела
Находит позицию второго пробела, если
он есть
Извлекает фамилию
Объединяет имя и фамилию
Обратите внимание, что в ячейке Е1 используется функция ЕСЛИОШИБКА, введенная
только в версии Excel 2007. Для совместимости с предыдущими версиями программы
вместо нее можно использовать другую формулу:
=ЕСЛИ(ЕОШИБКА( D l ) ; C 1 ; D 1 )
Примечание
Следует отметить, что данный алгоритм не идеален. Например, он не будет
работать, если в столбец А занесена только фамилия человека (например,
Сидоров). Также он не сработает, если присутствует два вторых имени (напри­
мер, Джон Яков Роберт Смит). Этот недостаток обусловлен тем, что ф орму­
ла ищ ет в записи второй пробел. В результате в данном случае ф ормула вер­
нет результат Джон Роберт Смит. Далее будет представлен метод формулы
массива, используемый для определения последнего пробела в строке.
Приложив немного усилий, можно устранить все промежуточные формулы и заме­
нить их единственной мегаформулой. Такой результат достигается путем создания всех
промежуточных формул и последующего редактирования конечной результирующей
формулы (в данном случае находящейся в столбце Н). Все ссылки на ячейки заменяются
копиями формул в этих ячейках. К счастью, для копирования и вставки формул можно
использовать буфер обмена (см. выше). Этот процесс должен продолжаться до тех пор,
пока единственной ссылкой не останется ссылка на ячейку А1. По завершении процесса
будет получена следующая мегаформула, записанная в одной ячейке.
=ЛЕВСИМВ(СЖПРОБЕЛЫ( А 1 ) ; НАЙТИ(" " ; СЖПРОБЕЛЫ( А 1 ) ; 1 ) 1 ) & " 11&ПРАВСИМВ (СЖПРОБЕЛЫ (А 1 ) ; ДЛСТР (СЖПРОБЕЛЫ (А1) ) ЕСЛИОШИБКА(НАЙТИ("
СЖПРОБЕЛЫ( А 1 ) ;
НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ) + 1 ) ; НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ) ) )
Если формула работает правильно, столбцы с промежуточными формулами можно
удалить, так как они больше не используются.
Пошаговое описание процедуры
Если вам все еще не до конца понятен данный процесс, ниже приведено пошаговое
описание используемой процедуры.
1. Посмотрите на формулу в ячейке Н1 (см. рис. 20.3). В ней есть две ссылки (на
ячейки F1 и G1):
=F1&" "&G1
514
Часть V. Полезные методики применения формул
2. Активизируйте ячейку G1 и скопируйте формулу (без знака равенства) в буфер
обмена.
3. Активизируйте ячейку Н1 и замените ссылку на ячейку G1 содержимым буфера
обмена. Теперь в ячейке Н1 будет содержаться следующая формула:
=F1&"
" &ПРАВСИМВ(В1; Д Л С Т Р (В 1 ) - Е 1 )
4. Активизируйте ячейку F1 и скопируйте формулу (без знака равенства) в буфер
обмена.
5. Активизируйте ячейку Н1 и замените ссылку на ячейку F1 содержимым буфера
обмена. Теперь в ячейке Н1 будет содержаться следующая формула:
=ЛЕВСИМВ( В 1 ; C l - 1 ) & "
" &ПРАВСИМВ(В1; Д Л С Т Р (В 1 ) - Е 1 )
6. Теперь формула в ячейке Н1 содержит ссылки на три ячейки ( B l , С1 и Е1). Эти
ссылки необходимо заменить формулами, содержащимися в данных ячейках.
7. Замените ссылку на ячейку Е1 формулой, которая включена в данную ячейку. Ре­
зультат будет следующим:
=ЛЕВСИМВ(B l ; C l - 1 ) & "
" &ПРАВСИМВ( В 1 ; Д Л С Т Р (В 1 ) -ЕСЛИОШИБКА( D 1 ; С 1 ) )
8. Теперь формула в ячейке Н1 имеет ссылку на ячейку D1. Скопируйте формулу из
ячейки D1 и замените обе ссылки на нее. Формула примет следующий вид:
=ЛЕВСИМВ(В1;С1-1)&" "&ПРАВСИМВ(В1; ДЛСТР(В1) ЕСЛИОШИБКА(НАЙТИ(" " ; В 1 ; С 1 + 1 ) ; С 1 ) )
9. Замените три ссылки на ячейку С1 формулой, содержащейся в данной ячейке. Ре­
зультат будет таким:
=ЛЕВСИМВ(В1; НАЙТИ( " " ; B l ; 1 ) - 1 ) & "
ЕСЛИОШИБКА( НАЙТИ( " " ; В 1 ; Н А Й Т И ( "
" &ПРАВСИМВ(В1; Д Л С Т Р (В 1 ) В 1 ) + 1 ) ; НАЙТИ( " " ; В 1 ) ) )
10. И наконец, замените семь ссылок на ячейку В1 формулой, содержащейся в дан­
ной ячейке:
=ЛЕВСИМВ(СЖПРОБЕЛЫ(А1) ; НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ; 1 ) 1)&" "&ПРАВСИМВ(СЖПРОБЕЛЫ(А1); ДЛСТР(СЖПРОБЕЛЫ(А1) ) ЕСЛИОШИБКА(НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ;
НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ) + 1 ) ; НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ) ) )
Обратите внимание на то, что ячейка Н1 теперь содержит ссылки только на А1. Сле­
довательно, мегаформула готова. Она выполняет точно те же операции, что и все проме­
жуточные формулы, которые теперь удалены.
После создания мегаформулы можете присвоить ей имя, чтобы упростить ее исполь­
зование. Для этого выполните следующие операции.
1. Скопируйте текст мегаформулы в буфер обмена.В данном примере мегаформула
ссылается на ячейку А1.
2. Активизируйте ячейку В1, расположенную справа от ячейки, на которую ссыла­
ется мегаформула.
3. Выберите команду Ф о р м ул ы 1^ О п р е д е л е н н ы е и м е н а м П р исв о ить и м я ^ П р и с в о ить имя. Активизируется диалоговое окно С о з д а н и е им ени.
4. В поле И м я введите произвольное слово, например Б езИ н и ц и ал о в.
5. В поле Д и а п а з о н скопируйте текст мегаформулы.
6. Щелкните на кнопке О К, чтобы закрыть диалоговое окно создания имени.
Глава 20. Создание мегаформул
515
После выполнения этих операций можно ввести в любую ячейку следующую форму­
лу, и она обработает содержимое ячейки, расположенной слева от нее:
=БезИнициалов
Например, если ввести эту формулу в ячейку К8, в ней будут отображаться имя и фа­
милия из ячейки J 8 , но уже без инициалов.
Перекрестная ссылка
Создание и прим енение им енованны х ф ормул более подробно р а ссм а тр и ­
вается в главе 3.
В приведенной выше мегаформуле используется функция ЕСЛИОШИБКА, сущест­
вующая только в версиях Excel 2007 и старше. Для совместимости с предыдущими вер­
сиями можно использовать следующую мегаформулу:
=ЛЕВСИМВ(СЖПРОБЕЛЫ( А 1 ) ; НАЙТИ("
СЖПРОБЕЛЫ( А 1 ) ; 1 ) 1)&" "&ПРАВСИМВ(СЖПРОБЕЛЫ( А 1 ) ; ДЛСТР(СЖПРОБЕЛЫ( А 1 ) ) ЕСЛИ(ЕОШИБКА(НАЙТИ(" " ; СЖПРОБЕЛЫ( А 1 ) ;
НАЙТИ(" ";СЖПРОБЕЛЫ( А 1 );1 )+ 1 ));НАЙТИ(" ";СЖПРОБЕЛЫ ( А 1 );1 );
НАЙТИ(" " ; СЖПРОБЕЛЫ(А 1 ) ; НАЙТИ(" " ; СЖПРОБЕЛЫ(А1) ; 1 ) + 1 ) ) )
Сравнение скорости и эффективности
По причине сложности мегаформулы может показаться, что использование такой ме­
тодики приводит к замедлению вычислений. На самом деле ничего подобного не проис­
ходит. В качестве тестового примера была создана рабочая книга, использующая мега­
формулу 150 тысяч раз. Затем была создана другая рабочая книга, в которой для получе­
ния 150 тысяч результатов использовалось шесть промежуточных формул. Полученные
результаты времени вычислений и размера файла представлены в табл. 20.3.
Таблица 20.3. Сравнение промежуточных формул и мегаформулы
Метод
Время пересчета (секунды)
Размер файла
Промежуточные формулы
5,2
13,5 Мбайт
Мегаформула
2,8
3,07 Мбайт
Именованная мегаформула
2,8
2,67 Мбайт
Результаты, конечно же, будут зависеть от скорости процессора и объема установ­
ленной оперативной памяти.
Использование мегаформулы в данном случае приводит к увеличению скорости вы­
числений и существенному уменьшению размера рабочей книги.
Компакт-диск
Тестовы е листы для проверки б ы стродействия данной м егаф орм улы п р и в е ­
дены в ф айлах 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. Полезные методики применения формул
Использование мегаформулы д ля поиска позиции
последнего пробела в строке
Как уже отмечалось, в приведенном выше примере есть слабое место: для определе­
ния второго имени формула выполняет поиск второго пробела. Более правильно было бы
искать последний пробел. К сожалению, в Excel нет простого способа определения пози­
ции конкретного символа, первого с конца строки. В примере данного раздела приводит­
ся решение указанной проблемы.
©
Перекрестная ссылка
В данном методе были использованы м ассивы (для ознаком ления с этой
тем ой можете обратиться к части IV).
В приведенном примере описывается создание мегаформулы, которая возвращает по­
зицию последнего символа пробела в строке. При желании можете изменить данную
формулу для работы с любым другим символом.
Создание промежуточных формул
Основная идея сводится к созданию массива символов строки, расположенных в об­
ратном порядке. После того как такой массив будет создан, мы сможем использовать
функцию ПОИСКПОЗ для нахождения первого пробела в массиве (т.е. последнего в ис­
ходной строке).
На рис. 20.4 показан результат работы промежуточных формул. Ячейка А1 содержит
случайное имя, состоящее из 12 символов. В диапазоне В1 : В 1 2 содержится следующая
формула массива:
{ =СТР ОКА( ДВССЫЛ( " 1 : " & Д Л С Т Р ( А 1 ) ) ) }
Рис. 20.4. Все промежуточные формулы этого
листа будут преобразованы в мегаформулу
Компакт-диск
Д ем онстрируем ы е прим еры содерж атся в файле p o s i t i o n o f t h e
s p a c e . x l s x (Chapter20_RUS . x s l x ) на прилагаем ом ком пакт-диске.
la st
Чтобы ввести формулу во всем диапазоне В 1 : В 1 2 , вначале выделите его, затем вве­
дите формулы и нажмите клавиши <Ctrl+Shift+Enter>. Фигурные скобки вводить не нуж­
но; Excel добавит их автоматически для обозначения формулы массива. Данная формула
возвращает массив из двенадцати последовательных целых чисел'.
Глава 20. Создание мегаформул
517
В диапазоне С 1 : С12 содержится следующая формула массива:
{=ДЛСТР( A I ) + 1 - В 1 : В 1 2 }
Данная формула размещает целые числа, полученные в столбце В, в обратной после­
довательности.
Диапазон D l : D 12 содержит следующую формулу массива:
{ПСТР(A I ; C l : С 1 2 ; 1 ) }
Указанная формула использует функцию ПСТР для извлечения отдельных символов
из ячейки А1. Функция ПСТР использует в качестве второго аргумента массив C l : С12.
Результатом будет массив символов, расположенных в обратном порядке.
В ячейке Е1 содержится следующая формула:
=П0ИСКП03(" " ; D l :D 1 2 ;0)
Данная формула, не являющаяся формулой массива, использует функцию ПОИСКПОЗ
для получения позиции первого пробела в диапазоне D l :D 1 2 . В примере, приведенном
на рис. 20.4, формула возвращает значение 6. Это говорит о том, что первый пробел яв­
ляется шестым символом с конца в тексте ячейки А1.
В ячейке F1 содержится следующая формула:
=ДЛСТР(А1)+1-Е1
Эта формула возвращает позицию последнего пробела в строке.
Вам интересно, как все эти формулы объединить в одну? Следующий раздел ответит
на этот вопрос.
Создание мегаформулы
В данный момент в ячейке 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> ).
3. Теперь формула в ячейке F1 содержит ссылку на диапазон С 1 : С 1 2 , который
также содержит формулу массива. Замените ссылку на диапазон С1 :С 12 содер­
жащейся в нем формулой, перенеся данную формулу в ячейку F1.
{ =ДЛСТР(А 1) + 1 - ПОИСКПОЗ(" " ; ПСТР(А 1 ; ДЛСТР(А 1) + 1 - В 1 : В 1 2 ; 1 ) ; 0 ) }
518
Часть V. Полезные методики применения формул
4. Замените ссылку на диапазон В 1:В 12 содержащейся в нем формулой массива.
Ниже приведен полученный результат.
{=ДЛСТР(А 1 ) + 1 - ПОИСКПОЗ(" " ; ПСТР(А 1 ; ДЛСТР(А1) + 1 СТРОКА(ДВССЫЛ( " 1 : "&ДЛСТР(А1)) ) ; 1 ) ; 0 ) }
Итак, формула в ячейке F1 ссылается только на ячейку А1; именно такой результат
мы должны были получить. Мегаформула выполняет всю необходимую работу, поэтому
все промежуточные формулы можно смело удалить.
Примечание
Н есмотря на то что в п рим ере использовалась 12-значная запись и при с о з ­
дании ф ормулы использовались диапазоны из 12 строк, конечная ф ормула
не им еет ни одной ссы лки на эти диапазоны . С ледовательно, данная м е га ­
ф ормула будет работать со строкам и лю бой длины .
Запуск мегаформулы
На рис. 20.5 показан рабочий лист, содержащий в столбце А список сотрудников.
Столбец В содержит мегаформулу, созданную в предыдущем подразделе. В столбце С
представлена формула, которая извлекает символы, следующие после последнего пробе­
ла (они составляют фамилию, содержащуюся в столбце А).
Рис. 20.5. Столбец в содержит мегаформулу, ко­
торая возвращает позицию последнего пробела в
записи, находящейся в столбце а
Например, в ячейке С1 содержится следующая формула:
= П Р А В С И М В (А 1 ;Д Л С Т Р (А 1 )-В 1 )
При желании можете удалить формулы из столбца В и создать специальную формулу,
возвращающую фамилию. Для этого замените ссылку на ячейку В1 содержащейся в ней
формулой. Результатом будет следующая формула массива:
{=ПРАВСИМВ(А1/ДЛСТР(А1)- (ДЛСТР(А1)+1ПОИСКПОЗ(" " /ПСТР(А1/ДЛСТР(А1)+ 1СТРОКА(ДВССЫЛ( " 1 : "&ДЛСТР(А1)) ) /1 ) / 0 ) ) ) }
Примечание
Текст ф ормулы, скоп ир о ва н н о й из ячейки B l, заклю чается в круглые скобки.
Если э то го не сделать, последовательность вы числений в ф ормуле будет
наруш ена и будет получен некорректны й результат.
Глава 20. Создание мегаформул
519
Использование мегаформулы д ля проверки номера
кредитной карточки
С помощью относительно сложного алгоритма анализа цифр в номере кредитной кар­
точки можно определить корректность номера. Кроме того, проанализировав первые циф­
ры и длину номера, программа может определить и тип кредитной карточки. В табл. 20.4
представлена информация, описывающая четыре основных типа кредитных карточек.
Таблица 20.4. Информация о четырех видах кредитных карточек
Кредитная карточка
Начальные цифры
Количество цифр
Mastercard
Visa
5 1 -5 5
4
16
13 или 16
American Express
34 или 37
15
6011
16
Discover
Примечание
Проверка в данном случае означает определение правильности структуры
се р и й н о го ном ера кредитной карточки. Конечно же, данная м етодика не п о ­
зволяет вы яснить, соответствует ли ном ер ф актическом у лицевом у счету
кредитной карточки.
Проверить номер кредитной карточки можно путем обработки контрольной суммы
составляющих его цифр. Номера счетов большинства кредитных карточек используют
десятичный алгоритм проверки знаков. Ниже приведены последовательные операции
стандартной процедуры.
1. Добавьте нули впереди номера счета для получения 16-значного числа.
2. Начиная с первой цифры, удвойте через раз цифры номера счета. Если в резуль­
тате вы получите двузначное число, сложите обе цифры.
3. Сложите восемь значений, полученных на втором этапе, и сумму пропущенных
цифр исходного номера.
4. Если полученная на третьем этапе сумма без остатка делится на 10, номер кре­
дитной карточки действителен.
В примере данного подраздела описана мегаформула, определяющая действитель­
ность номера кредитной карточки.
Базовые формулы
На рис. 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 ) на прилагаем ом ком пакт-диске.
Часть V. Полезные методики применения формул
520
Рис. 20.6. Формулы данной рабочей книги определяют действитель­
ность номера кредитной карточки
В представленной рабочей книге номер кредитной карточки вводится в ячейке F1,
без пробелов и дефисов. Далее вводится формула в ячейке F2. Данная формула при не­
обходимости добавляет нули в начале номера до получения 16-значного номера. Осталь­
ные формулы используют строку в ячейке F2.
=ПОВТОР( " 0 " ; 1 6 -ДЛСТР( F I ) ) &F1
Предупреждение
При вводе ном ера кредитной карточки, со де р ж а щ е го более 15 знаков, с л е ­
дите, чтобы програм м а не округлила е го д о 15 знаков. М ож но пом естить пе ­
ред ном ером сим вол апостроф а или предварительно прим енить к ячейке
текстовы й ф ормат с помощ ью команды Г л а в н а я ^Ч и сл о ^Ч и сл о в о й ф о р м а т^
Текстовый.
Столбец А содержит ряд целых чисел от 1 до 16, представляющих положение цифр
кредитной карточки.
Столбец В содержит формулы, извлекающие цифры из ячейки F2. Например, в ячей­
ке В 5 содержится следующая формула:
=ПСТР( $ F $ 2 ; А 5 ;1)
Столбец С содержит множители для каждого знака кредитной карточки: 2 и 1 поочередно.
Столбец D содержит формулы, выполняющие умножение чисел в столбце В на мно­
жители в столбце С. Например, формула в ячейке D5 имеет следующий вид:
=В5*С5
Столбец Е содержит формулы, которые суммируют знаки, отображаемые в столбце D.
Однозначные числа возвращаются без изменений. Если число двузначное, в столбце Е
отображается сумма составляющих его цифр. Например, если в столбце D содержится
число 12, формула из столбца Е вернет значение 3 (т.е. 1+2). Данное действие выполня­
ет следующая формула:
=ЦЕЛОЕ( ( D 5 / 1 0 ) +ОСТАТ( ( D 5 ) ; 1 0 ) )
Глава 20. Создание мегаформул
521
Ячейка Е21 содержит функцию СУММ, складывающую значения в столбце Е.
=СУММ(Е5:Е 2 0 )
Формула в ячейке G1 вычисляет остаток деления ячейки Е 21 на 10. Если он равен ну­
лю, номер кредитной карточки считается корректным, и формула отображает сообщение
ПРАВИЛЬНО. В остальных случаях формула возвращает сообщение НЕ ПРАВИЛЬНО.
=ЕСЛИ(ОСТАТ(Е21;1 0 ) = 0 ; "ПРАВИЛЬНО"; "НЕ ПРАВИЛЬНО")
Преобразование в формулы массива
Поскольку промежуточные формулы находятся в нескольких строках, конечная ме­
гаформула будет формулой массива.
Сначала необходимо преобразовать все формулы в формулы массива. Заметьте, что
в столбцах А и С находятся значения, а не формулы. Для того чтобы значения можно бы­
ло использовать в мегаформуле, они должны генерироваться формулами (если точнее,
формулами массива).
1. Введите в диапазоне А 5 : А2 0 приведенную ниже формулу массива. Данная фор­
мула возвращает ряд из 16 последовательных целых чисел:
{ =СТРОКА(ДВССЫЛ( " 1 : 1 6 " ) }
2. В столбце В выделите диапазон В5 : В 2 0 и введите следующую формулу массива,
извлекающую знаки из номера кредитной карточки:
{=ПСТР( $ F $ 2 ; А 5 :А 2 0 ; 1 ) }
3. Затем в столбце С введите формулу массива, которая генерирует чередующиеся
значения, умножаемые на 2 и 1. Следующую формулу следует ввести в диапазон
С5 : С2 0:
{=ОСТАТ(СТРОКА(ДВССЫЛ"1 : 1 6 " ) ) ; 2 ) + l }
4. В столбце D выделите диапазон D5 :D2 0 и введите следующую формулу массива:
{ = В 5 : В 2 0* С 5: С 20}
5. В заключение выделите диапазон Е5 : Е 2 0 и введите представленную ниже фор­
мулу массива.
{ =ЦЕЛОЕ( ( D 5 : D 2 0 / 1 0 ) +ОСТАТ( ( D 5 : D 2 0 ) ; 1 0 ) ) }
Теперь рабочий лист содержит пять столбцов из шестнадцати строк и всего лишь
пять реальных формул, являющихся многоячеечными формулами массива.
Построение мегаформулы
Процесс создания мегаформулы для данной задачи начинается с ячейки G1, содер­
жащей конечный результат. Исходная формула в данной ячейке имеет такой вид:
=ЕСЛИ(ОСТАТ(Е21 ; 1 0 ) = 0 ; " ПРАВИЛЬНО" # "НЕ ПРАВИЛЬНО")
1. Вначале заменим ссылку на ячейку Е 2 1 содержащейся в ней формулой. Формула
в ячейке G1 приобретет следующий вид:
=ЕСЛИ(ОСТАТ(СУММ(Е5: Е 2 0 ) ; 1 0 ) = 0 ; "ПРАВИЛЬНО"; "НЕПРАВИЛЬНО")
2. Теперь заменим ссылку на диапазон Е5 : Е 20 содержащейся в нем формулой мас­
сива. Формула станет формулой массива, поэтому для ее ввода необходимо ис­
пользовать комбинацию клавиш <Ctrl+Shift+Enter>. Формула в ячейке G1 после
данной подстановки принимает следующий вид:
522
Часть V. Полезные методики применения формул
{ =ЕСЛИ( ОСТАТ( СУММ( ЦЕЛОЕ( ( D 5 : D2 0 / 1 0 ) +
ОСТАТ( ( D 5 : D 2 0 ) ; 1 0 ) ) } ) ; 1 0 ) = 0 ; "ПРАВИЛЬНО"; "НЕПРАВИЛЬНО") }
3. Заменим ссылку на диапазон D 5 : D2 0 содержащейся в нем формулой массива.
Формула в ячейке G1 приобретет следующий вид:
{=ЕСЛИ(ОСТАТ(СУММ(ЦЕЛОЕ( ( В 5 : В 2 0 * С 5 : С 2 0 / 1 0 ) +
ОСТАТ( ( В 5 : В 2 0 * С 5 : С 2 0 ) ; 1 0 ) ) } ) ; 1 0 ) = 0 ;
"ПРАВИЛЬНО"; "НЕПРАВИЛЬНО") }
4. Далее заменим ссылку на диапазон С5 : С2 0 содержащейся в нем формулой мас­
сива. Обратите внимание, что текст скопированной формулы заключается в скоб­
ки. Ниже показан полученный результат.
{=ЕСЛИ(ОСТАТ(СУММ(ЦЕЛОЕ( ( В 5 : В 2 0 * ( О С Т А Т ( С Т Р О К А
(ДВССЫЛ ( " 1 : 1 6 " ) ) ; 2 )
+ 1 ) / 1 0 ) +ОСТАТ( ( В 5 : В 2 0 * ( О С Т А Т ( С Т Р О К А ( Д В С С Ы Л " 1 : 1 6 " ) ) ; 2 ) + 1 ) ) ;
1 0 ) ) } ) ; 1 0 ) = 0 ; " ПРАВИЛЬНО" ; " НЕ ПРАВИЛЬНО" ) }
5. Замена ссылки на диапазон В 5 : В 2 0 содержащейся в нем формулой массива при­
ведет к следующему результату.
{=ЕСЛИ(ОСТАТ(СУММ(ЦЕЛОЕ( ( ПСТ Р ( $ F $ 2 ; А 5 : А 2 0 ; 1 ) *
(ОСТАТ(СТРОКА(ДВССЫЛ"1 : 1 6 " ) ) ; 2 ) + 1 ) / 1 0 ) +
ОСТАТ( ( ПСТР ( $ F $ 2 ; А 5 : А 2 0 ; 1 ) * ( ОСТАТ(СТРОКА(ДВССЫЛ( " 1 : 1 6 " ) ) ; 2 ) +
1 ) ) ; Ю ) ) } ) ; 1 0 ) = 0 ; "ПРАВИЛЬНО"; "НЕ ПРАВИЛЬНО") }
6. Заменим ссылку на диапазон А 5 : А2 0 содержащейся в нем формулой массива.
Формула в ячейке G1 примет следующий вид.
{=ЕСЛИ(ОСТАТ(СУММ(ЦЕЛОЕ( ( П С Т Р ( $ F $ 2 ; СТРОКА(ДВССЫЛ( " 1 : 1 6 " ) ; 1 ) *
(ОСТАТ(СТРОКА(ДВССЫЛ"1: 1 6 " ) ) ; 2 ) + 1 ) / 1 0 ) +ОСТАТ( ( n C T P ( $ F $ 2 ;
СТРОКА(ДВССЫЛ( " 1 : 1 6 " ) ; 1 ) * (ОСТАТ(СТРОКА(ДВССЫЛ( " 1 : 1 6 " ) ) ; 2 ) +
1 ) ) ; 1 0 ) ) } ) ; 1 0 ) = 0 , "ПРАВИЛЬНО","НЕ ПРАВИЛЬНО")}
7. В заключение, заменим две ссылки на ячейку F2 формулой, содержащейся в дан­
ной ячейке. После выполнения подстановок мы получим представленную ниже
формулу.
{=ЕСЛИ(ОСТАТ(СУММ( ЦЕЛОЕ( ( П СТ Р (ПОВТОР( " 0 " ; 1 6 Д Л СТ Р ( А 2 ) ) S A 2 ; СТРОКА(ДВССЫЛ( " 1 : 1 6 " ) ) ; 1 ) *
(ОСТАТ(СТРОКА(ДВССЫЛ ( " 1 : 1 6 " ) ) ; 2 ) + 1 ) / 1 0 ) +
О С Т А Т ((ПСТР(ПОВТОР("0м ;16-ДЛСТР(А2))& А 2 ;СТ Р О К А ( Д В С С Ы Л ("1:16"));
1 ) * (ОСТАТ(СТРОКА(ДВССЫЛ ( " 1 : 1 6 " ) ) ; 2 ) + 1 ) ) ; 1 0 ) ) ) ; 1 0 ) = 0 ;
"ПРАВИЛЬНО"; "НЕ ПРАВИЛЬНО") }
Теперь можно удалить ставшие ненужными промежуточные формулы. Результирую­
щая мегаформула, имеющая длину в 275 символов, выполняет работу 51 промежуточной
формулы!
Генерация случайных имен
Заключительный пример представляет собой полезное приложение, позволяющее ге­
нерировать случайные имена и фамилии. В нем использованы три списка имен из Бюро
переписи населения США, состоящие из 4275 женских имен, 1219 мужских имен и
18839 фамилий. Все имена отсортированы по частоте использования населением США.
Мегаформула выбирает случайные имена, основываясь на вероятности их встречи в ре­
альной жизни. Таким образом, созданный список случайных имен будет выглядеть впол­
не реалистичным (распространенные имена в нем будут встречаться чаще редких).
Глава 20. Создание мегаформул
523
На рис. 20.7 показана эта рабочая книга. В ячейках В7 и В8 содержатся значения, оп­
ределяющие вероятности того, будет ли случайное имя именем мужчины и будет ли оно
содержать среднее имя. Случайно сгенерированные имена начинаются с ячейки А Н .
Рис. 20.7. Эта рабочая книга содержит мегаформулу, генерирующую слу­
чайные, но вполне реалистичные имена
Компакт-диск
Рабочая книга 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 не являются ком­
пьютерными программами. Вместе с тем, им присущи проблемы того же рода, что и
компьютерным программам. Если созданная формула не работает так, как предполага­
лось, источник проблемы необходимо идентифицировать и устранить.
Конечная цель в разработке электронной таблицы состоит в получении правильного
результата. В простых рабочих листах обычно не возникает проблем, касающихся опре­
деления правильности результатов. Но по мере увеличения размера и сложности рабочих
листов проверка достоверности становится более сложной задачей.
Внесение на рабочий лист изменений, даже весьма незначительных, может вызвать
эффект домино, который приведет к возникновению ошибок в других ячейках. Скажем,
можно случайно ввести значение в ячейке, ранее содержавшей формулу. Такая простая
ошибка зачастую существенно влияет на другие формулы рабочего листа, а сама ошибка
может быть обнаружена спустя большой промежуток времени после ее возникновения
(или вообще может быть никогда не обнаружена).
Часть V. Полезные методики применения формул
526
Поиск ошибок на рабочем листе
И спользование электронны х таблиц для ком пании м ож ет оказаться весьма р и с к о ­
ванным занятием . М ож но легко принять за д о сто ве р н ы й лю бой результат, выдаваемый
электронной таблицей. Если такой результат используется для принятия важ ного р е ­
шения, гарантия того, что он является правильны м, крайне необходим а.
И сследований, связанны х с ош ибкам и в электронны х таблицах, было проведено не
очень много. Вы полненны е в этом направлении работы выявили, что от 20 д о 40 п р о ­
центов всех электронны х таблиц содерж ат ош ибки оп р е д е л е н но го типа. Если вам и н те ­
ресны подобны е исследования, посетите сайт S p readsheet R esearch, поддерж иваем ы й
Рэймондом Панко из Гавайского университета:
h t t p ://p a n k o . cb a .h a w a ii. e d u /s s r /
Проблемы в формулах и их устранение
Ошибки в формулах можно разбить на шесть общих категорий.
•
Синтаксические ошибки. Возникла проблема с синтаксисом формулы. Например,
•
Логические ошибки. Формула не возвращает ошибку, однако она логически не­
существуют непарные скобки или функция имеет неверное количество аргументов.
правильна и возвращает неверный результат.
•
Неверные ссылки. С логикой в формуле все в порядке, однако в ней использует­
ся неверная ссылка на ячейку (например, формула СУММ может охватывать не все
данные, которые нужно просуммировать).
•
Семантические ошибки. Примером семантической ошибки может служить не­
верно написанное имя функции. Такую функцию Excel пытается интерпретиро­
вать как имя и возвращает ошибку #ИМЯ?.
•
Циклические ссылки. Циклическая ссылка встречается, когда формула прямо
или косвенно ссылается на ячейку, в которую она введена. Циклические ссылки
иногда создаются умышленно, но в большинстве случаев они приводят к возник­
новению ошибки.
•
Ошибка записи формулы массива. При вводе (или редактировании) формулы
массива необходимо использовать комбинацию клавиш <Ctrl+Shift+Enter>. Если
этого не сделать, Excel не распознает такую формулу как формулу массива. Если
вам повезет, Excel сообщит об ошибке; в худшем случае вы получите неправиль­
ный результат, не подозревая об этом.
•
Ошибка незавершенных вычислений. Формула не вычисляется в полном объе­
ме. Microsoft признала наличие определенных проблем в драйвере некоторых вер­
сий Excel. Для гарантии полного вычисления формул используйте клавиши
<Ctrl+Alt+F9>.
Синтаксические ошибки обычно легче всего обнаружить и устранить. В большинстве
случаев хорошо видно, в каком месте была допущена ошибка. Например, Excel не позво­
лит ввести формулу с недостающими скобками. Другие синтаксические ошибки также
обычно приводят к возвращению в ячейке сообщения об ошибке.
В данном разделе описаны некоторые общие проблемы, возникающие в формулах,
а также даны советы по их обнаружению и устранению.
Глава 21. Инструменты и методы отладки формул
527
Непарные скобки
В формуле каждой открывающей (левой) скобке должна соответствовать закрывающая
(правая). Обычно, если в формуле отсутствует необходимая скобка, Excel не позволит вве­
сти такую формулу. Исключением из данного правила являются простые формулы, исполь­
зующие функцию. Например, если ввести следующую формулу (с недостающей закры­
вающей скобкой), Excel примет ее и самостоятельно добавит недостающую скобку:
=СУММ(А1:500
Формула может содержать равное количество открывающих и закрывающих скобок,
но при этом они могут быть расставлены неправильно. Для примера рассмотрим сле­
дующую формулу, преобразующую текстовую строку таким образом, чтобы ее первый
символ стал прописным, а все остальные — строчными. Эта формула содержит пять пар
скобок, расставленных должным образом.
=ПРОПИСН(ЛЕВСИМВ(А1)) &ПРАВСИМВ(СТРОЧН(А1); ДЛСТР( A I ) - 1 )
Следующая формула также имеет пять пар скобок, однако расставлены они неверно.
В результате получается синтаксически правильная формула, которая возвращает невер­
ный результат.
=ПРОПИСН(ЛЕВСИМВ(А1)&ПРАВСИМВ(СТРОЧН(А1); ДЛСТР( A I ) - 1 ) )
Часто неправильная расстановка скобок приводит к возникновению синтаксической
ошибки, сопровождаемой сообщением о том, что введено слишком много или слишком
мало аргументов функции.
©
Совет
Excel может оказать вам пом ощ ь при работе с недостаю щ им и скобкам и. Ес­
ли при редактировании ф ормулы подвести указатель к скобке и нем ного п о ­
дож дать, Excel п рим ерно на одну секунду вы делит данную скобку и с о о тв е т­
ствую щ ую ей парную полуж ирны м начертанием. К то м у же соответствую щ ие
д р у г д р угу влож енны е скобки отображ аю тся одним цветом, при этом каж­
ды й уровень влож енности им еет свой цвет.
Ячейки заполнены знаками ##########
Ячейка может быть заполнена набором символов “решетки” (#) по одной из следую­
щих причин.
•
Ширины столбца недостаточно для размещения отформатированного числового
значения. Чтобы исправить такую ситуацию, можно либо расширить ячейку, либо
использовать другой числовой формат.
•
Ячейка содержит формулу, возвращающую некорректную дату или время. Напри­
мер, Excel не поддерживает даты до 1900 года и отрицательные значения времени.
Попытка отображения таких значений приводит к заполнению ячейки символами
“решеток”. Увеличение ширины ячейки не исправляет данную ошибку.
Автокоррекция формул
При вводе ф ормулы, содерж ащ ей синтаксическую ош ибку, Excel пытается о п р е д е ­
лить проблем у и предлагает ее реш ение в окне, приведенном ниже (чтобы оно п о я ви­
лось, нужно набрать ф орм улу вручную; если вставить ф ормулу из буф ера обмена, окно
автокоррекции на появится).
528
Часть V. Полезные методики применения формул
Будьте осторожны, принимая предлагаемые исправления, так как они не всегда оказы­
ваются верными. Для примера введем следующую формулу (с недостающими скобками):
=СРЗНАЧ (СУММ (AI : А12 ; СУММ ( В 1 : В12 ) )
Excel предлож ит представленное ниже исправление для ф ормулы:
=СРЗНАЧ(СУММ(А1:А12;СУММ(В1:В12)))
Если вы без разм ы ш лений прим ете такие изм енения, то получите синтаксически
корректную ф ункцию , однако это будет не та ф ункция, которая предполагалась.
На самом деле корректной ф ункцией долж на была быть следую щ ая:
=СРЗНАЧ(СУММ( A I :А 1 2 ) ; СУММ(В1: В 1 2 ))
Пустые ячейки на самом деле не пусты
Возможно, вы думаете, что при нажатии клавиши <пробел> содержимое ячейки
уничтожается. На самом деле при этом вставляется невидимый символ пробела, что не
эквивалентно уничтожению содержимого ячейки.
Например, следующая формула возвращает количество заполненных ячеек в диапазоне
A I : А10. Если содержимое некоторых ячеек данного диапазона “удалено” с помощью кла­
виши <пробел>, эти ячейки будут засчитаны, и формула вернет неверный результат.
=СЧЁТЗ(А1:А10)
Если формула не игнорирует пустые ячейки, проверьте, действительно ли они пусты. Что­
бы найти ячейки, содержащие только символы пробела, выполните следующие операции.
1. Активизируйте диалоговое окно Н а й ти и з а м е н и ть .
2. В поле Н а й ти введите * * (т.е. звездочку, пробел и звездочку).
3. Установите флажок Я ч е й к а ц е л и ко м .
4. Щелкните на кнопке Н а й ти все.
Если хоть одна ячейка содержит только символы пробела, в нижней части окна Н а й ­
ти и з а м е н и ть будет приведен их список.
Лишние символы пробела
Если существуют формулы, сравнивающие текст, будьте особенно внимательны: не­
которые строки могут содержать лишние пробелы. Проблема наличия лишних пробелов
особенно часто возникает при импорте данных из внешних источников.
Excel автоматически удаляет замыкающие пробелы при вводе данных вручную, одна­
ко это не относится к текстовым строкам. Невозможно просто глядя на ячейку уверенно
сказать, содержатся ли в ней замыкающие пробелы.
На рис. 21.1 показан некоторый текст в столбце А. Ниже приведена формула в В1,
скопированная в другие ячейки столбца.
=СЖПРОБЕЛЫ(А 1 ) =А1
Глава 21. Инструменты и методы отладки формул
529
Эта формула возвращает значение ЛОЖЬ, если ячейка содер­
жит ведущий пробел, замыкающий пробел или несколько пробе­
лов, следующих один за другим. В данном примере после слова
С обака есть замыкающий пробел, хоть это и не видно.
Формула возвращает ошибку
Формула может вернуть одно из следующих значений ошибки:
•
# Д Е Л / 0;
•
#Н/Д;
•
#ИМЯ?;
•
#ПУСТО!;
•
#ЧИСЛО!;
•
#ССЫЛКА!;
•
#ЗНА Ч !.
Рис. 21.1. Идентифика­
ция лишних пробелов
В последующих разделах рассмотрены возможные проблемы, вызывающие данные
ошибки.
Совет
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.2. Ошибка #дел/о ! возникает в случае
отсутствия значений в столбце с
Эта формула находит разницу в процентах между значениями в столбцах В и С. На­
чиная с июня данные отсутствуют, поэтому формула возвращает ошибку #ДЕЛ/0 !.
Чтобы исключить отображение ошибки, воспользуйтесь функцией ЕСЛИ, которая
проверяет наличие пустых ячеек в столбце С.
=ЕСЛИ(С2=0;
(С 2 - В 2 ) /С 2 )
Данная формула выводит пустую строку, если ячейка С2 пустая или содержит нуль;
противном случае будет выведено вычисленное значение.
Еще одно решение заключается в использовании функции ЕСЛИОШИБКА для провер­
ки существования любого условия ошибки. Следующая формула отобразит пустую стро­
ку в случае получения ошибки любого типа:
=ЕСЛИОШИБКА( ( С 2 - В 2 ) / С 2 ) ;"")
В предыдущих версиях Excel (до Excel 2007) функции ЕСЛИОШИБКА нет. В этом слу­
чае можно использовать альтернативную формулу:
=ЕСЛИ(ЕОШИБКА( ( С 2 - В 2 ) / С 2 ) ( С 2 - В 2 ) / С 2 ) )
Ошибка #н/д
Ошибка #Н/Д (нет данных) возникает, если в одной из ячеек, на которую ссылается
формула, отображается значение #Н/Д.
Совет
Некоторые пользователи для явного указания отсутствую щ их данных исполь­
зую т обозначения = з н а ч () или # н / д (что значит “ недоступно” ). При этом ста­
новится соверш енно ясно, что данные недоступны, а не удалены случайно.
Ошибка #Н/Д возникает также тогда, когда какая-либо функция поиска не может
найти соответствие.
Глава 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. Полезные методики применения формул
•
Ячейка, на которую ссылалась формула, была удалена. Например, представленная
далее формула отображает ошибку #ССЫЛКА! , если удалена строка 1, столбец А
или столбец В.
=А1/В1
•
Удален рабочий лист с ячейкой, на которую ссылается формула. Например, сле­
дующая формула возвращает ошибку #ССЫЛКА! , если удален Л и с т 2 .
= Л и с т 2 !А1
•
Формула скопирована в новое место, где относительные ссылки на ячейки стано­
вятся недействительными. Например, если скопировать следующую формулу из
ячейки А2 в ячейку А1, формула вернет ошибку #ССЫЛКА!, так как в ней будет
присутствовать ссылка на несуществующую ячейку.
=А1 -1
•
Ячейка была вырезана (с помощью команды Г л а в н а я ^ Б у ф е р о б м е н а ^ В ы р е ­
за ть или в результате нажатия <Ctrl+X>) и затем вставлена в ячейку, на которую
ссылается формула. Формула отобразит ошибку #ССЫЛКА!.
Ошибка #ЗНАЧ !
Ошибка #ЗНАЧ ! весьма распространена; она встречается в следующих ситуациях.
•
В качестве аргумента функции использованы данные несоответствующего типа
или же формула пытается выполнить операцию, используя некорректные данные.
Например, формула, складывающая значение с текстовой строкой, вернет ошибку
#ЗНА Ч !.
•
В качестве аргумента функции применяется диапазон, тогда как аргументом
должно быть единственное значение.
•
Пользовательская функция на языке VBA не вычислена. В некоторых версиях Excel
вставка или перемещение листов может приводить к возникновению данной ошиб­
ки. Для принудительного пересчета воспользуйтесь клавишами <Ctrl+Alt+F9>.
•
Пользовательская функция пытается выполнить недопустимую операцию. Напри­
мер, она не может изменить среду Excel или внести изменения в другие ячейки.
•
При вводе формулы массива вы забыли нажать клавиши <Ctrl+Shift+Enter>.
Обращайте внимание на цвет фона ячейки
При редактировании со д е р ж и м о го ячейки, вклю чаю щ ей ф ормулу, Excel использует
цветовое вы деление для обозначения ссы лок на ячейки и диапазоны . При этом на р а ­
бочем листе контурами такого же цвета вы деляю тся соо тве тствую щ ие ячейки и д и а п а ­
зоны. Таким образом , вы им еете возм ож ность визуально п росм отреть используем ы е
ф ормулой данные.
Цветные контуры м ожно изм енять, м одиф ицируя ссы лки на ячейку или диапазон.
Для изм енения используем ой ссы лки перетащ ите границу контура или маркер вы деле­
ния (которы й находится в правом нижнем углу контура). И спользовать данны й прием ,
как правило, легче, чем вручную изм енять формулу.
Глава 21. Инструменты и методы отладки формул
533
Проблемы с абсолютными и относительными ссылками
Как уже отмечалось в главе 2, ссылки на ячейки могут быть относительными (на­
пример, А 1), абсолютными (например, $ А $ 1 ) и смешанными (например, А $ 1 или $А 1).
Тип ссылки становится существенным только при копировании формулы в другие ячейки.
Довольно часто ошибки возникают вследствие использования относительных ссылок
вместо абсолютных. На рис. 21.3 ячейка С1 содержит ставку налога, используемую в
формулах столбца С. Формула в ячейке С4 имеет следующий вид:
=В4+(В4*$С $1)
Рис. 21.3. Формулы в ячейках С 4 : С 6 использу­
ют абсолютную ссылку на ячейку c i
Обратите внимание, что ссылка на ячейку С1 является абсолютной. При копировании
формулы в другие ячейки столбца С она продолжает ссылаться на ячейку С1. Если бы
ссылка на ячейку С1 была относительной, формула возвращала бы неверный результат.
Проблемы приоритета операторов
В Excel установлены строгие правила относительно порядка выполнения математиче­
ских операций. В табл. 21.1 приведены операторы с указанием их приоритета (чем
меньше число, тем раньше выполняется оператор). Например, из данной таблицы видно,
что умножение имеет более высокий приоритет, чем сложение; поэтому умножение бу­
дет выполняться раньше.
Таблица 21.1. Приоритет операторов в формулах Excel
Символ
Оператор
-
Смена знака (обращение)
1
%
Процент
2
А
Приоритет
Степень
3
Умножение и деление
4
+и -
Сложение и вычитание
5
5с
Объединение текста
6
= , с, > И о
Сравнение
7
* И
/
Если у вас возникают сомнения в вопросах подобного рода (или если вы просто хоти­
те сделать выражение более понятным), используйте круглые скобки. Использование
круглых скобок гарантирует выполнение операций в четко определенном порядке.
К примеру, следующая формула умножает ячейку А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 для этих вы ражений.
Использование круглых скобок в приведенной ниже формуле заставляет Excel интер­
претировать оператор как знак “минус”, а не как оператор обращения. Данная формула
возвращает значение 9.
=(-3)^ 2
Формулы не вычислены
Если в рабочем листе применяются пользовательские функции, написанные на VBA,
может случиться так, что у использующей их формулы возникают проблемы с пересче­
том, и формула возвращает неверный результат. Для принудительного пересчета всех
формул используйте комбинацию клавиш <Ctrl+Alt+F9>.
Реальные и отображаемые значения
Вы можете столкнуться с ситуацией, когда кажется, что сложение значений выполня­
ется с ошибкой. На рис. 21.4 показан рабочий лист, содержащий в каждой из ячеек диа­
пазона В2 : В4 следующую формулу:
= 1 /3
Ячейка В 5 содержит следующую формулу:
=СУММ(В2:В4)
Глава 21. Инструменты и методы отладки формул
535
Все эти ячейки отформатированы для отображения чисел .
с тремя знаками после запятой. Можно предположить, что
формула в ячейке В 5 дает неправильный результат (казалось
бы, результат должен быть равен 0 ,9 9 9 ). Однако данная
формула возвращает правильный результат, так как она ис­
пользует реальные значения из диапазона В2 :В 4 , а не ото- рис 21 .4 . Простая демонстбражаемые на экране.
рация “неправильного” слоВы можете дать указание Excel использовать в вычислени- жения чисел
ях отображаемые значения, установив флажок З а д а ть т о ч ­
но сть как на экр а н е в разделе Д о п о л н и т е л ь н о й П р и п е р е с ч е те э то й книги диалогового
окна параметров программы. Этот флажок применяется к активной рабочей книге.
Предупреждение
И спользуйте флажок Задать точность* как на экране с о сторож ностью , четко
понимая механизм е го работы. Его д е й ствие р а спространяется не только на
формулы, но и неп о ср е дстве н н о на вводимые в ячейки значения. Н апример,
если ячейка с о д е р ж ит значение 4 , 68 и отображ ается без десятичны х знаков
(т.е. как 5), установка д а н н о го флажка привед ет к п реобразованию числа
4 , 68 в 5, оо. Д анное изм енение необратимо, поэтом у восстановить прежнее
значение при снятии флажка Задать точность, как на экране невозможно. Го­
раздо лучшим реш ением является использование ф ункции округл, которая
округляет значения до заданного количества знаков после запятой (см. гла­
ву 10). За все долгие годы работы с програм м ой Excel у меня никогда не воз­
никала потребность в установке флажка Задать точность, как на экране.
Ошибки плавающей запятой
Компьютеры по своей природе не могут обеспечить бесконечную точность. Excel
хранит числа в двоичном представлении (используя для них 8 байт), которое соответст­
вует точности до 15 знаков. Некоторые числа нельзя точно выразить с использованием
восьми байт, поэтому они аппроксимируются.
Чтобы продемонстрировать то, как данное положение может привести к возникнове­
нию проблем, введем в ячейке А1 следующую формулу:
= (5 ,1 -5 ,2 )+ 1
Результатом данного выражения должно быть 0 ,9 . Однако, если отформатировать
данную ячейку для отображения 15 десятичных знаков, будет отображено значение
0 ,8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . Причиной этого является то, что сначала выполняется дейст­
вие в скобках, а промежуточный результат сохраняется в двоичном коде после аппрок­
симации. Затем формула добавляет к данному значению 1, а ошибка аппроксимации рас­
пространяется на конечный результат.
В большинстве случаев данный тип ошибки не представляет особой проблемы. Но,
если результат такой формулы проверяется логическим оператором, возникновение про­
блемы не исключается. Например, следующая формула (если в ячейке А 1 находится пре­
дыдущая формула) возвращает значение ЛОЖЬ, хотя должна возвращать ИСТИНА:
=А1=, 9
536
Часть V. Полезные методики применения формул
Одним из возможных способов устранения данной ошибки является использование
функции ОКРУГЛ. Следующая формула, благодаря сравнению значения в ячейке А1, ок­
ругленного до одного десятичного знака, возвращает значение ИСТИНА:
= О К Р У Г Л ( А 1 ; 1 ) =0,9
Ниже приведен еще один пример так называемой “проблемы точности”. Попробуйте
ввести следующую формулу:
=(1,333+1,223)-(1,333-1,234)
Эта формула должна вернуть нуль, однако на самом деле вернет 2 , 2 2 0 4 4 6 Е - 1 6
(число, очень близкое к нулю).
Если эту формулу ввести в ячейку А1, то следующая формула вернет текст Не нуль:
= Е С Л И ( А 1 = 0 ; " Н у л ь " ; " Не н у л ь " )
Одним из способов избежать проблемы “округления” до нуля является использование
формулы, подобной приведенной ниже.
= E C n H ( A B S ( А 1 ) < 1 Е - 6 ; " Н у л ь " ; " Не н у л ь " )
А
В этой формуле используется оператор “меньше” для сравнения модуля числа с очень
маленьким числом. В результате возвращается значение Н у л ь .
Ошибки “висящих” ссылок
После открытия рабочей книги вы можете увидеть сообщение, извещающее о суще­
ствовании ссылок на другие источники данных (рис. 21.5). Это сообщение иногда ото­
бражается даже в случае, когда рабочая книга вообще не содержит связанных формул.
Рис. 21.5. Excel таким образом спрашивает, не желаете ли вы
обновить ссылки в рабочей книге
Прежде всего, попробуйте использовать команду Файл^Сведения1
^Изменить свя­
зи с файлами. В открывшемся диалоговом окне Изменение связей выделяйте каждую
из ссылок и щелкайте на кнопке Разорвать связь. Если этот прием не решает проблему,
“висящая” ссылка могла быть вызвана в результате использования ошибочного имени.
Выберите команду Формулы^Определенные имена^Диспетчер имен. В открыв­
шемся диалоговом окне просмотрите список имен. Если встретите имя, ссылающееся на
значение ошибки #ССЫЛКА!, удалите его. Окно диспетчера имен содержит кнопку
Фильтр, с помощью которой можно отфильтровать имена с ошибками.
Перекрестная ссылка
“ В и ся щ и е ” ссы лки м огут образовы ваться при копировании рабочего листа,
содерж ащ его имена. Более детальную инф орм ацию об им енах м ожно по­
черпнуть из главы 3.
Глава 21. Инструменты и методы отладки формул
537
Ошибки логических значений
В ячейку можно ввести слова ЛОЖЬ и ИСТИНА, тем самым создав соответствующие логи­
ческие значения. Несмотря на всю простоту этих имен, Excel не всегда адекватно их трактует.
На рис. 21.6 показан рабочий лист с тремя логическими значениями, введенными
в ячейки А 1 : АЗ. Одновременно в ячейки А5 : А7 введены формулы, суммирующие эти
логические значения. Как видите, все эти формулы возвращают разные результаты.
Формула в ячейке А5 использует операторы сложения. Суммой всех трех ячеек явля­
ется число 2. Вывод следующий: Excel трактует значение ИСТИНА как единицу, а значе­
ние ЛОЖЬ как нуль.
В ячейке А6 для суммирования используется функция рабочего листа СУММ. Как ви­
дите, возвращаемое ею значение — нуль. Другими словами, функция СУММ игнорирует
логические значения. В то же время можно заставить ее трактовать логические значения
как числа, используя формулу массива. Введите следующую формулу и нажмите
<CtrlShift+Enter>:
=СУММ(А 1 :АЗ *1)
Еще более усложняет ситуацию то, что если логические значения передаются в функ­
цию СУММ как константы, она возвращает неверное значение 2.
=СУММ(ИСТИНА; ИСТИНА; ЛОЖЬ)
И наконец, третий случай (ячейка А7). Несмотря на то что язык VBA тесно интегри­
рован с Excel, иногда создается впечатление, что два приложения совершенно “не пони­
мают” друг друга. Рассмотрим простую функцию VBA, которая суммирует значения
в диапазоне (ее текст приведен ниже). Эта функция вообще возвращает результат -2 !
Func t i on VBASUM(r n g )
Dim c e l l As Range
VBASUM = 0
For Each c e l l I n r n g
VBASUM = VBASUM + c e l l . V a l u e
Next c e l l
End F u n c t i o n
Все дело в том, что язык VBA трактует значение ИСТИНА как - 1 , а значение ЛОЖЬ
как нуль.
Мораль сей басни такова: принимайте в расчет непоследовательность работы Excel
с логическими значениями и будьте предельно внимательны при суммировании диапазо­
нов, их содержащих.
Ошибки циклических ссылок
Циклической ссылкой является формула с прямой или косвенной ссылкой на ячейку,
содержащую эту формулу. Вопросы отслеживания циклических ссылок подробно рас­
смотрены ниже.
Перекрестная ссылка
С ущ ествую т задачи, реш ение которы х треб ует п реднам еренного создания
циклических ссы лок (см. главу 16).
538
Часть V. Полезные методики применения формул
Средства аудита Excel
В Excel предусмотрены инструменты, призванные оказывать помощь в нахождении
ошибок формул. В данном разделе описаны встроенные в Excel средства аудита.
Нахождение ячейки определенного типа
Диалоговое окно В ы д е л е н и е группы я ч е е к (рис. 21.7) позволяет задать тип ячеек, ко­
торые Excel должна выделить на экране. Чтобы открыть это диалоговое окно, выберите
команду Г л а в н а я ^ Р е д а к т и р о в а н и е ^ Н а й т и и в ы д е л и т ь м В ы д е л е н и е группы ячеек.
Рис. 21.6. На этом рабочем листе
продемонстрировано отсутствие
единообразия при суммировании
логических значений в Excel
Рис. 21.7. Диалоговое окно Выделение
группы ячеек
Примечание
Если при откры тии окна Выделение группы ячеек выделен диапазон из не ­
скольких ячеек, команда будет прим енена только к ним. Если же выбрана
всего одна ячейка, команда прим еняется ко всем у рабочем у листу.
Диалоговое окно В ы д е л е н и е группы я че е к используется для выделения ячеек опреде­
ленного типа, что часто облегчает поиск ошибок. Например, если установить переключа­
тель ф о р м ул ы , Excel выделит все ячейки, которые содержат формулы. Если уменьшить
масштаб просмотра рабочего листа, можно хорошо понять его структуру (рис. 21.8).
Совет
Вы деление ячеек с ф орм улам и также используется для выявления ещ е о д ­
ной расп р о стр а н е н н о й ош ибки — случайной замены ф ормулы значением.
Если вы увидите невы деленную ячейку в группе ячеек с ф ормулам и, весьма
вероятно, что такая ячейка содерж ала ф ормулу, которая впоследствии была
зам ещ ена значением.
Просмотр формул
Для того чтобы разобраться в незнакомой рабочей книге, просмотрите формулы, а не
результаты их вычислений. Для этого выберите команду Ф о р м у л ы 1^ З а в и с и м о с т и
ф о р м у л ^ П о к а з а т ь ф о р м у л ы . Можно также перед использованием этой команды соз­
Глава 21. Инструменты и методы отладки формул
539
дать для текущей рабочей книги новое окно просмотра. В результате вы будете иметь
возможность одновременно просматривать в одном окне формулы, а в другом — резуль­
таты их вычислений. Для открытия нового окна во вкладке В и д выберите команду
Вид
Н о в о е окно.
Рис. 21.8. Уменьшение масштаба и выделение всех формул может дать наглядное пред­
ставление о структуре рабочего листа
На рис. 21.9 показан пример одновременного отображения рабочей книги в двух окнах.
В верхнем окне используется режим обычного просмотра (результаты вычисления формул),
а в нижнем окне отображаются сами формулы. Для одновременного просмотра двух окон вам
пригодится команда В ид ^ Р ядом , синхронизирующая перемещение по двум окнам.
При включенном режиме просмотра формул Excel выделяет цветом ячейки, исполь­
зуемые формулой в активной ячейке. В примере на рис. 21.9 активна ячейка В11.
Отслеживание связей ячейки
Для того чтобы понять, как можно отследить взаимосвязи ячеек, необходимо ознако­
миться с двумя концепциями.
•
Влияющие ячейки. Ячейки, от которых зависит результат формулы. Термин
прямое влияние относится к ячейкам, используемым непосредственно в формуле.
Если сами ячейки в формуле не используются, но их значения используются дру­
гими ячейками, на которые непосредственно ссылается формула, то говорят о не­
прямом (косвенном) влиянии.
540
Часть V. Полезные методики применения формул
•
Зависимые ячейки. Это ячейки с формулами, зависящие от текущей ячейки.
Множество зависимых ячеек состоит из всех ячеек, содержащих формулы, прямо
или косвенно зависимые от текущей ячейки
Рис. 21.9. Отображение формул (верхнее окно) и результа­
тов их вычисления (нижнее окно)
Рассмотрим, например, формулу, введенную в ячейку А4:
=СУММ(А1:АЗ)
Ячейка А4 имеет три влияющих ячейки (A l, А2 и АЗ). Каждая из них имеет одну за­
висимую ячейку — А4. В данном случае все зависимости прямые.
Определение влияющих на формулу ячеек помогает разобраться, почему данная
формула работает неправильно. Знание того, какие ячейки с формулами зависят от опре­
деленной ячейки, также полезно. Например, если вы собираетесь удалить формулу, ин­
формация о наличии зависимых ячеек позволит избежать потенциальных ошибок.
Нахождение влияющих ячеек
Определить ячейки, используемые формулой в активной ячейке, можно несколькими
способами.
•
Нажмите клавишу <F2>. Ячейки, используемые непосредственно в формуле, бу­
дут обведены цветными контурами. Цвет контура соответствует цвету ссылки на
ячейку в формуле. Этот прием ограничен только ячейками, содержащимися на од­
ном листе с формулой.
•
Откройте диалоговое окно Выделение группы ячеек (с помощью команды
Г л а в н а я ^ Р е д а к т и р о в а н и е ^ Н а й т и и в ы д е л и т ь 1^ В ы д е л е н и е гр уп п ы яче е к).
Глава 21. Инструменты и методы отладки формул
541
Установите переключатель В л и я ю щ и е я че й ки , а затем установите, в зависимости
от своих намерений, подчиненный переключатель Т о л ь к о н е п о с р е д с т в е н н о или
Н а в с е х у р о в н я х . Щелкните на кнопке О К, и Excel выделит все влияющие на
данную формулу ячейки. Этот прием также ограничен только ячейками, содержа, щимися на одном листе с формулой.
•
Нажмите клавиши <Ctrl+[> для выделения на активном рабочем листе всех
влияющих непосредственно ячеек.
•
Нажмите клавиши <Ctrl+Shift+[>, чтобы выделить на активном рабочем листе
все влияющие ячейки (напрямую и косвенно).
•
Выберите команду Форм улы ^Зависим ости ф орм ул^В лияю щ ие ячей­
ки. Excel отобразит на рабочем листе стрелки, указывающие на зависимые ячейки.
Чтобы скрыть стрелки, выберите команду Ф о р м ул ы ^ З а в и с и м о с т и ф о р м у л ^
У б р а т ь стр е л к и . На рис. 21.10 показан рабочий лист с трассировкой ячеек,
влияющих на текущую ячейку (в данном случае ею является Е2).
Рис. 21.10. На рабочем листе стрелками обозначены ячейки, влияю­
щие на формулу
Нахождение зависимых ячеек
Найти формулы, зависящие от отдельной ячейки, можно несколькими способами.
•
Откройте диалоговое окно Выделение группы ячеек (с помощью команды
Г л а в н а я ^ Р е д а к т и р о в а н и е ^ Н а й т и и в ы д е л и т ь ^ В ы д е л е н и е гр уп п ы я че е к).
Установите переключатель З а в и с и м ы е я че й ки , а затем установите, в зависимо­
сти от своих намерений, подчиненный переключатель Т о л ь к о н е п о с р е д с т в е н н о
или Н а в с е х у р о в н я х . Щелкните на кнопке ОК, и Excel выделит все ячейки, зави­
симые от текущей. Этот прием ограничен только ячейками, содержащимися на
одном листе с формулой.
•
Нажмите клавиши <Ctrl+]> для выделения на активном рабочем листе всех не­
посредственно зависимых ячеек.
•
Нажмите клавиши <Ctrl+Shift+]>, чтобы выделить на активном рабочем листе
все зависимые ячейки (напрямую и косвенно).
•
Выберите команду Форм улы ^Зависим ости ф ормулозависимы е ячей­
ки. Excel отобразит на рабочем листе стрелки, указывающие на зависимые от те­
кущей ячейки. Чтобы скрыть стрелки, выберите команду Ф о р м у л ы О З а в и с и м о с ти ф о р м у л о У б р а т ь с тр е л к и .
Отслеживание ошибочных значений
Если формула отображает значение ошибки, Excel поможет вам идентифицировать ее
первоисточник. Зачастую ошибка в формуле вызвана ошибкой во влияющей на нее
542
Часть V. Полезные методики применения формул
(прямо или косвенно) формуле. Сделайте активной ячейку, содержащую ошибку, после
чего выберите команду Ф о р м у л ы ^ З а в и с и м о с т и ф о р м у л ^ П р о в е р к а н а л и ч и я о ш и ­
б о к 1^ И с то ч н и к о ш и б к и . Excel отобразит на рабочем листе стрелки, указывающие на ис­
точник ошибки.
Исправление ошибок циклической ссылки
При случайном вводе формулы, содержащей циклическую ссылку, Excel открывает
окно предупреждения, в строке состояния выводит сообщение Ц и к л и ч е с к а я с с ы л к а
(с адресом ячейки, если циклическая ссылка одна), а также отображает на рабочем листе
стрелки, позволяющие идентифицировать источник проблемы. Если найти источник
проблемы сложно, воспользуйтесь командой Ф о р м у л ы ^ З а в и с и м о с т и ф о р м у л ^ П р о верка наличия о ш и б о к ^ Ц и к л и ч е с к и е ссы лки. Меню этой команды содержит список всех
ячеек, вовлеченных в циклическую ссылку. Начните с выделения первой из ячеек списка, а за­
тем переходите к следующим до тех пор, пока источник проблемы не будет обнаружен.
Фоновая проверка ошибок
Некоторым пользователям Excel нравится средство автоматической проверки оши­
бок. Фоновая проверка включается и отключается с помощью флажка В к л ю ч и ть ф о н о ­
вы й п о и ск о ш и б о к вкладки Ф о р м у л ы диалогового окна параметров Excel (рис. 21.11).
В разделе П р а в и л а к о н тр о л я о ш и б о к можно определить, какие типы ошибок следует
выявлять. Для этого достаточно установить соответствующие флажки.
Рис. 21.11. Excel может выполнять проверку формул, чтобы найти потенциальные ошибки
Когда фоновая проверка ошибок включена, Excel постоянно следит за рабочим лис­
том, в том числе и за его формулами. При обнаружении потенциальной ошибки Excel
помещает в левом верхнем углу “подозрительной” ячейки маленький треугольник. Если
ячейка активизирована, отображается смарт-тег. При щелчке на нем вам предлагается
несколько вариантов дальнейших действий. На рис. 21.12 показаны варианты действий,
которые доступны после щелчка на смарт-теге ячейки, содержащей ошибку # Д Е Л /0 !.
Доступные действия изменяются в зависимости от типа ошибки.
Глава 21. Инструменты и методы отладки формул
543
Рис. 21.12. При щелчке на смарт-теге открывается список
возможных действий
Во многих случаях пользователи выбирают команду П р о п у с ти ть о ш ибку. Выбор дан­
ной команды исключает ячейку из списка ошибок. Можно снова отобразить все пропущен­
ные ошибки; для этого необходимо щелкнуть на кнопке С б р о с п р о п у щ е н н ы х о ш и б о к,
находящейся на вкладке Ф орм улы диалогового окна параметров Excel (см. рис. 21.11).
Воспользуйтесь командой Ф о р м у л ы ^ З а в и с и м о с т и ф о р м у л ^ П р о в е р к а н а л и ч и я
о ш и б о к для последовательного отображения ячеек с потенциально возможными ошиб­
ками (подобно тому, как это делает программа проверки орфографии). Диалоговое окно
К о нтр оль о ш и б о к показано на рис. 21.13. Обратите внимание, что это окно немодаль­
ное (когда оно открыто, вы по-прежнему имеете доступ к содержимому рабочего листа).
Рис. 21.13. Использование диалогового окна контроля ошибок для последовательного про
смотра найденных программой потенциальных ошибок
Предупреждение
Важно поним ать, что ср е д ство проверки ош и бок несоверш енно. Нельзя с ч и ­
тать, что рабочий л и ст полностью лиш ен о ш ибок только на основе того, что
програм м а Excel не выявила источников потенциальной о пасности! Кроме
того, им ейте в виду, что данное ср е д ство не см о ж е т отследить такую часто
встречаю щ ую ся ош ибку, как замена ф ормулы значением.
544
Часть V. Полезные методики применения формул
Проверка формул
В Excel предусмотрено еще одно специальное средство, которое позволяет просмот­
реть различные части вложенной формулы, представленные в порядке ее вычисления.
Чтобы использовать эту возможность, выделите содержащую формулу ячейку, а за­
тем выберите команду Ф о р м у л ы « ^З а в и с и м о с ти ф о р м у л а В ы ч и с л и т ь ф о р м у л у . От­
кроется диалоговое окно, показанное на рис. 21.14.
Рис. 21.14. Вычислить формулы в Excel можно поэтапно
Щелкните на кнопке В ы ч и с л и ть , чтобы отобразить результат вычисления выражения
формулы. При каждом щелчке на кнопке выполняется следующее вычисление. На первый
взгляд этот инструмент может показаться несколько сложным, однако если вы поработаете
с ним некоторое время, то поймете принцип его действия и по достоинству его оцените.
Excel предлагает еще один способ вычисления части формулы.
1. Выделите ячейку, содержащую формулу.
2. Нажмите <F2>, чтобы перейти в режим редактирования.
3. С помощью мыши выделите часть формулы, которую хотите вычислить. Можете
для этого воспользоваться клавишами <Shift> и стрелочками.
4. Нажмите <F9>.
Будет отображен результат выделенной части формулы. Далее можно таким же обра­
зом вычислить другие части этой же формулы или нажать <Esc> и выйти из режима ре­
дактирования, вернув формулу к ее первоначальному состоянию.
П редупреж дение
Б удьте о сто р о ж н ы при исп о л ьзо в а н и и э то го прием а, так как случайное
наж атие клавиш и < 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.
Несколько слов о VBA
Язык VBA проще всего представить как язык написания сценариев для приложений
Microsoft. Сейчас он включается во все прикладные программы пакета Office 2010; его
также можно встретить и у сторонних производителей. В Excel существуют две основ­
ные области применения VBA:
♦ для автоматизации выполнения задач;
♦ для создания пользовательских функций, которые можно использовать при по­
строении формул.
Примечание
В Excel также сущ ествует другой способ создания функций — с помощ ью язы ­
ка создания макросов XLM. Этот язык считается устаревш им, но все же из с о ­
ображений обратной совм естим ости продолжает поддерживаться. В данной
книге игнорируется языкХ1_М; мы сф окусируем свое внимание только на язы ­
ке VBA. Следует отметить, что язык XLM не им еет ничего общ его с языком
XML, предназначенным для хранения структурированны х данных.
Часть VI. Разработка пользовательских функций
548
VBA является сложной темой для обсуждения — достаточно сложной, чтобы полно­
стью описать его в данной книге. Поскольку книга посвящена формулам, я обращаю ва­
ше внимание только на один из самых важных (и полезных) аспектов VBA — создание
пользовательских функций. Эти функции можно использовать в формулах.
Перекрестная ссылка
Если вы планируете стать экспертом по VBA, этой книги вам будет недостаточно,
она лишь “ подтолкнет” вас в нужнфм направлении. Прочитайте мою книгу
Excel2010: профессиональное программирование на VBA (“Диалектика” ,
2011 г.), в которой подробно освещены все вопросы работы с VBA.
Отображение вкладки Разработчик
Если вы планируете работать с макросами VBA, вам нужно отобразить на ленте
вкладку Р а зр а б о тч и к . Для этого выполните следующее.
1. Щелкните правой кнопкой мыши в любом месте ленты и выберите команду Н а ­
с тр о й к а л е н т ы .
2. В списке вкладок, приведенном в правой области окна П а р а м е тр ы E x c e l, уста­
новите флажок напротив вкладки Р а з р а б о тч и к .
3. Щелкните на кнопке ОК.
После этого вкладка Р а з р а б о т ч и к всегда будет присутствовать на ленте. На рис. 22.1
показан общий вид ленты при активной вкладке Р а з р а б о тч и к .
Рис. 22.1. Вкладка Разработчик, не отображаемая по умолчанию, содержит команды, необхо­
димые для работы с VBA
Безопасность макросов
При программировании в Excel особое внимание следует уделять безопасности мак­
росов. Дело в том, что макросы — такой мощный инструмент, что могут серьезно по­
вредить систему. В Excel включены средства безопасности, предназначенные для устра­
нения потенциальных проблем, связанных с макросами.
На рис. 22.2 показан раздел П а р а м е тр ы м а кр о со в диалогового окна Ц е н тр у п р а в л е ­
ния б е зо п а сн о с ть ю . Для открытия этого окна выберите команду Р а з р а б о т ч и к а К о д ^
Б е з о п а с н о с ть м а кр о со в .
По умолчанию установлен переключатель О т к л ю ч и т ь в с е м а к р о с ы с у в е д о м л е н и ­
ем. В этом режиме при открытии рабочей книги, содержащей макросы, когда файл не
содержит цифровой подписи и взят из ненадежного источника, Excel отображает над
строкой формул предупреждение системы безопасности (рис. 22.3). Если вы уверены в
безопасности макросов, содержащихся в рабочей книге, щелкните на кнопке В к л ю ч и ть
со д е р ж и м о е .
Глава 22. Введение в VBA
549
Рис. 22.2. Вкладка Параметры макросов диалогового окна Центр управления безо­
пасностью
•
Предупреждение системы безопасности
G18
А
1 ;
2J
3
I
В
С
:
Запуск макросов отключен,
j
Включить содержимое
_________ : ......_______________________ ____________ _________________
D
Е
F
1
G
1
Н
1
;
J
;
20
26
20
26
20
28
28
77
77
96
28
44
X
:
К
д
Рис. 22.3. Предупреждение о наличии макросов в рабочей книге
Новинка
Excel 2010 пом нит о том , что макросы были разреш ены . Если в рабочей кн и­
ге разреш ить м акросы (с пом ощ ью окна парам етров, а не кнопки Включить
содержимое), то при следую щ ем откры тии да н н о го файла предупреж дение,
показанное на рис. 22.3, не появится.
Предупреждение
Если при откры тии рабочей книги, содерж ащ ей макросы , откры то окно р е ­
дактора VBA, Excel не отображ ает предупреж дение систем ы безопасности.
В м есто это го отображ ается д и алоговое окно, показанное на рис. 22.4, в ко ­
тором можно включить или отклю чить м акросы .
Рис. 22.4. Если при открытии рабочей книги,
содержащей макросы, открыто окно редактора
VBA, отображается это предупреждение
Часть VI. Разработка пользовательских функций
550
Наилучшим способом обеспечения безопасности макросов является выделение от­
дельных папок для надежных источников. Все рабочие книги, находящиеся в таких пап­
ках, будут открываться без предупреждения системы безопасности. Назначение папок
с доверенными источниками выполняется во вкладке Н а д е ж н ы е р а с п о л о ж е н и я диало­
гового окна Ц е н тр у п р а в л е н и я б е з о п а с н о с т ь ю .
Сохранение рабочих книг, содержащих макросы
Если в рабочей книге хранится хотя бы один макрос, файл следует сохранять с вклю­
ченными макросами. Такой файл имеет расширение XLSM (или XLAM, если макрос запи­
сывается как надстройка). Этот формат не устанавливается по умолчанию, поэтому при
сохранении файла следует выбрать правильное расширение.
Для примера предположим, что вы создали новую рабочую книгу, содержащую один
или несколько макросов. При первом сохранении этой книги вам будет предложено рас­
ширение XLSX, как для книги, не содержащей макросы. Если вы не измените это расши­
рение на другое, Excel откроет окно предупреждения, показанное на рис. 22.5. В этом
окне следует щелкнуть на кнопке Н е т, после чего в списке типов файлов выбрать пункт
Книга E xce l с п о д д е р ж к о й м а к р о с о в (*.x ls m ).
Рис. 22.5. Если рабочая книга содержит макросы, а вы пытаетесь ее со­
хранить в неверном формате, Excel предупредит об этом
Предупреждение
Будьте бдительны, поскольку с помощью всего одного щелчка можно случайно
удалить все сущ ествующ ие макросы рабочей книги. Если в окне предупрежде­
ния щелкнуть на кнопке Да вместо Нет, все макросы будут удалены в процессе
сохранения рабочей книги. В то же время в открытой копии рабочей книги мак­
росы останутся на месте. Поэтому если вы все же совершили ошибку, но оста­
вили открытой рабочую книгу, сразу же сохраните ее в формате . xlsm .
Знакомство с редактором Visual Basic
Перед тем как начать работать над созданием функций, следует познакомиться с ре­
дактором Visual Basic. Данный редактор позволяет работать с модулями VBA, которые
являются контейнерами программного кода VBA.
Запуск редактора Visual Basic
Когда открыто окно Excel, перейти к редактору VBA можно одним из следующих
способов:
•
нажмите <Alt+Fl 1>;
•
выберите команду Р а з р а б о т ч и к ^ К о д 1^ V is u a l B a sic.
Глава 22. Введение в VBA
551
На рис 22.6 показан общий вид окна редактора Visual Basic. Вполне возможно, что
окно редактора, показанное на рисунке, не совсем похоже на окно Visual Basic, отобра­
жаемое на экране вашего монитора. Дело в том, что данное окно настраиваемое — в нем
можно открывать и закрывать панели, откреплять и закреплять их, изменять их размеры
и многое другое.
Рис. 22.6. Окно редактора Visual Basic
Компоненты редактора Visual Basic
Редактор Visual Basic состоит из ряда компонентов. В этом разделе коротко описаны
основные из них.
Примечание
Несм отря на то что версия Excel 2010 им еет аб солю тно новы й интерф ейс,
редактор Visual Basic остался в точности таким же, как и в преды дущ их ве р ­
сиях. В нем п о -п р е ж н е м у используется не лента, а панель ин струм ентов
и систем а каскадных меню.
Строка меню
Строка меню редактора Visual Basic работает так же, как и любая другая строка меню
в обычном приложении Windows. В ее состав входят команды, используемые для работы
с различными компонентами редактора Visual Basic.
Контекстные меню
Характерной особенностью редактора Visual Basic является наличие контекстных ме­
ню. Щелчок правой кнопкой мыши на пустом месте окна редактора Visual Basic иниции­
рует открытие контекстного меню, предоставляющего доступ к наиболее распростра­
ненным командам.
Панели инструментов
Стандартная панель инструментов по умолчанию находится непосредственно под
строкой меню. Это одна из шести доступных панелей инструментов редактора Visual Ва-
552
Часть VI. Разработка пользовательских функций
sic. Панели инструментов в редакторе Visual Basic можно перенастраивать, перемещать,
скрывать и отображать.
Окно проекта
Окно проекта (P ro je c t, на рис. 22.6, слева) отображает древовидную схему всех рабо­
чих книг, открытых в текущий момент в Excel (включая надстройки и скрытые рабочие
книги). В редакторе Visual Basic каждая рабочая книга называется проектом. Окно про­
екта будет детальнее рассмотрено в следующем разделе. Если окно проекта не отобра­
жено на экране, нажмите комбинацию клавиш <Ctrl+R>.
Окно программного кода
Окно программного кода (на рис. 22.6, справа, пока что оно пустое) содержит код
VBA. Каждый элемент проекта имеет соответствующее ему окно кода. Чтобы просмот­
реть окно кода для объекта, необходимо дважды щелкнуть кнопкой мыши на объекте
в окне проекта. Можно также выделить элемент и щелкнуть на кнопке отображения ко­
да, находящейся в верхней части окна проекта.
Например, чтобы просмотреть окно кода для отдельного объекта Л и ст1 рабочей
книги, необходимо дважды щелкнуть на нем в окне проекта. Пока вы не добавили в файл
код VB А, окно кода будет пустым. Детально окно кода рассмотрено далее.
Окно свойств
Окно P ro p e rtie s (Свойства) включает в себя перечень всех свойств выделенного объ­
екта. Используйте это окно для просмотра и изменения свойств. Окно свойств открыва­
ется после нажатия клавиши <F4>.
Окно отладки
Окно отладки (Im m e d ia te ) является наиболее удобным средством для непосредственного
выполнения инструкций VBA, тестирования и отладки кода. Оно может либо отображаться,
либо нет. Если окно отладки отсутствует на экране, нажмите <Ctrl+G>. Для того чтобы за­
крыть это окно, щелкните на кнопке Закры ть, находящейся в правом верхнем углу.
Использование окна проекта
В процессе работы в редакторе Visual Basic каждая рабочая книга и надстройки, от­
крытые в данный момент, являются проектами. Проектом можно считать совокупность
объектов, упорядоченных в виде структуры. Существует возможность открыть проект,
щелкнув на знаке “плюс” слева от его имени в окне проекта. Чтобы скрыть содержимое
объекта, щелкните на знаке “минус” слева от имени проекта. На рис. 22.7 показано окно
проекта, содержащего список из двух проектов (рабочая книга a l .x ls m и надстройка
FUNCRES . XLAM).
Если вы попытаетесь внести изменения в защищенный проект, вам будет предложено
ввести пароль.
Каждый открытый проект содержит, как минимум, один объект M i c r o s o f t E x c e l
O b j e c t (Объекты Microsoft Excel). Этот объект при раскрытии представляет вашему
вниманию все элементы каждого рабочего листа и диаграммы в рабочей книге (каждый
лист считается объектом), а также специальный объект, называемый Э таК н и га (он яв­
ляется объектом рабочей книги). Если в проекте есть модули VBA, дерево проекта также
отображает объект M o d u l e s , который состоит из модулей, представленных в нем. Про­
Глава 22. Введение в VBA
553
ект включает в себя и объект, называемый 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
В новой рабочей книге Excel не существует ни одного модуля VBA. Для добавления
таких модулей в проект необходимо выбрать имя проекта в окне проекта, затем — ко­
манду In s e rt «=>Module (Вставка^Модуль).
Предупреждение
При создании функций необходимо следить, чтобы они находились в стандарт­
ном модуле VBA, а не в окне кода для объекта листа или рабочей книги. Если код
функции расположен не в модуле VBA, то функция не будет работать. Помеще­
ние кода VBA в неверное место является самой распространенной ошибкой но­
вичков, которые учатся создавать пользовательские функции.
Переименование модуля
Модули VBA обладают именами, назначенными по умолчанию: M o d u le 1, M o dule2
и т.д. Для того чтобы переименовать модуль VBA, необходимо выбрать его в окне про­
екта, а затем изменить имя, используя окно свойств (модуль VBA имеет только одно
554
Часть VI. Разработка пользовательских функций
свойство — Name). Если окно свойств не отображено на экране, нажмите <F4>. На
рис. 22.8 показан модуль VBA, переименованный в m o d F u n c tio n s .
Рис. 22.8. Для изменения имени модуля VBA используйте окно свойств
Удаление модуля VBA
Если нужно удалить модуль VBA из проекта, выделите в окне проекта его имя и вы­
берите команду F ile ^ R e m o v e XXX (Файл«^Удалить имя_модуля). Будет задан вопрос,
хотите ли вы экспортировать модуль перед удалением. При экспортировании создается
резервный файл с содержимым текущего модуля. Модули можно импортировать из лю­
бого проекта и экспортировать в любой проект.
Использование окна кода
За исключением объектов ссылки, любой объект в проекте имеет связанное с ним ок­
но кода. Обычно к этим объектам относятся:
•
сама рабочая книга (в окне проекта объект называется Э т а К н и г а );
•
рабочий лист или рабочая диаграмма (например, Л и с т 1 или Д и а г р а м м а 1 в окне
проекта);
•
модуль VBA, содержащий коды пользовательских функций;
•
модуль U s e г Form, содержащий код созданного пользователем диалогового окна;
•
модуль класса (особый тип модуля, который позволяет создавать новые классы
объектов);
•
список ссылок, вставленных с помощью команды T o o ls 1^ R e fe re n ce s (Инструменты■=>
Ссылки).
Глава 22. Введение в VBA
555
Примечание
В данной книге р а ссм отрены исклю чительно модули VBA (иногда их назы ­
вают стандартными модулями), в которы х хранятся пользовательские ф унк­
ции рабочего листа.
Сворачивание и разворачивание окон
В редакторе Visual Basic может быть открыто множество окон кода (рис. 22.9).
Рис. 22.9. Открыто несколько окон кода
Окна кода похожи на окна рабочих листов Excel. Их можно сворачивать, разворачи­
вать, скрывать, упорядочивать и т.д. Многие считают, что окно кода, в котором ведется
работа, лучше развернуть. Однако иногда может возникнуть потребность отобразить од­
новременно два или больше открытых окон с кодом (например, для сравнения кода двух
модулей или при копировании кода одного модуля в другой).
Сворачивание окна кода изменяет занимаемую им область. Можно щелкнуть на
кнопке З а кр ы ть, находящейся в правом углу заголовка, для того чтобы полностью за­
крыть окно кода. Для повторного открытия окна необходимо дважды щелкнуть на соот­
ветствующем объекте в окне проекта.
Нельзя закрыть рабочую книгу непосредственно из редактора Visual Basic. Для этого
следует перейти в окно Excel и закрыть его обычным способом.
Сохранение кода
Модуль может содержать три типа кода.
•
Процедура. Процедура представляет собой набор инструкций, выполняющих оп­
ределенные действия. Например, процедура может скомбинировать несколько
частей рабочей книги в один краткий отчет.
•
Ф ункция. Функция представляет собой набор инструкций, которые возвращают
одно значение или массив. Функцию можно использовать в формулах. От проце­
дуры функция отличается только тем, что возвращает значение.
556
Часть VI. Разработка пользовательских функций
•
Объявление. Объявление — это предоставление интерпретатору VBA информа­
ции о переменных, которые используются в коде VBA. Например, можно объя­
вить тип переменных, которые будут использоваться в будущем. Обычно объяв­
ления помещают в начало модуля.
В одном модуле VBA может храниться любое количество процедур, функций и объявле­
ний. Процедуры и функции часто называют подпрограммами.
Примечание
В данной книге р ассм атриваю тся только ф ункции, поскольку они являю тся
единственны м типом кода, которы й м ож но использовать для построения
ф ормул.
Ввод кода
В данном разделе описаны различные способы ввода кода VBA в окне кода. Для
функций окно кода всегда относится к модулю VBA. Добавить код в модуль VBA можно
тремя способами:
•
введя его вручную с клавиатуры;
•
используя рекордер макросов программы Excel (можно записать макрос и впо­
следствии преобразовать его в код VBA);
•
скопировать код из другого модуля и вставить его в тот модуль, с которым вы ра­
ботаете.
Ввод кода вручную
Часто самый простой путь решения проблемы является самым лучшим. Ввод текста
программы и его редактирование в модуле VBA осуществляется обычным способом.
Можно выделить текст и скопировать его или вырезать и вставить в другое место.
Пользуйтесь клавишей <ТаЬ>, чтобы делать отступы в строках, которые логически
связаны одна с другой (например, в блоках условных инструкций I f E n d l f ) . Наличие
отступов необязательно, но оно облегчает чтение программы, делает ее более наглядной.
Длина простой инструкции в VBA может быть произвольной. Из соображений удобо­
читаемости (т.е. чтобы вся инструкция была видна в окне кода) можно преобразовать одну
длинную инструкцию в несколько коротких. Для этого завершите строку пробелом и сим­
волом подчеркивания, а затем нажмите клавишу <Enter> и продолжайте вводить код инст­
рукции в новой строке. В следующем примере одна инструкция разбита на три строки.
If
I s N u m e r ic ( M y C e ll ) Then _
R e s u l t = "Number" E l s e _
R e s u l t = "Non-Number"
Обратите внимание, что в две последние строки инструкции добавлен отступ. Делать
это не обязательно, но так будет легче понять, что эти три строки представляют единую
инструкцию.
После ввода инструкций редактор Visual Basic для повышения их удобочитаемости
выполняет следующее.
•
Вставляет между инструкциями пробелы. Например, при вводе A n s = l + 2 (без
пробелов) VBА преобразует данное выражение к следующему виду:
Ans = 1 + 2
Глава 22. Введение в VBA
•
557
Приводит в порядок регистр символов ключевых слов, свойств и методов. К при­
меру, если ввести такой текст:
u s e r = a p p l i c a t i o n . u ser n a m e
то редактор Visual Basic преобразует его в следующий:
u se r = A p p lica tio n .U serN a m e
Поскольку регистр имен переменных не имеет значения, редактор Visual Basic
приводит все переменные, имена которых начинаются с одной и той же буквы,
к виду, который вы используете чаще всего. Например, если вы сначала определи­
те переменную как m y v a l u e (все строчные) и потом введете переменную МуV a l u e (в смешанном регистре), VBA преобразует все последующие экземпляры
этой переменной в M y V a lu e . Исключением может быть случай, когда переменная
определена явно с помощью инструкции D im или функционально подобной ей.
Тогда переменная отображается в том виде, в котором была объявлена.
•
Проверяет инструкции на наличие синтаксических ошибок. Если редактор Visual
Basic обнаружит ошибки в окне проекта, он изменит цвет строки и выведет преду­
преждающее сообщение. Можно настроить различные режимы работы редактора
Visual Basic в диалоговом окне O p tio n s Чтобы открыть его, выберите команду
T o o ls ^ O p tio n s (Инструменты1^Параметры).
Совет
Как и Excel, редактор Visual Basic с о д е р ж ит м ногоуровневы е команды о тм е ­
ны д е й ствий и повто р н о го восстановления команд. П оэтому, если вы сл у­
чайно удалили важную инструкцию , можете, щ елкнув несколько раз на кн о п ­
ке Undo (О тмена) или нажав ком бинацию клавиш <C trl+ Z> , вернуть потерю .
Для восстановления преж него варианта после вы бора команды Undo вы бе­
рите команду E d it^R e D o Delete (Р е д а ктир о ва н ие м В о сста н о ви ть удаление).
Использование рекордера макросов
Альтернативным способом добавления кода в модуль VBA является запись его в виде
макроса Excel с помощью рекордера макросов. Записать можно только процедуру. По­
пытки записать функцию (это разновидность подпрограмм, используемая в формулах
рабочего листа) окажутся тщетными. Все записанные макросы являются внутренними
процедурами. Рекордер макросов чрезвычайно удобен тем, что, глядя на результат его
работы, часто можно увидеть полезные функции Excel, о существовании которых вы да­
же не подозревали. К примеру, можно
Скачать