Финансовые расчеты в Excel

         

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



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

Итак, расчеты выполнены. Поиск ошибок будет произведен позже. А сейчас нужно подготовить приказ о выплате премии за выслугу лет. Приказ можно создать либо на этом же листе электронных таблиц, либо в текстовом редакторе Word. Мы выберем второй способ.
1. Откройте текстовый редактор и создайте типовый бланк приказа, оставив место для вставки таблицы, сформированной в Excel.
2. Перейдите в Excel, выделите диапазон A1:AF12 и скопируйте его в буфер обмена.
3. Перейдите в текстовый редактор и, установив курсор в место вставки таблицы, выполните команду Правка/Специальная вставка, что приведет к появлению диалогового окна Специальная вставка (рис. 5.28).
4. В списке Как выделите элемент Лист Microsoft Excel Объект.
5. Отметьте переключатель Связать и нажмите кнопку ОК.


Должностные оклады и премии



Должностные оклады и премии

Создание отдельного списка с указанием окладов сотрудников Определение количества сотрудников в каждом отделе Определение количества сотрудников, занимающих определенные должности Контроль рассчитываемых значений Изменение должностных окладов Соединение двух списков Сортировка данных Проверка данных Расчет премии за выслугу лет Формирование приказа о премии за выслугу лет Составление перечней В данной главе речь пойдет об автоматизированных методах расчета новых должностных окладов сотрудников и о начислении им премии за выслугу лет.

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

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

Изменение должностных окладов



Изменение должностных окладов

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

Использование диалогового окна Специальная вставка

Данный метод расчета нового размера окладов достаточно прост:
1. В любую свободную ячейку рабочего листа (например, G4) со списком введите значение индекса увеличения оклада (1,077).
2. Скопируйте содержимое данной ячейки.
3. Выделите диапазон ячеек Е2:Е11 и вызовите диалоговое окно Специальная вставка.
4. В области Вставить появившегося окна активизируйте переключатель Значения, в области Операция - переключатель Умножить, после чего нажмите кнопку ОК.

В результате все числа, указанные в ячейках Е2:Е11, будут умножены на значение 1,077, введенное в ячейку G4. На рис. 5.5 наш список содержит уже новые оклады. Однако, как видите, при использовании данного метода мы получили ставки, выраженные в рублях с копейками.


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



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

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

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

Для нашей задачи мы предлагаем метод контроля, основанный на следующем предположении. Если в списке работников нет ошибки, то значения в столбце "Оклады" должны быть больше нуля. Поэтому введите в ячейку Н16 такую формулу:
=СЧЕТЕСЛИ($Е$2:$Е$11;">>0")

Она произведет в диапазоне Е2:Е11 подсчет значений, которые больше 0.

ПРИМЕЧАНИЕ

Вы видите, что в качестве критерия в функции СЧЕТЕСЛИ могут использоваться числовые значения, однако их необходимо заключать а кавычки.

Если расчеты проводятся правильно, то значения в ячейках Н5 и Н14 должны быть равны значению в ячейке H16.

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


Определение количества сотрудников в каждом отделе



Определение количества сотрудников в каждом отделе

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

Поскольку отделов немного (три), для наглядности разместим таблицу с расчетом в диапазоне ячеек G1:H4 того же рабочего листа, на котором располагается спи-сок (рис. 5.2).


Определение количества сотрудников, занимающих определенные должности



Определение количества сотрудников, занимающих определенные должности

Аналогичным образом можно для каждой должности определить, сколько сотрудников предприятия ее занимают. Разместим эти расчеты на том же листе, но в диапазоне ячеек G7:H13.

В ячейки G7 и G8 введите названия столбцов (Должность и Численность), а в ячейки G8:G13 - названия должностей (Аудитор, Инженер, Менеджер, Начальник, Секретарь и Экспедитор).

Формулы в ячейках Н8:Н13 также будут построены на базе функции СЧЕТЕСЛИ. В частности, формула в ячейке Н8 должна быть такой:
=СЧЕТЕСЛИ($В$2:$В$11; G8 )

Используя приведенные выше инструкции, создайте аналогичные формулы в ячейках Н8:Н13.



Проверка данных



Проверка данных

Взгляните на рис. 5.11 еще раз, более внимательно. Как видите, в штатном расписании в строке 11 указан сотрудник, который уже уволился. Кроме того, в рабочие листы Оклады и Сотрудники внесены ошибки: в строках 3 и 10 для одного и того же сотрудника указаны различные табельные номера. (Если произвести сортировку по табельным номерам, то в одной строке будут находиться данные, касающиеся конкретного табельного номера.) Наша задача - автоматизировать процессы поиска и исправления этих ошибок.

