14

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

## 14.3. ТЕХНОЛОГИЯ РАБОТЫ В ЭЛЕКТРОННОЙ ТАБЛИЦЕ

### Обобщенная технология работы

### Проектирование электронной таблицы

### Объединение электронных таблиц

### Макросы как средство автоматизации работы

### Электронная таблица для поддержки принятия решений

### ОБОБЩЕННАЯ ТЕХНОЛОГИЯ РАБОТЫ

Хотя работа в каждой электронной таблице имеет свои особенности, можно говорить о некоторой обобщенной (усредненной) технологии работы с ней. Схема такой технологии приведена на рис. 14.8.

Н а э т а п е 1 формируется структура таблицы. Структура включает: определение заголовка таблицы, названий строк и столбцов, а также ввод в ячейки таблицы исходных данных, формул и функций.

Рис.14.8. Обобщенная технология работы с электронной таблицей

Н а э т а п е 2 производится работа с данными, которая состоит в исследовании сформированной таблицы. Такое исследование может быть связано с использованием определенных математических моделей (моделированием), методов одновременной работы с несколькими таблицами и методов работы с базами данных.

Математические модели помогают пользователю на основе имеющейся таблицы получить новую информацию решением таких типовых задач компьютерного моделирования: "Что будет, если ?", анализ чувствительности и др. Решение задач типа: "Что будет, если?" - дает возможность пользователю узнать, как изменятся выходные параметры при изменении одной или нескольких входных величин (условий). Расширением таких задач являются задачи анализа чувствительности, позволяющие определить, как изменится решение модели при изменении одной или нескольких входных величин с заданным шагом в определенном диапазоне значений. Обратной по отношению к задаче: "Что будет, если?" - является задача: "Как сделать, чтобы?". Она возникает в случае, если ваша цель - достижение определенного значения модели и вы ищете значения входных параметров, обеспечивающих достижение этой цели. Различные виды анализа данных, содержащихся в исходной таблице, можно проводить с использованием встроенных функций и процедур. Так, входящие в состав электронной таблицы статистические функции могут использоваться в статистическом анализе или для прогноза содержащихся в таблице данных. Использование финансовых функций позволяет произвести анализ эффективности планируемых капитальных вложений, рассчитать стоимость ценных бумаг или размер амортизационных отчислений. Для решения оптимизационных задач используются специальные модели математического программирования.

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

Иногда при работе с большими электронными таблицами требуется найти ту или иную строку (столбец) или отсортировать строки (столбцы) в нужном порядке. Для этого в электронной таблице предусмотрен ограниченный программный инструментарий СУБД, позволяющий манипулировать строками и столбцами как компонентами баз данных.

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

Э т а п 4 обеспечивает вывод результирующих данных на печать. При этом результаты могут быть распечатаны в табличном виде или в виде графических диаграмм.

### ПРОЕКТИРОВАНИЕ ЭЛЕКТРОННОЙ ТАБЛИЦЫ

Рассмотрим проектирование электронных таблиц. С этой целью проведем формирование прогноза финансовой деятельности некоторой компании за 5 лет (табл. 14.2). Доход в любом году определяется как произведение объема продаж в натуральном выражении на продажную цену. Размер прибыли при этом определяется как разность между доходом и суммой расходов данного года.

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

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

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

Создание электронной таблицы начинается с ввода названий столбцов и строк. Столбцами в нашей таблице являются годы, составляющие прогнозный период, а строками - прогнозируемые финансовые показатели. Кроме того, в таблицу входят прогнозные допущения.

Далее вводятся данные первого года (в нашем примере 1995), которые частично задаются как числовые данные (объем продаж, продажная цена), а частично - как формулы. Так, например, в ячейку В5 записывается формула для вычисления дохода +ВЗ*В4, а в ячейку В7 - формула для вычисления прибыли +В5-В6. Одновременно вводятся числовые данные, выражающие прогнозные допущения.

Таблица 14.2. Финансовый прогноз деятельности компании

| А | B | C | D | E | F
1 | Прогноз деятельности компании
2 |  | 1995 | 1996 | 1997 | 1998 | 1999
3 | Объем продаж, шт. | 10000 | 11800 | 13924 | 16430 | 19388
4 | Цена | $2.00 | $2.10 | $2.21 | $2.32 | $2.43
5 | Доход | $20000 | $24780 | $30702 | $38040 | $47132
6 | Расходы | $15000 | $15750 | $16537 | $17364 | $18232
7 | Прибыль | $5000 | $9030 | $14165 | $20676 | $28900
8 |  |  |  |  |  |
9 | Прогнозные допущения |  |  |  |  |
10 | Рост объема продаж | 18.00% |  |  |  |
11 | Рост цен | 5.00% |  |  |  |

