Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Popov_A_A_Kurs_kompyuternoy_podgotovki_Excel.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
4.36 Mб
Скачать

5. Примеры практических задач

Рассмотрим ряд примеров, разбор которых позволит читателю освоить основные средства Excel. Кроме того, читатель, возможно, обнаружит среди предложенных примеров задачу, похожую на ту, что он решает ежедневно на своем рабочем месте, но делает это вручную. Представленный ниже материал не следует воспринимать как пособие по финансовой математике. Тематика предлагаемых задач часто связана с денежными расчетами просто потому, что их постановка понятна любому читателю. Это, конечно, совершенно не означает, что для такого инструмента не найдется множества технических приложений. Отметим, что некоторые задания могут быть исполнены несколькими, иногда, возможно, и более эффективными, способами. Цель предлагаемого далее материала – не получение самого лучшего решения в каждом конкретном случае, а овладение техникой построения и оформления таблиц.

Замечания. 1. Информация, используемая в примерах, носит условный характер и не отражает реального законодательства. 2. Таблицы представлены на рисунках как в нормальном (“результативном”) виде, так и, по возможности, – в формульном виде. Номера рисунков в тексте совпадают с номерами задач. 3. Следует иметь в виду, что данные во многих примерах сопровождаются единицами измерения ($, кг, шт и др.), которые не вводятся непосредственно в клетки таблицы, но устанавливаются с помощью форматирования.

 В связи с тем, что во многих примерах имеются “процентные” данные, напомним, как их использовать. Проценты вводятся в таблицу как десятичные коэффициенты, которым затем придается формат %, либо они сразу вводятся со знаком процента. В Excel число, изображенное со знаком процента, соответствует в сто раз меньшей величине без знака %. То, что, например, выглядит как 20%, на самом деле является 0,2, то, что выглядит как 100%, соответствует 1. Иными словами, это просто разные формы представления одного и того же числа.

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

искомая_часть_числа=исходное_число * процент_от_числа/100% .

В Excel же достаточно формулы вида искомая_часть_числа=исходное_число * процент_от_ числа.

Т.е. нужно умножить это число на процент. Делить на 100% нет необходимости. Однако, если это сделать, результат не измениться ведь здесь 100%1.

Например, нужно найти 20% от числа 500: =500*20%=500*0,2=100.

Обе формулы в Excel совершено идентичны.

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

новое_число=исходное_число – исходное_число * процент или короче

новое_число=исходное_число * (1–процент).

Например, пусть старая цена товара составляет 500 руб., а новая цена имеет скидку в 20%. Определить новую цену товара в рублях =500(1–20%)=500(100%–20%)=500(1–0,2). Все три записи в Excel идентичны.

Аналогичным образом вычисляется наценка: новое_число=исходное_число * (1+процент).

Наценка в 20% к 500 руб. даст такую новую цену =500(1+20%)=500(100%+20%)=500(1+0,2).

Поскольку, обычно, такие данные участвуют в формулах не в качестве констант, а своими адресами (например, А3 и В4), вполне очевидны формулы вида =А3*(1–В4) и =А3*(1+В4) для скидки и наценки. Очевидно также, что превратить одну функцию в другую можно просто изменив знак непосредственно при числе, находящемся в ячейке, содержащей процент (здесь в В4). Во всех случаях следует иметь в виду, что нельзя складывать (вычитать) процент с каким-либо иным значением, кроме процента (коэффициента).

Замечание. Владельцы калькуляторов знают, что (при наличии на нем кнопки %) правомочно действие, в котором с собственно данными (например с деньгами) складываются/вычитаются проценты. Например, действие вида 200р+10% повлечет результат равный 220р (т.е. будет начислен желаемый процент), что, как будто, противоречит вышесказанному. Здесь следует учесть, что в калькуляторе имеется специальная операция взятия процента, которая на сам деле выполнила действие вида 200+200*10%/100%. Поскольку в Excel отсутствует подобный механизм начисления процента, мы должны пользоваться известными школьными правилами работы с процентами.



В начале рассмотрим простенький пример, который нам поможет выработать подход к проектированию таблиц. На рис. 5.0а слева изображена вся таблица, справа – формулы для столбца D. Пусть требуется выполнить расчет платы за квартиру. Положим она состоит из оплаты за коммунальные услуги (по 2 руб. за квадратный метр площади) и оплаты за газоснабжение (по 3 руб. с каждого проживающего в квартире человека).

Здесь реализован очевидный механизм расчета

квартплата=площадь * тариф_за_коммунальные_услуги + человек * тариф_за_газ.

Или в виде чисел для первой квартиры D3=80*2+4*3.

A

B

C

D

D

1

РАСЧЕТ КВАРТПЛАТЫ

2

Квартира

Площадь

Человек

Кв. плата

Кв. плата

3

№1

80

4

172

=B3*2+C3*3

4

№2

60

3

129

=B4*2+C4*3

5

№3

110

5

235

=B5*2+C5*3

6

№4

120

8

264

=B6*2+C6*3

7

ВСЕГО

370

20

800

=СУММ(D3:D6)

Рис. 5.0а

Поскольку квартир в доме может быть очень много, непосредственный ввод таких формул для каждой из них делает использование компьютера малопродуктивным, если не сказать бессмысленным. По существу, мы применяем его как тривиальный калькулятор. Конечно, этого и не требуется. Нужно использовать не арифметическое, а алгебраическое представление данных, когда они участвуют в формуле не своими непосредственными значениями, а адресами ячеек (т.е. переменными), в которых они находятся. В нашем случае D3=B3*2+ C3*3. Далее следует просто скопировать (воспользовавшись маркером заполнения клетки) первую формулу D3=B3*2+C3*3 во все нижележащие ячейки. В следующей снизу клетке она превратится в D4=B4*2+C4*3, затем в D5=B5*2+C5*3 и т.д. Здесь проявилось чрезвычайно полезное свойство копируемых ссылок – адаптируемость адресных ссылок под новое положение.

A

B

C

D

D

1

Тарифы оплаты

2

комм/уc:

2,0р/метр

газ: 

3,0р/чел

3,0р/чел

3

РАСЧЕТ КВАРТПЛАТЫ

4

Квартира

Площадь

Человек

Кв. плата

Кв. плата

5

№1

80м

4

172,0р

=B5*B$2+C5*D$2

6

№2

60м

3

129,0р

=B6*B$2+C6*D$2

7

№3

110м

5

235,0р

=B7*B$2+C7*D$2

8

№4

120м

8

264,0р

=B8*B$2+C8*D$2

9

ВСЕГО

370м

20

800,0р

=СУММ(D5:D8)

Рис. 5.0б

Очевидным недостатком нашего решения является его зависимость от изменения тарифов – при их пересмотре придется изменять множество формул. В виду этого, в электронных таблицах все нормативные данные выносят в отдельные области листа (или даже на отдельные листы), обычно, в верхней его части. В нашем случае такими данными являются цены на коммунальное услуги и газ. Разместим их в клетках В2 и D2 (рис. 5.0б), а в формулах вместо констант (2 руб. и 3 руб.) укажем ссылки на эти ячейки. Как и ранее, введем формулу только для первой квартиры (D5=B5*B2+C5*D2), скопировав затем ее вниз. Если поступить таким образом, мы обнаружим что в нижележащих клетках D6, D7 и т.п. получены выражения вида:

  D5=B5*B2+C5*D2   

D6=B6*B3+C6*D3,

D7=B7*B4+C6*D4 и т.д.

Они неверны (ошибочные значения подчеркнуты). Поскольку при перемещении вниз изменились также адреса, содержащие тарифы, то площадь квартиры №2 перемножается уже не на тариф коммунальных услуг из ячейки В2, а на содержимое пустой клетки В3. Аналогично с оплатой за газ. Это же относится и ко всем другим квартирам. Чтобы избежать нежелательного изменения адресов тарифов, они фиксируются в формулах (“замо­раживаются”) введением знака $ перед номером строки (D5=B5*B$2+C5* D$2). Копирование такой формулы вниз

A

B

B

1

Вклад:

1000

1000

2

ПРОСТЫЕ ПРОЦЕНТЫ

3

Норма

Прибыль

Прибыль

4

10%

100,00

=A4*$B$1

5

15%

150,00

=A5*$B$1

6

20%

200,00

=A6*$B$1

7

30%

300,00

=A7*$B$1

8

750,00

=СУММ(B4:B7)

Рис. 5.1

  D5=B5*B$2+C5*D$2   

D6=B6*B$2+C6*D$2,

D7=B7*B$2+C6*D$2 и т.д.

уже не повлечет изменения цифры 2 в адресах B$2 и D$2 (результаты изображены на рис. 5.0б).

Ранее нами уже обсуждался вопрос о возможности вставки строк в таблицу и влияние этого действия на поведение итоговых функции. В нашем случае вставка новых данных (новых квартир) между 4-ой и 5-ой и между 8-ой и 9-ой строками будет проигнорирована функцией СУММ(D5:D8). Обеспечить правильную реакцию функции на верхнюю вставку можно, включив заголовок таблицы в область суммирования, т.е. сделать D9=СУММ(D4:D8). Правильную реакцию на дополнение таблицы в нижней ее части можно реализовать (начиная с версии Excel-2000), если установить флажок Расширять форматы и формулы в списках (вкладка Правка). Однако, если (конечно, в сложных случаях) этот механизм не срабатывает, такое дополнение можно осуществлять оставляя пустой самую последнюю (в нашем случае девятую) строку между собственно данными и десятой строкой, где теперь будут вычисляться суммы. Тогда щелчок мышью на строке 9 с последующей вставкой новой строки опустит 9-ю и 10-ю строки ниже и изменит в последней формулу на D11= СУММ(D4:D10), что соответствует нашим целям.

Исключить необходимость присутствия пустой строки среди данных можно, если воспользоваться более сложной функцией суммирования (см. вставку после раздела 4.16 в главе “Функции рабочего листа”) вида D9= СУММ(D$4:ИНДЕКС(D:D;СТРОКА()–1)), а если вы хотите изъять заголовок таблицы из области суммирования, то

D9=СУММ(ИНДЕКС(D:D;5):ИНДЕКС(D:D;СТРОКА()–1)).

Теперь допускается вставка новых строк в произвольное место таблицы (например, выделив любую строку и нажав Ctrl+Плюс) не заботясь о правильности осуществления суммирования – оно будет корректным.

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

К оформлению таблицы. Для удобства восприятия информации данные снабжены символами, указывающими на единицы измерения. Так клетка В2 имеет пользовательский формат 0,0”р/метр”, клетка D2 – 0,0”р/чел”, клетки В5-В9 – 0”м”, клетки D5-D9 – 0,0”р”.

Пример 5.1. Расчеты по вкладам. Построить таблицу вычисления прибыли от инвестирования суммы, равной 1000 (клетка В1), на четыре года в некоторое производство или в банк. Предполагаемая, выплачиваемая ежегодно, норма прибыли должна составить 10%, 15%, 20% и 30% соответственно. Таблица в числовом и формульном (только для столбца В) видах приведена на рис. 5.1. Используемые табличные функции очевидны и реализуют выражение вида прибыль=вклад*норма. Способ исчисления дохода по вкладу здесь соответствует так называемым простым процентам.

Пример 5.2. Расчеты по вкладам (сложные проценты). Аналогичная задача, но предполагается, что инвестор не изымает прибыль, а реинвестирует ее снова в дело. Такой механизм начисления дохода определяется термином “сложные проценты” или “капитализа­ция дохода”. Здесь:

прибыль=норма*предыдущая_сумма_на_счету сумма=предыдущая_сумма_на_счету + прибыль.

Замечание. В этой задаче копирование формул возможно только со второго года (со строки 5). Именно с этого года формулы начинают повторяться.

Значение нарастающей суммы можно выяснить и с помощью име­ющейся в Excel финансовой функции вычисления будущего значения прибыли с изменяющейся процентной ставкой БЗРАСПИС()

сумма=БЗРАСПИС(вклад; нормы_предшествующих_лет).

Так, полное ее значение по завершении последнего четвертого года составит величину, равную выражению B7=БЗРАСПИС(B1;A4:A7). На рис. 5.2б изображена таблица с решением той же задачи (и, естественно, с теми же результатами), но с использованием указанной функции. Если не требуется знать значения накопленных вкладов в конце каждого года, можно, вообще, ограничиться только одной формулой из последней ячейки =БЗРАСПИС(B$1; A$4:A7). А если не нужна таблица, то и вообще =БЗРАСПИС(1000;{0,1;0,15;0,2;0,3}).

A

B

C

B

C

A

B

1

Вклад:

1000

1000

Вклад:

1000

2

СЛОЖНЫЕ ПРОЦЕНТЫ

3

Норма

Прибыль

Сумма

Прибыль

Сумма

Норма

Сумма

4

10%

100,0

1100,0

=A4*B1

=B1+B4

10%

=БЗРАСПИС(B$1;A$4:A4)

5

15%

165,0

1265,0

=A5*C4

=B5+C4

15%

=БЗРАСПИС(B$1;A$4:A5)

6

