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

2 Курс Информатика VBA(ЗО) / Книги / В.Д.Хорев - Самоучитель программирования на VBA в Microsoft Office

.pdf
Скачиваний:
2701
Добавлен:
31.05.2015
Размер:
21.66 Mб
Скачать

Глава 1

Excel: cоздание прайс-листа

Что может быть проще прямоугольной таблицы?

Начнем с решения самых простых задач. Очень часто возникает необходимость предоставить потенциальному клиенту прейскурант — список товаров с их ценами, которые фирма предлагает к продаже на тех или иных условиях. Такой список в наше время называют прайс-листом или просто прайсом. Итак, создадим прайс-лист фирмы “Универсал”.

Простейший прайс-лист представляет собой прямоугольную таблицу, где в двух столбцах расположены наименования различных товаров и соответствующие им цены. Ничто не мешает нарисовать подобную таблицу от руки или создать ее в документе Word, однако чаще всего прайс-лист выполняют в форме таблицы Excel. Тому есть много причин, но главная из них заключается в том, что работать с табличными данными легче всего именно на листе рабочей книги Excel.

Для начала будет создан простейший прайс-лист (проще не бывает), затем он будет постепенно совершенствоваться, расширяя свои функциональные возможности и облегчая работу с ним.

Товары и цены “в столбик”

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

Предположим далее, что нам необходимо представить потенциальным клиентам прайс-лист по расходным материалам пусть среди наших товаров к этой категории относятся картриджи для струйных, лазерных и матричных принтеров. Это обычные в современном офисе расходные материалы, они существуют и применяются в очень широком ассортименте, и нет принтера, для которого не приходилось бы время от времени покупать новый картридж. Другой вид расходного материала, который предлагается — бумага для принтеров и копировальной техники. Без бумаги, несмотря на наступление “эры безбумажных технологий”, также не обойтись в современном офисе. Таким образом, наш прайс должен будет состоять из нескольких разделов.

Создадим вначале простейший прайс-лист для продажи бумаги в ассортименте. Для этого достаточно открыть рабочую книгу Excel и ввести “в столбик” наименования марок бумаги и розничные цены, по которым эта бумага предлагается. Любой человек, хотя бы один раз, в жизни, работавший в среде Excel, сделает это без труда, как показано на рис. 1.1.

Все, что требуется, это ввести текстовые и цифровые данные в столбцы A и B, а также увеличить ширину столбца A так, чтобы самое длинное наименование было видно полностью. Для этого достаточно захватить мышью границу столбцов между серыми заголовками A и B, и перетащить ее в нужном направлении.

Прежде чем дополнить таблицу разделом “Картриджи”, необходимо каким-то образом оформить уже введенные данные с тем, чтобы они выглядели, как самостоятельная структурная единица. Прежде всего, посмотрим на столбец B — поскольку в него вводятся денежные значения, его необходимо отформатировать соответствующим образом (рис. 1.2). Если число обозначает денежную сумму, то это не просто число. Для ввода таких данных существуют специальные правила, а для корректного выполнения арифметических операций с ними Excel должен использовать специальную “денежную” арифметику.

22 Глава 1. Excel: cоздание прайс-листа

Рис. 1.1. Простейший прайс-лист

Как отформатировать столбец для ввода денежных значений

1.Выделите необходимый столбец (в нашем случае это столбец B) щелчком мыши на его заголовке (области серого цвета с буквой “B”, в верхней части листа). При этом все ячейки, принадлежащие к столбцу, окажутся выделенными.

2.Выполните команду Формат | Ячейки.

3.На вкладке Число выберите в списке Числовые форматы пункт Денежный

4.В поле Число десятичных знаков установите при помощи кнопки-счетчика значение 2.

5.В раскрывающемся списке Обозначение выберите обозначение необходимой денежной единицы. Например, р. Русский для российского рубля или грн. Ukrainian для украинской грив-

ны.