Наиболее сложный момент проектирования нашей таблицы - это ввод формул в столбец второго года (1996). Эти формулы учитывают результаты первого года и, кроме того, отражают прогнозные допущения. Так, например, объем продаж в 1996 г. определяется как объем продаж 1995 г., умноженный на процент роста, указанный в прогнозных допущениях (рис.14.9).

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

Рис. 14.9. Использование абсолютных и относительных адресов

Пересчет остальных параметров из столбца В в столбец С выполняется аналогичным образом.

Таким образом, остальные столбцы (Д, Е, F) заполняются простым копированием формул, содержащихся в столбце С. Команда копирования при этом автоматически подстроит содержащиеся в них относительные адреса ячеек. В заключение вы можете защитить созданную электронную таблицу от внесения изменений (кроме ячеек, содержащих значения прогнозных допущений).

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

Полученные результаты могут быть также представлены в графическом виде.

Таблица 14.3. Электронная таблица для финансового прогнозирования в режиме просмотра формул

| А | B | C | D | E | F
1 | Прогноз деятельности компании
2 |  | 1995 | 1996 | 1997 | 1998 | 1999
3 | Объем продаж, шт. | 10000 | (1+$B$10)*B3 | ┘. | ┘. | (1+$B$10)*E3
4 | Цена | $2.00 | (1+$B$11)*B4 | ┘. | ┘. | (1+$B$11)*E4
5 | Доход | +B3*B4 | +C3*C4 | ┘. | ┘. | +F3*F4
6 | Расходы | 15000 | (1+$B$11)*B6 | ┘. | ┘. | (1+$B$11)*E6
7 | Прибыль | +B5-B6 | +C5-C6 | ┘. | ┘. | +F5-F6
8 |  |  |  |  |  |
9 | Прогнозные допущения |  |  |  |  |
10 | Рост объема продаж | 18.00% |  |  |  |
11 | Рост цен | 5.00% |  |  |  |

### ОБЪЕДИНЕНИЕ ЭЛЕКТРОННЫХ ТАБЛИЦ

При работе с электронными таблицами часто возникает необходимость их объединения. Среди инструментов объединения электронных таблиц отметим:

организацию межтабличных связей;

консолидацию электронных таблиц или их частей;

объединение файлов.

### Организация межтабличных связей

Связи между таблицами осуществляются путем использования внешних ссылок (адресов ячеек), содержащих помимо имени столбца и номера строки имя файла, данные из которого используются. Так, например, если мы хотим использовать данные из ячейки С2 таблицы, содержащейся в файле Exam. wq1. в нужную нам ячейку текущей таблицы мы можем записать внешнюю ссылку следующим образом: [Exam.wql] C2.

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

Между отдельными таблицами возможны двусторонние связи (таблица А ссылается на таблицу В, а В, в свою очередь, прямо или опосредованно, например через таблицу С, ссылается на А).

### Консолидация электронных таблиц или их частей

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

### Команда объединения файлов

Многие современные табличные процессоры имеют в своем арсенале команду объединения файлов. Эта команда имеет три формы, используемые для копирования, суммирования или вычитания данных из исходных таблиц в объединенную таблицу. Технология создания электронной таблицы, объединяющей данные нескольких исходных таблиц, такова: мы создаем электронную таблицу в оперативной памяти и засылаем в нее данные из исходных электронных таблиц, находящихся на жестком (или гибком) диске. Процесс начинается с подготовки шаблона объединенной электронной таблицы.

Пример 14.14. Допустим, что интересующая нас компания имеет три магазина, от которых она получает регулярные отчеты в форме электронных таблиц. Однако, если в целом дела идут нормально, руководство компании мало интересует финансовая деятельность каждого из магазинов. Ему хотелось бы увидеть результаты деятельности всей компании и уяснить, какой из магазинов приносит прибыль, а какой - убытки. Здесь возникает задача объединения данных из трех отчетов (электронных таблиц) в один. Эта задача может быть решена установлением межтабличных связей или объединением файлов электронных таблиц.

Допустим, что исходные отчеты, поступающие от магазинов компании, имеют вид, указанный в табл. 14.4.

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

Таблица 14.4. Отчет, поступающий от одного из магазинов