Формулы, которые мы используем для этой цели, расположим в диапазоне ячеек N2:S11. Они основаны на логических функциях и функциях свойств и значений. Данные функции возвращают логические значения ИСТИНА (при совпадении каких-либо условий) или ЛОЖЬ (при несовпадении таковых).

Если работник уволен

Формула, с помощью которой можно определить, числился ли сотрудник в списке работников на момент расчета премии, основана на функции ЕПУСТО, относящейся к категории Проверка свойств и значений (окно мастера функций приведено на рис. 5.14).


Рaсчет премии за выслугу лет



Рaсчет премии за выслугу лет

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

№ п/п Стаж, годы Премия, %
1 Менее 1 Не начисляется
2 От 1 до 3 10
3 От 3 до 5 20
4 От 5 до 10 30
5 Свыше 10 40
Таблица 5.1. Размер премии за выслугу лет в % к окладу

Алгоритм вычисления премии следующий.
1. Проверить, числился ли данный сотрудник в списке работников предприятия на момент начисления премии.
2. Сравнить, соответствует ли в каждой строке:
   а) табельный номер из базы данных сотрудников табельному номеру из штатного расписания;
   б) фамилия из базы данных фамилии из штатного расписания.
3. Определить общее количество проработанных на предприятии дней (для этого надо из даты начисления премии вычесть дату приема на работу).
4. Определить число отработанных сотрудником лет, разделив полученное на предыдущем этапе количество дней на 365,25 - среднее число дней в году с учетом високосных лет.
5. Отбросить от полученного значения дробную часть.
6. Если количество полных отработанных человеком лет составляет:
   а) менее 1 года - премию не начислять;
   б) от 1 до 3 лет - увеличить сумму оклада на 10%;
   в) от 4 до 5 лет - увеличить сумму оклада на 20%;
   г) от 6 до 10 лет - увеличить сумму оклада на 30%;
   д) более 10 лет - увеличить сумму оклада на 40%.
7. Если табельные номера и фамилии в штатном расписании соответствуют указанным в базе данных сотрудников, то зачесть полученную сумму премии, если же нет - выдать сообщение об ошибке.

Ввод условий для начисления премии

Условия начисления премии, описанные в табл. 5.1, можно поместить в любое место рабочего листа. Расположите таблицу с этими данными, скажем, в диапазоне ячеек U1:V8 (рис. 5.23), следующим образом:
- в ячейку V2 поместите дату расчета;
- в диапазон U4:U8 - стаж работника;
- в диапазон V4:V8 - процент для начисления премии.


Вы убедились, что Excel позволяет



Резюме

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

Список сотрудников с указанием их должностных окладов



Рис. 5.1. Список сотрудников с указанием их должностных окладов


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

ПРИМЕР

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



Таблица для определения...



Рис. 5.2. Таблица для определения количества сотрудников в отделах и количества сотрудников, занимающих определенные должности


В ячейки G1 и H1 введите названия столбцов (Отдел и Численность), а в ячейки G2:G4 - названия отделов (Контроля, Реализации, Снабжения).

В ячейки Н2:Н4 мы должны поместить формулы, с помощью которых будут производиться вычисления. Чтобы определить общее количество сотрудников в отделе, необходимо подсчитать, сколько ячеек с названием данного отдела имеется в диапазоне А2:А11 (то есть сколько раз упоминается в списке название отдела, столько в нем и сотрудников).

Наиболее подходящей для этой цели является функция СЧЕТЕСЛИ, которая подсчитывает количество в указанном диапазоне непустых ячеек, удовлетворяющих заданному критерию. Она относится к категории Статистические и имеет следующий синтаксис:
СЧЕТЕСЛИ(диапазон;условие)

Здесь диапазон - это интервал, в котором подсчитывается количество ячеек. В данном случае таковым является А2:А11. Аргумент условие должен представлять собой число, выражение или текст и определять, какие именно ячейки надо подсчитывать. В нашем примере условие соответствует названию отдела - Контроля. Панель функции СЧЕТЕСЛИ представлена на рис. 5.3.


Панель функции СЧЕТЕСЛИ



Рис. 5.3. Панель функции СЧЕТЕСЛИ