6.Щелкните на кнопке OK. Ячейки столбца B примут вид, как на рис. 1.2.

Рис. 1.2. Ячейки столбца в формате Денежный

Затем нам следует выделить раздел “Бумага” для того, чтобы вообще можно было говорить о разделах. Если продолжать ввод остальных данных далее “в столбик”, прайс-лист будет трудно читать и анализировать. Средства MS Office позволяют решить эту задачу множеством способов, выберем один из самых простых.

Чтобы оформить раздел, для улучшения визуального восприятия прайс-листа, можно ячейки этого раздела, предварительно выделив, очертить жирными линиями при помощи команды Ôîð-

Что может быть проще прямоугольной таблицы? 23

мат | Ячейки. В отобразившемся окне Формат ячеек на вкладке Граница выберите жирную линию в поле тип линии, и щелкните на кнопке внешние, а затем — внутренние. Результат форматирования показан на рис. 1.3. Ячейки столбца B, которые используются для ввода денежных значений, можно выделить цветом (рис. 1.3) при помощи вкладки Âèä все того же диалогового окна

Формат ячеек.

Рис. 1.3. Обрамление ячеек и изменение их цвета

Наконец, созданный раздел необходимо снабдить заголовком. Для этого следует вставить новую строку, выполнить в ней объединение (слияние) ячеек и отформатировать получившуюся объединенную ячейку так, чтобы она “бросалась в глаза” (рис. 1.3).

Создание заголовка раздела

1.Выделите любую ячейку в верхней строке таблицы и выполните команду Вставка | Строки.

2.Введите в первую ячейку вставленной строки текст заголовка (“Бумага для принтеров”).

3.Выделите первые две ячейки во вставленной пустой строке и выполните команду Формат |

Ячейки.

4.На вкладке Выравнивание диалогового окна Формат ячеек установите флажок объедине-

ние ячеек.

5.В списках по горизонтали и по вертикали выберите пункты по центру.

6.На вкладке Шрифт задайте параметры шрифта для заголовка.

7.При помощи поля Цвет на вкладке Вид выделите заголовок цветом (цвет шрифта можно изменить на вкладке Шрифт).

8.Щелкните на кнопке OK.

ПРИМЕЧАНИЕ

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

Форматирование диапазона ячеек по образцу

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

24 Глава 1. Excel: cоздание прайс-листа

Чтобы отформатировать новый раздел, можно использовать форматирование уже созданного раздела.

Как форматировать раздел при помощи команды Специальная вставка

1.Выделите полностью (вместе с заголовком), раздел “Бумага”.

2.Скопируйте его в буфер обмена Windows (Clipboard), выполнив команду Правка | Копировать. Теперь можно было вставить его в новом месте при помощи команды Правка | Вставить того же меню, и при этом получить

 

точную копию раздела “Бумага”. Но в данном

 

 

случае требуется только форматирование ячеек

 

 

этого раздела, а не его содержимое. Поэтому,

 

 

выполните следующие действия.

 

3.

Укажите начало форматирования. Для этого

 

 

достаточно выделить одну ячейку. В данном

 

 

примере это ячейка A11.

 

4.

Выполните команду Правка | Специальная

Рис. 1.4. Диалоговое окно Специальная

 

вставка

5.В открывшемся диалоговом окне в группе пе- вставка реключателей Вставить установите переключатель форматы, как показано на рис. 1.4. По умолчанию установлен переключатель все.

6.Щелкните мышью на кнопке OK. Excel отформатирует прямоугольную область в указанном

месте (рис. 1.5) точно таким же образом, как это было сделано вручную с первым разделом прайс-листа — “Бумага”..

Рис. 1.5. Форматирование диапазона ячеек по образцу

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

Что может быть проще прямоугольной таблицы? 25

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

1.Для удаления лишних строк их следует выделить при помощи мыши. Используйте для этого заголовки строк — цифры на сером фоне в левой части листа.

2.Выделенные строки удаляются командой Правка | Удалить.

