Microsoft Excel 2010 для опытных пользователей Построение сквозных таблиц с межтабличными связями Представьте, что у вас есть некий набор товаров, которым вы торгуете, и итоговую сумму продаж за день вы рассчитываете в отдельной таблице. В расчете используются цены на продукт и объем продаж. При этом цены на товары меняются каждый день. Можно ежедневно вручную менять в таблице цены, а можно создать отдельную таблицу с данными по ценам и воспользоваться функцией межтабличных связей. Связь между таблицами Excel – это ссылка, которая позволяет использовать данные с ячейки другого листа или другой рабочей книги Excel. Когда вы открываете книгу, содержащую связи, Excel считывает с книги-источника последнюю информацию, то есть связи автоматически обновляются вместе с обновлением данных. Это очень удобно. Связывать можно и таблицы, которые находятся в одной книге, и таблицы, которые находятся в разных книгах. Мы будем связывать таблицы, находящиеся в разных файлах. Чтобы связать такие таблицы, нужно открыть обе рабочие книги в Excel. В исходной книге выберем ячейку, которую необходимо связать, скопируем ее при помощи сочетания клавиш «Ctrl+C» и перейдем в книгу, где находится таблица с продажами. Для этого перейдите на вкладку «Вид» и нажмите кнопку «Перейти в другое окно». В открывшемся списке выберите «Продажи январь». Открылась книга с таблицей продаж за день. Теперь необходимо щелкнуть правой кнопкой мыши по ячейке, в которую мы хотим поместить связь. В выпадающем меню выберите пункт «Специальная вставка», затем – «Вставить связь». В ячейке появилось число, а в поле «Формула» – ссылка на исходную ячейку. Когда вы создаете связь между таблицами, Excel создает формулу, которая включает в себя имя исходной книги, заключенное в квадратные скобки, имя листа с восклицательным знаком на конце и ссылку на ячейку. Есть еще один – более простой – способ создания связи между таблицами. В ячейке, в которую вы хотите вставить связь, нужно поставить знак равенства (так же, как и для обычной формулы). 1 Теперь перейдите в исходную книгу (в нашем случае это «Прайс»). Выбираем ячейку, которую хотим связать, и нажимаем «Enter». Готово: открылась книга «Продажи январь», в которой появилось новое значение. Аналогичным образом свяжем оставшиеся позиции. Чтобы обновить связи между таблицами вручную, перейдите на вкладку «Данные» в группу «Подключения». Существует два способа обновить связи. Вы можете воспользоваться кнопкой «Обновить всё» или, если вам необходимо обновить не все данные, кнопкой «Изменить связи». Щелкните по кнопке «Изменить связи». В появившемся диалоговом окне «Изменение связей» нужно выбрать интересующую вас связь и щелкнуть по кнопке «Обновить». После этого можно закрыть окно, щелкнув по кнопке «Закрыть». Теперь давайте разорвем связь. Разрыв связи нельзя отменить. Поэтому прежде чем совершить эту операцию, рекомендуем сохранить книгу. Снова откроем окно «Изменение связей», щелкнув по кнопке «Изменить связи». В появившемся диалоговом окне выберем связь, которую нужно удалить, и кликнем по кнопке «Разорвать связь». Разрыв связи с источником приведет к замене существующих формул связи в нашей таблице на значения, которые они возвращают. Например, связь с ячейкой Е3 будет заменена на число 170. Полезные советы: • Исходная книга должна работать в режиме автоматического вычисления (оно установлено по умолчанию). Чтобы переключить параметр вычисления, перейдите по вкладке «Формулы» в группу «Вычисление». Выберите «Параметры вычислений», далее – пункт «Автоматически». • Делайте легко отслеживаемые связи. Не существует автоматического поиска всех ячеек, которые содержат ссылки. Поэтому используйте определенный формат, чтобы быстро идентифицировать связи с другими таблицами. Иначе документ, содержащий ссылки, может разрастись до такой степени, что его будет трудно поддерживать. • Избегайте циклических ссылок, когда две рабочие книги содержат ссылки друг на друга. Из-за таких связей файл может медленно открываться и плохо работать. 2 Использование функции ВПР для подстановки значений Еще один способ связать таблицы – использовать для подстановки значений функции ВПР и ГПР. Принцип их работы одинаков, только ВПР ищет значение, двигаясь по вертикали, а ГПР – по горизонтали. Рассмотрим подробнее работу с функцией ВПР. Итак, у нас есть таблица заказов, которая находится в файле «Продажи», и прайс-лист в отдельном файле «Прайс_лист». Задача прежняя – подставить цены из прайс-листа в таблицу заказов, чтобы можно было посчитать стоимость заказа и выставить счет. Но таблица с заказами большая, и связывать ее с прайс-листом вручную (как мы делали в предыдущем уроке) достаточно трудоемко. Давайте упростим себе задачу и автоматизируем процесс. Для этого воспользуемся функцией ВПР. Схематически работу этой функции можно представить так: она ищет заданное значение (в нашем примере это слово «Грейпфрут») в указанной таблице «Прайс_лист», двигаясь сверху вниз. Найдя его, функция возвращает содержимое нужной ячейки в указанный нами столбец «Отпускная цена». Она равна 85 руб. Если таблицы с данными будут неоднократно дополняться, то, чтобы в дальнейшем использовать функцию было проще, дадим диапазону ячеек с данными прайс-листа собственное имя. Для этого откроем файл «Прайс_лист» и выделим в нем все ячейки с данными, кроме «шапки». Перейдем в меню «Формулы». В группе «Определенные имена» нажмите кнопку «Присвоить имя». В открывшемся окне «Создание имени» вводим имя (обратите внимание: оно должно быть без пробелов). Пусть это будет «Прайс». Теперь нажимаем кнопку «Ok». Вернемся в файл «Продажи». Выделим ячейку А2 и кликнем по кнопке «Вставить функцию». В открывшемся окне «Мастер функций» кликните по кнопке в поле «Категория» и в выпадающем списке выберите «Ссылки и массивы». Выберите функцию «ВПР» и нажмите кнопку «Ok». Открылось диалоговое окно «Аргументы функции». Давайте заполним его поля. В поле «Искомое_значение» указывается та ячейка, которую нужно найти в крайнем левом столбце. В нашем случае в прайс-листе функция должна найти наименование товара – слово «Грейпфрут» из ячейки A2. В поле «Таблица» указывается название таблицы, из которой мы собираемся брать данные (обратите внимание: для работы с функцией ВПР файл с этой таблицей должен быть открыт). 3 Перейдем на вкладку «Вид», нажмем кнопку «Перейти в другое окно» и в выпадающем списке выберем «Прайс_лист». Перед нами открылся файл с прайс-листом. Выделим ячейки с данными, не трогая шапку таблицы, и нажмем «Enter». В поле «Номер столбца» указывается порядковый номер столбца, из которого вы хотите взять данные. Цены в прайс-листе находятся в третьем столбце, поэтому в это поле мы вводим число «три». В поле «Интервальный просмотр» можно вводить только два значения: ЛОЖЬ (ноль) или ИСТИНА (единица). Если введено значение 0 или ЛОЖЬ, значит, разрешен поиск только точного соответствия. Если функция не найдет указанного в таблице заказов товара в прайс-листе, она выдаст ошибку «нет данных». Если введено значение 1 или ИСТИНА, значит, функция будет искать не точное, а приблизительное соответствие. В нашем случае она попытается найти товар с наименованием, которое максимально похоже на «Грейпфрут», и выдаст цену для этого товара. Для большинства реальных задач приблизительный поиск лучше не разрешать, так как скорее всего он даст непредсказуемый результат. Такой поиск можно применять, только если вам нужно найти не текстовые, а числовые значения. Итак, введем «0» и нажмем кнопку «Ok». Теперь в ячейке E2 задана функция «ВПР». Чтобы рассчитать стоимость поставки 20 кг грейпфрутов, выделим ячейку F2 и введем формулу: стоимость партии равна ее объему, умноженному на цену одного килограмма, то есть произведению ячеек D2 и E2. Нажмем «Enter». Готово. В ячейке появилась стоимость партии грейпфрутов. Теперь выделяем ячейки E2 и F2 и, зажав левую кнопку мыши, растягиваем их по высоте на всю таблицу. Мы получили данные для накладной. А что делать, если выдается сообщение об ошибке? Причин может быть несколько. 4 Может быть включен точный поиск, и искомого наименования нет в таблице. В нашем случае в прайс-листе есть продукт «Морковь», а не «Морковка». Может быть включен приблизительный поиск, а таблица не отсортирована по возрастанию наименования. У ячеек могут быть разные форматы (в нашем случае – текстовый и числовой). Этот случай особенно характерен при использовании вместо текстовых наименований числовых кодов (номера счетов, идентификаторы, даты и тому подобное). Чтобы привести форматы данных к одному типу, вы можете использовать функции Ч и ТЕКСТ. Наконец, возможно, что функция не может найти нужного значения, потому что в коде присутствуют пробелы или невидимые непечатаемые знаки (например, перенос строки). Удалить их можно при помощи текстовых функций «Сжать пробелы» и «Печатные символы» (о них мы поговорим в отдельном уроке). Начиная с версии 2007 года, для подавления сообщения об ошибке можно воспользоваться функцией ЕСЛИОШИБКА. Итак, теперь вы знаете, как связывать таблицы при помощи функции ВПР. Но прежде чем вы начнете создавать связи между таблицами в свои проектах, напомним несколько советов по работе с этой функцией в Excel. • Давайте имена диапазону с данными в таблице поиска. • Таблица, в которой вы собираетесь искать данные, должна быть отсортирована. Значения в первом столбце массива «таблица» должны быть отсортированы по возрастанию. • Приводите формат ячеек, из которых берется искомое значение, и формат ячеек первого столбца таблицы, в которой будет осуществляться поиск, к одному типу (числовому, текстовому и т.п.). • В значениях, которые будут участвовать в поиске, удалите пробелы и невидимые непечатаемые знаки. 5 Консолидация данных Консолидация данных – это сбор и объединение данных из разных исходных областей. При помощи этой функции Excel вы можете просуммировать значения, подсчитать их количество, вывести среднее арифметическое и многое другое. Причем исходные области могут располагаться как в одном файле, так и в нескольких. Давайте начнем с консолидации данных из ячеек, расположенных на разных листах, но в одной книге. У нас есть сведения по продажам за каждый квартал, которые расположены на соответствующих листах: указаны наименование товара, объем партии в тоннах и количество доставок. На основании этих данных нам нужно получить итоговые продажи за год. Обратите внимание, на листе «4 квартал» таблица немного отличается от 1, 2 и 3 кварталов – второй и третий столбец в ней поменялись местами. Итак, приступаем к консолидации. Для начала нужно указать то место, где мы хотим поместить итоговый отчет. Для этого создадим в файле новый лист и назовем его «Год». Выделим начальную ячейку новой таблицы А1. Далее перейдите на вкладку «Данные» и в группе «Работа с данными» нажмите кнопку «Консолидация». В открывшемся окне сделаем ряд настроек. В поле «Функция» нужно выбрать из списка ту функцию, которая будет обрабатывать исходные диапазоны. В нашем случае это «Сумма». В поле «Ссылка» мы указываем все диапазоны значений, которые хотим увидеть в годовом отчете. Для этого переходим на лист «1 квартал», выделяем всю область данных вместе с заголовками и нажимаем «Enter». После этого нажимаем кнопку «Добавить». Проделываем эту же операцию с остальными листами. Поле «Подписи верхней строки» переносит названия столбцов в новую таблицу. Если порядок расположения столбцов в таблицах, данные из которых вы консолидируете, различный, ставьте галочку обязательно. Как вы помните, у нас именно такая ситуация, поэтому поставим галочку. В поле «Значения левого столбца» тоже ставим галочку – критерий, по которому объединяются наши таблицы (наименование товара), должен находиться в крайнем левом столбце выделенного диапазона. 6 Если исходные данные будут меняться, обязательно ставьте галочку напротив пункта «Создать связи с исходными данными». При изменении данных в исходниках будет меняться и итоговый отчет. Мы галочку ставить не будем, нажмем кнопку «Ok» и отформатируем полученную таблицу. Мы получили полный список всех наименований, которые хоть раз встречались в исходных таблицах, и по каждому из этих наименований – данные по объему и количеству поставок за год. Теперь давайте посмотрим, как консолидировать данные, которые находятся в разных файлах. У нас есть несколько торговых сетей, куда мы поставляем продукцию: это магазины «Семейный», «Фермер», «Продукты из СССР» и «Хороший магазин». Поставки для каждой из этих сетей ведут разные менеджеры, а данные хранятся в отдельных файлах. На основании этих данных нам нужно сделать общую таблицу и разместить ее в файле «Сводка_Год». Все внешние файлы, из которых вы будете собирать данные, должны быть открыты перед консолидацией. Откроем их. Теперь в нашем файле на странице «Итоги» выделяем начальную ячейку и на вкладке «Данные» нажимаем кнопку «Консолидация». В отрывшемся окне нужно задать исходные таблицы. Для этого перейдем на вкладку «Вид» и нажмем кнопку «Другое окно». Перед нами – список со всеми открытыми файлами. Выберем файл «Хороший магазин», выделим в нем таблицу и нажмем кнопку «Добавить». Проделав аналогичную процедуру с оставшимися файлами, выставим необходимые галочки и нажмем кнопку «Ok». Отформатируем полученную таблицу. Готово. Мы построили консолидированную таблицу, в которой по каждому из наименований просуммировано как количество проданного товара за год, так и число его поставок. Благодаря тому, что мы поставили галочку в поле «Создать связи с исходными данными», товары оказались сгруппированы. Теперь, если мы щелкнем правой кнопкой мыши на плюсик в строке «Капуста белокочанная», то увидим, что она продавалась во всех четырех магазинах, а щелкнув по плюсику в строке «Арбузы», узнаем, что они продавались только в двух магазинах – «Продукты из СССР» и «Хороший магазин». Если вы хотите увидеть сведения по всем товарам сразу, щелкните по квадратику с цифрой «2» в верхнем левом углу. А если щелкнуть по ячейке с 7 данными, то в строке состояния можно увидеть, из какого файла и из какой ячейки взяты эти данные. При изменении данных в любой из исходных таблиц данные в консолидированной таблице тоже изменятся. Итак, мы получили таблицу, из которой ясно видно, куда, какой товар, в каком количестве и сколько раз поставлялся. Запомните несколько советов: • Старайтесь привести исходные таблицы к одному типу. Количество столбцов, их наименование и порядок следования должны быть одинаковыми. • Приводите формат ячеек соответствующих столбцов исходных таблиц к одному типу. • Будет еще лучше, если вы заранее создадите для исходных таблиц шаблон, чтобы унифицировать формат представления данных. Динамические таблицы Начиная с версии Microsoft Excel 2007, в программе добавилась возможность форматировать диапазон с данными как динамическую таблицу. Давайте узнаем, как это сделать и какие преимущества дает этот инструмент. В качестве иллюстрации используем пример с таблицей заказов. У нас есть таблица заказов, расположенная в файле «Продажи». Данные для ее столбцов «Категория», «Склад» и «Цена за килограмм» с помощью функции ВПР берутся из диапазона с именем «Прайс» файла «Прайс_лист». Для большей наглядности сейчас мы используем усеченную версию таблицы прайс-листа. Как вы помните, при создании этой таблицы диапазон с исходными данными мы назвали «Прайс». Выделим весь диапазон, чтобы убедиться в этом. Добавим в прайс-лист три новых продукта, перейдем на вкладку «Данные», выделим первый столбец и применим фильтр «Сортировка от А до Я». Снова выделим весь диапазон с данными прайс-листа. Посмотрите, он носит другое название. Диапазон же «Прайс» не изменился, и в него не вошли лук репчатый, огурцы и яблоки. Это значит, что функции ВПР в таблице «Продажи», которые по-прежнему ссылаются на диапазон «Прайс», просто не найдут эти товары, и выдадут ошибки. То есть если у таблицы меняются размеры, то пользователю придется отслеживать все формулы, которые ссылаются на нее. 8 Кроме того, при изменении диапазона данных появляется много мелких неприятных моментов, связанных с форматированием: формат новых ячеек определяется по умолчанию, и его, возможно, придется менять; если какие-то из столбцов исходной таблицы содержали формулы, то их нужно будет протянуть в новые строки и так далее. Вернемся к исходному прайс-листу. Чтобы избавиться от всех перечисленных выше проблем, достаточно наш пока просто диапазон данных в книге форматировать как таблицу. Сделайте активной ячейку внутри списка и на вкладке «Главная» выберите команду «Стили». Далее на открывшейся панели нажмите кнопку «Форматировать как таблицу». Теперь выберем вариант дизайна. В появившимся окне нужно подтвердить, что необходимые данные лежат в указанном диапазоне. Галочка, которая стоит в поле «Таблица с заголовками», означает, что первая строка в таблице является ее шапкой. Нажмите «Ok». Наша таблица стала динамической (еще ее называют умной) и выглядит довольно симпатично. В шапке таблицы по умолчанию включается автофильтр. Теперь новые строки и столбцы, которые вносятся в таблицу, автоматически включаются в общий список и в базу данных и попадут в итоговый отчет. Обратите внимание: на вкладке «Конструктор», которая появилась после преобразования таблицы в динамическую, содержится имя диапазона ее данных. Здесь же при желании его можно изменить. Давайте назовем нашу таблицу «ДинамическийПрайс» (без пробела – имя таблицы не может его содержать). Давайте посмотрим, что изменилось. Перейдите на вкладку «Формулы» и нажмите кнопку «Диспетчер имен». В открывшемся окне мы видим два именных диапазона данных: старый, с именем «Прайс», и новый – с именем «ДинамическийПрайс». При этом фактически это один и тот же диапазон. Закроем это окно и увеличим нашу теперь уже динамическую таблицу, потянув за синий треугольник в ее правом нижнем углу. Таблица увеличилась, сохранив при этом свое форматирование. Добавим в прайс-лист три новых продукта. Щелкнем по кнопке автофильтра в ячейке «Наименование» и применим фильтр «Сортировка от А до Я», чтобы упорядочить товары. Еще раз нажмем кнопку «Диспетчер имен». Смотрите, что произошло: диапазон данных изменился, но он по-прежнему одинаков и для диапазона с именем «Прайс», и для 9 диапазона с именем «ДинамическийПрайс». Это значит, что теперь, сколько бы мы ни добавляли товаров в наш прайс-лист, функции ВПР в таблице продаж будут работать корректно. Вернемся к таблице «Продажи» и превратим ее в динамическую. У нас уже выделена ячейка внутри списка, поэтому просто нажмем кнопку «Стили». На открывшейся панели нажмем кнопку «Форматировать как таблицу» и выберем вариант дизайна. В появившимся окне подтверждаем, что наши данные лежат в этом диапазоне, убеждаемся в наличие галочки в поле «Таблица с заголовками» и нажимаем «Ok». Таблица стала «умной», и на панели управления появилась новая вкладка «Конструктор». С помощью инструментов, которые на ней собраны, можно изменить стиль таблицы и добавить в нее полезный функционал. Нажмите кнопку «Параметры стилей таблиц». В открывшемся меню выставьте галочку рядом с полем «Строка итогов». Теперь внизу таблицы появилась строка итогов. Итоговые результаты для каждого столбца мы можем настроить. В столбце «Отгружено» выберем параметр «Сумма». В ячейке появится цифра – заказчикам было отгружено чуть больше 25 тонн товара. В столбце «Стоимость поставки» выберем параметр «Среднее», и в ячейке появится средняя стоимость поставки. В столбце «Заказчик» выберем «Количество», и в ячейке появится количество осуществленных поставок. А теперь, пользуясь автофильтрами, мы можем получить интересующие нас сведения: какое количество фруктов менеджер Самойлов поставил в магазин «Десяточка». Это можно выяснить с помощью нескольких кликов. Сначала включим фильтр по названиям магазинов. Нас интересует только магазин «Десяточка». После включения фильтра сразу видно, что всего в «Десяточку» была сделана пятьдесят одна поставка. А теперь применим фильтр к столбцу «Менеджер» и выберем все записи с участием менеджера Самойлова. Количество поставок уменьшилось с пятидесяти одной до четырнадцати. Осталось выбрать категорию товара – «Фрукты». Теперь видно, что менеджер Самойлов совершил десять поставок фруктов в магазин «Десяточка», общий вес поставленных фруктов составил 165 кг, а средняя стоимость поставки – 1952 руб. 10 Формы Данные в таблицу Excel можно вводить двумя способами: непосредственно в строку или с помощью формы. «Форма» представляет собой диалоговое окно, которое приспосабливается к вашим данным. В нем отображаются названия столбцов таблицы, а рядом с ними – поля, которые нужно заполнить. Использовать формы очень удобно, если количество столбцов в вашей таблице превышает число столбцов, которое может одновременно отображаться на экране: вам не понадобится горизонтальная прокрутка, чтобы перемещаться между ними. Однако обратите внимание: формы можно применять, только если для выполнения задачи вам достаточно простого перечисления данных, а более сложные или настраиваемые возможности (например, выпадающие списки и вычисления) вам не нужны. Давайте посмотрим, как работать с формами. Но для начала нужно добавить кнопку «Форма» на панель быстрого доступа – в меню вы ее не найдете. Щелкните по стрелке рядом с панелью быстрого доступа и выберите пункт «Другие команды». В поле «Выбрать команды» выберите пункт «Все команды» и в открывшемся списке найдите кнопку «Форма». Нажмите «Добавить», а затем – «Оk». Готово. На панели быстрого доступа появилась кнопка «Форма». Теперь выделим строку с заголовками и кликнем по кнопке «Форма». Мы получим вот такое предупреждение. Нажмем «Ok». Открылось окно формы, которая была создана по нашей таблице. Данные вводятся в текстовые поля рядом с названиями столбцов. Внесем новые данные. Для перехода из поля в поле удобно пользоваться клавишей табуляции. После того, как все необходимые данные внесены, нажмите кнопку «Добавить» или клавишу Enter. В таблице появилась новая запись, а сама форма осталась открытой, в нее можно вносить новые данные. Если после ввода данных вы нажмете кнопку «Закрыть», то форма закроется, но новая запись все равно будет добавлена в таблицу. Чтобы удалить запись из формы и из таблицы, используйте кнопку «Удалить». Но запомните, что отменить это действие и вернуться на шаг назад невозможно. Кнопка «Вернуть» восстанавливает любую информацию, которую вы редактировали, но нажимать ее нужно перед кнопкой «Добавить». 11 Кнопка «Далее» будет показывать в форме каждую следующую запись, то есть переходить на одну запись вперед, двигаясь вниз по таблице. Кнопка «Назад» будет показывать в форме предыдущую запись, то есть переходить на одну запись назад, двигаясь вверх по таблице. Кнопка «Критерии» позволяет ввести критерий, по которому выполняется поиск записей. Это очень удобно, если ваша таблица большая. Если вы передумали пользоваться критериями для отбора, нажмите кнопку «Правка», если нет – запишите в форму нужные критерии для отбора, например, наименование товара или номер склада. В форме останутся только те строки, содержимое которых начинается с указанных данных. Например, если в качестве критерия ввести букву М, то будут найдены строки «Манго», «Мандарины» и «Морковь». Чтобы посмотреть все подходящие под введенный критерий записи, нажимайте кнопки «Далее» или «Назад». Чтобы найти текст, который содержит только определенные символы, можно использовать подстановочные знаки. Например, «?» заменяет любой символ. Если в качестве критерия вы укажете «? алина», то в таблице будут найдены слова «Малина» и «Калина». «*» заменяет любое количество символов. Так, по условию «*ка» будут найдены «Малина», «Клубника», «Черника» и так далее. При вводе условия «> 100» в поле «Отпускная цена» программа покажет все товары, отпускная цена за килограмм которых больше 100 рублей. • На листе книги лучше помещать только одну таблицу. • Если на листе есть какие-то другие данные, то между этими данными и таблицей нужно оставлять хотя бы одну пустую строку и один пустой столбик. • В самой таблице пустых столбиков и строк быть не должно. • Заголовки лучше выделить: шрифтом, написанием, цветом, выравниваем. • Следите за форматом данных в ячейках и не делайте перед ними лишние пробелы. • Если в таблице более 32 столбцов, команда «Форма» не работает. Вам придется отказаться от этого метода ввода данных и вводить информацию в ячейки напрямую. 12 Выпадающий список При заполнении таблиц очень удобно пользоваться выпадающим списком – это значительно экономит время. Самый простой способ воспользоваться выпадающим списком – щелкнуть правой кнопкой мыши в пустой ячейке под столбцом с данными и выбрать команду контекстного меню «Выбрать из раскрывающегося списка» или нажать сочетание клавиш ALT + стрелка вниз. Однако следует помнить, что этот способ не работает, если ячейку и столбец с данными отделяет хотя бы одна пустая строка или вам нужен товар, который еще ни разу не вводился в таблицу. Рассмотрим еще один способ создания выпадающего списка – самый распространенный. У нас есть таблица, которую заполняют менеджеры, и список наименований товаров (он расположен на отдельном листе того же файла). Давайте сразу преобразуем этот список в умную таблицу и присвоим имя диапазону с данными. Теперь вернемся к основной таблице. Выделим в ней все ячейки, в которых мы хотим получить выпадающий список, перейдем на вкладку «Данные» и нажмем кнопку «Проверка». В открывшемся диалоговом окне из выпадающего списка «Тип данных» выберите вариант «Список». Введите в поле «Источник» знак равенства и имя диапазона, из которого мы будем брать данные для выпадающего списка. Нажмем «Ok». Теперь давайте нажмем на какую-нибудь ячейку ниже выделенного диапазона. Ничего не произошло. А вот при нажатии на ячейки в ранее выделенном диапазоне открывается список, из которого можно выбрать необходимое значение. Важное дополнение: так как в качестве источника данных для списка мы использовали динамический диапазон, то при добавлении в него новых товаров они будут автоматически добавляться и в выпадающий список. Давайте попробуем добавить в таблицу товар «авокадо». Как видите, пока в нашем выпадающем списке этого фрукта нет. Добавим его в список товаров и применим к этому списку фильтр «Сортировка от А до Я». Если этого не сделать, авокадо будет располагаться в конце списка, а это, согласитесь, нелогично. Вернемся к таблице, которую мы заполняем, и откроем выпадающий список. Как видите, авокадо в нем появилось. 13 Усложним задачу: создадим выпадающий список для всех ячеек столбца «Заказчик», источник данных для которого находится в другом файле. Выпадающий список, как и в предыдущем примере, создадим с помощью кнопки «Проверка». Сначала все действия аналогичны действиям предыдущего примера, а вот в поле «Источник» нам придется воспользоваться функцией ДВССЫЛ. Она преобразует текстовую строку аргумента в реальный адрес, который используется для ссылки на данные. Давайте введем конструкцию, которую вы видите на экране. Обратите внимание: имя файла заключается в квадратные скобки, а восклицательный знак служит разделителем имени листа и адреса диапазона ячеек. Если имя файла содержит пробелы, то его надо заключить в апострофы. Если файл с исходными данными для списка лежит в другой папке, необходимо указать полный путь к файлу. В этом случае не забудьте заключить в апострофы полный путь к файлу и имя листа. Связанные выпадающие списки Давайте еще больше упростим себе работу по заполнению таблиц. Сделаем мы это тоже при помощи выпадающих списков, но уже связанных. Это не просто удобный инструмент – использование связанных списков уменьшает количество возможных ошибок. Рассмотрим, как это работает, на примере нашей таблицы. В ней мы должны заполнить ячейку в столбце «Менеджер», а затем в соседнем столбце «Магазин» указать, в какой именно магазин поставлялась продукция. В нашей организации за каждым менеджером закреплены конкретные магазины. Если мы перейдем на соответствующий лист, то увидим вот такую таблицу: в ней каждый столбец – это имя менеджера, а в строках ниже располагаются магазины, за которые он отвечает. Обратите внимание, таблица преобразована в умную таблицу. Это важно. Давайте сделаем так, чтобы в основной таблице при выборе из выпадающего списка фамилии менеджера выпадающий список в соседней ячейке содержал только те магазины, за которые отвечает этот менеджер. Присвоим умной таблице имя «Менеджеры». Для этого нужно выделить любую ячейку в таблице – появится вкладка «Конструктор». Перейдем на нее и поменяем имя нашей таблицы. 14 Обратите внимание, части таблицы тоже являются диапазонами с именем. Если мы выделим ячейку, введем знак равенства, а затем выделим заголовок таблицы, то увидим, что у строки заголовков нашей таблицы есть имя. А теперь давайте выделим данные в первом столбце. Имя этого диапазона – «Иванова С.А.». То есть Excel разбил нашу таблицу на несколько диапазонов и присвоил им имена. Приступим к созданию связанных выпадающих списков. Сначала создадим выпадающий список для менеджеров. Еще раз выделим шапку умной таблицы и скопируем имя диапазона (в дальнейшем мы будем на него ссылаться). Вернемся в основную таблицу. Выделим ячейки столбца «Менеджер» и воспользуемся уже знакомым нам инструментом «Проверка». Типом данных назначим список, а в поле «Источник» вставим скопированную из буфера обмена ссылку. Нажмем кнопку «Ok». К сожалению, Excel не хочет воспринимать ссылку в таком виде, поэтому воспользуемся уже известной нам функцией ДВССЫЛ. Теперь ссылка на источник данных выглядит так. Выпадающий список для менеджеров готов. Теперь создадим зависимый от него выпадающий список для ячеек столбца «Магазин». Вернемся к таблице «Менеджеры», выделим данные в первом столбце нашей таблицы и скопируем имя диапазона. Перейдем на лист с основной таблицей и повторим уже привычные действия: выделим диапазон ячеек и используем инструмент «Проверка». Здесь начинается самое главное. Посмотрите на нашу ссылку внимательнее. Слово «Менеджеры» и квадратные скобки – это ее постоянная часть, а вот вторая часть (сейчас это фамилия менеджера) должна зависеть от содержимого ячейки соседнего столбца, т.е. от того, фамилия какого менеджера там находится. Поэтому для начала разобьем нашу ссылку на постоянную и переменную части. Делается это при помощи кавычек. Продолжим преобразования. Выделим переменную часть ссылки и кликнем по соседней ячейке. В данном случае это ячейка G2. Обратите внимание на знаки доллара перед буквой столбца и номером ячейки. Они означают, что ссылка на ячейку – абсолютная. Перед буквой столбца абсолютный характер ссылки оправдан, ведь только в столбце G мы указываем фамилии менеджеров. А вот ссылка на строку должна быть относительной, иначе в выпадающем списке мы всегда будем видеть только магазины, за которые отвечает менеджер Рыкова – именно она указана в строке 2. Поэтому уберем знак доллара перед номером строки. 15 Осталось собрать части получившейся ссылки в единое целое. Для этого воспользуемся знаками амперсанд. Можно нажимать «Ok». При нажатии напротив незаполненной ячейки в выпадающем списке появится полный перечень магазинов. У нашей компании появилось три новых заказчика, и нам потребовалось взять на работу нового менеджера. Он отвечает за два новых магазина, а еще один мы передали нашему лучшему менеджеру Ивановой С.А. Соответственно, в умную таблицу со списком менеджеров и магазинов, за которые они отвечают, пришлось добавить новые данные. Проверяем. В списке менеджеров появился менеджер Томин, а в соседней ячейке – его магазины. У менеджера Ивановой в выпадающем списке в соседней ячейке предлагается выбрать один из трех (а не двух, как было раньше) магазинов. То есть одновременно с обновлением данных в исходном файле обновились и данные в связанных выпадающих списках. Аналогичным образом вы можете создавать сколько угодно связанных списков, автоматизируя работу с большими таблицами и сводя количество возможных ошибок к минимуму. Сводные таблицы Предположим, что у вас есть таблица, которая содержит информацию по всем продажам за три месяца. Если нажать «Ctrl» и стрелку вниз, то будет хорошо видно, что в таблице очень много строк (а в реальности их может быть и значительно больше). Перед вами стоит задача построить по этой таблице годовой итоговый отчет, чтобы проанализировать деятельность предприятия сразу по нескольким критериям: какие товары, на какую сумму и кому мы продавали, какие товары наиболее рентабельны, кто из менеджеров наиболее успешен и т.п. Как это сделать? С помощью сводных таблиц. Это один из самых мощных инструментов Microsoft Excel, который позволяет легко и быстро распределить данные по группам, провести ряд вычислений и свести большие объемы информации в обозримую и доступную для анализа форму. 16 Вернемся к нашей исходной таблице. Она достаточно простая по конструкции: имеет однострочную шапку, не содержит объединенных ячеек и разрывов в виде пустых строк. Внимание! Это необходимые условия для построения сводной таблицы Microsoft Excel 2010. Каждая строка нашей таблицы содержит информацию о том, кто из менеджеров, с какого склада, что, когда, кому и на какую сумму отгрузил. Преобразуем таблицу в динамическую. Это позволит нам в дальнейшем не отслеживать возможные изменения в количестве строк и столбцов. Перейдите на вкладку «Вставка». Нажмите кнопку «Сводная таблица». В открывшемся диалоговом окне можно выбрать диапазон для построения сводной таблицы, а также место, в которое она будет выгружена. Выберем «Новый лист» и нажмем кнопку «Ok». На новом листе, который откроется после этого, слева вы увидите место для сводной таблицы, а справа – конструктор для ее создания. Сверху расположен список полей исходной таблицы, то есть все заголовки из ее шапки. Снизу – четыре области, из которых состоит каждая сводная таблица. Данные, размещенные в них, определяют внешний вид таблицы и схему вычислений в ней. Область значений – это основная область сводной таблицы, в ней осуществляются все основные вычисления. В область строк помещают поля, которые служат для категоризации и группировки данных (например, список товаров или фамилий). Область столбцов состоит из заголовков, расположенных вдоль верхнего края будущей сводной таблицы. Область фильтра не является обязательной и содержит один или несколько выпадающих списков над сводной таблицей. Поля данных, которые расположены в этой области, позволяют фильтровать таблицу по одному или нескольким критериям. Вся работа по составлению сводной таблицы сводится к перетаскиванию элемента из области списка полей в соответствующую нижнюю часть. Сама сводная таблица будет строиться автоматически. 17 Перетащим поле «Наименования» в область «Название строк». В сводной таблице появился столбец со всеми наименованиями товаров, расположенных в строках от А до Я. Теперь перетащим поле «Заказчик» в область «Название столбцов». В таблице появились столбцы с названиями магазинов, столбец с общим итогом, а также фильтр для выбора магазинов. Перетащим поле «Стоимость поставки» в область «Значение». Перед нами сводная таблица продаж по магазинам с возможностью фильтрации по критерию «Заказчик». Обратите внимание: как только поле «Стоимость поставки» попало в область «Значение», оно преобразовалось в «Сумма по полю Стоимость поставки». Это значит, что в ячейках находится суммарная стоимость поставок каждого товара в конкретную торговую сеть. Но можно выбрать и другие величины, например, количество поставок. Для этого щелкните по «Сумма по полю Стоимость поставки» в области «Значение», далее – «Параметры полей значений». В открывшемся окне выберите «Количество» и нажмите кнопку «Ok». Теперь в сводной таблице отражены не суммы продаж, а количество поставок в каждый магазин. Давайте отменим этой действие и вернемся назад. Для большей наглядности перетащим поле «Категория» в область «Название строк». Обратите внимание на порядок расположения полей в области «Название столбцов». Он очень важен. «Категория» – более общее понятие, поэтому располагаться оно должно над полем «Товар», а не наоборот. Готово. Теперь товары сгруппированы по категориям. Согласитесь, наша таблица стала выглядеть гораздо логичнее. Немного отформатировав ее, мы получили сводную таблицу, из которой по каждому товару видно, на какую сумму и какому магазину он был продан, отражены итоговые суммы продаж, а также суммы продаж по категориям «Овощи» и «Фрукты». Теперь давайте преобразуем нашу таблицу таким образом, чтобы она отражала динамику продаж по месяцам. Для этого откроем конструктор: перейдите на вкладку «Параметры», нажмите кнопку «Показать», в открывшемся окне нажмите кнопку «Список полей». Перетащим поле «Склад» в область «Фильтр отчета». Еще один способ сделать это – щелкнуть правой кнопкой по полю и в открывшемся меню выбрать пункт «Добавить в фильтр отчета». В эту же область перетащим поля «Заказчик» и «Категории», а поле «Месяц» перенесем в область «Название столбцов». 18 Мы получили сводную таблицу динамики продаж с возможностью выбора интересующих нас данных: можно посмотреть продажи по конкретному товару или по группе товаров, по конкретному складу или по нескольким складам, по заказчикам и по категориям товаров и, конечно, совмещать эти фильтры. Давайте посмотрим, как в течение трех месяцев магазину «Десяточка» продавался картофель. Оказывается, поставки картофеля осуществлялись только в январе. Сделаем нашу таблицу еще более наглядной. Выделим диапазон с числами. Теперь нажмите кнопку «Стили», далее – «Условное форматирование», «Гистограммы» и выберите цвет сплошной заливки. Теперь сразу видно, в какой ячейке – большие суммы, а в какой – нет. Такая форма очень удобна для анализа. Итак, вы познакомились с очень мощным инструментом анализа, но прежде, чем вы начнете им пользоваться, еще раз напоминаем: исходная таблица должна иметь однострочную шапку и не должна содержать объединенных ячеек и разрывов в виде пустых строк. Дважды кликнем по ячейке B11 (в ней содержатся данные по продажам грейпфрута в январе). Программа сама построила на новом листе детализированную таблицу по продажам грейпфрута за январь. Из нее видно, в какой магазин, когда и какая партия поставлялась, а также кто был менеджером каждой конкретной отправки. Если же мы дважды кликнем по ячейке С11, то Excel опять создаст новый лист и построит нам на нем детализированную таблицу по продажам грейпфрута, но уже за февраль. Двойной клик по ячейке Е11 создает детализированную таблицу по продажам грейпфрута за все три месяца. Таблицы строятся сразу с фильтрами, и вы всего за пару кликов можете посмотреть, сколько продаж по данному продукту было у менеджера Самойлова или сколько поставок грейпфрута было осуществлено в магазин «Десяточка» за рассматриваемый период. Давайте вернемся к нашей сводной таблице и немного изменим ее вид. Для этого на вкладке «Параметры» в графе «Показать» откроем панель «Список полей сводной таблицы» и уберем поле «Месяц» из области «Название столбцов». В таблице остались только продажи по товарам. При этом одно и то же поле можно добавлять в таблицу насколько раз, и это открывает перед нами новые возможности для анализа. 19 Перетащим поле «Стоимость поставки» в область «Значение» еще дважды. Мы получили таблицу с тремя одинаковыми столбцами: «Сумма по полю Стоимость поставки», «Сумма по полю Стоимость поставки 2» и «Сумма по полю Стоимость поставки 3». А теперь дважды кликнем по ячейке «Сумма по полю Стоимость поставки 2» и в открывшемся диалоговом окне в поле «Операция» выберем пункт «Количество». В поле «Пользовательское имя» введем новое название столбца. Пусть это будет «Количество поставок». Зададим числовой формат данных. Нажмем кнопку «Ok». Так мы получили столбец, который содержит данные по количеству поставок для каждого товара. Теперь дважды кликнем по ячейке «Сумма по полю Стоимость поставки 3» и в диалоговом окне выберем пункт «Среднее». Теперь в этом столбце отражается средняя сумма поставки каждого товара. А если нам понадобилось произвести в сводной таблице какие-то вычисления? Допустим, в столбце «Сумма по полю Стоимость поставки» указана сумма с НДС, а вы хотите увидеть стоимость продаж без НДС. Для этого нужно создать вычисляемое поле. На вкладке «Параметры» нажмите кнопку «Вычисления», далее – «Поля, элементы, наборы». В открывшемся списке выберем пункт «Вычисляемое поле». Открылось диалоговое окно. В списке полей выберем «Стоимость поставки» и кликнем по нему. Оно появится в поле «Формулы». Теперь допишем формулу. Чтобы получить сумму поставки без НДС, ее нужно умножить на 100 и разделить на 118. Изменим название столбца на «Продажи без НДС» и нажмем кнопку «Ok». Готово. В таблице появился столбец со стоимостью продаж без НДС по каждому продукту. Осталось добавить диаграмму. Для этого достаточно кликнуть по кнопке «Сервис» на вкладке «Параметры», далее – «Сводная диаграмма». В открывшемся окне выберите тип диаграммы и нажмите кнопку «Ok». Кстати, на диаграмме тоже есть фильтры. Они связаны со сводной таблицей, так что применение фильтров в сводной диаграмме приведет к изменению как самой диаграммы, так и сводной таблицы. То же самое верно и для фильтров таблицы: при изменениях в ней изменится и вид диаграммы. Таким образом, зная возможности сводных таблиц и умея с ними работать, вы сможете быстро и эффективно провести анализ деятельности предприятия сразу по нескольким критериям, а на основании такого анализа управленческие решения с большой вероятностью будут успешными. 20 Подбор параметра Многие листы Excel настроены на анализ «что – если». Например, можно создать список продаж, который позволит ответить на вопрос: «Какова будет общая прибыль, если продажи увеличатся на 20%?» Если вы корректно создали таблицу, то можете изменить значение в одной ячейке и увидеть, как изменится сумма в ячейке прибыли. То есть обычно пользователь задает значения параметров, и формула рассчитывает на их основании результат. Но есть в Excel и возможность произвести анализ «что – если» наоборот: если вы знаете, каким должен быть результат формулы, то Excel может сказать вам значение, которое необходимо ввести в ячейку для ввода, чтобы получить этот результат. Вы можете задать вопрос: «На сколько необходимо увеличить продажи, чтобы получать прибыль 1 млн рублей?», – и получить на него ответ. Для этого достаточно воспользоваться инструментом «Подбор параметра». Рассмотрим простейший пример. Мы продали 500 кг баклажан по цене 120 руб./кг, и выручка от этой продажи составила 60 тысяч рублей. Давайте создадим таблицу. В ячейке В2 укажем количество проданных баклажан в килограммах. В ячейке В3 – цену баклажан за 1 кг. B ячейке B4 –произведение значений ячеек В2 и В3. Если таблица создана корректно, то при изменении значения в ячейке В2 или В3 значение в ячейке В4 тоже изменится. Это и есть анализ «что – если». Например, мы собираемся продать еще 500 кг баклажан, но выручить при этом не 60 тысяч рублей, а 73. Какую цену на баклажаны нам нужно установить, чтобы получить такую сумму? Чтобы найти ответ на этот вопрос, можно решить уравнение итого = вес*цена, где вес и итого – параметры, а цена – неизвестное (очевидно, что цена = итого/вес), а можно вручную вводить значения параметра и смотреть, как меняется целевое значение. Но эти способы не всегда удобны. Воспользуемся инструментом «Подбор параметра». Выделим ячейку B4, перейдем на вкладку панели «Данные» и нажмем кнопку «Анализ «что-если». В выпадающем списке нажмите «Подбор параметра». В открывшемся окне в поле «Значение» введем 73 000, а в поле «Изменяя значение ячейки» – B3. Нажмите два раза «Ok». Программа подобрала значение параметра 14, т.е. если мы продадим 500 кг баклажан по цене 146 рублей за килограмм, то выручка составит желаемые 73 тысячи рублей. 21 Рассмотрим еще один пример. Мы планируем выручить 90 тысяч рублей. Цена на баклажаны составляет 130 руб./кг. Сколько килограммов баклажан нам надо продать? Для начала установим новую цену – поменяем значение в ячейке В3 на 130. Далее повторим наши действия: выделим ячейку B4, нажмем кнопку «Анализ «что-если», а в выпадающем списке выберем пункт «Подбор параметра». В открывшемся окне в поле «Значение» введем 90 000, а в поле «Изменяя значение ячейки» – B2. Нажмите два раза кнопку «Ok». Решение найдено. Чтобы выручить 90 тысяч рублей, нам нужно продать 692,5 кг баклажан. А теперь несколько существенных дополнений о том, как работает инструмент «Подбор параметров»: • Изменяемая ячейка (в нашем случае это были ячейки B3 и В2) не должна содержать формулу, только значение. • С помощью инструмента «Подбор параметра» вы можете найти значение, изменяя только одну ячейку. Если требуется найти одно конкретное значение (или оптимальное значение), изменяя значения в нескольких ячейках, используйте «Поиск решения». • Уравнение обязательно должно иметь решение, причем только одно. Например, если решать уравнение a*2 + 4=x при a>0, то очевидно, что не удастся подобрать такое a, чтобы a*2+4=0. Макросы Очень часто при работе с таблицами Excel пользователям приходиться выполнять определенную последовательность операций. Это может быть копирование и вставка определенных диапазонов ячеек, форматирование области, выбор цвета фона и заливки, фильтрация по определенным критериям и так далее. Автоматизировать такую однообразную работу предназначены макросы. Макрос (или макрокоманда) – это программный алгоритм действий, записанный пользователем. Как это работает? Пользователь выполняет некую последовательность действий, а Microsoft Excel в это время фиксирует каждую выполняемую операцию. Таким образом, программа 22 записывает последовательность действий пользователя, а затем воспроизводит ее по нашей команде. В Microsoft Excel 2010 кнопки управления макросами расположены на вкладке «Разработчик». Как правило, этой вкладки нет на ленте. Чтобы ее включить, перейдем в меню «Файл», выберем пункт «Параметры», далее – «Настройка ленты». Выставим галочку напротив пункта «Разработчик» и нажмем «Ok». Вкладка «Разработчик» появилась на ленте управления. Перейдем на нее и запишем наш первый макрос. Допустим, в вашей компании документы для отчета предоставляют сразу несколько исполнителей. В этих документах они в том числе указывают свою фамилию и инициалы. Сейчас мы запишем макрос, который автоматизирует этот процесс для одного из исполнителей – менеджера Петрова. Порядок записи макроса выглядит так. Сначала нужно нажать кнопку «Запись макроса». Затем выполняются действия, которые необходимо записать. После этого нажимается кнопка «Остановить запись». Выделим ячейку и нажмем кнопку «Запись макроса». Открылось окно «Запись макроса». В этом окне мы можем указать четыре параметра. Первый – это имя макроса. Старайтесь давать своим макросам осмысленные названия, которые будут отражать суть выполняемых действий. Они могут быть на русском языке и включать цифры, но пробелы использовать нельзя – вместо них используйте нижние подчеркивание. Давайте назовем наш макрос «Вывод_Исполнителя_Петрова». Второй параметр – горячая клавиша. Ее можно указать как при записи, так и после. Давайте назначим букву П. Теперь при нажатии сочетания клавиш CTRL и П программа будет воспроизводить то действие, которое мы запишем. Третий параметр отвечает за то, где можно будет использовать макрос. Если вы собираетесь использовать данный макрос только в этом документе, оставьте параметр «Эта книга». Если же вы выберете параметр «Личная книга макросов», то макрос сохранится в специальном файле и 23 будет доступен из любого документа Microsoft Excel на данном компьютере. Давайте выберем пункт «Личная книга макросов». Наконец, четвертый параметр – это описание макроса. Обычно здесь даются комментарии к нему. Напишем в этом поле: «Вывод подписи менеджера Петрова» и нажмем кнопку «Ok». Запись макроса началась, и вместо кнопки «Запись макроса» появилась кнопка «Остановить запись». Теперь в строку ввода вводим следующий текст: «Исполнитель: Петров Д.М.». Обратите внимание: кнопка «Остановить запись» во время ввода стала неактивной и будет таковой до тех пор, пока вы не нажмете «Enter». После ввода текста нажимаем кнопку «Остановить запись». Наш макрос готов. Проверим, как он работает. Выделим любую ячейку и нажмем сочетание горячих клавиш «Ctrl» + «п». В ячейке появилась подпись «Исполнитель: Петров Д.М.». Давайте немного изменим макрос, который мы только что создали. Выделим ячейку и включим запись макроса. Назовем его «Вывод_Исполнителя_Петрова_с_телефоном». Горячей клавишей назначим букву Т. В строку ввода вводим «Исполнитель:Петров Д.М.». Теперь выделяем нижестоящую ячейку и вводим туда номер телефона. Нажимаем кнопку «Остановить запись». Очистим лист и проверим наш макрос. Как видите, подпись появляется в нужном месте, а вот телефон – в той ячейке, в которую мы его вписали при записи макроса. Чтобы избежать подобной ошибки, был создан режим «Относительные ссылки» (кнопка «Относительные ссылки» находится под кнопкой «Запись макроса»). Если его включить, то при записи макроса все перемещения по листу будут привязываться не к абсолютным адресам, а к относительным, то есть в нашем случае телефон всегда будет располагаться на одну строку ниже подписи. Давайте перепишем наш макрос с включенным режимом «Относительные ссылки» и убедимся в этом. Нажмем «Ctrl» + «т». Теперь все работает корректно. Давайте посмотрим, как выглядит сам макрос. Для чего это нужно? Во-первых, при записи макроса может быть допущена ошибка, и в нем нужно что-то изменить. Во-вторых, вам может понадобиться создать новый макрос, который похож на предыдущий, но содержит некоторые отличия. 24 И, наконец, множество полезных алгоритмов нельзя записать при помощи макрорекордера, зато можно внести их в макрос вручную. Макросы в Microsoft Excel пишутся на языке Visial Basic, применение которого разрешено в среде Microsoft Excel. Для того чтобы работать с макросом, необходимо перейти в редактор Visial Basic. Для этого нажмите кнопку «Visial Basic» на панели «Разработчик». Откроется окно редактора. Справа расположена рабочая область – в ней пишут и редактируют макросы. Слева вверху – проводник проекта. В нем отображаются все элементы проекта: листы и модули. Сами макросы расположены в модулях. Ниже находится окно свойств. В нем отображаются свойства выделенного в данный момент элемента. Щелкнем в папке «Modules» по пункту «Module3», и в рабочей области откроются «Вывод_Исполнителя_Петрова» и макросы, которые мы создали ранее: «Вывод_Исполнителя_Петрова_с_телефоном». Давайте внимательнее посмотрим на макрос «Вывод_Исполнителя_Петрова_с_телефоном». Все, что расположено между тэгами «Sub» и «End Sub», и есть наш макрос. Зеленым цветом выделены комментарии, они ни на что не влияют. А теперь давайте изменим макрос. Допустим, мы ошиблись в инициалах нашего исполнителя. Чтобы исправить эту ошибку, прямо в макросе меняем инициалы Д.М. на И.А. Теперь свернем окно редактора «Visial Basic» и запустим макрос на проверку: нажмем сочетание горячих клавиш «Ctrl» + «т». Макрос выводит подпись с новыми инициалами. Теперь попытаемся решить еще одну задачу – создать новый макрос, похожий на существующий. Ведь данные для отчета предоставляют несколько менеджеров, и для каждого нужно создать макрос с подписью. Восстановим окно редактора «Visial Basic» и, чтобы не записывать макросы вновь и вновь, просто выделим весь наш макрос от тэга «Sub» до тэга «End Sub», скопируем сочетанием клавиш «Ctrl» + «c» и вставим его снизу. Двух макросов с одинаковым именем быть не должно, поэтому переименуем новый макрос. Изменим фамилию и инициалы исполнителя и номер его телефона. Обратите внимание, сочетание горячих клавиш в этом окне мы поменять не можем. Чтобы сделать это, нужно закрыть окно редактора «Visial Basic» и на панели «Разработчик» нажать кнопку «Макросы». Этот инструмент позволяет управлять уже существующими макросами и при необходимости их изменять. В открывшемся окне мы видим все созданные нами макросы. При необходимости выделяем редактируемый макрос и нажимаем кнопку «Параметры». В открывшемся окне «Параметры 25 макроса» вводим букву «и», после чего закрываем окна «Параметры макроса» и «Макрос». Проверяем. Все работает. При использовании сочетания клавиш «Ctrl» + «т» вставляется подпись и телефон менеджера Петрова, а при нажатии «Ctrl» + «и» – подпись и телефон менеджера Иванова. При работе с макросами необходимо знать о существовании уровня их безопасности. Если нажать на кнопку «Безопасность макросов», откроется окно «Центр управления безопасностью». На вкладке «Параметры макросов» можно увидеть четыре уровня безопасности: от низкого до самого высокого. Вы можете выбрать, каким макросам разрешить, а каким – запретить работу в своем документе. Защита документа Microsoft Excel предоставляет пользователю несколько уровней защиты: вы можете защитить от изменения как отдельные ячейки, так и полностью зашифровать файл. Самый простой способ – защитить ячейки от некорректного ввода данных. Давайте попробуем сделать так, чтобы в поле «Отпускная цена» нельзя было ввести цифру меньше 0. Для этого выделим ячейки в столбце. Теперь перейдите на вкладку «Данные» и в разделе «Работа с данными» нажмите кнопку «Проверка данных». В открывшемся окне на вкладке «Параметры» из выпадающего списка можно выбрать тип разрешенных к вводу данных. Зададим необходимое условие: число может быть только больше 0. На вкладке «Сообщение для ввода» вы можете создать всплывающую подсказку для выделенных ячеек, а на вкладке «Сообщение об ошибке» – создать всплывающую подсказку, которая будет выводиться на экран при ошибке ввода. Готово. Попробуем ввести отрицательное число. Как видите, защита работает. Следующий уровень защиты – это защита ячеек листа от изменений. Вы можете полностью или выборочно запретить пользователю менять содержимое ячеек любого заданного листа. Давайте защитим лист таблицы, но столбец «Отпускная цена» оставим редактируемым. Для этого необходимо выделить ячейки, которые мы хотим оставить незащищенными, и щелкнуть правой кнопкой мыши. В открывшемся контекстном меню нажмите кнопку «Формат». Теперь в 26 диалоговом окне «Формат ячеек» на вкладке «Защита» снимите флажок «Защищаемая ячейка». Все ячейки, для которых этот флажок останется установленным, будут защищены при включении защиты листа. Все ячейки, для которых вы этот флажок снимете, будут по-прежнему доступны для редактирования. Теперь перейдите на вкладку «Рецензирование» и нажмите кнопку «Защитить лист». В открывшемся окне «Защита листа» вводим пароль и выбираем из списка параметры защиты листа. Например, мы можем разрешить или запретить пользователям использовать сортировку, автофильтр и другие средства работы с таблицами. Вводим пароль еще раз. Теперь если мы попытаемся внести изменения в защищенные ячейки, программа не даст нам этого сделать, а в столбце «Отпускная цена» менять данные мы можем. Снять защиту можно на вкладке «Рецензирование», введя пароль. Если предполагается, что с файлом будут работать несколько пользователей и каждый из них должен иметь доступ в свою область листа, можно защитить лист, используя разные пароли для разных диапазонов ячеек. Чтобы сделать это, на вкладке «Рецензирование» нажмите кнопку «Разрешить изменение диапазонов». В открывшемся диалоговом окне необходимо нажать кнопку «Создать» и ввести имя диапазона, адреса ячеек, входящих в этот диапазон, и пароль для доступа к нему. Эти действия нужно повторить для каждого из диапазонов разных пользователей, пока все они не окажутся в списке. Далее нужно нажать кнопку «Защитить лист» и включить защиту всего листа. Теперь при попытке доступа к любому из защищенных диапазонов программа будет требовать пароль. Внести изменения в ячейку сможет только тот пользователь, которому пароль от этого диапазона известен «по долгу службы». Если же вы хотите защититься от удаления, переименования или перемещения листов в книге, изменения закрепленных областей, нежелательных изменений структуры и т.п., вам необходима защита всех листов книги. Для этого нажмите «Защитить книгу» на вкладке «Рецензирование». Пароль при этом вводить необязательно. При необходимости вы можете зашифровать весь файл книги. Проще всего такую защиту задать при сохранении книги. Для этого на вкладке «Файл» необходимо выбрать команду «Сохранить как», затем в окне сохранения нажать кнопку «Сервис» и в выпадающем списке выбрать пункт «Общие параметры». В появившемся окне 27 можно ввести два разных пароля: на открытие файла (тогда его можно будет только читать) и на изменение. Теперь при открытии этого файла вы увидите окно для ввода паролей. Итак, вы познакомились с инструментами защиты файлов Microsoft Excel. Запомните: • абсолютной защиты не существует в принципе. Как вариант, вы можете сохранять документы Excel в формате .xlsb – это внутренний формат Excel, который плохо читается другими программами. • Умные таблицы не взаимодействуют с защитой. • Не теряйте пароли, восстановить их в Excel не получится. Текстовые функции Для обработки значений в строках и для приведения некорректно введенных данных к правильному типу в Excel используются текстовые функции. Предположим, у нас есть список клиентов: много лишних пробелов, путаница с заглавным и строчным написанием букв... В таком виде список использовать нельзя. Но с помощью некоторых текстовых функций Excel мы приведем его к нормальному формату. Начнем с того, что удалим лишние пробелы. Функция «Сжать пробелы» удаляет из текста все пробелы, кроме пробела между словами. Выделим ячейку B2 и введем знак равенства. Далее есть два способа вставить функцию: можно нажать кнопку «Вставить функцию» и в открывшемся окне найти нужную нам или (что гораздо проще) после знака «равно» набрать букву С. Во всплывающем окне находим функцию «Сжать пробелы» и жмем кнопку «Ok». Функция появилась в ячейке. Теперь нужно указать, из какого текста следует удалить лишние пробелы. Кликаем по соседней ячейке, закрываем скобку и нажимаем «Enter». Протянем формулу на весь столбец. В результате мы получили столбец, в котором из текста удалены все лишние пробелы, а данные хранятся в виде формул. Чтобы продолжить работу, превратим их в простые значения. Необходимые ячейки уже выделены. Нажмите кнопку «Копировать», затем – «Вставить». В открывшемся меню выберите «Значения». Теперь в ячейках нашего столбца находятся не 28 формулы, а значения. В этом можно убедиться, кликнув по любой из них. Такую процедуру преобразования данных мы будем повторять и при работе со следующими функциями. Рассмотрим еще одну текстовую функцию Excel – «ПРОПНАЧ». Эта функция преобразует все буквы, кроме первой в слове, в строчные. Выделяем ячейку, вводим знак «Равно», набираем букву «П» и в выпадающем списке выбираем функцию. Кликом по соседней ячейке вводим аргумент, закрываем скобку и нажимаем «Enter». Выделяем ячейку и протягиваем формулу на весь столбец. Список клиентов стал выглядеть значительно лучше. Преобразуем данные в этом столбце из формул в значения и продолжим работу. Воспользуемся функциями «ПОИСК» и «НАЙТИ». Они определяют расположение искомой текстовой строки или одного знака внутри другой текстовой строки. Функция «ПОИСК» работает так: задается ключевое слово или знак, который ищется в тексте с заданной позиции. Если слово или знак находится, то выдается номер их позиции в тексте. Поиск ведется слева направо. Функция «НАЙТИ» работает так же, но она учитывает еще и регистр, то есть различает большие и маленькие буквы. Кроме того, функция «ПОИСК» поддерживает символы обобщения – вопросительный знак и звездочку, которые используется для того, чтобы затем изменить этот текст или найти пробелы в предложении. Давайте найдем первый пробел, который разделяет пол клиента и его фамилию. Выделяем ячейку, вводим «равно» и букву «П», находим функцию и кликаем по ней. Вводим искомый текст (в нашем случае это пробел) – обязательно в двойных кавычках. Затем указываем «Просматриваемый текст», то есть выделяем ячейку C2. Если аргументов в функции несколько, то их следует разделять точкой с запятой. Закрываем скобку и нажимаем «Enter». Протягиваем формулу на весь столбец и преобразуем данные в нем из формул в значения. Как мы видим, первый пробел в наших текстах стоит на четвертой позиции. Теперь воспользуемся функцией «ЗАМЕНИТЬ». Она замещает часть строки указанным вами текстом в заданной начальной позиции и с указанным количеством символов. Мы заменим первый пробел в наших строках знаком подчеркивания. Чуть позже вы поймете, зачем. Как обычно выделяем ячейку, ставим знак «Равно», находим функцию «ЗАМЕНИТЬ» и с ее помощью заменяем первый пробел на подчеркивания. Для этого в аргументы функции подставляем следующие данные: «старый_текст» – это текст из ячейки С2, кликаем по ней. «Начальная_позиция» – это то место в исходном тексте, с которого мы начнем производить 29 замену. Предыдущая функция вычислила это место, поэтому просто кликаем по ячейке D2. «Число_знаков» – 1,«новый_текст» – «_». Закрываем скобку и нажимаем «Enter». Выделяем ячейку и протягиваем формулу на весь столбец. Теперь вместо первого пробела в списке стоит подчеркивание. Преобразуем данные в этом столбце из формул в значения. Разобьем данные на два столбца: в одном будет указан пол клиента, а во втором – его фамилия и инициалы. Для этого создадим новый столбец и скопируем в него наши данные. Выделяем ячейки с данными и переходим на вкладку «Данные». Нажмите кнопку «Текст по столбцам». На первом шаге «Мастер текстов» предлагает выбрать критерий для деления на столбцы: «с разделителем» или «фиксированной ширины». Давайте оставим «с разделителем» и перейдем далее. Теперь нужно выбрать символ разделителя. Пол клиента от его фамилии у нас отделяет нижнее подчеркивание. Помните, мы специально заменили им пробел? Если бы мы этого не сделали, «символом-разделителем» стал бы пробел. А поскольку пробелов у нас в строке два, мастер текстов разделил бы данные на три столбца: пол, фамилия и инициалы. Этого нам не нужно. Итак, «символом-разделителем» объявляем нижнее подчеркивание и идем далее. На последнем шаге указываем форматы данных для наших столбцов. Выбираем «текстовый» и жмем кнопку «Готово». Excel корректно разделил наши данные на столбцы. Сделаем все буквы в столбце «Пол» строчными при помощи функции «СТРОЧН». Повторяем уже привычные действия. Текст, который мы хотим преобразовать, находится в ячейке F2. Кликнем по ней. Закрываем скобку и нажимаем «Enter». Выделяем ячейку и протягиваем формулу на весь столбец. Преобразуем данные в этом столбце из формул в значения. Функция корректно преобразовала наши данные. Посмотрите, какой аккуратный список клиентов мы получили при помощи функций для работы с текстом. Информацию о других, менее распространенных, но тоже очень полезных функциях, вы можете найти в окне диалога мастера функций, а также в справочной системе Excel. Почтовая рассылка Представьте такую ситуацию: приближается очередной праздник (скажем, день работников торговли). И было бы очень правильно поздравить с ним всех ключевых клиентов компании. 30 Причем письмо не должно выглядеть, как почтовая рассылка: оно должно содержать имя и отчество клиента, а также название его компании. Думаете, это займет много времени? Нет, потому что процесс написания и отправки личных писем можно автоматизировать при помощи программы Microsoft Excel – она разошлет все созданные поздравления на e-mail клиентов с помощью программы Outlook. Итак, у нас есть таблица, в которой хранится информация о ключевых клиентах нашей компании. Она содержит их имена, названия компаний, в которых они работают, адреса электронной почты и т.д. Обратите внимание на столбец с указанием пола – он нужен для того, чтобы генерировать обращение в письмах: ведь ни Excel, ни Word не смогут определить пол клиента по имени. Откроем документ Word и напишем письмо. Не забудем оставить пустые места – в них будут автоматически вставлены имя клиента и название его компании. Теперь перейдите на вкладку «Рассылки», нажмите кнопку «Начать слияние» и в выпадающем меню выберите пункт «Пошаговый мастер слияния». Мастер слияния открылся в правой части экрана. Мы планируем сделать e-mail рассылку, поэтому выберем пункт «Электронное сообщение» и перейдем к следующему этапу. На втором шаге нужно выбрать документ, который будет участвовать в рассылке. Мы уже написали письмо, поэтому выберем пункт «Текущий документ». На третьем этапе выбираем список получателей: оставляем отметку рядом с пунктом «Использование списка» и нажимаем кнопку «Обзор». Открылось стандартное окно Windows для выбора файлов. Находим файл Excel, который содержит таблицу клиентов, и нажимаем «Ok». Так как этот файл содержит несколько листов, мастер слияния предлагает уточнить, какую именно таблицу мы будем использовать. Таблица с клиентами находится на листе «Лист3». Выделяем его и нажимаем «Ok». Теперь нам предлагается выбрать из таблицы необходимые данные. Если вы хотите исключить кого-то из рассылки, просто снимите галочку рядом с его фамилией, и эти данные не импортируются в Word. Мы ценим всех наших клиентов, поэтому просто нажмем кнопку «Ok» и перейдем к следующему этапу. 31 На этом этапе мы должны указать, в какие именно места письма должны попасть данные из подключенного списка. Для этого необходимо установить курсор в точку вставки в письме и использовать ссылку «Другие элементы» – она выводит полный набор всех полей списка, из которого мы выбираем нужное поле для вставки. Сначала давайте разберемся с окончанием при обращении к клиенту. Ставим курсор после слова «Уважаем» и нажимаем кнопку «Другие элементы». Окончание слова зависит от пола клиента, поэтому в открывшемся списке выбираем поле «Пол», нажимаем «Вставить». Пока окно «Вставка поля слияния» открыто, редактируемый документ неактивен. Закроем окно, чтобы переставить курсор туда, где должно располагаться имя клиента. Снова нажимаем кнопку «Другие элементы», выбираем поле «Имя», жмем «Вставить» и закрываем окно. Аналогичным образом вставим отчество клиента и название компании. Уберем лишние пробелы. Готово. Мы подставили все необходимые данные в письмо, но сейчас к слову «Уважаем» будет добавляться окончание «жен» или «муж», а нам нужно получить слово «уважаемый» или «уважаемая». Давайте это исправим. Для этого воспользуемся инструментом «Правило». Выделим нашу вставку «Пол» вместе с кавычками. Нажмите кнопку «Правило». Открылся список правил, доступных для вставки в документ при создании рассылки. В списке нажмите кнопку «IF...THEN...ELSE». Это стандартная конструкция «ЕСЛИ...ТО...ИНАЧЕ...», которая используется во многих языках программирования. Открылось окно для создания правила. Выберем из списка поле «Пол» – именно для него мы создаем правило. Поле «Оператор» оставим без изменений, а в поле «Значение» можно вставить или «муж», или «жен». Давайте вставим «муж». Таким образом мы сформировали условие «ЕСЛИ пол равен муж». А теперь давайте ответим на вопрос: что программа должна сделать, если пол равен муж? В этом случае к слову «Уважаем» надо добавить окончание «ый». А если пол не равен муж, то к слову «Уважаем» надо добавить окончание «ая». Правило создано, нажимаем «Ok». Excel сразу же применил правило, но Word для вставки окончания использовал шрифт по умолчанию. Выделим окончание и на вкладке «Главная» изменим шрифт и размер. Теперь можно посмотреть, как выглядит сообщение с конкретными данными. Для этого перейдем к следующему этапу. Все верно: окончания, имена, отчества и названия фирм подставляются корректно. Осталось разослать поздравления адресатам. Запустите программу 32 Microsoft Outlook и перейдите на завершающий этап. Здесь необходимо нажать кнопку «Электронная почта». В открывшемся окне мы можем выбрать столбец таблицы Excel, из которого программа будет брать адрес электронной почты. Укажем тему сообщения и нажмем кнопку «Ok». Открыв программу Microsoft Outlook, мы можем убедиться, что все письма разосланы, а их текст соответствует нашим ожиданиям. Вот так очень быстро и просто можно создавать рассылки, используя данные, которые хранятся в таблицах Excel. Импорт курса валют из сети Интернет Программа Microsoft Excel может импортировать из Интернета любые данные. Рассмотрим эту полезную возможность на примере импорта курса валют. Давайте для начала импортируем в таблицу текущий курс валют. Начальная ячейка на листе уже выделена. Перейдите на вкладку «Данные» и нажмите кнопку «Получение внешних данных», далее – «Из интернета». В открывшемся окне (оно откроется на начальной странице вашего интернет-браузера) вводим адрес сайта, с которого будет браться информация, и нажимаем «Enter». Курс валют мы будем брать с сайта Центробанка. Когда страница загрузится, на таблицах, которые Excel может импортировать, появятся черно-желтые стрелки. Щелчок по такой стрелке помечает таблицу для импорта. На сайте Центробанка кликнем по ссылке «Официальные курсы валют на заданную дату, устанавливаемые ежедневно», после чего попадем на соответствующую страницу. По умолчанию страница отображает текущую дату, но вы можете выбрать любую другую. После выбора даты откроется таблица с актуальными курсами валют. Остается только нажать на кнопку «Импорт». Но если вы так поступите, то вместе с таблицей импортируется и масса ненужной информации, которая находится на этой странице. Нам же нужна только таблица. Прокрутим веб-страницу до самого низа и найдем в ее левом нижнем углу черно-желтую стрелку. Щелкнув по ней, мы помечаем полученную таблицу для импорта. Теперь можно нажать на кнопку «Импорт». Excel выдаст окно для размещения данных в нашем файле. Оставим все как есть и нажмем «Ok». Спустя некоторое время, нужное для загрузки данных, содержимое импортируемой таблицы появится в ячейках на листе. Теперь у нас есть таблица валют на заданную дату. Выделив любую ячейку этой таблицы, вы можете открыть контекстное меню правой кнопкой мыши и выбрать в нем команду «Свойства диапазона». В открывшемся диалоговом окне можно 33 настроить периодичность обновления и другие параметры. Если вы следите за биржевым курсом, котировками акций или за GPS данными автомобилей, которые развозят товары, эта функция будет очень полезной. Интересующие вас данные будут обновляться с указанной вами периодичностью. Давайте изменим задачу: вместо курса валют на определенную дату импортируем курс одной определенной валюты за интересующий нас период. Повторяем уже знакомые действия: нажимаем кнопку «Получение внешних данных», далее – «Из интернета». В открывшемся окне браузера вводим адрес сайта Центробанка и нажимаем «Enter». На открывшейся странице выбираем валюту. Пусть это будет Доллар США. Далее выберем период, за который мы хотим иметь данные: с 5-го по 17 января 2015 года. Нажимаем кнопку «Получить данные». Сайт формирует таблицу курса доллара за весь выбранный период. Прокручиваем вебстраницу до самого низа и находим в ее левом нижнем углу черно-желтую стрелку. Щелкнув по ней, мы помечаем полученную таблицу для импорта. В принципе, таблицу можно импортировать уже сейчас, но если мы работаем с этой валютой постоянно, то делать это придется довольно часто. Давайте автоматизируем процесс получения данных. Для этого нужно сохранить запрос. Нажмите соответствующую кнопку. В открывшемся окне выберем место для сохранения этого запроса и дадим ему новое имя. Готово. Можно закрыть и окно сохранения, и окно создания веб-запроса. Запрос – это очень удобный инструмент. Давайте попробуем воспользоваться им. Выделите начальную ячейку для импортируемой таблицы. Нажмите кнопку «Получение внешних данных». На открывшейся панели нажмите кнопку «Из интернета». В открывшемся окне «Существующие подключения» выберите созданный нами веб-запрос и нажмите кнопку «Ok». В открывшемся окне вам будут предложены варианты размещения импортируемой таблицы. Не будем ничего здесь менять, просто нажмем «Ok». После некоторого ожидания запрашиваемая нами таблица импортировалась в файл. Но завтра нам снова потребуется актуальный курс доллара, а может быть, и другой валюты тоже. Неужели все придется делать заново? Нет, не придется, если мы немного модернизируем наш запрос. 34 Найдем сохраненный веб-запрос и откроем его с помощью программы «Блокнот». Давайте посмотрим, как устроен запрос. Нас интересует только одна строчка, а в ней – три момента. Первый – это валюта. Здесь вы видите код доллара США. Второй интересующий нас момент – это дата, начиная с которой мы хотим получать данные о курсе. Третий момент – это последняя дата рассматриваемого периода. Немного модифицируем запрос. Редактируем строку следующим образом. Как видите, вместо конкретных значений мы подставили в запрос переменные: «Код Валюты», «Начальная Дата» и «Текущая Дата». Сохраним изменения и закроем запрос. Теперь создадим список начальных данных, которые мы будем передавать в запрос – в нем они будут присваиваться соответствующим переменным. Для удобства сделаем для данных маленькую табличку. В качестве начальной выберем произвольную дату, а текущую дату будем брать из функции Excel «СЕГОДНЯ». Данные, которые передаются в запрос, должны быть только в текстовом формате. Воспользуемся функцией Excel «ТЕКСТ». Она преобразует наши данные из формата «дата» в текстовый формат. В ячейку «Код валюты» вводим специальный код. Проще всего получить его на сайте Центробанка. Создаем запрос на ту валюту, код которой нам нужен, нажимаем кнопку «Получить данные» и копируем код из строки запроса. Если вы работаете с несколькими валютами, создайте небольшую таблицу соответствия этих валют их кодам. Пусть это будут австралийский доллар, евро, доллар США и японская йена. На этом подготовительные работы завершены. Теперь мы можем импортировать нужные нам данные с помощью модернизированного запроса. Нажмите кнопку «Получение внешних данных», далее – «Существующие подключения». В открывшемся окне нажмите кнопку «Найти другие…», найдите папку с сохраненным запросом и откройте его. Начнет работать мастер создания запросов Excel. Сначала он предложит выбрать месторасположение создаваемой таблицы. Давайте выберем новый лист. Excel создал новый лист и перешел на него. На этом этапе мастер предлагает выбрать код валюты. Вернемся на лист с данными и выделим ячейку с кодом валюты. Теперь в наш запрос будет подставляется значение из этой ячейки. Укажем в запросе, что это значение будет использоваться по умолчанию и будет автоматически обновляться при изменении значения ячейки. Для этого проставим галочки рядом с соответствующими пунктами. Нажмем кнопку «Ok». Теперь мастер создания запроса предлагает указать «Начальную дату». Выделяем соответствующую ячейку, проставляем нужные галочки и нажимаем «Ok». Осталось ввести с помощью мастера «Текущую дату». 35 Excel выполнил запрос и сформировал таблицу, которая автоматически обновляется. Вы можете поменять начальную дату интересующего вас периода, и таблица изменится. Вы можете изменить код валюты, и таблица снова обновится. А благодаря функции «СЕГОДНЯ» когда бы вы ни открыли файл – завтра или через неделю – текущая дата всегда будет актуальной, и таблица будет обновляться в соответствии с ней. Часто бывает так, что работать приходится не с одной, а с двумя, а то и тремя валютами. В этом случае удобно создать для каждой валюты отдельную таблицу. Давайте сделаем это. Таблица с курсом доллара США у нас уже есть. Переименуем лист, на котором она лежит, а также лист с исходными данными. Теперь создадим таблицу для евро. Для начала поменяем в исходных данных код валюты. Выделим ячейку E3 и заменим код. Теперь выделим любую свободную ячейку и получим данные с помощью нашего запроса. Для этого нажмем кнопку «Получение внешних данных». На открывшейся панели нажмем кнопку «Существующие подключения». В открывшемся окне наш запрос уже выделен, поэтому просто нажмем кнопку «Открыть». Указываем мастеру расположить таблицу на новом листе и жмем кнопку «Ok». Готово. Мы получили таблицу с курсом евро за интересующий нас период. Обратите внимание, мастер не стал спрашивать нас о датах и валюте – он берет их из существующего запроса. Это очень важный момент: каждый новый запрос мастер создает на основе уже существующего. Переименуем лист с новой таблицей. Теперь у нас есть две таблицы: с курсом eвро и с курсом доллара США. Казалось бы, мы выполнили задачу. Но давайте представим, что нас не было в офисе некоторое время. Мы вернулись и открыли файл с курсами валют. Текущая дата обновилась, а вместе с ней обновились и таблицы. Посмотрим на них. В обеих таблицах теперь содержатся данные о курсе евро. Почему это произошло? Дело в том, что оба запроса берут данные по коду валюты из одной и той же ячейки Е3, а последний указанный в ней код – код евро. Ситуацию можно исправить двумя способами. Первый способ – отредактировать параметры текущих запросов. Для этого нажмите кнопку «Подключения». В открывшемся окне мы видим два запроса. Пусть вас не вводит в заблуждение название запроса «CB_D_S_1». Это не тот запрос, который мы правили в 36 текстовом редакторе, а созданный на его основе. У второго запроса имя отличается одной цифрой – Excel сам ведет их нумерацию. Первый запрос уже выделен, и мы можем посмотреть, где он используется, щелкнув по подсказке. Запрос используется для таблицы с курсом доллара США. Давайте посмотрим его свойства. Нажмите кнопку «Свойства». В открывшемся окне перейдите на вкладку «Определение» и нажмите кнопку «Параметры». Откроется еще одно окно, в котором можно поменять настройки запроса. Сейчас в этом запросе параметр «Код валюты» берется из ячейки «E3» листа «И_Дан» (Исходные данные). Изменим его. Нажмем на кнопку «Использовать значение» и в разблокированное поле введем код доллара США. Теперь запрос с именем «CB_D_S_1» привязан к значению и не будет брать данные из ссылки. Нажимаем два раза кнопку «Ok». Проделываем аналогичную процедуру со вторым запросом, но в качестве значения вводим код евро. Закрываем все окна и нажимаем кнопку «Обновить все». Проверим, все ли верно. В таблице курса доллара указан курс доллара США, а на странице курса евро – курс евро. Еще один способ решить проблему, с которой мы столкнулись в самом начале, – не создавать переменную для кода валюты при редактировании сохраняемого запроса. Вы можете создать два отдельных запроса для доллара США и евро, где переменными будут только даты. Еще раз обращаем ваше внимание на то, что аналогичным образом можно работать не только с курсами валют, но и с любыми другими данными из сети Интернет. Освоив этот инструмент, вы сможете значительно облегчить себе работу – ведь актуальные данные всегда будут под рукой. 37