Название отдела можно внести непосредственно во второй аргумент функции СЧЕТЕСЛИ, как показано на рис. 5.3. Но значительно проще вместо текста поместить туда ссылку на ячейку G2, в которой таковой находится. Для заполнения ячеек Н2:Н4 формулами, выполните следующие действия:
1. Выделите диапазон ячеек Н2:Н4.
2. Вызовите посредством мастера функций панель функции СЧЕТЕСЛИ.
3. Поместите курсор в поле Диапазон и мышью выделите на рабочем листе ячейки А2:А11.
4. Нажмите функциональную клавишу [F4] для создания абсолютной ссылки на диапазон ячеек.
5. Перейдите в поле Условие и щелкните мышью на ячейке G2.
6. Нажмите комбинацию клавиш [Ctrl+Enter].

В результате этих действий в ячейке Н2 будет создана формула
=СЧЕТЕСЛИ($A$2:$A$11;G2)

Подобные формулы появятся также в ячейках НЗ и Н4, но во втором их аргументе будут указаны соответственно адреса ячеек G3 и G4.



Формулы для расчета...



Рис. 5.4. Формулы для расчета количества сотрудников в отделах и количества сотрудников, занимающих определенные должности




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



Рис. 5.5. Список новых окладов, полученный с применением диалогового окна Специальная вставка


Применение формул

Поскольку описанный выше метод расчета нас не устраивает, придется применить другой. Оставив индекс увеличения окладов в той же ячейке G4, поместим в диапазон ячеек F2:F11 формулы перерасчета с функцией округления. Для этого нужно выделить диапазон F2:F11, ввести формулу
=ОКРУГЛ(Е2*$G$4;0)

и нажать комбинацию клавиш [Ctrl+Enter].

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


Рабочий лист с формулами перерасчета



Рис. 5.6. Рабочий лист с формулами перерасчета


Если оклады в столбце F, полученные в результате вычислений, нас устраивают, можно произвести замену прежних их значений новыми. Для этого необходимо скопировать содержимое диапазона F2:F11 и, поместив табличный курсор в ячейку Е2, вызвать диалоговое окно Специальная вставка. В области Вставить этого окна нужно активизировать переключатель Значение, а затем нажать кнопку ОК.

Данный метод довольно прост и часто применяется на практике.

Использование коэффициентов

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

Для применения данной методики в наш рабочий лист нужно внести некоторые изменения. В ячейку G3 введите сумму прежнего оклада начальника отдела реализации (1400), а в ячейку G4 - коэффициент, на который увеличиваются все оклады. Будущий оклад начальника отдела реализации (то есть оклад после повышения) будет вычисляться в ячейке G5 по формуле
=ОКРУГЛ(G3*(1+G4);0)

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


Алгоритм расчета окладов



Рис. 5.7. Алгоритм расчета окладов


В столбец Н занесите все коэффициенты, используемые при перерасчете окладов, а в диапазон Е2:Е11 - формулы, по которым рассчитывается размер будущего оклада (на основании алгоритма, представленного на рис. 5.7). Как теперь должна выглядеть таблица с формулами, показано на рис. 5.8.


Расчет окладов с применением коэффициента (с формулами)



Рис. 5.8. Расчет окладов с применением коэффициента (с формулами)


ПРИМЕЧАНИЕ

Если в ячейку G4 ввести значение коэффициента, равное нулю, то в диапазоне Е2:Е11 отобразятся прежние оклады.

Если на предприятии еще раз будет принято решение о повышении окладов сотрудников, то достаточно внести в ячейку G4 новое значение коэффициента увеличения - и новые ставки в диапазоне Е2:Е11 будут рассчитаны автоматически.

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


Расчет окладов с применением коэффициента (с числовым примером)



Рис. 5.9. Расчет окладов с применением коэффициента (с числовым примером)


Обратите внимание на формулы, расположенные в столбце Е (рис. 5.8). Именно они отражают тот факт, что размер оклада сотрудника зависит либо от оклада начальника отдела реализации (если речь идет о начальнике), либо от оклада его начальника (рядовые сотрудники). В ячейке Е4 содержится формула
=ОКРУГЛ(5G$5*Н4;0)

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

Ячейка Е4 является управляющей для ячеек Е2 и Е9, где производится расчет сумм окладов начальников других отделов, а также для ячеек области Е5:Е8, в которых рассчитываются оклады рядовых сотрудников отдела реализации. Ячейки Е2 и Е9, в свою очередь, являются управляющими для ячеек, в которых производится расчет окладов для рядовых сотрудников отделов контроля и снабжения. В частности, ячейка Е9 управляет расчетами в ячейках ЕЮ и Е11.

