|
|
|
6 |
|
|
|
Абонент |
|
Тип |
|
Продолжительность в секундах |
|
Скидка |
|
|
|
||||
|
вызова |
|
(для СМС – шт.) |
|
||
|
|
|
|
|
||
мама |
|
4 |
|
273 |
|
|
начальник |
|
1 |
|
76 |
|
|
клиент 2 |
|
5 |
|
108 |
|
|
подруга |
|
1 |
|
165 |
|
|
муж |
|
1 |
|
43 |
|
50% |
коллега 2 |
|
8 |
|
1 |
|
|
подруга |
|
1 |
|
133 |
|
|
мама |
|
4 |
|
171 |
|
|
родственник |
|
3 |
|
140 |
|
|
коллега 1 |
|
5 |
|
45 |
|
|
клиент 1 |
|
6 |
|
230 |
|
|
муж |
|
1 |
|
162 |
|
50% |
подруга |
|
8 |
|
2 |
|
|
подруга |
|
1 |
|
52 |
|
|
клиент 2 |
|
5 |
|
192 |
|
|
начальник |
|
1 |
|
80 |
|
|
начальник |
|
5 |
|
34 |
|
|
коллега 1 |
|
4 |
|
107 |
|
|
муж |
|
1 |
|
20 |
|
50% |
мама |
|
4 |
|
308 |
|
|
начальник |
|
3 |
|
36 |
|
|
коллега 1 |
|
4 |
|
76 |
|
|
муж |
|
1 |
|
122 |
|
50% |
муж |
|
1 |
|
23 |
|
50% |
мама |
|
5 |
|
67 |
|
|
клиент 1 |
|
2 |
|
340 |
|
|
подруга |
|
4 |
|
765 |
|
|
коллега 2 |
|
1 |
|
210 |
|
|
муж |
|
8 |
|
2 |
|
|
муж |
|
1 |
|
21 |
|
50% |
мама |
|
4 |
|
50 |
|
|
коллега 1 |
|
5 |
|
62 |
|
|
коллега 1 |
|
4 |
|
312 |
|
|
клиент 2 |
|
5 |
|
212 |
|
|
клиент 2 |
|
1 |
|
101 |
|
|
подруга |
|
4 |
|
186 |
|
|
муж |
|
1 |
|
43 |
|
50% |
муж |
|
1 |
|
21 |
|
50% |
начальник |
|
1 |
|
35 |
|
|
муж |
|
1 |
|
19 |
|
50% |
клиент 1 |
|
2 |
|
120 |
|
|
муж |
|
1 |
|
72 |
|
50% |
мама |
|
4 |
|
21 |
|
|
сестра |
|
4 |
|
312 |
|
|
коллега 2 |
|
8 |
|
3 |
|
|
Тарифные планы
ПервыйВторойНовыйЛюбимыйЛучшийСамыйГлавный
|
|
|
7 |
|
|
|
Абонент |
|
Тип |
|
Продолжительность в секундах |
|
Скидка |
|
|
|
||||
|
вызова |
|
(для СМС – шт.) |
|
||
|
|
|
|
|
||
сервис |
|
5 |
|
206 |
|
|
сестра |
|
5 |
|
54 |
|
|
мама |
|
5 |
|
130 |
|
|
мама |
|
4 |
|
23 |
|
|
сервис |
|
5 |
|
108 |
|
|
сервис |
|
5 |
|
62 |
|
|
родственник |
|
3 |
|
186 |
|
|
родственник |
|
7 |
|
388 |
|
|
мама |
|
4 |
|
73 |
|
|
муж |
|
1 |
|
98 |
|
50% |
подруга |
|
4 |
|
233 |
|
|
подруга |
|
5 |
|
31 |
|
|
подруга |
|
4 |
|
412 |
|
|
родственник |
|
7 |
|
205 |
|
|
мама |
|
5 |
|
21 |
|
|
мама |
|
4 |
|
98 |
|
|
сестра |
|
4 |
|
509 |
|
|
сервис |
|
5 |
|
98 |
|
|
сервис |
|
5 |
|
102 |
|
|
муж |
|
1 |
|
100 |
|
50% |
Тарифные планы
ПервыйВторойНовыйЛюбимыйЛучшийСамыйГлавный
Введите данные таблиц 1.1 и 1.2 на Лист 1 Excel. Обратите внимание на
работу средства автозавершения при вводе текстовых данных в столбец. Установите форматирование ячеек согласно образцу.
Создание функции пользователя
Помимо использования стандартных функций, Excel предоставляет пользователю возможность создания собственных (пользовательских) функций. Для расчета тарифных планов создадим функции пользователя. Начнем с функции обработки первого тарифного плана.
1. Для комфортной работы с макросами (к которым относятся и функции пользователя) выполните команду меню Сервис – Макрос – Безопасность и
установите средний уровень безопасности. Сохраните изменения в документе. Закройте и вновь откройте документ, не отключая макросы.
Замечание. В дальнейшем, если неправильно написанные макросы создают проблемы в работе системы, документ следует открыть в режиме отключения макросов и устранить ошибки в коде пользователя.
2.Выполните команду меню Сервис – Макрос – Редактор Visual Basic.
3.В открывшемся окне редактора выделите строку Эта книга в обозре-
вателе проекта (если окно обозревателя отсутствует, откройте его, выполнив
команду меню View – Project Explorer) и выполните команду Insert – Module.
8
4. По этой команде будет создан новый модуль и откроется окно кода модуля. В окне кода введите заголовок функции Function First_plan () и команду закрытия функции End Function.
5.Закройте окно редактора Visual Basic и установите курсор в любую свободную ячейку Листа 1. Выполните команду меню Вставка – Функция и в категории Определенные пользователем найдите созданную функцию.
6.Отмените вставку функции, поскольку содержание функции First_plan еще не определено.
7.Выполните команду меню Сервис – Макрос – Редактор Visual Basic,
чтобы вернуться к редактированию функции.
Описание функции First_plan
В скобках после названия функции вводят имена формальных аргументов функции, то есть, величин, от которых зависит ее значение. Очевидно, что стоимость услуги внутри одного тарифа определяется тремя величинами: типом вызова, продолжительностью вызова и размером скидки. Соответственно будем использовать три формальные переменные type_c, counting, sales, кото-
рые запишем в скобках после названия функции. Заголовок примет вид:
Function First_plan(type_c, counting, sales)
Теперь составим код самой функции. В коде функции следует указать, как будет рассчитываться значение переменной First_plan в различных случаях.
Так как стоимость вызова, а значит, и значение функции зависит от типа вызова, то формулы для расчета будут меняться в зависимости от значения переменной type_c. Для организации подсчета по нескольким формулам воспользуемся оператором выбора Select Case. Переменной выбора в этом случае будет переменная type_c.
9
Рассмотрим случаи, когда стоимость минуты разговора составит 2,6 рубля
(вызовы типов 1, 2, 3, 4, 5, 6). Введем соответствующую строчку
Case 1,2,3,4,5,6
Стоимость звонка зависит от его продолжительности (переменная counting), для ее расчета надо продолжительность звонка умножить на 2,6 и поделить
на 60 (поскольку продолжительность указана в секундах). В виде формулы это записывается следующим образом:
Теперь учтем возможную скидку, уменьшив на ее размер рассчитанную сумму:
Учтем, что на первом тарифе стоимость вызова увеличивается на 0,5 рубля:
Рассмотрим теперь случай междугородных вызовов (тип вызова 7), учитывая, что стоимость минуты разговора составит в этом случае 4,5 рубля, получим следующий фрагмент кода:
Теперь рассчитаем стоимость отправленных СМС (тип вызова 8). Для этого достаточно умножить цену СМС (1,5 рубля) на их количество (counting).
10
Поскольку это последний случай тарификации, то закроем оператор Case, добавив строку End Select. Полный текст функции First_plan выглядит
следующим образом:
Введите текст функции First_plan в окно редактора кода. Закройте
окно редактора.
Вставка функции в документ
1.Поместите курсор на Лист 1 напротив первого вызова в столбец пер-
вого тарифного плана.
2.Выполните команду Вставка – Функция и в категории Определенные пользователем выберите функцию First_plan.
В поле Type_c введите ссылку на ячейку таблицы 1.2, содержащую тип вызова, в поле Counting – ссылку на ячейку с продолжительностью вызова, в ячейку Sales – ссылку на ячейку со скидкой. Получим стоимость первого вызова:
2,103333.
3.Округлите полученное значение до двух знаков после запятой. Для этого используйте математическую функцию ОКРУГЛВВЕРХ(). Отредактируйте в
строке формул содержимое ячейки, чтобы оно приняло вид
=ОКРУГЛВВЕРХ(First_plan(ссылка;ссылка;ссылка);2)
4.Присвойте ячейке денежный формат.
5.Скопируйте формулу протягиванием (автозаполнением) по ячейкам столбца.