Глава 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,05
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*СтавкаНалога
Глава 3. Имена 111
Если не изменять область действия, установленную по умолчанию на уровень книги,
то можно использовать константу С т а в к а Н а л о г а на всех листах рабочей книги.
Присвоение имени текстовым константам
В предыдущем примере константа представляла собой числовое значение. Однако
константа может также состоять из текста. Например, можно определить константу для
названия компании. Для создания следующей формулы, которая называется MS, исполь
зуется диалоговое окно Создание имени:
="Microsoft Corporation"
Теперь в любой ячейке можно использовать такую формулу:
="Годовой о т ч е т : "&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 в несколько ячеек, расположенных под ней,
и введите произвольные значения в столбец В. Вы увидите, что формула, находящаяся
в столбце А, возвращает содержимое ячейки, расположенной справа. Иными словами,
именованная формула Я ч е й к а С п р а в а имеет относительный характер.
Имя Я ч е й к а С п р а в а может быть использовано в любой ячейке (а не только в ячей
ках столбца А). Например, если ввести = Я ч е й к а С п р а в а в ячейку D12, эта ячейка будет
возвращать содержимое ячейки Е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)
Примечание
Именованная формула СуммаЮЯчеек не будет работать, если ввести ее
в ячейку, которая располагается в столбце, следующем за столбцом хет.
В таком случае формула становится ошибочной, поскольку в ней появляется
ссылка на несуществующую ячейку, расположенную за пределами столбца xfd.
Использование смешанных ссылок на диапазоны
Как уже отмечалось в главе 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:А 10)
Вычисления, невозможные без функций
Функции позволяют выполнять такие вычисления, которые без их использования не
возможны. Допустим, требуется определить наибольшее значение диапазона. Формула,
в которой не используются функции, не сможет решить такую задачу. В следующем
примере функция МАКС используется для возвращения формулой наибольшего значения
диапазона А 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<100000; А1*5%; А 1 * 7 ,5%)
Функция ЕСЛИ принимает три аргумента, разделенные точками с запятыми. Это
входные аргументы функции. Благодаря функции формула принимает решение: если
первый аргумент равен значению ИСТИНА, возвращается второй аргумент, в противном
случае — третий.
Еще несколько слов о функциях
Как уже отмечалось, в Excel встроено более 300 функций. Если вам этого недоста
точно, то можете приобрести дополнительные специальные функции у сторонних произ
водителей и даже создать свои собственные функции с помощью языка VBA (такие
функции называются пользовательскими).
Перекрестная ссылка
Создание пользовательских функций на VBA рассматривается в части VI.
В таком огромном количестве функций можно очень быстро запутаться, к тому же
обычно в работе используется лишь пара десятков из них. Группа Библиотека функций
вкладки Формулы (описанная далее) позволяет легко найти и вставить нужные функции,
даже если они редко используются.
Перекрестная ссылка
В приложении А содержится полный список функций Excel с кратким описа
нием каждой из них.
Типы аргументов функций
При рассмотрении приведенных эыше примеров вы, наверняка, заметили, что в каж
дой из функций используется пара скобок. Информация, приведенная в скобках, называ
ется аргументами функции. Количество аргументов в разных функциях не одинаково.
Функция может:
• не иметь ни одного аргумента;
• иметь один аргумент;
• иметь фиксированное количество аргументов;
• иметь неограниченное количество аргументов;
• иметь необязательные аргументы.
Например, функция СЛЧИС, которая возвращает случайное число между нулем
иединицей, не имеет аргументов. Но даже при отсутствии аргументов необходимо вве
сти пустую пару скобок:
=слчис ()
126 Часть II. Использование функций в формулах
Если функция имеет больше одного аргумента, то все они отделяются друг от друга
точкой с запятой. В функции НАИБОЛЬШИЙ, которая возвращает и-ое по величине значе
ние из множества данных, используются два аргумента. Первый из них задает диапазон
значений, а второй — значение п. Приведенная ниже формула возвращает третье по ве
личине значение ячеек диапазона А 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
функцию @avg, Excel сгенерирует сообщение об ошибке (в Excel аналогичная функция
носит название с рзн а ч ).
Использование имен в качестве аргументов
В качестве аргументов функций могут использоваться имена, т.е. ссылки на ячейки
и диапазоны. Выполняя вычисления, Excel просто использует текущее содержимое ячейки
или диапазона. Функция СУММ возвращает сумму своих аргументов (или аргумента). На
пример, вычислить сумму значений диапазона А 1 :А20 можно с помощью такой формулы:
=СУММ(А1:А 2 0 )
Глава 4. Знакомство с функциями рабочего листа 127
Если диапазон А 1 :А2 0 имеет имя (например, Продажи), то оно может быть исполь
зовано вместо ссылки на диапазон:
=СУММ( П р о д а ж и )
Перекрестная ссылка
За подробной информацией о том, как определять и применять имена, об
ратитесь к главе 3.
Использование столбцов и строк в качестве аргументов
Иногда в качестве аргумента функции удобно использовать строку или столбец пол
ностью. К примеру, следующая формула возвращает сумму всех значений столбца В:
=СУММ(В : В)
Ссылки на целую строку или столбец особенно эффективны в тех случаях, если диа
пазон, сумму значений которого следует вычислить, постоянно изменяется (например,
если в таблицу периодически вносятся новые данные об объемах продаж). Прежде чем
использовать ссылку на целую строку или столбец, убедитесь в том, что они не содержат
данных, которые не должны быть включены в сумму.
Не следует беспокоиться о том, что суммирование такого громадного диапазона зна
чений (столбец, например, состоит из 1 048 576 ячеек) может увеличить время вычисле
ния. Дело в том, что Excel “помнит”, в каком столбце и в какой строке располагается по
следнее значение. Поэтому, вычисляя результат формулы с помощью ссылки на целую
строку или столбец, программа не будет принимать в расчет ячейки, выходящие за пре
делы последнего использованного столбца и строки.
Использование литералов в качестве аргументов
Литерал — это числовое значение или текстовая строка, которые указаны непосред
ственно в выражении. Например, функция КОРЕНЬ, которая возвращает значение квад
ратного корня, имеет один аргумент. В следующем примере в качестве аргумента функ
ции используется литерал:
=К0РЕНЬ(225)
В некоторых случаях использование литерального аргумента лишает формулу всяко
го смысла. Эта формула всегда возвращает одно и то же значение, поэтому ее можно
просто заменить цифрой 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>, программа исправит
ошибку, вставив закрывающую скобку.
130 Часть II. Использование функций в формулах
Совет
После ввода функции Excel преобразует введенные символы в верхний регистр.
Поэтому разумно вводить все функции с помощью символов нижнего регистра.
Если после нажатия клавиши <Enter> программа не преобразует текст в верхний
регистр, это значит, что программа не распознала введенную вами запись как
функцию. Так происходит в том случае, если при вводе функции была допущена
ошибка или данная функция просто недоступна (например, функция определена
только в надстройке, которая в данный момент не установлена). Это может слу
жить одним из способов избежать ошибок при вводе функций.
Вставка функций из библиотеки
Еще один способ вставки функции в формулу состоит в использовании группы ко
манд Формулы^Библиотека функций (рис. 4.3). Каждый значок этой группы пред
ставляет собой раскрывающийся список библиотечных функций. При выделении функ
ции появляется окно подсказки с короткой справкой о ней.
Рис. 4.3. Библиотека функций
При выборе пункта в списке активизируется диалоговое окно Аргументы функции,
помогающее ввести аргументы. Это диалоговое окно подробнее рассматривается в сле
дующем разделе.
Команда Вставить функцию
Эта команда позволяет ввести функцию и ее аргументы полуавтоматически. Ее ис
пользование позволяет избежать ошибок в написании формулы. Кроме того, функция,
вставленная с помощью этой команды, будет иметь соответствующее число аргументов,
расположенных в правильном порядке.
Для того чтобы вставить функцию, выберите ее в списке диалогового окна Мастер
функций (рис. 4.4). Открыть это диалоговое окно можно несколькими способами.
• Выберите команду Формулы1^Библиотека функций«=>Вставить функцию.
• Выберите команду Формулы«=>Библиотека функций^Автосумма^Другие
функции.
Глава 4. Знакомство с функциями рабочего листа 131
• Щелкните на кнопке/х слева от строки формул.
• Нажмите комбинацию клавиш <Shift+F3>.
Рис. 4.4. Диалоговое окно Мастер функций
В списке приводятся только функции, принадлежащие категории, выбранной в раскры
вающемся списке Категория. В категории 10 недавно использовавшихся представлены
функции, которые вы использовали в последнее время. В категории Полный алфавитный
перечень представлены функции всех категорий. Если вы знаете имя функции, а ее кате
гория вам не известна, откройте категорию Полный алфавитный перечень.
У вас есть возможность поиска функций. Для этого используется текстовое поле,
расположенное в верхней части диалогового окна Мастер функций. Введите в него од
но или несколько ключевых слов и щелкните на кнопке Найти. Excel отобразит список
функций, удовлетворяющих условиям поиска.
Обратите внимание на то, что после выбора функции в списке Выберите функцию
под ним появляются название этой функции (и аргументов), а также ее краткое описание.
Выбрав необходимую функцию, щелкните на кнопке ОК. Откроется диалоговое окно
Аргументы функции (рис. 4.5), в котором следует задать аргументы. Для того чтобы за
дать аргумент диапазона, щелкните на кнопке сворачивания окна (значок в правом углу
поля каждого аргумента). Excel временно свернет диалоговое окно Аргументы функ
ции, что позволит выделить диапазон на рабочем листе.
Аргументы функции ---------------------------------В Д д Н ]
j АМОРУВ
С то и м ость
Д ата .пр и о бр
Первый_период
| Остаточнаястоим ость
Период
Возвращает величину пропорционально распределенной амортизации актива д л я каждого учетного периода.
С то и м о с ть затраты на приобретение актива.
Значение: j OK j j Отмена I
Справка по этой Функции
Рис. 4.5. Диалоговое окно Аргументы функции
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ИСКП03 может использоваться для определения налоговой ставки для кон
кретного уровня дохода.
Функции работы с базами данных
Функции этой категории применяются для вычисления суммы значений списка
(также известного как база данных рабочего листа), который удовлетворяет определен
ным условиям. Предположим, у вас есть список, содержащий информацию о месячном
объеме продаж. Функцию БСЧЁТ можно использовать для подсчета количества записей
об объеме продаж в северном регионе, значение которых превышает 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 7 9 4 , 5 7 р .
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. В этом
примере мы использовали символ п, который в выбранном шрифте отображается как
маленький квадрат. Формула, использующая функцию ПОВТОР, определяет количество
символов, которое должно быть отображено на экране. Формулы для ячеек, формирую
щих диаграмму, имеют следующий вид.
ЕЗ =ЕСЛИ(D3 < 0 ; ПОВТОР("П" ; - ОКРУГЛ(D3 *10 0 ; 0 ) ) ;"")
F3 =АЗ
G3 =ЕСЛИ( D3 >0 ; ПОВТОР( "п"; ОКРУГЛ( D 3 * 1 0 0 ; 0 ) ) ; " " )
Установите для ячеек ЕЗ и G3 шрифт Wingdings, а затем скопируйте формулы, со
держащиеся в этих ячейках, вниз в ячейки столбцов, чтобы распределить данные. Вы
ровняйте текст в столбце Е по правому краю, после чего примените любое другое фор
матирование ячеек. Имейте в виду, что в зависимости от величины числового диапазона
данных может возникнуть необходимость изменить масштаб значений. Поэксперимен
тируйте с перемещением 100 значений в формулах. Выбранный ранее для диаграммы на
рис. 5.3 символ п можно заменить на любой другой.
Компакт-диск
Рабочая книга, представленная на рис. 5.3, содержится на прилагаемом
компакт-диске в файле t e x t h i s t o g r a m . x l s x ( C ha 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.00*-
Чтобы просто дополнить число звездочками, используйте в определении формата две
звездочки, как показано ниже.
$#,##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 Cart 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 - Z ( 4 М 1 ) _ А * , данная фор
мула вернет P a r t 2 A Z 4 M l A .
Поиск в строке
Найти местонахождение определенного текста или символа в пределах одной строки
в приложении 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 -м у и т.д.
Символы, которые в данном примере будут добавляться в конец числа, зависят толь
ко от самого числа. Поэтому невозможно привести стандартный пример этой формулы.
Пользователи могут каждый раз создавать собственную сложную конструкцию. В боль
шинстве порядковых номеров в английском языке используется суффикс th . Исключе
ние составляют номера, заканчивающиеся числами 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"; "rd "); " 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
Имейте в виду, что данная формула не проверяет Рис. 5.5. Формула применяется
правильность введенного числового значения номера для преобразования числа в по
столбца. Другими словами, если ячейка А1 содержит рядковое числительное
значение меньше 1 или больше 16 384, то формула все
равно будет давать результат, хотя уже не имеющий ни
какого смысла. Ниже приведена модифицированная вер
сия этой формулы, в которую введена новая функция
ЕСЛИОШИБКА, отображающая текст " Н е к о р р е к т н ы й
с т о л б е ц " вместо значения ошибки.
=ЕСЛИОШИБКА (ЛЕВСИМВ (АДРЕС (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 )