В ячейке Е2 находится формула
=ОКРУГЛ($Е$4*Н2;0)

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

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

В ячейке ЕЗ располагается формула для расчета оклада сотрудника из отдела контроля:
=ОКРУГЛ($Е$2*НЗ;0)

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



Лист Оклады, содержащий фрагмент листа Сотрудники



Рис. 5.10. Лист Оклады, содержащий фрагмент листа Сотрудники


Теперь на одном листе электронных таблиц Excel собраны все необходимые нам данные:
- табельные номера из штатного расписания и табельные номера из базы данных сотрудников;
- фамилии из штатного расписания и фамилии из базы данных;
- даты приема на работу - для автоматического расчета стажа работы;
- даты увольнения - для контроля;
- оклады - для расчета премии за выслугу лет.

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



Результаты сортировки по фамилиям



Рис. 5.11. Результаты сортировки по фамилиям


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

Используя только кнопки сортировки, вы можете не получить желаемого результата. Для того чтобы произвести одновременную сортировку более чем по одному полю, активизируйте команду Данные/Сортировка. В результате ее выполнения появится диалоговое окно Сортировка диапазона (рис. 5.12). В раскрывающемся списке Сортировать по выберите столбец и установите переключатель сортировки (по убыванию или по возрастанию). То же нужно сделать и для второго поля.


Диалоговое окно Сортировка...



Рис. 5.12. Диалоговое окно Сортировка диапазона с выбранным порядком сортировки по окладу и по фамилии


Сортировка по второму полю (по фамилии) будет производиться только для тех строк, у которых в столбце "Оклад" имеются одинаковые значения. В нашем случае один и тот же размер оклада имеют работники Карпова и Петров. В соответствии с условием второй сортировки в списке сначала будет идти фамилия Карпова, а затем Петров. Полученный в результате такой сортировки список представлен на рис. 5.13.


Список отсортирован...



Рис. 5.13. Список отсортирован Сначала пс критерию "Оклад" (по убыванию), а затем по критерию "Фамилия" (в алфавитном порядке по возрастанию)


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



Мастер функций, категория Проверка свойств и значений



Рис. 5.14. Мастер функций, категория Проверка свойств и значений


Синтаксис функции имеет вид:
ЕПУСТО(значение)

Данная функция проверяет содержимое ячейки и, если ячейка ничего не содержит, возвращает логическое значение ИСТИНА. Если в ячейке находится какая-либо информация, функция возвращает значение ЛОЖЬ.


Панель функции ЕПУСТО



Рис. 5.15. Панель функции ЕПУСТО


Таким образом, с помощью этой функции можно выяснить, занесено ли какое-либо значение в ячейки столбца L. Если это так, то работник уволился. Если же ячейка пустая, значит, сотрудник еще работает.

Введите в ячейку N2 следующую формулу:
=ЕПУСТО(L2)

Заполните такими формулами диапазон ячеек N2:N11 (можете воспользоваться методом копирования). После этого вы увидите, что в ячейке N11 появится значение ЛОЖЬ, а в остальных ячейках - значение ИСТИНА. Следовательно, в столбце "Дата увольнения" введено какое-то значение. Остается только проверить, действительно ли сотрудник Щукина уволена.

Сравнение табельных номеров

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

С помощью функции ЕСЛИ можно добиться того, что значение в ячейке будет зависеть от выполнения определенных условий. Синтаксис функции имеет вид:
ЕСЛИ(лог_выражение;значение_если_истина;значение_если_ложь)

здесь лог_выражение (первый аргумент) - это любое значение или выражение, которое при вычислении дает значение ИСТИНА или ЛОЖЬ. Второй аргумент, значение_если_истина, - это значение, которое возвращается, если лог__выраже-ние имеет значение ИСТИНА. Третьим аргументом, значение_если_ложь, является значение, которое возвращается, если лог_выражение имеет значение ЛОЖЬ. Панель функции приведена на рис. 5.17.


Мастер функций, категория Логические



Рис. 5.16. Мастер функций, категория Логические





Панель функции ЕСЛИ



Рис. 5.17. Панель функции ЕСЛИ


Таким образом, функция ЕСЛИ возвращает значение, находящееся во втором аргументе, если условие в первом аргументе дает значение ИСТИНА, и значение, находящееся в третьем аргументе, если заданное условие при вычислении дает значение ЛОЖЬ.