20%

253,0

1518,0

=A6*C5

=B6+C5

20%

=БЗРАСПИС(B$1;A$4:A6)

7

30%

455,4

1973,4

=A7*C6

=B7+C6

30%

=БЗРАСПИС(B$1;A$4:A7)

8

973,4

=СУММ(B4:B7)

Рис. 5.2а

Рис. 5.2б

Пример 5.3. Распределение фонда заработной платы. Создать таблицу распределения фонда заработной платы сотрудников подразделения в соответствии с устанавливаемым руководителем коэффициентом (индивидуальной оценкой качества и ответственности труда). Для определения зарплаты здесь сначала нужно найти “вес” единицы коэффициента в денежном исчислении (т.е. фонд_зарплаты/сумма_коэффициентов), а затем умножить его на индивидуальный коэффициент работника

зарплата_работника=фонд/сумма_коэффициентов*коэффициент_работника.

Отсюда следует, что прежде нужно найти сумму всех коэффициентов В8=СУММ(B4:B7). Тогда зарплата Петра будет вычисляться по формуле C4=B$1/B$8*B4. И, наконец, подсчитывается сумма всех установленных зарплат C8=СУММ(C4:C7). Как видим, она в точности равна фонду зарплаты (1000), т.е. выражения записаны верно. На рис. 5.3а таблица отображена в числовом и в формульном форматах.

A

B

C

B

C

1

Фонд:

1000

1000

2

РАСПРЕДЕЛЕНИЕ ЗАРПЛАТЫ

3

Имя

Коэфф.

Зарплата

Коэфф.

Зарплата

4

Петр

1

178,57

1

=B$1/B$8*B4

5

Иван

1,1

196,43

1,1

=B$1/B$8*B5

6

Сергей

2

357,14

2

=B$1/B$8*B6

7

Олег

1,5

267,86

1,5

=B$1/B$8*B7

8

ВСЕГО

5,6

1000,00

=СУММ(B4:B7)

=СУММ(C4:C7)

Рис.

5.3а

A

B

C

D

1

Фонд:

1000

2

РАСПРЕДЕЛЕНИЕ ЗАРПЛАТЫ

3

Имя

Прежняя

зарплата

Коэфф.

Новая

зарплата

4

Петр

100

1

173,21

5

Иван

130

1,1

210,54

6

Сергей

160

2

306,43

7

Олег

200

1,5

309,82

8

ВСЕГО

590

5,6

1000,00

Рис.

5.3б

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

A

B

C

D

1

Фонд:

1000

2

РАСПРЕДЕЛЕНИЕ ЗАРПЛАТЫ

3

Имя

Прежняя

зарплата

Коэфф.

Новая зарплата

4

Петр

100

1

=(B$1–B$8)/C$8*C4+B4

5

Иван

130

1,1

=(B$1–B$8)/C$8*C5+B5

6

Сергей

160

2

=(B$1–B$8)/C$8*C6+B6

7

Олег

200

1,5

=(B$1–B$8)/C$8*C7+B7

8

ВСЕГО

=СУММ(B4:B7)

=СУММ(C4:C7)

=СУММ(D4:D7)

Рис. 5.3в

=(фонд–сумма_прежних_зарплат)/сумма_коэффициентов*коэффициент_работника+прежняя_зарплата. Таким образом, здесь делится не весь фонд, а только та его часть, которая больше суммы всех прежних зарплат. Для Петра это D4=(B$1–B$8)/C$8 *C4+B4. Остальные формулы (рис. 5.3в) очевидны. Такое решение подразумевает, что выделенный фонд заработной платы не может быть менее суммы прежних зарплат (т.е. менее прежнего фонда оплаты труда). В случае, если он окажется меньше (у нас меньше 590), результаты будут бессмысленны. Если такое обстоятельство возможно, следует учесть его, например, следующим образом

D4=ЕСЛИ(B$8>=B$1;

(B$1–B$8)/C$8*C4+B4;B$1/C$8*C4).

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

A

B

C

D

E

В

C

D

E

1

ПРИЕМ НО

ВЫХ

АКЦИОН

ЕРОВ

ВЫХ

АКЦИОН

ЕРОВ

2

Сум

ма

Сум

ма

Сум

ма

Сум

ма

3

Акционеры

старых

акций

новых

акций

старых

акций

новых

акций

4

530т.р

100,00%

1230т.р

100,00%

=СУММ