ПРИМЕЧАНИЕ

Обратите внимание, нажатием клавиши [Delete] строки удалить не удастся. В этом случае будут удалены лишь данные, находящиеся в их ячейках.

Для добавления строк используют команду Вставка | Строки.

Механизмом группирования данных

Действуя описанным выше методом форматирования диапазона и удаления/вставки строк, прайс-лист был дополнен еще несколькими разделами (рис. 1.6). Картриджи для лазерных и матричных принтеров представляются вполне обоснованным продолжением темы расходных материалов.

Рис. 1.6. Теперь разделов стало два

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

Но как перемещаться по всем этим разделам и подразделам? При достаточно большом размере прайс-листа навигация по нему может быть затруднена.

В рабочей среде Excel можно воспользоваться механизмом группирования данных, который позволяет структурировать таблицу по иерархическому принципу. Чтобы сгруппировать данные, в рассматриваемом примере, по отношению к каждому из созданных разделов необходимо выполнить следующую последовательность действий.

Как группировать данные

1.Выделите все строки раздела кроме его заголовка.

26 Глава 1. Excel: cоздание прайс-листа

2.Выполните команду Данные | Группа и структура | Группировать.

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

ПРИМЕЧАНИЕ

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

ет — строки или столбцы.

Выполнив эти действия для каждого из разделов, будет получен прайс-лист из набора сворачивающихся списков, в котором каждый раздел может быть представлен как целиком, так и всего лишь одной строкой — его заголовком, как показано на рис. 1.7.

Рис. 1.7. Список структурирован: каждый из его разделов можно свернуть или развернуть щелчком на кнопке “—“ или “+“

В левой части рабочего листа теперь появилась дополнительная панель с кнопками “+” и “”, которые служат для свертывания и развертывания соответствующих разделов. Кроме этого, кнопки 1 и 2 в левом верхнем углу листа позволяют свернуть, или, наоборот, развернуть все разделы одновременно.

ПРИМЕЧАНИЕ

Уже сгруппированные данные можно еще раз сгруппировать, создав более высокий уровень иерархии. Для этого необходимо снабдить несколько разделов общим заголовком, выделить все строки за исключением этого заголовка и снова выполните команду Данные | Группа и структура | Группировать. При этом появится еще одна ступень группировки данных на панели в левой части листа, например, кнопка 3. В данном примере этого делать не надо, поскольку “тренировочный” прайс-лист недостаточно велик. Но если бы кроме расходных материалов в нем имелись другие типы товаров, то было бы логичным объединить все четыре раздела в один большой раздел, который мог бы сворачиваться и разворачиваться наряду с такими разделами, как, например, “комплектующие”, “офисная техника” и т.п.

Заголовок прайс-листа

Чтобы снабдить прайс-лист общим “фирменным” заголовком, потребуется вставить две строки и объединить полученные ячейки A1, A2, B1 и B2, как показано на рис. 1.8.

Как отделить внутреннюю информацию от внешней информации 27

Рис. 1.8. Прайс с общим заголовком

Как отделить внутреннюю информацию от внешней информации

Созданный прайс-лист в предыдущем разделе, вполне пригоден для передачи его клиенту или контрагенту — в виде твердой копии, то есть отпечатанной на бумаге таблицы, или в качестве файла на дискете, или же в форме сообщения электронной почты. Но работать с ним в офисе фирмы вряд ли удобно. Ведь существуют такие реалии нынешней экономической жизни, как меняющийся валютный курс, который вынуждает оперативно менять цены на весь ассортимент предлагаемых фирмой товаров. Кроме того, в условиях рыночной экономики, каждая фирма разрабатывает и применяет различные ценовые стратегии. Это может выражаться в гибкой системе оптовых скидок, предполагающей динамическое изменение цен на товар в зависимости от условий продажи товара. Наконец, кроме проблем, связанных с оперативным ценообразованием, существует такой фактор, постоянно подвергающийся изменению, как наличие конкретного товара на складе. Причем под складом может подразумеваться как собственный склад фирмы, так и склад поставщика продукции или даже нескольких поставщиков. Все это оказывает влияние на текущее состояние прайс-листа. И было бы просто смешно не использовать здесь возможности Excel. Но должен ли клиент, в полученном текущем прайсе, видеть базовую цену в валюте или цену поставщика? Следует ли ему знать о наличии товара на складе? А как быть с товаром, которого в данный момент на складе вообще нет, но который уже завтра снова поступит на склад. Этого товара не должно быть и в текущей версии прайс-листа, но не удалять же, в самом деле, его строку из списка каждый раз с тем, чтобы назавтра ее снова приходилось создавать заново.