В нашем случае в качестве логического выражения необходимо задать операцию сравнения на равенство табельных номеров из разных таблиц (ячейки D2 и G2). Если они одинаковы, то значением результата сравнения в первом аргументе является ИСТИНА, если нет - ЛОЖЬ.

Чтобы продемонстрировать работу функции ЕСЛИ на практике, выделите диапазон ячеек О2:О11, вызовите панель функции ЕСЛИ и задайте в качестве ее аргументов следующие выражения и числовые значения: D2=G2 (1-й аргумент), 1 (2-й аргумент) и 2 (3-й аргумент).

После нажатия комбинации клавиш [Ctrl+Enter] в ячейке О2 появится следующая формула:
=ЕСЛИ(D2=G2;1;2)

Как выглядит лист Оклады после ввода в диапазон О2:О11 указанной формулы, показано на рис. 5.18.

Обратите внимание на ячейки ОЗ и О10, в которых находится выделенное жирным шрифтом значение 2, а также на строки 3 и 10. Табельные номера в этих строках не совпадают. Поэтому первый аргумент функции ЕСЛИ при сравнении значений возвратил значение ЛОЖЬ, а ему соответствует значение, внесенное в третий аргумент, то есть число 2. Там же, где табельные номера совпадают, функция возвращает значение второго аргумента - число 1.


Результат применения функции ЕСЛИ для проверки соответствия табельных номеров



Рис. 5.18. Результат применения функции ЕСЛИ для проверки соответствия табельных номеров


Сравнение фамилий

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

Первый путь нас не устраивает, поэтому воспользуемся специальными текстовыми функциями Excel. С помощью этих функций мы должны:
- сосчитать количество символов в ячейке С2 (где находится фамилия и инициалы сотрудника анализируемой нами строки) до первого пробела;
- извлечь из ячейки С2 количество символов, расположенных слева от первого пробела.

Для определения количества символов, предшествующих первому пробелу, можно применить текстовую функцию НАЙТИ. Синтаксис ее следующий:
НАЙТИ(искомый_текст;просматриваемый_текст;нач_позиция)

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

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

Первый символ в аргументе просматриваемый_текст имеет номер 1. Если аргумент нач_позиция опущен, то он считается равным 1.

Вызвав панель функции НАЙТИ (рис. 5.19), в поле Найти_текст введите с клавиатуры пробел. В поле Внутр_текст введите ссылку на ячейку С2, а третий аргумент оставьте незаполненным. В ячейке Р2 появится следующая формула:
=НАЙТИ ( " " ; С2 )


Панель функции НАЙТИ



Рис. 5.19. Панель функции НАЙТИ


Применив далее функцию ЛЕВСИМВ
=ЛЕВСИМВ(С2;Р2-1)

вы получите в ячейке Q2 фамилию из ячейки С2, но без инициалов. (Панель функции ЛЕВСИМВ приведена в главе 4, на рис. 4.4.)

Первым аргументом функции ЛЕВСИМВ является адрес ячейки, где расположена фамилия с инициалами. Вторым аргументом должно быть число символов, из которого состоит фамилия. Поэтому, если определено положение пробела, следующего после фамилии, то число символов фамилии будет равно номеру позиции этого пробела минус 1. Таким образом, во втором аргументе функции ЛЕВСИМВ из значения ячейки Р2, определенного функцией НАЙТИ, следует вычесть значение 1.

Теперь, используя функцию ЕСЛИ, в ячейке R2 можно сравнить фамилию, находящуюся в базе данных сотрудников, и фамилию из списка с окладами, полученную в результате обработки.

В ячейке R2 должна использоваться такая формула:
=ЕСЛИ(Н2=Q2;ИСТИНА;ЛОЖЬ)

Если фамилии в обоих списках совпадут, то в ячейке R11 появится значение ИСТИНА, если не совпадут - значение ЛОЖЬ.

Чтобы определить, выполняются ли псе три условия, применим логическую функцию И. Функция возвращает значение ИСТИНА, если все аргументы имеют значение ИСТИНА, и значение ЛОЖЬ, если хотя бы один из аргументов имеет значение ЛОЖЬ. Синтаксис функции таков:
И(логическое_значение1; логическое_значение2; ...)

где логическое_значение 1, логическое_значение2, ... - это проверяемые условия (их может быть от 1 до 30), которые имеют либо значение ИСТИНА, либо значение ЛОЖЬ.

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

