Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Уокенбах Формулы в Excel

.pdf
Скачиваний:
222
Добавлен:
26.03.2016
Размер:
35.82 Mб
Скачать

на ячейки. Для того чтобы объединить имена, Excel использует оператор пересечения. Щелчком на кнопке Параметры можно задать несколько дополнительных параметров, но только приусловии, что параметр Использовать имена строк и столбцов включен.

Автоматическое применение имен при создании формул

Если вы вставляете в формулу ссылку на ячейку илидиапазон, указывая этот элементтаблицы мышью, Excel автоматически заменяет адрес ячейки илидиапазона именем (в том случае, если данному элементу присвоено имя).

Такое поведение характерно только для Excel 97 и более современных версий программы.

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

Отмена имени

В Excel не предусмотрен специальный метод отмены имени. Иными словами, вы не сможете автоматически заменить имя ячейки или диапазона обычной ссылкой на этот элемент таблицы. Однако есть способ, с помощью которого можно заменить имя ссылкой. Для этого выберите Сервиса Параметры. Перейдите на вкладку Переход диалогового окна Параметры и выставьте флажок опции Производить вычисления по правилам Lotus 1-2-3. Затем нажмите <F2> для того, чтобы отредактировать формулу, содержащую одно или несколько имен ячеек или диапазонов. В результате формула будет содержать ссылки, а не имена ячеек или диапазонов (однако в строке формул будут все же отображены имена). Нажмите <Enter>, и редактирование ячеек будет окончено. Затем вернитесь в диалоговое окно Параметры и снимите флажок, отключив параметр

Производить вычисления по правилам Lotus 1-2-3. Отредактированная таким образом ячейка не будет содержать имен.

Удаление имен

Если вам не нужно ранее назначенное имя, вы можете удалить его. Приудалении имени диапазона, содержимое этого диапазона остается без изменений. Выберите Вставка^Имя^Присвоить. Появится диалоговое окно Присвоение имени. Выберите в списке имя, которое следует удалить, и щелкните на кнопке Удалить.