Постановка задачи

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

Подумаем, в чем могут состоять отличия “внутрифирменного” прайс-листа и что нам необходимо добавить к своему “учебно-тренировочному” прайсу. В первую очередь необходим меха-

28 Глава 1. Excel: cоздание прайс-листа

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

1.Задается некая “базовая” цена, которая может представлять собой цену соответствующего товара в твердой валюте или же цену поставщика.

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

3.Умножением оптовой цены на коэффициент розницы получают розничную цену.

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

Справа от общего заголовка (то есть объединенных ячеек A1 и A2) есть подходящее место для размещения коэффициентов. Конечно, можно было бы просто ввести значение курса и коэффициента розницы в какие-нибудь ячейки и затем использовать ссылки на эти ячейки в формулах. Более правильный путь состоит в том, чтобы присвоить ячейкам имена и уже их использовать в формулах — тогда смысл каждой формулы будет понятен без дополнительных комментариев. Такой подход позволяет легко разобраться с механизмом ценообразования не только его разработчику, но и другим служащим фирмы.

Именованные ячейки

В данном примере необходимо выделить ячейку D1, и,

 

щелкнув мышью на поле имени (рис. 1.9), ввести в него вме-

 

сто D1 слово “КУРС”, завершив ввод нажатием клавиши

 

[Enter]. Теперь во всех формулах “КУРС” будет означать

 

данные из ячейки D1.

 

Аналогичным образом необходимо присвоить имя

 

“РОЗНИЦА” ячейке D2. Эти две ячейки можно выделить

Рис. 1.9. Поле имени расположено в

цветом, а чтобы назначение их было понятным, ввести

левом верхнем углу рабочего листа,

строки “КУРС=” и “РОЗН=” в пару ячеек слева от них, то

где отображается адрес текущей

есть в ячейки C1 и C2, которые также можно выделить

ячейки

цветом.

 

Наконец, необходимо отформатировать столбцы C и D для ввода денежных значений. Столбец C нужно отформатировать, как столбец B, а для столбца D можно выбрать денежную единицу знак доллара. В строке 3 можно добавить заголовки для новых столбцов, отформатированные так же, как и заголовок столбца “Цена”: столбцу базовой цены пусть соответствует заголовок “База”, а столбцу оптовой цены — заголовок “Опт”, как показано на рис. 1.10.

Рис. 1.10. Отформатировать ячейки заголовков “Опт“ и “База“ проще всего при помощи копирования заголовка “Цена“

ПРИМЕЧАНИЕ

Обратите внимание на строку 4. Для лучшего восприятия прайса можно было бы объединить ячейки A4, B4, C4 и D4, задав для объединенной ячейки выравнивание текста по центру, однако в этом примере было просто скопировано форматирование ячейки B4 в C4 и D4. Как уже отмечалось, объединенние ячеек может вызвать проблемы связанные с совместимостью различных версий Excel, поэтому эта возможность не используется в рассматриваемом примере.

Как отделить внутреннюю информацию от внешней информации 29

Использование формул и автозаполнение ячеек формулами