В нашем случае результаты сравнений находятся в ячейках N2, О2 и R2. Вызвав панель функции И (рис. 5.20), введите в качестве ее аргументов ссылки на эти ячейки. В ячейке S2 появится новая формула:
=И(N2;O2;R2)


Результат сравнения соответствия двух рассматриваемых таблиц



Рис. 5.21. Результат сравнения соответствия двух рассматриваемых таблиц





Рабочий лист с формулами для определения соответствия двух таблиц



Рис. 5.22. Рабочий лист с формулами для определения соответствия двух таблиц


Создание сложной формулы методом вложения

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

Для создания вложенной формулы выполните следующие действия.
1. Скопируйте из ячейки Р2 формулу без знака равенства.
2. Перейдите в ячейку Q2 и в строке формул выделите ссылку на ячейку Р2 и произведите вставку текста из буфера, нажав комбинацию клавиш [Ctrl+V].
3. Скопируйте из ячейки Q2 формулу без знака равенства.
4. Перейдите в ячейку R2 и в строке формул выделите ссылку на ячейку Q2 и произведите вставку текста из буфера, нажав комбинацию клавиш [Ctrl+V].

В результате этих манипуляций в ячейке R2 должна появиться такая формула:
=ЕСЛИ(Н2=ЛЕВСИМВ(С2;НАЙТИ(" ";С2)-1);ИСТИНА;ЛОЖЬ)

Аналогичным образом внесите формулы из ячеек N2, О2 и R2 в формулу, находящуюся в ячейке S2. Полученная формула будет выглядеть так:
=И(ЕПУСТО(L2);ЕСЛИ(D2=G2;ИСТИНА;ЛОЖЬ);
ЕСЛИ(Н2=ЛЕВСИМВ(С2;НАЙТИ(" ";С2)-1);ИСТИНА;ЛОЖЬ))



Таблица с условиями начисления премии



Рис. 5.23. Таблица с условиями начисления премии


Определение полного количества лет работы на предприятии

Следующая наша цель - определить полное количество лет, проработанных каждым из сотрудников на данном предприятии (расчеты производятся по состоянию на 31.12.2001). Вычисления будут выполнены в ячейке Х2. Занесите в эту ячейку такую формулу:
=$V$2-K2

В данном случае мы вычитаем из даты 31.12.2001, находящейся в ячейке V2, дату приема сотрудника на работу, указанную в базе данных (ячейка К2). В результате мы получаем общее количество дней, которые он отработал на данном предприятии.

Далее это значение необходимо разделить на среднее число дней в году, которое, как вы помните, принимается равным 365,25. Предназначенная для этой цели формула находится в ячейке Y2. Выглядит она так:
=Х2/365,25

В ячейке Z2 дробная часть от результата деления в ячейке Y2 отбрасывается, и в итоге мы получаем целое количество лет:
=ОТБР(Y2)

Здесь применяется математическая функция ОТБР (рис. 5.24). Функция усекает число до целого, отбрасывая дробную часть. Синтаксис этой функции имеет вид:
ОТБР(число;число_разрядов)

где число - усекаемое число, число_разрядов - число, определяющее точность усечения. Значением по умолчанию аргумента число_разрядов является 0.


Панель функции ОТБР



Рис. 5.24. Панель функции ОТБР


Предположим, первый аргумент нашей функции - это число 123,123. А вот что мы получим, если в качестве второго аргумента поочередно используем такие значения:
- -2 - результатом вычислений будет 100,000;
- 0 (или не указано) - результатом вычислений будет 123,000;
- 2 - результатом вычислений будет 123,120.

Расчет суммы премии