| А | B | C | D | E
1 | Компания L&M. Магазин # 1.
| Данные за 1995 г. по кварталам:
2 |  | 1-й | 2-й | 3-й | 4-й
3 | Объем продаж, дол. | 84,000 | 92,000 | 110,000 | 102,000
4 |  |  |  |  |
5 | Зарплата | 48,000 | 48,000 | 68,000 | 68,000
6 | Себестоимость | 31,000 | 32,500 | 36,000 | 35,000
7 | Суммарные затраты | 79,000 | 80,500 | 104,000 | 103,00
8 |  |  |  |  |
9 | Прибыль | 5,000 | 11,500 | 6,000 | -500

Таблица 14.5. Объединенный отчет, полученный организацией межтабличных связей (в режиме просмотра формул)

| А | B | C | D | E
1 | Компания L&M. Все магазины.
| Данные═ по кварталам:
2 |  | 1-й | 2-й | 3-й | 4-й
3 | Магазин 1 | [имя файла1] B9 | [имя файла1] C9 | [имя файла1] D9 | [имя файла1] E9
4 | Магазин 2 | [имя файла2] B9 | [имя файла2] C9 | [имя файла2] D9 | [имя файла2] E9
5 | Магазин 3 | [имя файла3] B9 | [имя файла3] C9 | [имя файла3] D9 | [имя файла3] E9
6 | Общая прибыль | SUM(B3,B4,B5) | SUM(C3,C4,C5) | SUM(D3,D4,D5) | SUM(E3,E4,E5)

Таблица 14.6. Объединенный отчет, полученный при объединении (в режиме копирования)

| А | B | C | D | E
1 | Компания L&M. Все магазины.
| Данные═ по кварталам:
2 |  | 1-й | 2-й | 3-й | 4-й
3 | Магазин 1 | 5,000 | 11,500 | 6,000 | -500
4 | Магазин 2 | 7,500 | 14,500 | 22,000 | 29,000
5 | Магазин 3 | 8,500 | 5,000 | 13,000 | 26,000

В ряде случаев полученные в табл. 14.6 данные могут оказаться недостаточными для руководства компании, которое интересуют суммарные данные не только по прибили, но и по продажам и затратам. Здесь используется команда объединения файлов в режиме суммирования, которая обеспечивает иной порядок формирования данных в объединенном отчете. Объединенный отчет (электронная таблица) в этом случае будет формироваться в таком же виде, как и отчеты, получаемые от магазинов, однако содержимое каждой ячейки в нем будет равняться сумме содержимого соответствующих ячеек объединяемых таблиц. Так, например, зарплата в первом квартале в объединенном отчете будет определяться суммой заработной платы во всех магазинах в первом квартале.

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

### МАКРОСЫ КАК СРЕДСТВО АВТОМАТИЗАЦИИ РАБОТЫ

### Понятие макроса

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

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

определение цели, для выполнения которой вы создаете макрос (например, для объединения данных, поступающих из отдельных магазинов, в общую электронную таблицу);

определение последовательности команд (нажатий клавиш), обеспечивающих достижение поставленной вами цели;

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

присвоение имени макросу, созданному в процессе выполнения шага 3.

Пример 14.15. Приведем пример создания макроса в электронной таблице Lotus 1-2-3. Имя макроса включает в себя левый слэш и букву (например, \С или \В). Содержимое макроса начинается в соседней ячейке справа от имени и далее продолжается в данном столбце. Для выполнения макроса следует нажать клавишу <Alt> и соответствующую букву, содержащуюся в его имени. Так, для выполнения макроса, который вы видите ниже, следует набрать на клавиатуре <Alt> <C>.

### Пример макроса

\С (goto}upprleft~

/fcanquarters~store1.wkl~

<down>

/fcanquarters~store2. wkl~

<down>

/fcanquarters~store3 .wkl~

/reallstore

Макрос с именем \С предназначен для объединения данных, поступающих от магазинов, в общую электронную таблицу (последовательность запрограммированных здесь действий полностью совладает с действиями, предпринимаемыми при получении табл. 14.6). Жирным шрифтом помечены имена диапазонов перемещаемых ячеек. При создании макросов используются специальные обозначения. В электронной таблице Lotus 1-2-3, например, используются следующие обозначения. В примере макроса используется команда объединения файлов (File Combine Add command) для диапазона ячеек QUARTERS, взятых из электронной таблицы store1.wkl.

Рис.14.10. Обозначения, используемые при написании макросов

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

### Создание пользовательских меню