Удаляя имена, будьте предельновнимательны. Если имя используетсяв формуле, его удаление повлечет за собой ошибку в формуле (появится сообщение об ошибке #имя?). Было бы очень удобно, если бы в формуле программа заменяла удаленные имена ссылками на ячейки и диапазоны. Но Excel, к сожалению, неделает этого.Обнаружив сообщение обошибке #имя?, вы можете отменить удалениеимени. Длятого чтобы восстановить удаленноевами имя,выберите Правка^Отменить удаление.

90

Часть /.Основные св

Удаление именованных ячеек идиапазонов

При удалении строк и столбцов, содержащих именованные ячейки или диапазоны, имена не удаляются (вопреки вашим ожиданиям). Каждое имя в таком случае будет иметь некорректную ссылку. Предположим, ячейка А1 налисте Лист1 носит имя Interest.Если вы удалите строку 1или столбец A, Interest будет относиться к =Лист1! #ССЫЛКА! (ошибочная ссылка). Если имя Interest было использовано в формуле, появится сообщение об ошибке #ССЫЛКА!.

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

Переназначение имени

Иногда бывает необходимо переназначить ранее заданное вами имядругой ячейке или диапазону. Для этого выберите Вставка^Имя1^Присвоить. Появится диалоговое окно Присвоение имени. В списке диалогового окна выберите имя, которое следует переназначить, а затем отредактируйте запись в поле Формула. Вы можете также активизировать поле Формула, а затем выбрать любую ячейку или диапазон, указав этот элемент рабочего листа мышью.

Изменение имени

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

Если вы изменили имя в формулах, Excel не заменит старое имя новым автоматически. Для того чтобы найти все случаи использования старого имени в формулах и заменить старое имя новым, используйте команду Правкам Заменить.

Просмотр именованных диапазонов

Если вы измените масштаб изображения до 39% и меньше, вокруг именованных диапазонов вы увидите границы и имена, отображенные синим цветом (рис. 3.12). При печати границы имена не видны. Они предназначены только для того, чтобы вы могли видеть именованные диапазоны на экране.

Глава3. Работаемсименами

91

i 3 i

II!

i ! ! ! !

3

i

s

 

I

(fcilbiiilfeitcjnisi

 

I I

11 ' ! ' ! : l

J t\

Puc. 3.12. Если вы измените масштаб изображения до 39% и меньше, Excel отобразит имена диапазонов

Это свойство характерно только в Excel 97и последующих версий.

Использование имен вдиаграммах

При создании диаграммы каждая последовательность данных имеет соответствующую формулу РЯД. Формула РЯД содержит ссылки на диапазоны, используемые в диаграмме. Если в диаграмме используется именованный диапазон, вы можете отредактировать формулу РЯД, заменив ссылку именем диапазона.

Дополнительную информацию о диаграммах вы найдете в главе17.

Поддержка имен ячеек и диапазонов

Excel автоматически поддерживает созданные вами имена ячеек и диапазонов по мере того, как вы редактируете или изменяете рабочий лист. В следующих примерах мы будем рассматривать рабочий лист Лист1, содержащий имя MyRange, заданное на уровне рабочей книги. Предположим, что имя MyRange относится к диапазону =Лист1 !$С$3:$Е$5 (диапазон состоит из девяти ячеек).

Вставка строки или столбца

Когда вы вставляете строку выше именованного диапазона или столбец слева от именованного диапазона, Excel автоматически изменяет ссылку на этот диапазон так, чтобы она соответствовала новому адресу диапазона. Например, если вы вставите новую строку 1, имя MyRange будет относиться к =Лист1 !$С$4:$Е$б.

92

Часть /.Основные сведения

Если же вы вставите новую строку или столбец внутрь именованного диапазона, этот диапазон расширится и будет включать в себя новые строки или столбцы. Например, если вы вставите новый столбец слева от столбца Е, имя MyRange будет относиться к =Лист1!$С$3:$Р$5.

Удаление строки или столбца

Когда вы удаляете строку выше именованного диапазона или столбец слева именованного диапазона, Excel автоматически изменяет ссылку на этот диапазон так, чтобы она соответствовала новому адресу диапазона. Например, если вы удалите строку 1, имя MyRange будет относиться к =Лист1! $В$3 : $D$5.

Если же вы удалите строку или столбец внутри именованного диапазона, этот диапазон изменится соответствующим образом. Например, если вы удалите столбец D, имя MyRange будет относиться к =Лист1! $С$3 : $D$5.

Если вы удалите все строки и ячейки, составляющие именованный диапазон, именованный диапазон все же будет существовать, однако ссылка на него будет содержать ошибку. Например, если вы удалите столбцы С, D и Е, имя MyRangeбудет относиться к =Лист1! #ССЫЛКА!. Все формулы, в которых использовано это имя,также будут возвращать ошибки.

Вырезание ивставка именованного диапазона

Если вы вырезаете и вставляете именованный диапазон целиком, Excel изменяет ссылку соответствующим образом. Например, если вы переместите диапазон MyRange в другой участок листа, который начинается с ячейки А1, имя MyRange будет относиться к =Лист1! $А$1: $С$3. Если же вы вырежете и вставите только часть именованного диапазона, ссылка не изменится.

Проблемы при работе сименами

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

Проблемы, возникающие при копировании рабочих листов

Как вы, вероятно, знаете, Excel позволяет копировать рабочие листы в пределах рабочей книги, а также в другую рабочую книгу. Прежде всего, давайте рассмотрим пример копирования рабочего листа в пределах рабочей книги. Если копируемый лист содержит имена, заданные на уровне рабочего листа, те же имена будут присутствовать и в копии этого листа, причем в ссылках будет использовано имя нового рабочего листа. Это именно то, чего вы ожидали. Если же рабочая книга содержит имя, заданное на уровне рабочей книги, и это имя относится к ячейке или диапазону копируемого рабочего листа, имя также будет присутствовать и в копии. Но это имя будет преобразовано в имя, заданное на уровне рабочего листа. А это вам, скорее всего, совсем не нужно.

Рассмотрим рабочую книгу, содержащую один лист (Лист1). В этой книге есть имя — BookName, — назначенное ячейке А1 на уровне рабочей книги. Кроме того, есть еще одно

Глава 3. Работаем сименами

93

имя — Лист1!LocalName, — назначенное ячейке А2 на уровне рабочего листа. Если вы сделаете копию листа Лист1 в пределах рабочей книги, новый лист будет называться Лист1 (2). После того как лист будет скопирован, вы обнаружите, что теперь рабочая книга содержит четыре имени, перечисленных в табл. 3.1.

Таблица 3 , 1 Имена врабочей книге после копирования листа

Имя

Формула

Тип

BookName

=Лист1! $А$1

 

Уровень рабочей книги

JlMCTULocalName

=Лист1! $А$2

 

Уровень рабочего листа

Лист1 (2)'!BookName

='Лист1

(2)

'!$А$1

Уровень рабочего листа

Лист1 (2)'!LocalName

='Лист!

(2)

'!$А$2

Уровень рабочего листа

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

=BookName

Иными словами, используется вновь созданное на уровне рабочего листа имя (а не исходное имя, заданное на уровне рабочей книги).

Если вы скопируете лист рабочей книги, содержащей имя диапазона, относящегося к нескольким листам, вместе с этим рабочим листом будет скопировано и имя диапазона. В поле Формула появится сообщение об ошибке #ССЫЛКА!.

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

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

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

Проблемы, возникающие при удалениирабочихлистов

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

На рис. 3.13 показано диалоговое окно Присвоение имени, в котором присутствует имя с ошибкой. Исходная рабочая книга содержала лист Лист1, в котором был именованный диапазон (имя диапазона— MyRange— задано на уровне рабочей книги) A1:F12. После удаления листа Лист1 имя MyRange осталось в рабочей книге. Однако в поле Формула диалогового окна Присвоение имени появилось следующее выражение:

= #CCbUIKA!$A$l:$F$12

94

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

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

Ш(: "".хш

JMyRaoge

ЗДриуяа: j-#CCblfKA!$A$l :$F$12

Рис. 3.13. Удаление листа,содержащего ячейку диапазона MyRange, приводит к появлению ошибочной ссылки

формула: •

}-ЛистИ$В$1

А/с. 3.74. Формально, имя InterestRate представляет собой именованную формулу, а не именованную ячейку

Имена диаграмм иобъектов

Когда вы добавляете на рабочий лист диаграмму или любой другой объект, имя этой диаграмме или объекту назначается по умолчанию. Например, первая диаграмма рабочего листа получает имя Диагр. 1. Если вы добавляете фигуру (например, прямоугольник), имя отражает тип объекта (например, Прямоуг. 3).

Для того чтобы изменить имя объекта, выделите нужный объект, введите новое имя в поле Имя и нажмите <Enter>. Если же переименованию подлежит диаграмма, выделить необходимо весь объект диаграммы (область, содержащую диаграмму). Для этого нажмите <Ctrl> и одновременно щелкните на диаграмме мышью.

Поле Имя в Excel устроено не вполне логично в том смысле, что с его помощью можно переименовать объект, а список объектов в этом окне не отображается. Для того чтобы выбрать объект, используя поле Имя, вы должны ввести в это окно точное имя объекта. Следует отметить, что и в диалоговом окне Присвоение имени вы не найдете списка имен объектов.

Ключ к пониманию термина "имя"

Пользователи Excel часто обращаются к именованнымячейкам и именованным диапазонам. В этой главе я постоянно использовал эти понятия. Но эти термины не совсем точны.

Вот ключ к пониманию термина "имя":

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

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

Когда вы работаете в диалоговом окне Присвоение имени, поле Формула содержит формулу, а поле Имя — имя этой формулы. Обратите внимание на то, что содержимое поля Формула всегда начинается знаком равенства, что и делает эту запись формулой.

Как видно из рис. 3.14, рабочая книга содержит имя — InterestRate, — присвоенное ячейке В1 листа Лист1. В поле Формула присутствует следующая запись:

=Лист1!$В$1

Шва 3. Работаем сименами

95

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

=InterestRate*l,05

Оценивая формулу, Excel прежде всего анализирует формулу, которая носит имя InterestRate (которое существует только в памяти программы, а не в ячейке). Затем Excel умножает результат именованной формулы на 1,05 и возвращает результат. Разумеется, приведенная выше формула равноценнаформуле, в которой вместо имени используется ссылка на ячейку:

=Лист1!$В$1*1,05

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

Присвоение имени константе

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

Но есть еще один способ. На рис. 3.15 представлен результат выполнения следующих инструкций:

1.Выберите Вставка^Имя^Присвоить (или нажмите комбинацию клавиш <Ctrl+F3>). Появится диалоговое окно Присвоениеимени.

2.Введите имя (в данном случае SalesTax) в поле Имя.

3.Перейдите в поле Формула, удалите содержащуюся в этом поле запись и вместо нее введите простую формулу, например = 0, 07 5.

4.Щелкните на кнопке ОК для того, чтобы закрыть диалоговое окно.

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

вкоторой не используются ссылки на ячейки. Для того чтобы проверить все вышесказанное на практике, введем в любую ячейку такую формулу:

 

 

=SalesTax

 

 

Эта простая формула возвращает 0,075 — ре-

 

 

зультат именованной формулы SalesTax. Поскольку

vi

 

именованная формула всегда возвращает один и тот

,

,

же результат, ее можно считать именованной кон-

f___

^

г j

стантоиб л е е . Эта константа может быть использована и в

Рис.3.15. Назначение имени константе сложных формулах, какнапример:

=Al*SalesTax

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

Присвоение имени текстовым константам

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

96

Часть /. Основные св

Рис. 3.16. Создание именованной формулы, в которой используются функции рабочего листа

звания компании. Для создания следующей формулы, которая носит имя Л/5, используется диалоговое окно Присвоение имени:

="Microsoft Corporation"

Теперь в любой ячейке можно использовать такую формулу, как: ="AnnuaI Repor t : " SMS

Эта формула возвращает текст Annual Report: Microsoft Corporation.

Имена, не относящиеся к диапазонам, не появляются вполе Имя или диалоговом окне Переход (которое можно вызвать нажатием клавиши <F5>). Иэто логично, поскольку константы не присутствуют в ячейках рабочего листа. Константы отображаются в диалоговом окне Вставка имени, и это тоже логично, посколькуимена констант используются в формулах.

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

Этот прием очень эффективен во многих ситуациях. Однако изменение значения занимает некоторое время. Если константу расположить в ячейке, изменить ее значение будет значительно легче. Если значение действительно является константой, изменять его вам не придется.

Использование функций рабочего листа в именованных формулах

На рис. 3.16 приведен еще один пример именованной формулы. В этом случае формула носит имя ThisMonthи выглядит так:

«МЕСЯЦ(СЕГОДНЯ())

В формуле, которая демонстрируется на рис. 3.16, используются две функции рабочего листа. Функция СЕГОДНЯ возвращает текущую дату, а функция МЕСЯЦ — номер месяца аргумента даты.

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

=ThisMonth

Более эффективная именованная формула будет возвращать название месяца в текстовой форме. Такая формула под именем MonthName будет выглядеть следующим образом:

=ТЕКСТ( СЕГОДНЯ () ;"ММММ")

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

=MonthName

Глава 3. Работаемс именами

97

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

На рис. 3.17 приведен очередной пример создания именованной формулы. На этот раз в формуле используется ссылка на ячейку. Эта формула под именем FirstChar возвращает первый символ, содержащийся в ячейке А1 листа Лист1. Именованная формула выглядит так:

=ЛЕВСИМВ(Лист!!$А$1;1)

JFrstChar

I

1

'

'

 

 

 

1

 

 

 

 

 

формула; • . ' > '

.

* :

 

 

 

|-ЛЕВСИМВ(Лист11$А$1;1)

 

 

|-СУММ(Лист11$А$1:$О$4)

 

A/c. 5.77. Создание именованной формулы, в

Рис. 3.18.

Создание

именованной

которой используется ссылка на ячейку

формулы,

в которой

используется

ссылка на диапазон

Создав такую именованную формулу, вы можете ввести эту формулу в ячейку. Формула всегда возвращает первый символ, содержащийся в ячейке А1 листа Лист1.

=FirstChar

В следующей именованной формуле, которую мы рассмотрим, используется ссылка на диапазон. На рис. 3.18 показано диалоговое окно Присвоение имени, в котором задана именованная формула (под именем Total).

=СУММ(Лист!$А$1:$D$4)

Создав такую именованную формулу, вы можете ввести эту формулу в ячейку любого рабочего листа. Формула возвращает сумму значений ячеек диапазона Al: D4 листа Лист1.

=Total

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

Использование именованных формул

сотносительными ссылками

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

98

Часть I.Основные сведения

].Лист!А5
Рис. 3.19. Формула под именем CellToRight меняется в зависимости от того, какая ячейка активна в данный момент

Использование относительной ссылки на ячейку

Начнем с простого примера. Для того чтобы создать именованную формулу с относительной ссылкой на ячейку, выполните следующее:

1.Откройте пустой рабочий лист.

2.Выделите ячейку А1 (этот шаг очень важен).

3.Выберите Вставка^\Лмя^>Присвоить. Появитсядиалоговое окно Присвоение имени.

4.В поле Имя введите CellToRight.

5.Удалите содержимое поля Формула и введите следующую формулу (не указывая ячейку рабочего листа мышью):

=Лист1!В1

6.Щелкнитена кнопкеОКдля того, чтобы закрыть диалоговое окно Присвоение имени.

7.Введите что-либо в ячейку В1.

8.В ячейку А1 введите следующую формулу.

=CellToRight

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

Затем скопируйте формулу ячейки А1 в несколько ячеек, расположенных под ней. Теперь введите произвольные значения в столбец В. Вы увидите, что формула, расположенная в столбце А, возвращает содержимое ячейки, расположенной справа. Иными словами, именованная форму-

ла (CellToRight) имеет относительный характер.

Имя CellToRight может быть использовано в любой ячейке (а не только в ячейках столбца А). Например,если вы введете CellToRight в ячейку D12, эта ячейка будет возвращать содержимое ячейки Е12.

Для того чтобы убедиться в том, что в именованной формуле CellToRight действительно используется относительная ссылка на ячейку, активизируйте любую ячейку, кроме А1, и откройте диалоговое окно Присвоение имени (рис. 3.19). В списке выберите CellToRight и обратите внимание

на содержимое поля Формула. Вы увидите, что формула изменяется в зависимости от того, какая ячейка активна в данный момент. Например, если активна ячейка Е5, формула в диалоговом окне будет выглядеть так:

=Лист1!Р5

Если вы используете имя CellToRight в другом рабочем листе, формула все равно будет ссылаться на ячейку, расположенную справа. И это будет ячейка с соответствующим адресом на листе Лист1. Это происходит потому, что именованная формула содержит ссылку на рабочий лист. Для того чтобы формула могла работать на любом рабочем листе, измените ее, следуя инструкциям:

1.Активизируйте ячейку А1 рабочего листа Лист1.

2.Выберите Вставка^Имя^Присвоить.Появитсядиалоговое окно Присвоение имени.

3.В списке диалогового окна Присвоение имени выберите пункт CellToRight.

Шва 3. Работаем сименами

99