На данном этапе расчет производится с использованием логических функций ЕСЛИ. Первая формула в ячейке АА2 (рис. 5.25) создается по принципу: если служащий проработал менее года (значение ячейки Z2 сравнивается со значением ячейки U4), то премия равна произведению значения оклада, указанного в ячейке Е2, на коэффициент, внесенный в ячейку V4. Таким образом, в ячейке АА2 используется формула, приведенная ниже:
=ЕСЛИ($Z2Так как коэффициент в ячейке V4 отсутствует, то есть равен нулю, то и размер премии равен нулю.

Аналогичные формулы введены в ячейки АВ2, АС2 и AD2:
=ЕСЛИ($Z2=ECЛM($Z2=ECЛИ($Z2Но формула в ячейке АЕ2 несколько от них отличается:
=ЕСЛИ($Z2>=$U$8;$E2*$V$8;0)

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


Формулы для расчета суммы премии в зависимости от стажа работы



Рис. 5.25. Формулы для расчета суммы премии в зависимости от стажа работы




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



Рис. 5.26. Структура листа Оклады после создания вложенной формулы


Скрытие столбцов

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

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

После скрытия дополнительных столбцов лист Оклады будет выглядеть так, как показано на рис. 5.27.


Лист Оклады после скрытия столбцов



Рис. 5.27. Лист Оклады после скрытия столбцов




Диалоговое окно Специальная вставка в текстовом редакторе Word



Рис. 5.28. Диалоговое окно Специальная вставка в текстовом редакторе Word


В результате проделанных манипуляций на странице текстового документа появится объект, связанный с документом Excel (рис. 5.29). Изменения, вносимые в электронные таблицы, будут отражаться в документе Word.

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


Текстовый документе приказом в режиме разметки страницы



Рис. 5.29. Текстовый документе приказом в режиме разметки страницы




Алгоритм выделения наименований



Рис. 5.30. Алгоритм выделения наименований



5. Как правило, повторяющиеся записи удаляют из списков вручную. Но это часто приводит к ошибкам. Например, нужные записи могут быть удалены, а повторяющиеся, наоборот, остаться незамеченными. Для того чтобы проверить, насколько точно выполнена операция, приходится производить ее повторно. Правда, операцию по удалению дублирующих друг друга записей можно выполнить и автоматически, используя логическую функцию ЕСЛИ. Для этого необходимо, выделив диапазон В15:В24, ввести в ячейку В15 формулу
=ЕСЛИ(В15=В16;"ЯЯЯ";А15)

и нажать комбинацию клавиш [Ctrl+Enter] (в результате чего эта формула появится во всех ячейках диапазона). Таким образом, если две рядом расположенные по вертикали ячейки имеют одинаковое содержимое, функция возвратит значение ЯЯЯ. В противном случае результатом станет значение, находящееся в ячейке, которая расположена ниже. (Буквы "ЯЯЯ" используются потому, что наличие в списке такого наименования маловероятно.)
6. Скопируйте ячейки из диапазона В15:В24 в буфер обмена, а затем вставьте их в предварительно выделенную ячейку С15. Эту операцию необходимо выполнить посредством диалогового окна Специальная вставка, нажав в нем переключатель Значения. В диапазоне С15:С24 теперь будут находиться не формулы, а значения.
7. Выполните сортировку указанного диапазона ячеек, нажав кнопку Сортировка по возрастанию. Ячейки со значениями ЯЯЯ будут расположены в нижней части области, а названия отделов - в верхней.
8. Выделите диапазон ячеек с названиями отделов и вставьте полученный таким образом список в нужное место таблицы. В примере на рис. 5.2 это ячейки G2:G4.


Внешний вид листа после операции выборки



Рис. 5.31. Внешний вид листа после операции выборки


ПРИМЕР

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

Однако если бы сотрудники планово-экономического отдела воспользовались всеми описанными в данной главе возможностями программы Excel, то такую работу они, несомненно, выполнили бы менее чем за один день.

Соединение двух списков



Соединение двух списков

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

Итак, в нашем распоряжении имеется два документа:
- рабочий лист, где содержатся список сотрудников и их оклады (присвоим этому листу имя Оклады, а файл, в котором он находится, назовем Штат)',
- рабочий лист с базой данных сотрудников, рассмотренный в предыдущей главе. Из него мы можем взять информацию о непрерывном стаже работы сотрудника на данном предприятии (рис. 4.19).

Для соединения двух таблиц откройте две книги, содержащие списки, В книге База на листе Сотрудники выделите столбцы A:U и скопируйте их в буфер обмена. Перейдите в книгу Штат и, выделив столбец G на листе Оклады, произведите вставку из буфера. База данных сотрудников разместится в диапазоне G1:AA11.

ПРИМЕЧАНИЕ

Обратите внимание на то, что ширина столбцов после вставки осталась такой же, как и в рабочем листе Сотрудники.

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

Чтобы удалить ненужные столбцы, сначала следует их выделить (одновременное выделение столбцов можно произвести, удерживая нажатой клавишу [Ctrl]), a затем вызвать контекстное меню и выбрать в нем команду Удалить. Удаление можно выполнить и посредством команды Правка/Удалить.

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


Сортировка данных



Сортировка данных

Довольно часто данные требуется представить в соответствии с некоторым заданным критерием: в порядке возрастания, убывания либо в алфавитном порядке. Изменение порядка расположения строк называется сортировкой.

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


Составление перечней



Составление перечней

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

Предлагаемый нами метод решения этой задачи мы продемонстрируем на столбце А, который содержит названия отделов.
1. Выделите диапазон ячеек А2:А11 и скопируйте его содержимое в буфер обмена.
2. Поместите табличный курсор в ячейку А15 и выполните вставку из буфера обмена. Вставку можно произвести практически в любую свободную область листа. Если диапазон выделяемых ячеек достаточно большой, можно скопировать весь столбец и поместить его на чистый рабочий лист.
3. Выделите весь вставленный диапазон ячеек.
4. На стандартной панели управления нажмите кнопку Сортировка по возрастанию или Сортировка по убыванию. В результате этой операции все названия отделов будут упорядочены в порядке возрастания или убывания по алфавитному признаку.


Создание отдельного списка с указанием окладов сотрудников



Создание отдельного списка с указанием окладов сотрудников

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

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

Расположить создаваемую таблицу можно в любом месте рабочего листа. Мы поместим ее в левый верхний угол. На рис. 5.1 показан лист со списком сотрудников, в котором данные расположены следующим образом:
- столбец А - наименование отдела (подразделения);
- столбец В - должность работника;
- столбец С - фамилия и инициалы;
- столбец D - табельный номер;
- столбец Е - должностной оклад.

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


Вложение формул



Вложение формул

Выполним операцию вложения формул из ячеек Х2 и Y2 в формулу, которая находится в ячейке Z2:
=ОТБР(($V$2-K2)/365,25)

Процесс вложения формул с функциями ЕСЛИ начнем с ячейки АЕ2 - мы вкладываем ее в ячейку AD2, а из ячейки AD2 - в ячейку АС2 и т. д. В ячейку АА2 введем формулу:
=ECЛИ($Z2ECЛИ($Z2ЕСЛИ($Z2EСЛИ($Z2ЕСЛИ($Z2>=$U$8;$Е2*$V$8;0)))))

Формулу из ячейки Z2 вложим вместо ссылок на эту ячейку в формулу ячейки АА2:
=ЕСЛИ(ОТБР(($V$2-K2)/365,25)ЕСЛИ(ОТБР(($VS2-K2)/365,25)ЕСЛИ(ОТКР(($V$2-K2)/365,25)ЕСЛИ(ОТБР(($V$2-K2)/365,25)ЕСЛИ(ОТБР(($V$2-K2)/365,25)>=$U$8;$E2*$V$8;0)))))

Теперь в расчетах участвуют только формулы, расположенные в ячейках S2 и АА2. В ячейке AF2 создадим формулу, основанную на логической функции ЕСЛИ:
=ЕСЛИ(S2;АА2;"Ошибка!")

Данная формула определяет, какое логическое значение находится в ячейке S2. Если это значение ИСТИНА, формула возвращает сумму премии. Если значение ЛОЖЬ, то возвращается сообщение Ошибка!.

Обратите внимание, что третьим аргументом формулы является текст. Это означает, что в функцию ЕСЛИ можно вводить любой текст (в частности, разного рода сообщения).

В формулу из ячейки AF2 вместо ссылок на адреса ячеек мы введем находящиеся в них формулы. В результате получим такую формулу:
=ЕСЛИ(И(ЕПУСТО(L2);ЕСЛИ(D2=G2;ИСТИНА;ЛОЖЬ);
ЕСЛИ(Н2=ЛЕВСИМВ(С2;НАЙТИ(" ";С2)-1);ИСТИНА;ЛОЖЬ));
ЕСЛИ(ОТБР(($V$2-K2)/365,25)ЕСЛИ(ОТБР(($V$2-K2)/365,25)ЕСЛИ(ОТБР(($V$2-K2)/365,25)ЕСЛИ(ОТБР(($V$2-K2)/365,25)ЕСЛИ(ОТБР(($V$2-K2)/365,25)>=$U$8;$E2*$V$8;0)))))/"Ошибка!")

Теперь рассмотрим лист Оклады целиком, со всеми используемыми для расчета таблицами (рис. 5.26).

Лист состоит из следующих элементов:
- список с окладами (диапазон А1:Е11);
- фрагмент базы данных сотрудников (G1:L11);
- таблица с условиями начисления премии (U1:V8);
- таблица с информацией о количестве полных проработанных на предприятии лет(Z1:Z11);
- область вложенных формул (AF2:AF11).