(B5:B10

=СУММ

(C5:C10)

=СУММ

(D5:D10)

=СУММ

(E5:E10)

5

Акционер1

100т.р

18,87%

100т.р

8,13%

100т.р

=B5/B$4

100т.р

=D5/D$4

6

Акционер2

150т.р

28,30%

150т.р

12,20%

150т.р

=B6/B$4

150т.р

=D6/D$4

7

Акционер3

200т.р

37,74%

200т.р

16,26%

200т.р

=B7/B$4

200т.р

=D7/D$4

8

Акционер4

80т.р

15,09%

80т.р

6,50%

80т.р

=B8/B$4

80т.р

=D8/D$4

9

Новый акционер1

400т.р

32,52%

400т.р

=D9/D$4

10

Новый акционер2

300т.р

24,39%

Рис. 5.4

300т.р

=D10/D$4

Пример 5.4. Перераспределение собственности. Создать таблицу перераспределения собственности акционерного общества при приеме новых пайщиков. Положим, существующие (старые) акционеры имеют голоса (столбец С) в управлении предприятием и распределении прибыли в соответствии со стоимостью их пакетов акций (столбец В). Положим также, что фирма испытывает финансовые затруднения (или хочет расширяться) и ей нужны новые инвесторы, которые готовы внести необходимую для поддержания деятельности компании сумму в 700 тыс. рублей (по 400 и 300 тыс. руб. соответственно). Следует определить новые права каждого из новых и старых пайщиков. Строка 4 в таблице является суммой соответствующих столбцов (например, B4=СУММ(B5:B10)). Относительная значимость каждого акционера определяется по формуле вида C5=B5/B$4 для старого пакета акций и формуле E5=D5/D$4 для нового. Таким образом, новые акционеры получают по 32,52% и 24,39% собственности АО, а относительная собственность старых акционеров соответственно уменьшается. Правильность расчетов подтверждает получение 100% в клетке Е4.

A

B

C

C

1

ПРИЕМ НОВЫХ АКЦИОНЕРОВ

2

Акционеры

100%

100%

=СУММ(С3:C8)

3

Акционер1

20%

14%

=(1–(C$7+C$8))*B3

4

Акционер2

25%

18%

=(1–(C$7+C$8))*B4

5

Акционер3

20%

14%

=(1–(C$7+C$8))*B5

6

Акционер4

35%

25%

=(1–(C$7+C$8))*B6

7

Новый акционер1

20%

20%

8

Новый акционер2

10%

Рис. 5.5

10%

Пример 5.5. Перераспределение собственности (относительное). Схожая задача. Пусть абсолютная рыночная стоимость акций неизвестна, поскольку они не предлагаются на бирже, а покупная их цена с истечением времени (из-за инфляции и изменения состояния предприятия) ни о чем больше не говорит. Вообще, абсолютная стоимость акций до тех пор, пока они не предлагаются к продаже, и не имеет большого значения – важно знать, какая часть собственности кому принадлежит. Положим, новые акционеры вносят какую-то сумму или другие активы при условии, что им будет передано право собственности на 20% и 10% соответственно. Нам надо определить новые индивидуальные права старых собственников, при условии, что их собственность уменьшилась до величины 100%–(20%+10%)=70%. Здесь новые права (клетки С3, С4, С5, С6) старых собственников вычисляются по формуле вида:

новые_права_старых_акционеров=(1–права_новых_акционеров)*старые_права_акционера.

Так для первого акционера С3=(1–(C$7+C$8))*B3. С целью проверки правильности вычислений вверху таблицы все проценты просуммированы (С2=100%).

Пример 5.6. Взаиморасчеты акционеров. Еще одна простая задача из “жизни акционеров”. Положим, для деятельности АО потребовалось срочно внести некоторую сумму (1200 т. руб.), которую и внесли те из акционеров, которые смогли быстро изыскать средства (колонка Внесено ранее). Нам нужно осуществить последующие перерасчеты между акционерами таким образом, чтобы все члены АО внесли суммы пропорциональные частям их собственности (колонка Внесено потом). С этой целью выполним следующие вычисления для каждого из акционеров

=всего_внесено_ранее * его_часть_собственности ­– им_внесено_ранее.

A

B

C

D

E

D

E

1

ВЗН

ОСЫ

2

Ф.И.О.

Часть соб-

ственности

Внесено

ранее

Внесено

потом

%

взноса

Внесено

потом

%

взноса

3

Акционер1

25%

500

–200

25%

=C$8*B3–C3

=(C3+D3)/C$8

4

Акционер2

30%

100

260

30%

=C$8*B4–C4

=(C4+D4)/C$8

5

Акционер3

20%

240

20%

=C$8*B5–C5

=(C5+D5)/C$8

6

Акционер4

10%

120

10%

=C$8*B6–C6

=(C6+D6)/C$8

7

Акционер5

15%

600

–420

15%

=C$8*B7–C7

=(C7+D7)/C$8

8

ВСЕГО

100%

1200

0

100%

Рис. 5.6

=СУММ(D3:D7)

=СУММ(E3:E7)

Или в виде формулы для первого акционера: D3=C$8*B3–C3.

A

B

C

D

E

F

G

1

Коэф.

оплаты:

воскр.:

2

суббота:

1,5

2

ТАБЕЛЬ И ЗАРПЛАТА

3

Дата

День

недели

Петр

Иван

Олег

Всего

часов

Всего с

коэфф.

4

10р/ч

8р/ч

6р/ч

5

1.окт

Вт

6

2.окт

Ср

18ч

18ч

7

3.окт

Чт

8

4.окт

Пт

19ч

19ч

9

5.окт

Сб

10ч

12ч

18ч

10

6.окт

Вс

22ч

44ч

11

7.окт

Пн

14ч

14ч

12

8.окт

Вт

16ч

16ч

35

Всего часов:

41ч

45ч

24ч

110ч

1 38ч

36

Часов с коэф.:

51ч

55ч

32ч

138ч

37

Зарплата:

510р

440р

192р

1142р

Рис.

5.7а

дол

жно с

овпасть

В таблице некоторые значения получились со знаком минус (т.е. акционер, ранее внесший деньги, получит часть их обратно), другие – со знаком плюс (акционер заплатит деньги). Видим, что сумма всех последующих взносов (D8=СУММ(D3:D7)) равна нулю, т.е. наблюдается баланс выплат. Еще раз убедиться в правильности вычислений можно, определив процент окончательных взносов (столбец Е)

=(внесено_сразу+внесено_потом)/внесено_всего.

Или для первого акционера: E3=(C3+D3)/C$8. Видим, что относительные размеры окончательных выплат совпали с размерами относительной собственности каждого из акционеров.

Пример 5.7. Ведение табельной ведомости. Создать таблицу табельной ведомости (документа, фиксирующего число отработанных часов) работников подразделения с расчетом их ежедневной и месячной заработной платы. Считаем, что здесь принята почасовая оплата труда, а рабочий график индивидуальный. Тарифная часовая ставка оплаты установлена своя для каждого работника (ячейки С4, D4, E4). Кроме того, установлена повышенная оплата труда в субботние (с коэффициентом 1,5) и воскресные (с коэффициентом 2) дни. В будний день коэффициент считается равным 1. Пусть, нужно создать таблицу за октябрь месяц. Для быстрого ввода дат месяца воспользуемся механизмом автозаполнения. Внесем в клетку А5 значение 1.окт, а затем мышью скопируем его вниз до конца месяца. Excel расставит нужные последовательные даты месяца автоматически. В столбец День недели введем выражение,

формирующее название дня недели B5= ВЫБОР(ДЕНЬНЕД(A5;2);"Пн";"Вт";"Ср";"Чт";"Пт";"Сб";"Вс"), где номер дня недели (ДЕНЬНЕД(A5;2)) замещается на его имя Пн, Вт и т.д.

В столбце Всего часов определяется сумма астрономических рабочих часов сотрудника (F5=СУММ(C5:E5)) за день, а в столбце Всего с коэффициентом – число часов с учетом увеличивающих коэффициентов за работу в выходные дни (G5=ЕСЛИ(B5="Вс";D$1;ЕСЛИ(B5="Сб";F$1;1))*F5). Таким образом, увеличение оплаты за работу в выходные дни трансформируется в увеличение отработанных часов при их обычной оплате. В итоговой строке 35 введены очевидные формулы суммирования отработанных часов вида С35=СУММ(C5:C34).

В строке 36 – находятся эквивалентные рабочие часы каждого из сотрудников в зависимости от тарифной ставки и работы в выходные

часы_с_коэфф.=общее_число_часов+

воскресных_часов*разность_между_к-том_воскресенья_и_будним_днем+

субботних_часов*разность_между_к-том_субботы_и_будним_днем.

Так, Петром отработано 45 час, а с учетом выходных: 41час+9час(2–1)+2час(1,5–1)=51час.

Или в виде формулы:

C36=C35+СУММЕСЛИ($B5:$B34;"Вс";C5:C34)*($D1–1)+СУММЕСЛИ($B5:$B34;"Сб";C5:C34)*($F1–1).

В строке 37 вычисляется заработок

зарплата=тарифная_ставка * часы_с_коэффициентом.

Отсюда его зарплата (55час*10руб/час=510руб): C37=C$4*C6.

Все Часы с коэфф. для всех работников просуммированы в клетке G36. Видим, что эта сумма (138 час.) совпала с вертикальной суммой, полученной в G35, что показывает правильность расчета эквивалентных часов. Вообще, если имеется какая-либо возможность альтернативного вычисления тех же самых величин, следует это сделать чтобы проверить правильность построения таблицы.

A

B

C

D

E

F

G

1

Коэф. оплаты:

Воскр.:

2

Суббота:

1,5

2

ТАБЕЛЬ И ЗАРПЛАТА

3

Дата

День

недели

Петр

Олег

Всего

часов

Всего с

коэфф.

4

10р/ч

8

6р/ч

5

1.окт

=ВЫБОР(ДЕНЬНЕД

(A5;2);"Пн";"Вт";"Ср";"Чт";"Пт";"Сб";"Вс")

10ч

=СУММ

(C5:E5)

=ЕСЛИ(B5="Вс";

D$1;ЕСЛИ(B5=

"Сб";F$1;1))*F5

12

8.окт

=ВЫБОР(ДЕНЬНЕД

(A12;2);"Пн";"Вт";"Ср";"Чт";"Пт";"Сб";"Вс")

=СУММ

(C12:E12)

=ЕСЛИ(B12="Вс";

D$1;ЕСЛИ(B12=

"Сб";F$1;1))*F12

35

Всего часов:

=СУММ(C5:C34)

=СУММ(E5:E34)

=СУММ

(F5:F34)

=СУММ(G5:G34)

36

Часов с коэфф.:

=C35+СУММЕСЛИ($B5:

$B34;"Вс";C5:C34)*($D1-1)

+СУММЕСЛИ($B5:$B34;

Сб”;C5:C34)*($F1-1)

=E35+СУММЕСЛИ($B5:

:$B34;"Вс";E5:E34)*($D1-1)

+СУММЕСЛИ($B5:$B34;

"Сб";E5:E34)*($F1-1)

=СУММ(C36:E36)

37

Зарплата:

=C36*C$4

=E36*E$4

=СУММ(

C37:E37)

Рис. 5.7б

К оформлению. Для ячеек С4:Е4 установлен пользовательский формат вида 0,0"р/ч", а для колонок F и G – формат [>0]#"ч";#. На рисунке табель показан по текущий день месяца (например, по 8 октября). Остальные пустые пока строки скрыты, с тем, чтобы не отвлекать внимание пользователя.

П ример 5.8. Расчеты с вкладчиками банка. Построить таблицу вычисления годовой премии вкладчику банка. Здесь возможно несколько подходов:

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

2. Премия исчисляется на основе значений остатков (S1, S2, S3, S4) на счету в каждом из четырех кварталов года. Здесь мы исходим из предположения, что в течение всего квартала на счету находилась именно эта величина. Это, конечно, не так, но лучше чем предыдущий подход. Тогда средний годовой остаток вычисляется как сумма всех этих остатков, деленная на число кварталов (S1+S2+S3+S4)/4. На рис. 5.8а искомое значение пропорционально сумме площадей прямоугольников с высотой Si. (закрашены), которую легко вычислить. Назовем поэтому этот метод методом прямоугольников. Ясно, что он имеет значительные погрешности, которые будут уменьшаться с уменьшением элементарных периодов расчета, например, до двух или одного месяцев и меньше.

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

средний_вклад_за_год=(ср._остаток_1_кв.+ср._остаток_2кв+ср._остаток 3кв+ср._остаток 4кв)/4

или [(S0+S1)/2+(S1+S2)/2+(S2+S3)/2+(S3+S4)/2]/4=[S0+S4+2(S1+S2+S3)]/8.

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

G5=СУММ(C5:F5)/4*D$1, H5=(B5+F5+2*(C5+D5+E5))/8*D$1.

A

B

C

D

E

F

G

H

G

H

1

Проце

нт прем

ии

10%

2

СЧЕТА КЛИЕНТОВ

3

Номер

Начало

Остатки по кварталам

Премия

Премия

Премия

Премия

4

счета

года

I

II

III

IV

(прямоуг.)

(трапеции)

(прямоуг.)

(трапеции)

5

Счет1

0

0

40

120

200

9,0

6,50

=СУММ(C5:F5)/4*D$1

=(B5+F5+2*(C5+D5+E5))/8*D$1

6

Счет2

60

80

40

100

0

5,5

6,25

=СУММ(C6:F6)/4*D$1

=(B6+F6+2*(C6+D6+E6))/8*D$1

7

Счет3

350

300

200

150

100

18,8

21,88

=СУММ(C7:F7)/4*D$1

=(B7+F7+2*(C7+D7+E7))/8*D$1

8

Сумма

410

380

280

370

300

33,3

34,63

=СУММ(G7:G7)

=СУММ(H7:H7)

Рис. 5.8б

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

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

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

перекачка отстой фильтрация выдержка розлив

К1 К2 К3 К4 К5

Рис. 5.9а

Пвх

На рис. 5.9а, например, изображена типовая технологическая цепочка обработки виноматериалов. Относительные нормативные потери на каждом из этапов обработки известны из опытных данных и заданы директивно. Обозначим (рис. 5.9б): Пвх – количество продукта на входе всего процесса или его отдельного этапа, Пвых – количество продукта на выходе, К – коэффициент потерь на этапе обработки, – объем потерь на этапе обработки в абсолютном исчислении. Отсюда можем записать рабочие формулы для каждого этапаПвых=Пвх–, где КПвх

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

Прямая задача. Заданы: исходное количество продукта (сырья) на входе процесса к началу обработки Пвх, количество этапов обработки N и коэффициенты нормативных потерь на каждом i-ом этапе – Кi от поступившего на данный вид обработки объема продукта. Вычислить абсолютные величины потерь на каждом этапе обработки i и итоговый выход продукта Пвых.

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

Рабочие формулы для каждого этапа обратной задачи: ПвыхК/(1–К) и Пвх=Пвых+

На основании простых рассуждений можно записать итоговые формулы расчета конечного/начального (Пвых/Пвх) продукта для прямой/обрат­ной задачи для всего процесса в целом

Пвых=Пвх(1–К1)(1–К2) ... (1–КN), Пвх=Пвых/((1–К1) (1–К2) ... (1–КN)).

Решение задачи прямого продуктового расчета приведено в верхней части рис. 5.9в, а формулы рабочего листа на рис. 5.9г. Исходное количество сырья для наглядности взято равным 100. При трехэтапной обработке с относительными потерями в 0,05, 0,11 и 0,02 итоговый выход продукта составит 82,859.

Решение обратной задачи изображено на тех же рисунках в их нижней половине. В качестве выхода технологического процесса взято значение, ранее найденное в прямой задаче (82,859). Как видим, в результате расчетов для обратной задачи получено число 100, т.е. вычисления выполнены верно.

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

=БЗРАСПИС(C2;{–0,05;–0,11;–0,02}) =82,859 или (введя выражение как массив) {=БЗРАСПИС(C2;–B4:B6)} =82,859.

Пример 5.10. Продуктовый расчет с дополнительным сырьем.

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

Для первого этапа в таблице сформируем выражения:

объем_потерь=коэффициент_потерь*(исходный_объем+дополнительный_объем).

Для любого следующего этапа

объем_на_выходе=исходный_объем+дополнительное_сырье–объем_потерь.

Или в форме клеточных функций: D4=C4*(C2+C2*B4)=C4*C2*(1+B4), E4=C2+C2*B4–D4=C2*(1+B4)–D4.

A

B

C

D

1

ПРОДУКТОВЫЙ РАСЧЕТ (прямая задача)

2

Объем сырья:

100

3

Этап

Коэфф.

потерь

Объем

потерь

Объем продукта

на выходе

4

1

0,05

5,000

95,000

5

2

0,11

10,450

84,550

6

3

0,02

1,691

82,859

7

8

ПРОДУКТОВЫЙ РАСЧЕТ (обратная задача)

9

Объем продукта:

82,859

10

Этап

Коэфф.

потерь

Объем

потерь

Объем продукта

на входе

11

3

0,02

1,691

84,550

12

2

0,11

10,450

95,000

13

1

0,05

5,000

100,000

A

B

C

D

1

ПРОДУКТОВЫЙ РАСЧЕТ (прямая задача)

2

Объем сырья:

100

3

Этап

Коэфф.

потерь

Объем

потерь

Объем продукта

на выходе

4

1

0,05

=B4*C2

=C2–C4

5

2

0,11

=B5*D4

=D4–C5

6

3

0,02

=B6*D5

=D5–C6

7

8

ПРОДУКТОВЫЙ РАСЧЕТ (обратная задача)

9

Объем продукта:

82,859

10

Этап

Коэфф.

потерь

Объем

потерь

Объем продукта

на входе

11

3

0,02

=C9*B11/(1–B11)

=C9+C11

12

2

0,11

=D11*B12/(1–B12)

=D11+C12

13

1

0,05

=D12*B13/(1–B13)

=D12+C13


Рис. 5.9в Рис. 5.9г

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

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

A

B

C

D

Е

D

Е

1

ПРОДУКТОВЫЙ РАСЧЕТ (прямая задача)

2

Объем сырья:

100

3

Этап

Доп.

сырье

Коэф.

потерь

Объем

потерь

Объем на

выходе

Объем

потерь

Объем на

выходе

4

1

1%

0,05

5,050

95,950

=C4*C2*(1+B4)

=C2*(1+B4)–D4

5

2

30%

0,11

13,721

111,014

=C5*E4*(1+B5)

=E4*(1+B5)–D5

6

3

20%

0,02

2,664

130,553

Рис. 5.10

=C6*E5*(1+B6)

=E5*(1+B6)–D6

A

B

C

D

E

F

G

H

1

Работники

Оценки

Всего КТУ

КТУ

КТУ1

2

Петр

0,90

0,70

0,70

0,90

3,20

0,277

0,98

3

Иван

0,60

0,55

0,60

0,40

2,15

0,186

0,66

4

Олег

0,80

0,80

0,55

0,80

2,95

0,255

0,91

5

Вера

0,90

0,90

0,45

1,00

3,25

0,281

1,00

6

Сумма

11,55

Рис.

5.11

Пример 5.11. Определение коэффициента трудового участия (КТУ). На таком производстве, где невозможно оценить индивидуальное количество труда, принято по итогам месяца/недели оценивать его при помощи КТУ, которое в дальнейшем влияет на оплату. Чтобы исключить необъективность оценок, все члены бригады анонимно заполняет анкету, где выставляет КТУ (например, в диапазоне от 0 до 1) для каждого из своих коллег. Необходимо как-то обработать эти данные и сформировать обобщенные значения КТУ. На рисунке в колонках В:Е зафиксированы оценки для каждого из четырех членов бригады, в F они просуммированы, в G – вычисляется собственно КТУ

КТУ_работника=Всего_КТУ_работника/Сумма_КТУ_бригады.

Эти значения (в таблице колонка G) уже можно использовать для оценки результатов труда, однако более удобно, если они находятся в том же диапазоне, что и исходные оценки, т.е. в диапазоне от 0 до 1. Назовем его КТУ1 (столбец Н)

КТУ1_работника=КТУ_работника/МАКС(КТУ_всех_работников).

Рабочие формулы для первого работника приведены ниже

F2=СУММ(B2:E2), F6=СУММ(F2:F5), G2=F2/F$6, H2=G2/МАКС(G$2:G$5).

A

B

C

D

E

F

1

Весовые коэффициенты

2

Упаковка

Цвет

Консистенция

Вкус

3

1

0,7

1,5

2

4

ЭКСПЕРТНЫЕ ОЦЕНКИ

5

Оценки

Упаковка

Цвет

Консистенция

Вкус

Итог

6

Эксперт1

3

5

4

8

7

Эксперт2

4

7

5

7

8

Эксперт3

5

8

5

9

9

Эксперт4

6

7

6

6

10

Всего

4,5

4,9

7,5

15

31,9

Рис.

5.12

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

B10=(СУММ(B6:B9)–МАКС(B6:B9)–МИН(B6:B9))*B3/2, C10=(СУММ(C6:C9)–МАКС(C6:C9)–МИН(C6:C9))*C3/2,

D10=(СУММ(D6:D9)–МАКС(D6:D9)–МИН(D6:D9))*D3/2, E10=(СУММ(E6:E9)–МАКС(E6:E9)–МИН(E6:E9))*E3/2.

Их сумма и даст интегральную оценку качества данного продукта, подвергшегося экспертизе (у нас 31,9 балла) F10=СУММ(B10:E10), на основании которой далее можно сравнивать между собой аналогичные продукты и принять решение об их дальнейшей коммерческой судьбе.

К оформлению таблицы. Здесь мы выделим жирным курсивным шрифтом для каждого из параметров оценки, не принимаемые в расчет (т.е. максимальные и минимальные значения). Для этого придется прибегнуть к условному форматированию клеток с оценками следующего вида (например для В6):

Условие 1 формула  =ИЛИ(B6=МАКС(B$6:B$9);B6=МИН(B$6:B$9)) 

Пример 5.13. Расчет сдельной зарплаты. Построить таблицу вычисления сдельной (т.е. пропорциональной количеству произведенной продукции) зарплаты, а также налога и суммы на руки.

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

зарплата=обработано_деталей*стоимость_работы – деталей_брака * стоимость_детали.

Таким образом, Зарплата Ивана будет определяться формулой D6=B6* C$2–C6*C$3. Полагаем, что налог исчисляется в зависимости от зарплаты: если она выше 5000 – налог составляет 20%, если нет – 13%.

Иными словами сумма_налога=зарплата*ЕСЛИ(зарплата >5000, то 13%, иначе 20%) или 

E6=D6*ЕСЛИ(D6>=5000;F$1;C$1). Сумма на руки – F6=D6–E6. Итог по вертикали F9=СУММ(F6:F8).

A

B

C

D

E

F

1

Налог до:

5000р

13%

Налог от:

5000р

20%

2

Стоимость

работы:

80

3

Стоимость

детали:

200

4

РАСЧЕТ ЗАРПЛАТЫ

5

Работник

Обработано

деталей

Деталей

брака

Зарплата

Сумма

налога

Сумма

на руки

6

Петр

75

2

5600

1120,0

4480,0

7

Иван

12

960

124,8

835,2

8

Олег

62

4

4160

540,8

3619,2

9

ВСЕГО

149

6

10720

2144,0

8934,4

Рис.

5.13а

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

Е6=D6*ЕСЛИ(D6<=0;0;ЕСЛИ(D6>=5000;F$1;C$1)).

Замечание к условию задачи. Следует отметить, что с 2001г. в России с физических лиц прогрессивный подоходный налог (когда процент налога увеличивается с увеличением доходов) заменен на фиксированный в 13% независимо от доходов и исчисление налогов сильно упростилась. Однако, автор оставил этот и другие такого рода примеры в книге по двум причинам: с юридических лиц налоги берутся аналогичным образом (но по регрессивной шкале); сам механизм исчисления налогов имеет хождение не только для налогов и не только в денежном обращении и поэтому представляет самостоятельный интерес.

C

D

E

F

1

13%

Налог от:

5000р

20%

2

80

3

200

5

Деталей брака

Зарплата

Сумма налога

Сумма на руки

6

2

=B6*C$2–C6*C$3

=D6*ЕСЛИ(D6<=0;0;ЕСЛИ(D6>=5000;F$1;C$1))

=D6–E6

7

=B7*C$2–C7*C$3

=D7*ЕСЛИ(D7<=0;0;ЕСЛИ(D7>=5000; F$1;C$1))

=D7–E7

8

4

=B8*C$2–C8*C$3

=D8*ЕСЛИ(D8<=0;0;ЕСЛИ(D8>=5000;F$1;C$1))

=D8–E8

9

=СУММ(C6:C8)

=СУММ(D6:D8)

=СУММ(E6:E8)

=СУММ(F6:F8)

Рис. 5.13б

К оформлению. Для удобства последующего анализа данных сделаем так, чтобы работник, имеющий максимальный заработок, был выделен красным цветом, а минимальный – желтым. Для этого понадобится прибегнуть к условному форматированию клеток F6, F7, F8 вида:

Условие 1 значение равно =МАКС(F$6:F$8) – красный фон

Условие 2 значение равно =МИН(F$6:F$8) – желтый фон

A

B

C

D

E

F

1

Тарифная сетка

2

Разряд:

1

2

3

4

5

3

Тариф:

30

40

50

70

90

4

Премия:

100

120

135

150

160

5

З А Р П Л А Т А

6

Работник

Дней

Разряд

Зарплата

Премия

Начислено

7

Петр

20

2

800

120

920

8

Иван

10

3

500

135

635

9

Олег

15

5

1350

160

1510

10

ВСЕГО

45

2650

415

3065

Рис.

5.14а

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

зарплата=дней*тариф_по_разряду.

Для розыска разрядного тарифа нам понадобится функция горизонтального поиска ГПР(). Например, для Петра должна быть использована формула D7= ГПР(C7;B$2:F$4;2;0)*B7. Премия также зависит от разряда E7=ГПР(C7;B$2 :F$4;3;0). Всего работнику будет начислена сумма F7=E7+D7. В данном примере расчет начисленной суммы только для наглядности был разложен на отдельные компоненты. Ничто не мешает нам, при необходимости, соединить все формулы в одну, уменьшив размер таблицы F7=ГПР(C7;B$2:F$4;2;0)*B7+ ГПР(C7; B$2:F$4;3;0).

A

B

C

D

E

F

1

Тарифная сетка

2

Разряд:

1

2

3

4

5

3

Тариф:

30

40

50

70

90

4

Премия:

100

120

135

150

160

5

З А Р П Л А Т А

6

Работник

Дней

Разряд

Зарплата

Премия

Начислено

7

Петр

21

2

=ГПР(C7;B$2:F$4;2;0)*B7

=ГПР(C7;B$2:F$4;3;0)

=E7+D7

8

Иван

25

4

=ГПР(C8;B$2:F$4;2;0)*B8

=ГПР(C8;B$2:F$4;3;0)

=E8+D8

9

Олег

18

5

=ГПР(C9;B$2:F$4;2;0)*B9

=ГПР(C8;B$2:F$4;3;0)

=

Рис. 5.14б

E9+D9

10

ВСЕГО

=СУММ(B7:B9)

=СУММ(D7:D9)

=СУММ(E7:E9)

=СУММ(F7:F9)

Пример 5.15. Расчет зарплаты с учетом квалификации работника (должностного класса) и коэффициента (КТУ) трудового участия. Здесь класс и КТУ одинаковым образом влияют на заработок, но только класс присваивается “навсегда” (до пересмотра), а КТУ изменяется в зависимости от качества исполнения конкретной работы.

Положим, заказчик оценил всю работу в 10000 руб. и выдал аванс в размере 4000 руб., который и был распределен между людьми произвольным образом (кто сколько попросил). Наша задача состоит в том, чтобы по завершении работы распределить остальную часть заработанного (6000 руб.).

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

итого_КТУ=1*1,4+2*1,2+3*1=3,7 или D9=СУММПРОИЗВ(C6:C8;D6:D8).

A

B

C

D

E

F

G

1

Всего:

10000

Аванс:

4000

Остаток:

6000

2

Надбавки

за класс

класс:

1

2

3

3

коэфф.:

1,4

1,2

1

4

РАСПРЕДЕЛЕНИЕ ЗАРПЛАТЫ

5

Имя

Класс

Коэфф. за класс

КТУ

Получен аванс

Заработано

Выдать остаток

6

Петр

1

1,4

1

1000

3784

2784

7

Иван

2

1,2

1,5

800

4865

4065

8

Олег

3

1

0,5

2200

1351

–849

9

ИТОГО

3,7

4000

10000

6

Рис. 5.15а

000

C

D

E

F

G

5

Коэфф. за класс

КТУ

Получен аванс

Зара ботано

Выдать остаток

6

=ГПР(B6;C$2:E$3;2;0)

1

100

=B$1/D$9*C6*D6

=F6–E6

7

=ГПР(B7;C$2:E$3;2;0)

1,5

80

=B$1/D$9*C7*D7

=F7–E7

8

=ГПР(B8;C$2:E$3;2;0)

0,5

220

=B$1/D$9*C8*D8

=F8–E8

9

=СУММПРОИЗВ

(C6:C8;D6:D8)

=СУММ(E6:E8)

=СУММ(F6:F8)

=

Рис. 5.15б

СУММ(G6:G8)

Теперь можно определить причитающуюся рабочему сумму

заработано=всего*коэфф._за_класс*КТУ/итого_КТУ для первого рабочего это F6=$B$1*C6*D6/D$9.

Поскольку работник уже получил аванс, ему предстоит выдать (а может быть и взыскать с него, если аванс не был “отработан”) сумму выдать_остаток=заработано–получен_аванс или G6=F6–E6.

Правильность наших расчетов подтверждает совпадение значений F9=B1 и G9=F1.

Пример 5.16. Распределение премии. Положим, отделу выделена недельная премия-помощь в размере 800 руб. Ее нужно поделить между сотрудниками следующим образом – малооплачиваемым (считаем таковыми тех, у кого недельный заработок менее пяти минимальных зарплат) делается доплата до 5 минимальных зарплат, а остаток делится между всеми пропорционально зарплате. Сформируем необходимые выражения.

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

помощь_максимальная=если(зарплата<5*мин._зарплата, то 5*мин._зарплата – зарплата, иначе 0).

A

B

C

D

E

1

Премия:

800

Мин.зарп:

100

2

РАСПРЕДЕЛЕНИЕ ПРЕМИИ

3

Имя

Зарп-

лата

Помощь

Итого

4

максим.

фактич.

5

Петр

400

100

100

120

6

Ольга

1200

0

0

60

7

Иван

300

200

200

215

8

Олег

100

400

400

405

9

Всего

2000

700

700

800

Рис.

5.16а

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

помощь_фактическая=если(

общая_максимальная_помощь < премии,

то помощь_максимальная, иначе помощь_

максимальная*премия/общая_максимальная_помощь).

2. Остаток премии (если есть) делится уже между всеми работниками (включая и малооплачиваемых) пропорционально их зарплате

итого=если(общая_фактическая_помощь<премии, то

(помощь – общая_фактическая_помощь)/

общая_зарплата*зарплата) + помощь_фактическая.

Правильность расчетов подтверждает то, что B1=E9.

A

B

C

D

E

A

B

1

Дата

Цена $

2

04.янв

21,1р

3

05.янв

22,2р

4

06.янв

22,4р

5

07.янв

22,6р

6

08.янв

22,3р

7

11.янв

22,6р

8

12.янв

22,8р

Рис. 5.17а. Лист Курс

1

Премия:

800

Мин.зарп:

100

2

РАСПРЕДЕЛЕНИЕ ПРЕМИИ

3

Имя

Зарплата

Помощь

Итого

4

максим.

фактич.

5

Петр

400

=ЕСЛИ(B5<5*

E$1;5*E$1–B5;0)

=ЕСЛИ(C$9<=B$1;

C5;C5*B$1/$C$9)

=ЕСЛИ(D$9<B$1;

(B$1–D$9)/B$9*B5)+D5

. . .

8

Олег

100

=ЕСЛИ(B8<5*

E$1;5*E$1–B8;0)

=ЕСЛИ(C$9<=B$1;

C8;C8*B$1/C$9)

=ЕСЛИ(D$9<B$1;

(B$1–D$9)/B$9*B8)+D8

9

Всего

=СУММ(B5:B8)

=СУММ(C5:C8)

=СУММ(D5:D8)

=СУММ(E5:E8)

Рис. 5.16б

A

B

C

D

E

F

1

Сегодня:

13.янв

2

Товар

закуплен

Цена

закупки

Дата и курс

конвертиров.

Цена

закупки

Цена

сегодня

3

04.янв

100$

04.янв

21,1р

2 110р

2 280р

4

06.янв

50$

06.янв

22,4р

1 120р

1 140р

5

09.янв

80$

08.янв

22,3р

1 784р

1 824р

6

10.янв

30$

08.янв

22,3р

669р

684р

7

11.янв

70$

11.янв

22,6р

1 582р

1 596р

8

12.янв

100$

12.янв

22,8р

2 280р

2 280р

Рис. 5.17б. Лист Товар

B

C

D

E

F

1

=СЕГОДНЯ()

2

Цена

закупки

Дата и курс

конвертирования

Цена

закупки

Цена

сегодня

3

100$

=ВПР(A3;Курс!

A$2:B$240;1;1)

=ВПР(A3;Курс!

A$2:B$240;2;1)

=D3*B3

=ВПР(B$1;Курс! A$2:B$240;2;1)*B3

4

50$

=ВПР(A4;Курс!

A$2:B$240;1;1)

=ВПР(A4;Курс!

A$2:B$240;2;1)

=D4*B4

=ВПР(B$1;Курс! A$2:B$240;2;1)*B4

5

80$

=ВПР(A5;Курс!

A$2:B$240;1;1)

=ВПР(A5;Курс!

A$2:B$240;2;1)

=D5*B5

=ВПР(B$1;Курс! A$2:B$240;2;1)*B5

Рис. 5.17в.

Лист Товар

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

A

B

C

D

1

Дата

Курс

$

Курс

DM

Курс

2

04.янв

21,1р

16,9р

30,4р

3

05.янв

22,2р

17,8р

32,0р

4

06.янв

22,4р

17,9р

32,2р

5

07.янв

22,6р

18,1р

32,6р

6

08.янв

22,3р

17,8р

32,0р

7

11.янв

22,6р

18,1р

32,6р

8

12.янв

22,8р

18,2р

32,8р

Рис. 5.18а. Лист Курс

На листе Товар в В1 предъявляется текущая дата (функция СЕГОДНЯ()), а также содержатся сведения о дате закупки товара и его закупочной цене (столбцы А и В). В столбце Е вычисляется рублевый эквивалент этой цены, но прежде формируются два столбца, нужные только для сведения оператора. В столбце С предъявляется ближайшая, найденная в листе Курс, дата (С3=ВПР(A3;Курс!A$2:B$240;1;1)), по курсу которой (столбец D) и производится конвертирование долларов в рубли. Делается это ради того, что бы пользователь мог контролировать правильность конвертирования. Так, например, если обнаруживается что дата конвертирования сильно отстает от даты закупки, можно предположить что курсовая таблица содержит не все данные и ее следует просмотреть и, возможно, дополнить. В столбце D показывается найденный курс доллара, по которому будет осуществляться конвертирование цены товара D3=ВПР(A3;Курс!A$2:B$240; 2;1). На основании его и находится закупочная цена товара в рублях E3=D3*B3. В столбце F определяется рублевый эквивалент цены товара “на сегодня” F3=ВПР(B$1; Курс!A$2 :B$240;2;1)*B3. В обоих выражениях используется функция ВПР() с четвертым аргументом равным 1, т.е. поиск даты в таблице курса доллара будет не точным, а интервальным, поскольку некоторых дат там нет (валютная биржа не работает в выходные дни – у нас 9 и 10 января) и стоимость доллара тогда берется равной курсу ближайшей предыдущей даты (8 января), для которой она имеется. В качестве области поиска определена область листа Курс, содержащая два столбца А и В и число строк, равное числу рабочих дней в году (около 240).

Пример 5.18. Конвертирование в различные виды валют. Похожий пример, но покупка товара у зарубежных поставщиков может быть осуществлена не только в долларах, но также в немецких марках и в английских фунтах стерлингов, для чего в таблицу курсов валют включены соответствующие столбцы (на рисунке показана только часть листа Курс). В листе Товар введен столбец Вид валюты, где может быть задан один из символов Д, М, Ф, обозначающих доллар, марку и фунт. В колонку С вводится цена в соответствующей валюте. Рублевая цена товара находится так же, как и ранее, но номер столбца, из которого извлекается курс, зависит от символа валюты, который ищется в строке “ДМФ” с помощью функции ПОИСК(B3; "ДМФ"). Если B3 равно Д, М или Ф, результатом применения функции будет число 1, 2 или 3. Поскольку курсы этих валют находятся соответственно во второй, третьей и четвертой колонках листа Курс, для поиска в курсовой таблице к результату нужно прибавить единицу (ПОИСК(…)+1). Тогда справедливо

D3=ВПР(A3;Курс!A$2:D$241;ПОИСК(СТРОЧН(B3);"ДМФ")+1;1)*C3.

Здесь к клетке D3 применена функция преобразования строчных букв в прописные СТРОЧН(). Это позволит вводить в колонку Вид валюты не только буквы Д, М, Ф, но и д, м, ф. Ввод любого другого символа (как, например, в строке 8) порождает сообщение об ошибке вида #ЗНАЧ!, которое пользователь легко обнаружит. Аналогично находится Цена сегодня.

E3=ВПР($B$1;Курс!A$2:D$241;ПОИСК(СТРОЧН(B3);"ДМФ")+1;1)*C3.

A

B

C

D

E

1

Сегодня:

05.фев

2

Товар

закуплен

Вид

валюты

Цена

закупки

Цена

сегодня

3

04.янв

д

100

2 110р

2 280р

4

06.янв

ф

50

1 610р

1 640р

5

09.янв

ф

80

2 560р

2 624р

6

10.янв

д

30

669р

684р

7

11.янв

м

70

1 267р

1 274р

8

12.янв

х

10

#ЗНАЧ!

#ЗНАЧ!

Рис. 5.18б. Лист Товар

К оформлению. Существует способ гарантированно правильного ввода стабильных данных – это использование механизма Проверка из меню Данные. Условие проверки должно быть таким, как показано на рис. 5.18в (источником данных является список с буквами Д, Ф, М). А если установить в окне Проверка флаг Список допустимых значений, то возможен не только ввод “руками”, но выбор данных из списка-меню.

Пример 5.19. Турнирная таблица. Создать таблицу определения призеров по результатам чемпиона­та. Положим, в играх участвуют три команды. Для каждой игры фиксируется ее счет – число забитых и пропущенных голов (колонки “з” и “п”). В колонке “о” вычисляется число очков, полученных по результатам игры. Считается, что проигрыш приносит 0 очков, ничья – одно, выигрыш – два. Если игры еще не было, клетка остается пустой ("").

Ф ормулы для вычисления очков по игре приведены ниже

D4=ЕСЛИ(B4>C4;2;ЕСЛИ(ЕПУСТО(B4);"";ЕСЛИ(B4=C4;1;0))),

G4=ЕСЛИ(E4>F4;2;ЕСЛИ(ЕПУСТО(E4);"";ЕСЛИ(E4=F4;1;0))),

J4=ЕСЛИ(H4>I4;2;ЕСЛИ(ЕПУСТО(H4);"";ЕСЛИ(H4=I4;1;0))),

M4=ЕСЛИ(K4>L4;2;ЕСЛИ(ЕПУСТО(K4);"";ЕСЛИ(K4=L4;1;0))).

По итогам чемпионата формируются сводные данные:

1. Число сыгранных игр. Здесь подсчитывается количество всех непустых клеток в диапазоне, где фиксируются игры, и делится на три (три клетки занимаются под каждую игру). Из числа непустых ячеек вычитается единица, чтобы не учитывалась заштрихованная клетка, в которой находится формула вычисления очков, находящаяся на пересечении строки и столбца для одной и той же команды (например, D4).

A

B

C

D

Турнирная таблица

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

1

2

Спартак

Динамо

ЦСКА

Фили

Игр

Очков

Забито

Пропущено

Разность

Очки +

разность

МЕСТО

3

Команды

з

п

о

з

п

о

з

п

о

з

п

о

4

Спартак

1

1

1

2

3

0

3

4

0

3

1

6

8

–2

1,098

4

5

Динамо

1

1

1

3

2

2

2

0

2

3

5

6

3

3

5,103

1

6

ЦСКА

3

2

2

2

3

0

2

2

5

5

0

2,100

2

7

Фили

4

3

2

0

2

0

2

2

4

5

–1

2,099

3

Рис. 5.19

2. Число всех добытых командой очков в чемпионате. Подсчитывается сумма содержимого клеток, находящихся в столбцах, где в строке В3:M3 буква “о” (очки).

3.4. Аналогично подсчитывается число забитых и пропущенных голов.

5. Разность забитых и пропущенных голов.

6. Число очков с учетом соотношения забитых и пропущенных голов. Может случиться так, что некоторые команды будут иметь одинаковое число очков по результату чемпионата (у нас ЦСКА и Фили имеют по 2 очка). В этом случае место в чемпионате определяется по лучшей (большей) разности забитых и пропущенных голов. Чтобы учесть ее влияние, к сумме очков прибавляется некоторая величина, являющаяся функцией разности. Она должна быть такой, чтобы в итоге целая часть суммы очков не изменилась (малое положительное число). Для этого к разности очков сначала прибавляется 100 (чтобы избежать возможности уменьшения числа очков, если разность отрицательна), затем результат делится на 1000 (чтобы избежать изменения целой части результата) и все это прибавляется к сумме добытых командой очков. Таким образом, ЦСКА и Фили будут иметь уже не по 2 очка, а 2,1 и 2,099 очков соответственно, что отражает лучшее положение команды ЦСКА в турнире. В дальнейшем этот столбец, служащий для технических целей, может быть скрыт от пользователя, как, кстати, и столбцы “о”.

7. Занятое место в чемпионате определяется функцией РАНГ().

Соответствующие формулы для первой команды приведены ниже

Игр сыграно: N4=(СЧЁТЗ(B4:M4)–1)/3, Очки+Разность (голов): S4=O4+(R4+100)/1000,

Очков команды: O4=СУММЕСЛИ(B$3:$M$3;"=о";B4:M4), Место (в турнире): T4=РАНГ(S4;S$4:S$7),

Забито голов: P4=СУММЕСЛИ(B$3:$M$3;"=з";B4:M4), Разность забитых и пропущенных голов: R4=P4–Q4,

Пропущено голов: Q4=СУММЕСЛИ(B$3:$M$3;"=п";B4:M4).

A

B

C

D

E

F

1

Сумма:

0

2000

4000

6000

10000

2

Налог:

0%

12%

15%

20%

30%

3

Мин.зарп.

80

4

РАСЧЕТ НАЛОГОВ

5

Работник

Детей

Доход

Сумма обложения

Налог

Сумма на руки

6

Петр

1000

1000

0,0

1000,0

7

Иван

1

12000

11920

3576,0

8344,0

8

Олег

2

5000

4840

726,0

4114,0

9

ВСЕГО

18000

18000

5400,0

13458,0

Рис. 5.20а

Пример 5.20. Расчет зарплаты и налогов. Построить таблицу вычисления зарплаты с учетом увеличивающегося подоходного налога и числа детей. Положим, с месячного дохода до 2000 налог не удерживается, от 2000 удерживается в сумме 12%, от 4000 – 15%, от 6000 – 20%, от 10000 – 30%. Налог удерживается не со всей суммы заработка, а с величины, мень­шей на одну минимальную зарплату, на каждого ребенка (иждивенца).

Для вычисления удержаний в таблицу внесен технический столбец Сумма обложения, где из дохода вычитается необлагаемая налогом часть

сумма_обложения=доход–детей*миним._зарплата для Петра это D6=C6–B6*B$3.

Если доход мал, сумма может оказаться меньше нуля. Чтобы не допускать отрицательных значений, используется функция вычисления максимума от двух аргументов – нуля и облагаемой суммы. Таким образом, если результат отрицательный, сумма обложения будет равна нулю (D6=МАКС(0;C6–B6*B$3)). Собственно налог находится с помощью функ­ции поиска, определяющей ближайшее меньшее к облагаемой сумме

налог=процент_налога*сумма_обложения или E6=ГПР(D6;B$1:F$2;2;1)*D6.

Чтобы поиск выполнялся нужным образом, последний аргумент в функции ГПР() – единица. Это обеспечит диапазонный поиск, в отличие от точного поиска, реализуемого в предыдущем примере. Сумма на руки есть F6=D6–E6.

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

A

B

C

D

E

F

1

Сумма:

0

2000

4000

6000

10000

2

Налог:

0%

12%

15%

20%

30%

3

Мин. зарп.

80

4

РАСЧЕТ НАЛОГОВ

5

Работник

Детей

Доход

Сумма обложения

Налог

Сумма на руки

6

Петр

1000

=МАКС(0;C6–B6*B$3)

=ГПР(D6;B$1:F$2;2;1)*D6

=D6–E6

7

Иван

1

12000

=МАКС(0;C7–B7*B$3)

=ГПР(D7;B$1:F$2;2;1)*D7

=D7–E7

8

Олег

2

5000

=МАКС(0;C8–B8*B$3)

=ГПР(D8;B$1:F$2;2;1)*D8

=D8–E8

9

ВСЕГО

=СУММ(C6:C8)

=СУММ(D6:D8)

=СУММ(E6:E8)

=СУММ(F6:F8)

Рис. 5.20б

Пример 5.21. Прогрессивный налог. Построить таблицу вычисления годового прогрессивного подоходного налога с физических лиц. Расчеты налогов, выполненные ранее, не является корректными. Видим, что с суммы в 2000 он равен 240, а с 2001 – уже 300, т.е. наблюдается резкий скачек величины налога при росте дохода всего в одну единицу. На практике используется более сложная методика расчета налогов, когда новый уровень налогов относится только к соответствующему диапазону (прогрессивный налог). Разъясним ее на примере. Положим, что принята следующая налоговая сетка (область А1:С6). Налог в 12% исчисляется от суммы дохода до 10000, налог в 18% от суммы, находящейся в пределах от 10001 до 30000 и т.д. Однако 18% берется не со всей суммы, а только с той ее части, которая больше 10000. Аналогично налоги рассчитываются и в других диапазонах доходов. Для полного уяснения техники вычислений определим налог с дохода в 65000. Он состоит из следующих четырех компонент:

A

B

C

1

Д о х о д

%

налога

2

от:

до:

3

0

10 000

12%

4

10 001

30 000

18%

5

30 001

60 000

25%

6

60 001

и выше

35%

7

ДОХОДЫ

8

Ф.И.О.

Доход

Налог

9

Иван

5 000

600

10

Петр

20 000

3 000

11

Анна

50 000

2 300

12

Елена

65 000

14 050

13

Всего

140 000

19 950

Рис.5.21

а

12% от суммы до 10000 0,12*10000=1200

18% от суммы 30000–10000=20000 0,18*20000=3600

25% от суммы 60000–30000=30000 0,25*30000=7500

35% от суммы 65000–60000=5000 0,35*5000 =1750

Сумма налога 14050

Или в виде формул:

Налог= ЕСЛИ(Доход <10, то 12%*Доход;

ЕСЛИ(Доход<30то 12%*10+18%*(Доход–10);

ЕСЛИ(Доход<60, то 12%*10+18%*20+25%*(Доход–30);

12%*10+18%*20+25%*30+35%(Доход–60)))).

Иллюстрирует технику вычислений рис. 5.21б (суммы в тысячах).

Рис. 5.21б

Перейдем к адресам для первого налогоплательщика в таблице:

B9=ЕСЛИ(B9<B$3;C$3*B9; ЕСЛИ(B9<B$4;C$3*B$3+C$4*(B9–B$3);

ЕСЛИ(B9<B$5;C$3*B$3+C$4*(B$4–B$3)+C$5*(B9–B$5);

C$3*B$3+C$4*(B$4–B$3)+C$5*(B$5–B$4)+C$6*(B9–B$5)))).

Замечание. С 2001 г. в России установлен единый налог в 13% для физических лиц независимо от доходов. Однако сама задача (но только не для налогов) остается актуальной, поскольку прогрессивная шкала расчетов используется во многих других случаях и не только в финансовых расчетах.

A

B

C

D

E

F

G

H

I

1

Доход до

20000:

12%

2

Свыше

20000:

20%

3

Динамическое исчисление налогов

4

Имя

Сводный

Январь

Февраль

Март

5

Доход

Налог

Доход

Налог

Доход

Налог

Доход

Налог

6

Иван

24000

4800

8000

960

9000

1080

7000

2760

7

Петр

1800

216

800

96

1000

120

8

Анна

4000

480

400

48

600

72

3000

360

9

Елена

14300

1716

300

36

8000

960

6000

720

10

Всего

44100

7212

9500

1140

18600

2232

16000

3840

Рис.

5.22а

Пример 5.22. Динамическое исчисление налогов. Определение налогов в конце года ставит задачу выплаты работником сразу большой суммы, возможно даже значительно большей, чем зарплата за последний месяц/месяцы. Кроме того, в случае увольнения работника в конце года вообще проблематично получить с него этот самый налог. В виду сказанного, на предприятиях ежемесячный налог обычно исчисляется от нарастающей суммы дохода с вычетом уплаченных ранее налогов. На рисунке изображена таблица расчетов налогов к марту месяцу. В рассматриваемом примере для упрощения выкладок налоговая сетка имеет всего две строчки – для дохода до и свыше 20000. Для упрощения же считаем, что налог со всей суммы от 20000 составляет именно 20%. Наша задача – научиться определять налог в каждом из 12 месяцев, таким образом, чтобы учесть как тарифную сетку, так и уже уплаченные в предыдущих месяцах налоги. Для этого следует выполнить вычисления:

налог_в_текущем_месяце=

сумма_всех_доходов_к_дате_расчета*процент_налога–сумма_ранее_уплаченных_налогов.

Или конкретнее:

налог=сумма_всех_клеток,_имеющих_в_заголовке_слово_Доход*размер_совокупного_налога

–сумма_всех_клеток,_имеющих_в_заголовке_слово_Налог.

Технику вычислений налога для первого сотрудника (Ивана) в марте иллюстрирует таблица на рис. 5.22б.

Месяц

Доход

Полный налог за

истекший период

Внесенный

ранее налог

Налог теку-

щего месяца

Январь

8000

12% от 8000=960

0

960

Февраль

9000

12% от 17000=2040

960

1

Рис. 5.22б

080

Март

7000

20% от 24000=4800

2400

2760

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

E6=СУММЕСЛИ($D$5:D$5;"Доход";$D6:D6)*ЕСЛИ(СУММЕСЛИ($D$5:D$5;"Доход";$D6:D6)<=$B$1;

$C$1;$C$2)–СУММЕСЛИ($D$5:D$5;"Налог";$D6:D6),

G6=СУММЕСЛИ($D$5:F$5;"Доход";$D6:F6)*ЕСЛИ(СУММЕСЛИ($D$5:F$5;"Доход";$D6:F6)<=$B$1;

$C$1;$C$2)–СУММЕСЛИ($D$5:F$5;"Налог";$D6:F6).

Формула для G6 получена простым копированием в нее клетки Е6.

Здесь сумма всех доходов СУММЕСЛИ($D$5:D$5;"Доход";$D6:D6) умножается на процент налога $C$1, если она меньше $B$1 (меньше 20000), или на $C$2, если больше. Затем из результата вычитается сумма уже удержанных ранее налогов СУММЕСЛИ($D$5:D$5;"Налог"; $D6:D6).

Кроме того, нарастающим итогом вычисляются суммы доходов и налогов:

Сводный доход: B6=СУММЕСЛИ($D$5:$Y$5;"Доход";D6:Y6).

Сводный налог: C6=СУММЕСЛИ($D$5:$Y$5;"Налог";D6:Y6).

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

Пример 5.23. Расчет стипендии. Создать таблицу начисления стипендии студентам ВУЗа и получения сводных данных о результатах сессии. Пусть в сессию студентами сдавались три экзамена и два зачета. В качестве результата экзамена вводится его оценка (кроме двойки). Сданный зачет отмечается значком “+”. Стипендия назначается всем студентам, полностью сдавшим сессию, в размере, определяемом средним баллом. Для выполнения расчетов имеется таблица коэффициентов, связывающая ее размер с величиной минимальной зарплаты (область K4:L8). Конечно, студенты, не сдавшие сессию, стипендии не получают и, кроме того, в столбце Задолжники они помечаются словом ”1зд” (если задолженность одна), или словом “отч” (более одной задолженности), как планируемые к отчислению из института за академическую неуспеваемость.

Рассмотрим, какие формулы необходимы для первого студента в списке (Петра). Средний балл (G4) определяется как сумма всех баллов, полученных на экзаменах, деленная на их число ((B4+C4+D4)/3). Однако, если студент не сдал какой-либо из экзаменов или зачетов, т.е.

История<3 ИЛИ Физика<3 ИЛИ Химия<3 ИЛИ Правозачет ИЛИ Этиказачет,

средний балл принимается равным 0. Таким образом, критерий несдачи сессии Петром будет таков ИЛИ(В4<3;C4<3;D4<3;E4<>"+";F4<>"+"). Его можно несколько упростить, если воспользоваться косвенным признаком, а именно тем фактом, что для несданных предметов клетки оценок остаются пустыми. Тогда для экзаменов произведение всех оценок равно нулю (B4*C4*D4=0), а для зачетов последовательность отметок не равна "++" (т.е. E4&F4<>"++"). Для формирования анализируемой строки все клетки, содержащие зачеты, сцепляются в одно слово (E4&F4). Окончательно, формула для Н4 будет иметь вид

G4=ЕСЛИ(ИЛИ(B4*C4*D4=0;E4&F4<>"++");0;(B4+C4+D4)/3).

В качестве признака наличия академических задолженностей можно использовать и еще более простой критерий – длина строки (ДЛСТР()), образованной сцеплением оценок, меньше числа предметов

G4=ЕСЛИ(ДЛСТР(B4&C4&D4&E4&F4)<5;0;(B4+C4+D4)/3).

A

B

C

D

E

F

G

H

I

J

K

L

1

СТИПЕНДИЯ

Мин.

зарп.

2

Студент

Экзамены

Зачеты

Ср. балл

Стипендия

Задолжн.

100р

3

История

Физика

Химия

Право

Этика

Ср. балл

К оэфф.

4

Петр

5

5

5

+

+

5,0

200р

3

1

5

Иван

4

5

5

+

+

4,7

180р

3,5

1,1

6

Саша

4

4

4

+

+

4,0

150р

4

1,5

7

Олег

3

3

5

+

+

3,7

110р

4,5

1,8

8

Вера

3

3

3

+

+

3,0

100р

5

2

9

Игорь

4

5

+

+

1зд

10

Лена

4

+

+

отч

11

Ср.балл

3,9

4,2

4,4

Сумма

12Сдало76577740рРис. 5.23аВеличина начисляемой стипендии (H4) определяется с помощью функции вертикального поиска значения G4 в области K4:L8. Найденный коэффициент умножается на величину минимальной зарплаты L2. Таким образом H4=ЕСЛИ(G4=0;0;ВПР(G4;K$4:L$8;2;1)*L$2). Поскольку в таблице коэффициентов отсутствует строка, где средний балл равен нулю, этот факт пришлось учитывать непосредственно в формуле H4.

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

I4=ЕСЛИ(ДЛСТР(B4&C4&D4&E4&F4)<4;"отч";ЕСЛИ(H4=0;" 1зд ";"")).

Кроме собственно стипендии в таблице вычисляются некоторые простые сводные характеристики: средний балл по всем экзаменам для студентов, имеющих оценки (B11=СРЗНАЧ(B4:B10) и т.д.), число студентов, получивших положительные оценки по каждому предмету (B12=СЧЁТ(B4:B10)), число студентов, получивших зачет по каждому из предметов (E11=СЧЁТЗ(B4:B10)), общую сумму всех назначенных стипендий (H12=СУММ(H4: H10)). По итогам сессии обычно требуется сформировать и более сложные показатели, например такие (рис. 5.23б). Рассмотрим как они получаются.

Число всех студентов успешно сдавших сессию: D14=СЧЁТЕСЛИ(G$4:G10;">0").

Число студентов сдавших сессию только на отлично (отличников): D15=СЧЁТЕСЛИ(G$4:G10;5).

Количество студентов сдавших сессию без троек (хорошистов):

D16 {=СЧЁТ(ЕСЛИ(B$4:B10>3;ЕСЛИ(C$4:C10>3;ЕСЛИ(D$4:D10>3;ЕСЛИ(G$4:G10>0;ЕСЛИ(G$4:G10<5;1))))))}.

Здесь подсчитываются только студенты не имевшие троек на всех экзаменах и средним баллом больше нуля и меньше пяти (последнее позволяет исключить из подсчета отличников, поскольку только для них средний балл =5). Такая формула может быть только формулой для массивов, т.е. ее ввод завершается нажатием клавиш Ctrl+Shift+Enter (выражение обрамляется фигурными скобками). Если воспользоваться тем фактом, что результатом операции сравнения будет число 1 или 0 (отношение истинно/ложно), формулу можно упростить следующим образом

D16 {=СЧЁТ(ЕСЛИ((B4:B10>3)*(C4:C10>3)*(D4:D10>3)*(G4:G10>0)*(G4:G10<5);1))}.

Количество студентов сдавших сессию с тройками (троечников):

D17 {=СЧЁТ(ЕСЛИ((G$4:G10>0)*((B$4:B10=3)+(C$4:C10=3)+(D$4:D10=3));1))}.

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

Число студентов не сдавших сессию, т.е. средний балл которых равен нулю (двоечники): D18=СЧЁТЕСЛИ(G$4:G10;0).

Количество студентов, подготавливаемых к отчислению (имеющих минимум две задолженности):

D19 {=СЧЁТ(ЕСЛИ(((B$4:B10=0)+(C$4:C10=0)+(D$4:D10=0)+(E$4:E10<>"+")+(F$4:F10<>"+"))>1;1))}.

Подсчитываются студенты, имеющие больше одного (>1) “хвоста”.

Последний вычисляемый параметр – средний балл студентов, сдавших сессию (для них средний балл >0)

D20 {=СРЗНАЧ(ЕСЛИ(G$4:G10>0;G$4:G10))}.

Пример 5.24. Оплата труда в торговле. Создать таблицу назначения еженедельных премий продавцам-менеджерам фирмы в зависимости от суммы (в тыс. руб.) проданного ими товара. Премиальный фонд (20% от общей выручки – клетка E3) назначается только менеджерам, занявшим по сумме продаж первые три места. В абсолютном исчислении эта сумма равна E4=E3*B14 (здесь 20% от 73 =14,6 тыс. руб.). Эта сумма делится между участниками в следующей пропорции: с коэффициентом 1 – за 1 место, с коэффициентом 0,7 – за второе, с коэффициентом 0,4 – за третье. По очевидным причинам таких людей может оказаться больше трех, если некоторые из “призеров” имели одинаковую выручку. В таблице должны фигурировать: имя продавца, процент выручки данного работника от общей суммы, призовое (если есть) место продавца, индивидуальный коэффициент премирования и премия (если есть). Сначала в таблице вычисляется общая сумма выручки B14=СУММ( B8:B13). Затем для каждого продавца находится процент его личной выручки C8=B8/B$14. Теперь следует выявить призовые места работников, используя функцию РАНГ( ): D8=РАНГ(B8;B$8:B$13;0). В столбце Коэффициенты отражаются индивидуальные коэффициенты премирования в зависимости от занятого места. Функция ВЫБОР( ) извлекает из таблицы коэффициентов премирования нужные значения.

E8=ВЫБОР(ЕСЛИ(D8<=3;D8;4);B$3;B$4;B$5;0).

Если занятое место имеет значения 1, 2, 3 (т.е. 3), его коэффициент разыскивается в группе ячеек B3, B4, B5. Если нет, искомое значение принимается равным четырем. Этому значению в группе извлечения соответствует цифра ноль (последний аргумент в функции).

Собственно премия определяется очевидным образом

премия=премиальный_фонд/сумма_коэффициентов*индивидуальный_коэффициент. Или F8=E$4/E$14*E8.

Как видим, сумма премий (F14) в точности равна премиальному фонду (E3), т.е. расчеты выполнены верно.

К оформлению.

1. Удобно, если имена лучших работников будут выделены. Например, занявшие первое место – красным фоном, второе место – синим, третье – зеленым. Для этого выполним условное форматирование блока А8:А13 следующего вида:

Условие 1 значение равно 1   – установить красный фон

Условие 2  значение равно 2   – установить синий фон

Условие 3  значение равно 3   – установить зеленый фон

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

Следует отметить, что при рассмотренном способе определения призовых мест может оказаться, например, 4 первых места и ни одного второго или третьего (если четыре человека имели одну и ту же максимальную выручку) или, как в нашем случае, 2 первых и 2 третьих места и ни одного второго (два человека имели одинаковую максимальную выручку и еще два – одинаковую выручку поменьше) и т.п. Если такой механизм выявления призеров вас устраивает, все в порядке. Если же вы хотите, чтобы в таблице обязательно присутствовали все три первых места без пропусков, то придется поступить более сложным способом. На рис. 5.24б приведен фрагмент такой таблицы. Для экономии места строки с первой по шестую опущены (они идентичны рис. 5.24а). Здесь при определении призового места нами введены три дополнительных столбца D, E, F. В столбце D выявляем лиц, занявших 1 место. Они отмечаются текстом вида “1м”. Для остальных работников отображается их выручка

A

B

C

D

E

F

1

Премия продавцам:

2

К-ты премирования

Премиальный фонд

3

за 1 место

1

Процент:

20%

4

за 2 место

0,7

Сумма:

14,6т

5

за 3 место

0,4

6

П Р О Д А Ж И

7

Продавец

Выручка

Процент

Место

Коэфф.

Премия

8

Петр

12т

16,4%

3

0,4

2,1т

9

Иван

12,3%

5

10

Елена

12т

16,4%

3

0,4

2,1т

11

Саша

20т

27,4%

1

1

5,2т

12

Федор

6

13

Толя

20т

27,4%

1

1

5,2т

14

ВСЕГО

73т

100,0%

2,8

14,6т

Рис.

5.24а

=ЕСЛИ(максимальная выручка в магазине=выручка данного работника, то выводим “1м”, иначе сама выручка)

или D10=ЕСЛИ(МАКС(B$10:B$15)=B10;"1м";B10).

В столбце E аналогичным образом выявляем лиц, занявших 1 и 2 места, а F – 1-3 места. Однако в качестве анализируемой области используем не исходный столбец Выручка, а предшествующий столбец, содержащий не только значения выручки, то текстовые строки, которые теперь замещают числовые значения

E10=ЕСЛИ(МАКС(D$10:D$15)=D10;"2м";D10)

F10=ЕСЛИ(МАКС(E$10:E$15)=E10;"3м";E10).

Функция МАКС( ) находит максимальное число в области D10:D15. Имеющиеся здесь текстовые значения вида “1м” воспринимаются ею как нули. Теперь мы превратим текстовые значения в числовые (“1м” – в цифру 1, “2м” – в 2, “3м” – в 3). Это можно сделать с помощью функции ЕСЛИ( )

G10=ЕСЛИ(F10="1м";1;

ЕСЛИ(F10="2м";2;ЕСЛИ(F10="3м";3;0))).

A

B

C

D

E

F

G

H

I

. . .

7

Продавец

Выручка

1-2м

1-3м

Место

Коэфф.

Премия

8

Петр

12

12

2

0,7

2,7

9

Иван

9

9

9

3

0,4

1,5

10

Елена

12

12

2

0,7

2,7

11

Саша

20

1

1

3,8

12

Федор

13

Толя

20

1

1

3,8

14

ВСЕГО

73

3,8

14,6

Рис.6

.24б

Здесь, если место не призовое, результатом будет 0. Возможно и более короткое решение путем непосредственного преобразования первого символа в слове на число G10=ЗНАЧЕН(ЛЕВСИМВ(F10;1)).

Далее находим, соответствующий занятому месту, коэффициент премирования

H10=ВЫБОР(ЕСЛИ(G10<1;4;G10);B$3;B$4;B$5;0).

Если занятое место <1 (в нашем случае 0), коэффициент принимается равным нулю.

Видим, что сумма премиальных выплат совпадает с выделенным фондом, т.е. расчеты произведены правильно, однако сами премии оказались иными, нежели на рис. 5.24а.

Далее технические столбцы D, E, F можно скрыть.

Пример 5.25. Расчет размеров помощи. Создать таблицу расчетов по выделению материальной помощи работникам предприятия. Положим, она назначается по двум причинам:

1. При наличии более 2-х и более детей – в размере одной минимальной зарплаты на каждого ребенка.

2. Инвалидам и участникам войны (УчВ) в возрасте свыше 60-и лет – в размере двух минимальных зарплат.

Для Иванова это:

1. ЕСЛИ(C6>2;C6*F$1;0).

2. ЕСЛИ(И(ГОД(B$1)–B6>60;ИЛИ(D6="И";E6="У"));2*F$1;0).

В любом случае размер помощи не может превышать собственную зарплату работника (=МИН(F6;<расчетная помощь>)). Таким образом, полная формула будет выглядеть так

G5=МИН(F6;(ЕСЛИ(C6>2;C6*F$1)+ЕСЛИ(И(ГОД(B$1)–B6>60;ИЛИ(D6="И";E6="У"));2*F$1))).

По вертикали определяется средний возраст работников предприятия

=число_лет_текущей_даты – средний_возраст_работников или B9=ГОД(B$1)–СРЗНАЧ(B6:B8).

A

B

C

D

E

F

G

H

1

Дата:

Ноя.99

Миним.

зарп.

80

2

3

НАЗНАЧЕНИЕ ПОМОЩИ

4

ФИО

Год

рожд.

Детей

Л ь г о т ы

Зарп-

лата

По-

мощь

Всего

5

Инвалид

УчВ

6

Иванов

1940

3

И

600

240

840

7

Петров

1970

2

500

0

500

8

Кулик

1920

5

И

У

550

550

1100

9

Итого

56,7лет

10

2

1

1650

790

2440

Рис. 5.25

Для этой ячейки назначен пользовательский формат вида: 0,0"лет". Кроме того, вычисляются число инвалидов (D9=СЧЁТ­ЕСЛИ(D6:D8;"И") и участников войны (E9=СЧЁТЕСЛИ(E6:E8;"У"). Если бы нам понадобилось вычислить число лиц имеющих обе льготы (т.е. инвалидность и участие в войне), то пришлось бы прибегнуть к формулам, работающим с массивами: {=СЧЁТ(ЕСЛИ(D6:D8= "И";ЕСЛИ(E6:E8="У";1)))} или проще {=СЧЁТ( ЕСЛИ((D6:D8="И")* (E6:E8="У");1))}.

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

Пример 5.26. Оплата проката автомобилей. Создать таблицу расчетов с клиентами за наем автомобилей, цена часа проката которых известна. В момент взятия в прокат автомобиля работник пункта проката выставляет текущие и ожидаемые дату и время возврата (столбцы Взято с и Оплачено по). Для столбцов С, D и G назначен пользовательский формат даты вида Д.МММ чч:мм. Исходя из стоимости часа проката, в таблице вычисляются время проката в часах и его стоимость. Для первой строки E6=(D6–C6)*24 и F6=B6*E6. В момент возврата автомобиля оператор выставляет время возврата (столбец G). В колонке Н и I вычисляется разница в часах и деньгах между оплаченной и фактической датами возврата автомобиля Н6=(G6–D6)*24 и I6=B6*H6. Если клиент вернул его раньше оплаченного времени, ему возвращается часть денег (коэффициент возврата находится в клетке C1). Если позже – с него берется недостающая сумма с коэффициентом доплаты (находится в С2) за задержку автомобиля в прокате J6=ЕСЛИ(I6>0;I6*C$2;I6*C$1). Так, за прокат автомобиля ВАЗ клиенту будут возвращены деньги.

A

B

C

D

E

F

1

К-т возв

рата

0,50

2

К-т допл

аты

1,30

3

П Р О К А Т

А В Т

О М О

Б И Л Е Й

4

Тип

Цена

Взято

Оплачено

Опла

чено

Дата

Раз

ница

Доплата

5

авто

часа

с:

по:

часов

сумма

возврата

часы

сумма

/возврат

6

Волга

110

2.Ноя 10:00

12.Ноя 00:00

230,0

25300

18.Ноя 05:00

149

16390

21307

7

БМВ

300

13.Ноя 01:30

21.Ноя 10:00

200,5

60150

21.Ноя 10:00

0

0

0

8

Рено

200

4.Ноя 09:06

14.Ноя 00:00

230,9

46180

16.Ноя 08:00

56

11200

14560

9

Ауди

250

1.Ноя 01:00

5.Ноя 10:00

105,0

26250

7.Ноя 00:30

38,5

9625

1

Рис. 5.26

2512,5

10

ВАЗ

100

6.Ноя 06:30

19.Ноя 12:00

317,5

31750

14.Ноя 00:00

–132

–13200

–6600

Пример 5.27. Зарплата с учетом разряда и трудового стажа. Создать таблицу расчета выплат заработка по результатам месяца в зависимости от разряда и стажа работников. Для этого имеется тарифная сетка, содержащая коэффициенты премирования сотрудника в зависимости от его разряда и стажа работы на производстве (в левой верхней части листа на рис. 5.27б). Стаж изображается в форме цифры стажа и слова “лет” (например “10 лет”) с помощью формата вида: 0” лет”, а разряд (например “3 разр.”)– с помощью формата 0” разр.” О каждом сотруднике известны: дата поступления его на предприятие (Дп), разряд, зарплата. На основе этих данных необходимо определить его премию (доплату за стаж и разряд) на произвольно заданный день расчета (Др). Кроме того, следует найти средний трудовой стаж всех работников.

Задача определения числа прошедших лет и/или месяцев является очень актуальной. Во многих случаях стаж работы влияет на оплату труда (например, выслуга лет у военнослужащих, размер пенсии и т.п.). Ее решение может быть различным в зависимости от целей расчета. Если требуется найти, например, средний стаж работников предприятия, то достаточно просуммировать стаж (в днях) каждого из них и поделить на 364 и число работников. Не так в случае определения стажа отдельного работника, если это влияет на оплату труда. Если поступить аналогичным образом, может оказаться, что будет получена неточная цифра, ведь число дней в году может составлять и 365. Кроме того, перерасчет зарплаты производится не немедленно по достижении нужной даты, а начиная только со следующего месяца – по прошествии установленного числа полных месяцев стажа. Пусть, например, сотрудник зачислен на работу 12.6.94 и через пять лет (т.е. после 12.6.99) ему положена прибавка зарплаты. По существующему законодательству она последует только в следующем месяце – в июле 1999 г.

11.97

12.97

1.98

2.98

3.98

4.98

5.98

6.98

7.98

8.98

9.98

10.98

11.98

12.98

1.99

2.99

1

2

3

4

5

6

7

8

9

10

11

12

13

Рис. 5.27а

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

Выполним сначала эти расчеты применительно к нашим данным.

1. Число полных месяцев от 1.1.1900 до месяца Дп:

Год поступления*12 + Месяц поступления – 1.

В нашем случае это

ГОД(15.11.1997)*12+МЕСЯЦ(15.11.1997)-1=1997*12+11-1=23974 месяца.

2. Число полных месяцев от 1.1.1900 до месяца Др, исключая один месяц, в котором находится Дп:

Год расчета*12+ Месяц расчета –1–1 или

ГОД(25.1.1999)*12+МЕСЯЦ(25.1.1999)-1-1=1999*12+1-1-1=23987 месяцев.

3. Число полных месяцев от Дп до Др:

Месяцев до даты расчета – Месяцев до даты поступления или 23987–23974=13 месяцев.

Таким образом, можем записать

(ГОД(Др)*12+МЕСЯЦ(Др)–1–1)–(ГОД(Дп)*12+МЕСЯЦ(Дп)–1)=

ГОД(Др)*12+МЕСЯЦ(Др)–1–ГОД(Дп)*12–МЕСЯЦ(Дп)=

12*(ГОД(Др)–ГОД(Дп))+МЕСЯЦ(Др)–МЕСЯЦ(Дп)–1.

Если подсчет стажа ведется в годах, полученный результат нужно поделить на 12. Воспользуемся полученным выше выражением. Так, для первого работника стаж в годах (Е9) составит

E9=(12*(ГОД(G$2)–ГОД(B9))+МЕСЯЦ(G$2)–МЕСЯЦ(B9)–1)/12.

Теперь найдем коэффициент премирования в таблице тарифных ставок. Этот коэффициент находится на пересечении колонки с соответствующим разрядом (функция ПОИСКПОЗ(C9;A$1:F$1;0)) и стажем (функция ПОИСКПОЗ(E9;A$1:A$6;1)). Адрес клетки пересечения определяется функцией ИНДЕКС(A$1:F$6; номер_строки; номер_ столбца). Или окончательно

F9=ИНДЕКС(A$1:F$6;ПОИСКПОЗ(E9;

A$1:A$6;1);ПОИСКПОЗ(C9;A$1:F$1;0).

Замечание. Здесь в качестве блока поиска определена целиком вся тарифная сетка, включая ячейку А1. Это в некоторых случаях может вызвать неверный результат поскольку ее содержимое в таком случае также попадает в область поиске. Если функция ПОИСКПОЗ(…) посчитает значение клетки A1 соответствующим критерию поиска, результат может быть извлечен совершенно из другого места таблицы тарифов, либо последует сообщение об ошибке. Если такая опасность существует, можно изменить функцию таким образом, чтобы исключить из обработки ячейку А1

=ИНДЕКС(B$2:F$6;ПОИСКПОЗ(E9;A$2:A$6;1);ПОИСКПОЗ(C9;B$1:F$1;0)).

A

B

C

D

E

F

G

1

Разряд

/стаж

1 разр.

2 разр.

3 разр.

4 разр.

5 разр.

Дата

расчета:

2

0 лет

1,0

1,1

1,2

1,3

1,4

20.09.99

3

5 лет

1,2

1,3

1,4

1,5

1,6

4

10 лет

1,4

1,5

1,6

1,7

1,8

5

20 лет

1,6

1,7

1,8

1,9

2,0

6

30 лет

1,8

1,9

2,0

2,1

2,2

7

ЗАРПЛАТА

8

Имя

Дата

поступ.

Разр.

Зарп.

Стаж

(лет)

Коэфф.

ВСЕГО

9

Петр

20.06.99

5

100

0,2

1,4

140

10

Иван

12.08.94

4

200

5,0

1,5

300

11

Олег

20.10.65

4

180

33,8

2,1

378

12

Сергей

01.04.70

2

500

29,3

1,7

850

13

Итого

ср.стаж:17

980

1668

Рис.

5.27б

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

B12=ОКРУГЛ((G$2–

СРЗНАЧ(B9:B12))/364;0).

Формат ячейки: “ср.стаж:”#.

Выплаты с учетом коэффициента (колонка Всего) определятся формулой вида G9= F9*D9. Внизу таблицы обычные формулы вертикаль­ного суммирования – D13=СУММ(D9:D12), G13=СУММ(G9:G12).

Пример 5.28. Переоценка основных фондов предприятия. Обо всех объектах, составляющих основные фонды, известны: год приобретения; цена (в тыс. руб.), по которой он был закуплен; срок амортизации (число лет, на которое рассчитано устройство до полного износа и списания). Нам нужно создать таблицу ежегодной переоценки (на конец 1999 года) стоимости фондов, которая зависит от двух факторов.

A

B

C

D

E

F

G

H

1

Текущий

год:

1999

2

Инфляция

3

1992

1993

1994

1995

1996

1997

1998

1999

4

2200%

1200%

700%

150%

30%

16%

50%

30%

5

Переоценка

6

Фонды

Куплено

Срок

аморт.

Новая

цена

7

Год

Цена

8

Станок

1994

10

30

3

490

9

Кран

1996

20

20

5

50

10

Стенд

1982

30

8

1

0

11

Копир

1991

10

9

1

19539

12

Факс

1999

4

4

8

5

13

ВСЕГО

20084

Рис.

5.28

1. Увеличение стоимости под влиянием инфляции. Сводка об инфляции (процентах снижения покупательной способности рубля) с 1992г. отображена в строках 3 и 4. Считаем, что до 1992г. инфляции не было. Деноминация рублей учитывается в исходной цене объектов. Цена предметов, купленных на “старые” деньги, уменьшается в 1000 раз, остальные цены остаются без изменения.

2. Уменьшение стоимости за счет износа в течение срока амортизации. Ежегодно стоимость снижается на одинаковую часть (например станок на 1/30).

Нам следует вычислить новую цену предмета с учетом указанных процессов.

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

=БЗРАСПИС(цена_закупки;инфляционные_проценты).

Или для первого объекта (станка) =БЗРАСПИС(C8;C4:H4).

Аналогично для крана =БЗРАСПИС(C9;E4:H4) и т.д.

Наша задача заключается в том, чтобы научиться определять начальную позицию блока инфляционных коэффициентов (здесь C4 и E4) как функцию года приобретения изделия. Для этой цели мы введем технический столбец (), в котором определяется номер колонки с годом, совпадающим с годом покупки, в блоке инфляционных процентов. Здесь можно воспользоваться функцией ПОИСКПОЗ(). Однако следует учесть, что год покупки может и не входить в сетку инфляционных лет с 1992г. Поскольку до этого периода инфляции не было, предыдущие годы в таблице отсутствуют. Это значит, что, если год приобретения, например, 1983, его следует считать 1992. Такое условие можно реализовать функцией МАКС(год_покупки; 1992г). Отсюда, для первого объекта запишем E8=ПОИСКПОЗ(МАКС(B8; A$3);A$3:H$3).

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

ИНДЕКС(строка_процентов_по_годам;;номер_колонки_внутри_строки).

Или для станка F8=БЗРАСПИС(C8;ИНДЕКС(A$4:H$4;;E8):H$4).

Второй аргумент в функции ИНДЕКС() опущен, поскольку ее объектом является единственная строка.

Теперь учтем влияние износа в форме коэффициента, на который нужно умножить цену

(срок_амортизации – лет_эксплуатации)/срок_амортизации

или (D8–(C1–B8))/D8. Эта формула верна только до тех пор, пока не кончился амортизационный период. В последнем случае результат будет бессмысленным (отрицательным). Чтобы учесть указанное обстоятельство, сделаем так, чтобы он никогда не становился меньше нуля МАКС((D8–(C$1–B8))/D8;0).

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

F8=БЗРАСПИС(C8;ИНДЕКС(A$4:H$4;;E8):H$4)*МАКС((D8–(C$1–B8))/D8;0).

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

Пример 5.29. Продажа авиабилетов. Построим таблицу бронирования мест на авиарейсы. О каждом рейсе известна номинальная цена билета для каждого из трех классов. Эти тарифы хранятся на отдельном листе Рейс. Собственно данные о заказах хранятся на другом листе Бронь. Это номер желаемого рейса, класс салона, а также число требуемых взрослых и детских билетов.

В столбце Цена билета предъявляется цена билета из листа Рейс, извлекаемая следующей формулой

цена_билета=ИНДЕКС(область_тарифов;строка_ рейса; столбец_класса).

или для первого заказа

С5= ИНДЕКС(рейс!A$1:D$100;ПОИКОЗ(A5;рейс!A$1:A$100;0);ПОИСКПОЗ(B5;рейс!A$1:D$1;0)).

Общая стоимость заказа формируется путем умножения количества заказанных взрослых билетов на цену билета, плюс число детских билетов на цену билета со скидкой на детей (здесь 40%): F5=C5*D5+C5*E5*(1–C$1). Кроме того, и при заказе на сумму более семи полных билетов положена скидка (оплачивается только 80% стоимости заказа)

A

B

C

D

E

F

G

1

Скидки:

на детей

40%

на группу

20%

2

БРОНИРОВАНИЕ АВИАБИЛЕТОВ

3

рейса

Класс

Цена

билета

Число билетов

Стоимость билетов

4

взрос.

детских

полная

со скидкой

5

12

1

800

12

1

10080

8064

6

45

3

500

4

2

2600

2600

7

101

2

600

1

600

600

8

Всего

17

3

13280

11264

Рис.

5.29б. Лист

Бронь

G5=F5*ЕСЛИ(F5>7;C5*(1–E$1);1).

A

B

C

D

1

класс

рейс

1

2

3

2

12

800

700

600

3

65

700

610

530

4

101

640

600

580

5

45

600

550

500

6

67

950

850

780

Рис. 5.29а. Лист Рейс


Пример 5.30. Расчеты в гостинице. Построим таблицу расчетов с клиентами гостиницы. Данные находятся в двух листах. На листе Номера помещается список из тридцати номеров отеля с указанием имеющихся в них мест и цены за место. Для упрощения выкладок области листа A1:C21 присвоено имя Места. На втором листе Оплата располагаются собственно данные о проживающих (области В5:D100 назначим имя Гост). На листе Номера формируется информация о числе уже занятых и свободных мест.

A

B

C

D

E

D

E

1

Номер

Мест

Цена

Занято

Свободно

Занято

Свободно

2

1

2

50

3

–1

=СЧЁТЕСЛИ(гост;A2)

=B2–D2

3

2

2

60

1

1

=СЧЁТЕСЛИ(гост;A3)

=B3–D3

4

3

2

20

1

1

=СЧЁТЕСЛИ(гост;A4)

=B4–D4

5

4

3

20

0

3

=СЧЁТЕСЛИ(гост;A5)

=B5–D5

6

5

2

30

0

2

=СЧЁТЕСЛИ(гост;A6)

=B6–D6

. . .

22

Всего

70

30

=СУММ(D2:D21)

=СУММ(E2:E21)

Рис. 5.30а. Лист Номера

Занятые места подсчитываются с помощью функции вида

Занято=СЧЁТЕСЛИ(данные_о_занятых_комнатах_в_листе_Оплата; номер_комнаты_из_листа_Номера)

или для первого номера D2=СЧЁТЕСЛИ(гост;A2).

Отслеживать занятость номеров администратору удобно по столбцу Свободно, где подсчитывается число оставшихся мест в номерах E2=B2–D2. Отрицательное значение в этой клетке означает попытку разместить в номере (на листе Оплата) человека при отсутствии в нем свободных мест.

К оформлению. Для лучшего зрительного восприятия данных имеет смысл выделить номера, имеющие свободные места (столбец Свободно). Установим здесь пользовательский формат вида: [Красный] [>0].

При обращении клиента администратор отеля в столбце Номер вводит номер комнаты, куда предполагается его поселить. Тогда в столбце Цена места автоматически формируется стоимость места в этом номере. Для этого было бы достаточно выражения С5=ВПР(B5;места;3;0).

A

B

C

D

E

F

G

H

1

Сегодня:

20.Сен

2

ОПЛАТА ГОСТИНИЦЫ

3

Ф.И.О.

Но-

мер

Цена

места

Дата

заезда

Оплата:

Доплата:

4

по

дней

5

Петров

2

60

12.Сен

30.Сен

1080

остаток: 10дн

6

Лукин

1

50

20.Сен

25.Сен

250

остаток: 5дн

7

Васин

3

20

16.Сен

20.Сен

80

СЪЕЗД

8

Попов

1

50

14.Сен

15.Сен

50

доплата 5дн

250

9

Кулик

1

Занято

0

СЪЕЗД

Рис. 5.30б. Лист Оплата

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

Цена=ЕСЛИ(число занятых мест в данном номере > общего числа мест в нем, выводится слово Занято,

в противном случае выводится Цена этого места).

Для первого постояльца результат достигается формулой вида

С5=ЕСЛИ(СЧЁТЕСЛИ(гост;B5)>ВПР(B5;места;2;0);"Занято";ВПР(B5;места;3;0)).

Если воспользоваться ею, то слово Занято возникнет во всех строках, содержащих информацию о номере, куда вы пытаетесь поселить лишнего человека. Для предотвращения этого усложним выражение таким образом, чтобы сообщение появлялось только для нового клиента. Введем анализ еще одного условия – отсутствия даты заезда (D5=0)

C5=ЕСЛИ(И(СЧЁТЕСЛИ(гост;B5)>ВПР(B5;мест;2;0);D5=0);"Занято";ВПР(B5;мест;3;0)).

Здесь сначала подсчитывается число уже занятых мест в интересующем номере (СЧЁТЕСЛИ(гост;B5)). Если оно оказывается большим количества имеющихся мест в номере (>ВПР(B5;места; 2;0)), в столбце Цена места формируется слово Занято (место недоступно), если нет – предъявляется цена места в номере.

Далее, если все в порядке, желающий поселиться вносит плату по определенное число (Оплата: по) в сумме F5=(E5–D5)*C5.

Однако, если в С5 будет слово Занято, возникнет сообщение об ошибке (на слово нельзя умножить). Чтобы обойти такую ситуацию, усложним выражение для Суммы оплаты таким образом, чтобы слово Занято интерпретировалось как ноль F5=ЕСЛИ(ЕТЕКСТ(C5);0;(E5–D5)*C5).

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

В дальнейшем, администратор гостиницы отслеживает своевременность уплаты денег. В столбце Доплата: дней вычисляется разность между текущей датой (В1) и датой, по которую была произведена оплата G5=E5–$B$1. Поскольку дата заезда может отсутствовать, результат может оказаться бессмысленным. В виду этого сделаем так, чтобы разность вычислялась только при наличии даты заезда G5=ЕСЛИ(D5=0;0;E5–$B$1).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]