Идея объединения двух и более макросов привела к созданию пользовательских меню. На рис. 14.11 мы видим пользовательское меню, построенное для объединения электронных таблиц. Меню имеет четыре пункта (Объединить, Удалить, Распечатать и Выйти), каждый из которых реализуется выполнением специально разработанного макроса. Выбор и запуск выполнения того или иного макроса в зависимости от особенностей конкретного табличного процессора могут осуществляться следующим образом:

специальной клавишной комбинацией с последующим вводом имени макроса;

указанием вызывающей клавиши отдельно для каждого макроса;

включением вызова макроса как нового пункта в системное меню;

добавлением кнопки вызова макроса в панель инструментов;

контекстным вызовом менеджера макросов мышью.

Объединить |  | Удалить |  | Распечатать |  | Выйти

Рис. 14.11. Пример пользовательского меню

### ЭЛЕКТРОННАЯ ТАБЛИЦА ДЛЯ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ

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

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

можете ли вы позволить себе определенный месячный платеж за машину ?

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

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

что будет, если вы увеличите срок возврата ссуды и получите более низкую процентную ставку ?

Ваше решение о выборе и покупке автомобиля зависит от ответов на эти и другие вопросы. На рис. 14.13 анализ данной ситуации проведен при помощи электронной таблицы.

На рис.14.12 мы видим шаблон (пустую таблицу), имеющий соответствующие названия строк и столбцов, а также формулы без числовых данных. В шаблон дополнительно вводятся следующие числовые данные: цена автомобиля, скидка производителя, первоначальный взнос, годовая процентная ставка и время возврата ссуды. После ввода указанных данных электронная таблица автоматически вычисляет значение ежемесячного платежа, используя специальную функцию @PMT.

Цена автомобиля |
Скидка производителя |
Первоначальный платеж |
| ---------------------------------
Полные затраты | +В1-(В2+В3)
Процентная ставка (%) |
Срок возврата ссуды (годы) |
Ежемесячный платеж | @РМТ(В5,В6/12,В7*12)

Рис. 14.12. Шаблон таблицы

Показатели | Альтернатива 1 | Альтернатива 2 | Альтернатива 3 | Альтернатива 4
Цена автомобиля | $ 14999 | $13999 | $13999 | $13999
Скидка производителя | $0 | $1000 | $1000 | $1000
Первоначальный платеж | $0 | $0 | $3000 | $3000
| ------------------ | ------------------ | ------------------ | ------------------
Полные затраты | $14 999 | $12 999 | $9 999 | $9 999
Процентная═ ставка (%) | 13.00 | 13.00 | 13.00 | 12.00
Срок возврата ссуды (годы) | 3 | 3 | 3 | 4
Ежемесячный платеж | $505.38 | $437.99 | $336.91 | $263.31

Рис. 14.13. Анализ ситуации с помощью электронной таблицы

Функция @PMT(Pv, Rate, Nper) вычисляет сумму периодического платежа, необходимую для погашения ссуды Pv с процентной ставкой Rate за число платежных периодов Nper. При этом значения, которые определяются для Rate, должны коррелироваться с единицами, используемыми для Nper. Если платежи делаются ежегодно, Nper измеряется в годах. Если платежи производятся ежемесячно, Nper представляет собой число платежных месяцев. Для расчета ежемесячных платежей при использовании годовой процентной ставки ее следует разделить на 12. Так, например, в рамках табл. на рис. 14.13 функция @РМТ используется в следующем виде:

@РМТ(14999,.13/12,36).

Заметим, однако, что в электронной таблице аргументы функций могут быть представлены не самими их значениями, а адресами ячеек, в которых эти значения находятся:

@РMT(В5,В6/12,В7*12).

Указанный шаблон позволяет рассмотреть несколько альтернатив и получить представление о полезности электронных таблиц для принятия решений.

Альтернатива 1, которую мы видим, не кажется нам слишком привлекательной, поскольку покупка машины по цене 14 999 дол. - это неприемлемая для нас величина ежемесячного платежа, превышающего 500 дол.

Соглашаясь на меньший автомобиль и получая при этом скидку, мы несколько уменьшаем размер ежемесячного платежа, доводя его до 437 дол. (альтернатива 2).

Далее мы видим альтернативу 3 - необходимость получения дополнительного дохода в 3000 дол. для внесения первоначального платежа.

Последняя альтернатива 4 покупки - увеличение срока возврата ссуды до 4 лет с более низкой процентной ставкой, возможно, устроит нас.

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