Итак, во “внутрифирменном” прайс-листе должны вводиться только значения базовой цены, а значения в столбцах “Опт” и “Цена” должны вычисляться автоматически. Нет ничего проще, так как рабочие листы Excel в частности и электронные таблицы вообще изначально создавались для решения подобных задач. Для этого надо всего лишь заполнить столбцы “Цена” и “Опт” соответствующими формулами. Для данного примера следует ввести в ячейку C5 формулу =D5*КУРС, а в ячейку B5 =C5*РОЗНИЦА. После этого достаточно выделить прямоугольную область шириной в две ячейки так, чтобы ячейки с формулами (C5 и B5) представляли собой верхнюю строку этой области, и выполнить команду Правка | Заполнить | Вниз. В результате вся область будет заполнена соответствующими формулами, а столбцы “Цена” и “Опт” будут отображать значения, вычисленные на основании данных столбца “База” (рис. 1.11).

Рис. 1.11. Столбцы "Цена" и "Опт" содержат формулы, а столбец "База" — числовые значения в денежном формате

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

Условное форматирование ячеек

Чего еще нам не хватает для использования такого прайс-листа во “внутрифирменных” целях? Совершенно верно, надо знать, а есть ли вообще в данный момент, выбираемый товар на складе фирмы. А если есть, то, достаточно ли его, не пора ли позаботиться о поставке нового товара на склад из данной позиции? Все эти проблемы решаются введением дополнительного столбца, отражающего наличие товара. Пусть это будет столбец “Нал.”. Нет необходимости форматировать его для ввода денежных значений, но зато его следует отформатировать особенным образом. Здесь следует использовать условное форматирование, благодаря которому ячейки будут менять свой цвет в зависимости от своего содержимого. Пусть, например, при полном отсутствии товара по соответствующей позиции (значении 0) ячейка окрашивается красным, а при наличии менее 5 единиц — желтым. (Пора обратить внимание на эту позицию!)

Как применить к ячейкам условное форматирование

1.Выделите необходимые ячейки (в данном случае, ячейки под заголовком “Нал.”).

2.Выполните команду Формат | Условное форматирование.

3.В группе параметров Условие 1 диалогового окна Условное форматирование выберите из первых двух списков пункты значение и равно соответственно (рис. 1.12).

30 Глава 1. Excel: cоздание прайс-листа

Рис. 1.12. Все условия, заданные в диалоговом окне Условное форматирование, действуют независимо друг от друга

4.Введите в третье поле значение 0.

5.Щелкните на кнопке Формат и выберите на вкладке Вид, открывшегося диалогового окна красный цвет. Закройте диалоговое окно Формат ячеек щелчком мыши на кнопке ОК.

6.Вернувшись в диалоговое окно Условное форматирование, щелкните на кнопке А также.

7.Повторите всю последовательность в группе параметров Условие 2, выбрав пункты значение и больше, и введя в третье поле значение 5. В диалоговом окне Формат ячеек выберите жел-

тый цвет.

8. Закройте диалоговое окно щелчком на кнопке OK.

Прайс-лист стал достаточно удобным “инструментом” для использования внутри фирмы, но показывать клиенту его теперь нельзя (рис. 1.13).

см. также в гл. 8 раздел “Условные форматы”.

Методы разделения информации на “внутреннюю” и “внешнюю”

Пора приступить к разделению информации на “внутреннюю” и “внешнюю”. Как это сделать? Можно пойти по одному из многих путей, средства MS Office предоставляют разные методы для решения этой задачи.

Пожалуй, здесь стоит остановиться на минутку и поразмыслить о последующих действиях. В среде Microsoft Office существуют специальные механизмы, позволяющие связывать самыми различными способами не только однородные, но даже и совершенно разного вида данные, относящиеся к разным приложениям и находящиеся в самых разных местах,… практически, где угодно.

Рис. 1.13. При полном отсутствии или наличии товара менее 5 единиц, ячейка в соответствующей позиции окрашивается в красный или желтый цвет

Соседние файлы в папке Книги