Автоматизация расчета зарплаты
Расчет зарплаты в соответствии с действующим законодательством достаточно сложный процесс, учитывающий множество нюансов. В небольшом примере невозможно описать все ситуации, которые могут возникнуть, но большинство стандартных ситуаций учесть можно.
Для расчетов зарплаты будем использовать рабочую книгу Excel с множеством листов. На отдельном листе расположены неизменные исходные данные — список сотрудников и некоторые дополнительные данные. Расчеты в каждом месяце ведутся на отдельных листах. Стандартные бланки — расчетная и платежная ведомости также расположены на отдельных листах и заполняются автоматически.
Рис 8.1. Список сотрудников и праздники |
Вначале нужно ввести исходные данные, неменяющиеся от месяца к месяцу, то есть список сотрудников предприятия. Отметим, что при принятии на работу или увольнении работника, описанные формулы нужно усложнить, добавив дополнительную проверку, но в нашем примере такие варианты не предусмотрены. При поступлении нового сотрудника он просто добавляется в список, а при увольнении можно удалить сотрудника из списка. В первой строке введите заголовок списка, а во второй — заголовки столбцов. В остальных строках нужно ввести данные о сотрудниках (Рис.8.1).
Обязательно нужно ввести табельный номер, фамилию и оклад сотрудника.
Количество и состав остальной информации, помещаемой в следующие столбцы
таблицы, зависит от того, какую часть расчетов зарплаты вы хотите автоматизировать, а также от того, какой состав сотрудников на предприятии, то есть какие особенности расчета зарплаты учитываются для сотрудников. Создайте список сотрудников и введите информацию о
нескольких сотрудниках, чтобы использовать ее в дальнейших расчетах. Чтобы не путаться в дальнейшем с названиями листов, переименуйте текущий лист, назвав его Сведения. В правой части листа мы расположили список праздников текущего года. Он нужен для автоматического подсчета рабочих дней в любом месяце. Если вы не хотите определять автоматически эту информацию, а ввести ее вручную, вводить список праздников не нужно. Для тех, кто решил автоматизировать определение рабочих дней, необходимо учесть несколько правил. Все даты вводятся как дата, а не как текст! Хотя в примере в ячейке вы видите 01 января, в действительности в ячейку введена дата 01.01.02, после чего применен формат [$-FC19]ДДММММ.Совсем не обязательно применять именно этот формат, но вводить нужно именно дату, а не просто текст. Даты необходимо вводить с учетом выходных дней в текущем году. Если вы укажите, что, например, праздником является 1 января 2010 года, то это не значит, что праздником будет считаться 1 января 2011 года. Также, если выходной день перенесен на другое число, программа не может самостоятельно догадаться об этом. Вы должны ввести в список праздников все дополнительные выходные дни, чтобы Excel смог вычислить количество рабочих дней в нужном месяце.
Чтобы работало автоматическое определение количества рабочих дней, должен быть установлен Пакет анализа.. Для установки Пакета анализа нужно выбрать команду Сервис → Надстройки и установить в появившемся диалоге флажок рядом с названием Пакет анализа. Вслучае, когда данного названия нет в диалоге, нужно выполнить дополнительную установку Excel, чтобы добавить в систему нужную надстройку.
После того, как введены исходные данные, нужно ввести формулы в лист расчетов зарплаты. Как отмечалось выше, на листе выполняется расчет зарплаты в конкретном месяце, а скопировав содержимое листа на другой лист, вы можете рассчитать зарплату за другой месяц. Перейдите на новый лист и приготовьтесь вводить расчетные формулы.
В заголовке, кроме названия таблицы, нужно ввести дату, для которой выполняются расчеты. При этом нужно ввести именно дату, например 1.01.10, а не слова «Январь 2010». Чтобы в таблице выводилось название месяца и год, нужно выбрать соответствующий формат даты. В нашем примере дата введена в ячейку J1,и именно эта ячейка используется в формулах.
Далее нужно определить количество рабочих дней. Если вы не ввели ранее список праздников или не установили пакет анализа или просто не доверяете Excel в определении количества рабочих дней, введите вручную нужное число в ячейку D2. В противном случае введите в эту ячейку формулу
=ЧИСТРАБДНИ(ДАТА(ГОД(J1);МЕСЯЦ(J1); 1);КОНМЕСЯЦА(J1;0);
Сведения!G3:G13)
Функция ЧИСТРАБДНИ вычисляетколичество рабочих дней между датами ДАТА(ГОД(J1);МЕСЯЦ(J1);1)иКОНМЕСЯЦА(J1;0), то есть между первым и последним числом нужного месяца, который введен в ячейку J1. Аргумент Сведения!G3:G13 задает список праздников, о котором было рассказано выше.
С четвертой по шестую строку вводятся заголовки расчетного листа, а начиная с седьмой строки - расчетные формулы и исходные данные. Первые 11 столбцов предназначены для определения величины начислений (Рис.8.2).
Рис.8.2. Левая часть расчетного листа |
Введите названия столбцов, после чего приступим к вводу нужных формул.
Для автоматической нумерации по порядку применим прием, описанный в практической работе №6. Введите в ячейку А7 формулу =ЕСЛИ(В7< >"";1;""), тоесть, если введен табельный номер, в ячейке выводится единица, а в противном случае выводится пробел. Введите в ячейку A8формулу=ЕСЛИ(В8<>"";А7+1;"”) ипротянитеее на расположенные ниже строки, чтобы количество строк с формулами было не меньше, чем количество работников предприятия. Табельный номер в следующем столбце вводится вручную, и автоматически появляется порядковый номер в первом столбце.
Фамилия вставляется с помощью функции ВПР, которая используется в предыдущих практических работах. Введите в ячейку С7формулу =ЕСЛИ(В7<>"";ВПР(В7;Сведения!$А$3:$Е$100;2;ЛОЖЬ);””)и протяните ее на следующие строки. Если введен табельный номер, из списка сотрудников берется фамилия, соответствующая этому номеру. Аналогично в ячейку D7введите
=ЕСЛИ(В7< > "";ВПР(В7;Сведения!$А$3:$Е$100;3;ЛОЖЬ)и протяните эту формулу на следующие строки. . В данный столбец помещается оклад.
Количество отработанных дней и выданный аванс вводятся вручную, а зарплата вычисляется по простой формуле =D7/$D$2*E7. Введите ее в ячейку G7иразмножьте на расположенные ниже ячейки. В нашем примере отпускные и оплата больничного листа заполняется вручную, хотя вы можете добавить формулы для их вычислений. Также вручную заполняются прочие доплаты, например премии сотрудникам. В итоге для получения начисленной суммы нужно в ячейку К 7ввести формулу =CYMM(G7:J7)и размножить ее на остальные ячейки данного столбца.
Для лучшего внешнего вида скроем нулевые значения ячеек. Для этого выделите ячейки, в которых расположены разные суммы, и выберите команду меню Формат → Ячейки. Появится диалог настройки формата, в котором перейдите на вкладку Число и выберите в списке все форматы. Введите тип формата 0,00;0,00;#.Теперь положительные и отрицательные числа будут выводиться в формате с двумя знаками после запятой, а нули не будут отображаться.
После того, как вы ввели данные о начислениях, нужно заполнить ячейки, рассчитывающие вычеты и сумму к выдаче (Рис.8.3). В столбцах с Lпо Y определяется не только сумма к выдаче, но и различные налоги. Введите заголовки столбцов и сгруппируйте ячейки, чтобы получить такую же таблицу, как у нас.
Рис.8.3. Правая часть расчетного листа |
Вначале рассчитывается ЕСН. Никаких сложностей при вычислении частей этого налога нет. Например, для определения части налога в ФОМС, нужно ввести формулу =К7*0,2%.При желании, проценты можно ввести на листе сведений, а при расчете ссылаться на нужную ячейку, но проще ввести процент прямо в формулу. Так же, как и ЕСН, рассчитывается и страхование травматизма. Для расчета подоходного налога учитываются различные вычеты из налогооблагаемой базы. В ячейку U7вводится формула
=ЕСЛИ(В7< >"";ВПР(В7;Сведения!$А$3:$Е$100;5;ЛОЖЬ);"")позволяющаявставить количество детей сотрудника. Отметим, что если по закону выплата на ребенка удваивается, нужно про это указать, что у сотрудника двое детей. Сумма вычета за детей рассчитывается по формуле =U7*300. В ячейке W7 вводятся дополнительные льготы, установленные для отдельных категорий граждан. Для остальных льгота в 400 рублей вводится в столбец Т.Введите в ячейку T7 формулу =ЕСЛИ(И(В7< >"";W7=0);400;0). Так как эта льгота прекращается при получении 20000, в столбец Sвводится суммарный полученный доход. В принципе, его также можно рассчитать автоматически, но в нашем простом примере это не делается.
Чтобы получить сумму налога на доходы физических лиц, введите в ячейку Х7формулу
=ЕСЛИ(В7< > "";ЕСЛИ(S7<20000;(K7-T7-V7- W7) *13%;
(K7-V7-W7)*13%);"").
Как и в других формулах, результат выводится только, если введен табельный номер. Начисленная сумма без сумм вычетов умножается на 13 процентов. При этом если сумма выплат в этом году не превысила 20000 рублей дополнительно используется вычет в размере 400 рублей. Сумма к выдаче вычисляется в ячейке Y7 по простой формуле =ЕСЛИ(B7< >"";K7-F7-X7; ""), то есть из начисленной суммы вычитается выданный аванс и сумма подоходного налога.
Далее установите форматы, которые скрывают нулевые значения, как и для первой части таблицы, и размножьте формулы на нужное количество строк. Еще правее, в столбцах АА и АВ, можно ввести названия и общие суммы по разным столбцам, например, Всего начислено и =СУММ(K7:K100) или Всего травматизм и=CУММ(R7:R100).
Вы можете изменить таблицу в соответствии с особенностями расчета зарплаты на вашем предприятии, но основные приемы, изложенные выше, подходят практически везде. В результате вы получите все нужные данные, на основании которых можно автоматически заполнить разные стандартные документы.
Расчеты выполняются на разных листах, каждый для своего месяца. Стандартные формы вряд ли нужно размножать, поэтому необходимо вставлять информацию с различных листов в одни и те же бланки. Для того чтобы знать, какой лист используется для текущих расчетов, его имя нужно ввести в какую-либо ячейку. Мы выделили для этого ячейку H1 листа Сведения. Вы можете называть листы так, как вам больше нравится, но перед тем, как заполнять стандартные формы, введите в эту ячейку имя текущего расчетного листа, например, Лист5или Октябрь.
Чтобы получить данные из нужной ячейки, например табельный номер первого сотрудника в списке, следует воспользоваться формулой =ДВССЫЛ(АДРЕС(7;2;;;Сведения!$Н$1)). Функция ДВССЫЛ возвращаетзначение ячейки, адрес которой указан в качестве аргумента. Функция АДРЕС возвращает адрес ячейки, расположенной на листе, имя которого задано в ячейке Сведения!$Н$1.Первые два аргумента задают номер строки и столбца, так что с помощью описанной формулы можно получить содержимое ячейки В7 нужного листа. Возможно, формулы в ячейках стандартных бланков получатся громоздкие, но достаточно простые, и вам не понадобится вручную заполнять множество документов.
Заполнение нужных полей простое и однообразное занятие. Вы берете поле стандартного бланка и находите аналогичное поле листа расчетов. Вставляя формулу, аналогичную описанной выше, вы заполняете поле и переходите к следующему. При этом могут понадобиться дополнительные вычисления. Например, если на расчетном листе в ячейке АВ10выводится общая сумма выплаты, вам может понадобиться вывести ее прописью. Для этого введите формулу
=СуммаПрогшсью(ДВССЫЛ(АДРЕС(10;28;;;Сведения!$Н$1)))
Функция СуммаПрописью должна быть введена дополнительно. Аналогично вы можете применять и другие функции, используя в качестве аргумента описанную формулу. А какие стандартные бланки можно заполнить автоматически на основе полученной информации? Таких бланков достаточно много.
Так как в расчетном листе вычисляются различные налоги, можно сразу заполнить платежные поручения для их перечисления. О заполнении бланка платежного поручения рассказывалось в практической работе №6-Автоматизация создания платежных поручений. При уплате налогов нужно заполнить ячейки информацией о плательщике и получателе, а сумму взять из расчетного листа. Аналогично можно заполнить расходный кассовый ордер, по которому из кассы выдаются деньги на зарплату. Бланк расходного кассового ордера очень похож на бланк приходного кассового ордера, рассмотренного выше в практической работе №2-Объединение таблиц с автоматизацией расчетов.
Также можно автоматически заполнить расчетную ведомость, то есть стандартную форму № Т-51, создание которой описывалось в практической работе №1, и платежную ведомость, то есть стандартную форму № Т-53. Для создания платежной ведомости следует применить точно те же приемы, что и при создании расчетной ведомости. Так как платежная ведомость содержит некоторые поля расчетной ведомости, и не содержит никакой дополнительной информации, ее заполнение не представляет никаких трудностей, если вы сумели заполнить расчетную ведомость. Рассмотрим некоторые особенности описания формул для добавления нужных значений в обе ведомости.
Вначале нужно ввести порядковый номер. Для этого используется очень длинная, но чрезвычайно простая формула. Если, как в нашем примере, номер в расчетную ведомость вводится в первый столбец, начиная с пятой строки, в ячейку А5введите формулу
=ЕСЛИ(ДВССЫЛ(АДРЕС(СТРОКА() +2;1;;;Сведения!$Н$1))< > "";
ДВССЫЛ(АДРЕС(СТРОКА() +2;1;;;Сведения!$Н$1));"")
Если в первом столбце расчетного листа на строке с номером, вычисляемым по формуле CTPOKA() +2, есть номер, то он проставляется в расчетную ведомость. Так как мы ввели формулу в ячейку пятой строки, то результатом вычисления будет семь, то есть первая строка списка в расчетном листе. Если у вас списки расположены в других ячейках, измените соответственно формулу. Размножив формулу по другим ячейкам первого столбца расчетной ведомости, вы добавите автоматическую нумерацию для всех заполненных строк.
Остальные ячейки заполняются еще проще. Например, чтобы вывести в ячейке СЗ фамилию сотрудника, введите в нее формулу =ЕСЛИ(А5<>” “;ДВССЫЛ(АДРЕС(6+А5;3;;;Сведения!$Н$1));"). Еслиномер по порядку отсутствует, выводится пустое место. В противном случае выводится значение из строки 6+А5, то есть из седьмой строки. При этом используется третий столбец, то есть берется нужная фамилия. Размножив формулу, вы заполните все ячейки нужного столбца. Аналогично, для вывода выплачиваемой суммы введите в нужную ячейку расчетной ведомости формулу
=ЕСЛИ(А5<>"";ДВССЫЛ(АДРEC(6+А5;25;;;Сведения!$Н$1));"").
Если для некоторых столбцов отсутствуют исходные данные, можно ввести их вручную, но лучше добавить нужную информацию на лист сведений или на расчетный лист. Например, можно добавить профессию сотрудника, добавив еще один столбец в список сотрудников. Например, профессия расположена в столбце F. В этом случае в ячейку расчетной ведомости нужно вставить формулу
=ЕСЛИ(А5< > "";ВПР(В5;Сведения!$А$3:$Е$100;6;ЛОЖЬ);"")
Как и в расчетном листе, профессия определяется по табельному номеру. Будьте особо внимательны! Придобавлении строк и столбцов в таблицу нужная информация может оказаться в ячейке с другим адресом. Например, вначале название используемого расчетного листа располагалось в ячейке H1,но при добавлении столбца для профессии ячейка поменяла своя адрес на I1.Ссылки в формулах изменились автоматически, но если вы будете вводить новые формулы, в них нужно указывать уже Сведения!$I$1, а не Сведения!$Н$1.
Создайте 11листов и скопируйте на них данные с первого расчетного листа. Так вы можете выполнять расчет зарплаты для каждого месяца. В новом году лучше создать новую копию рабочей книги. Вы можете добавить к рабочей книге дополнительные листы по количеству сотрудников, и автоматически вести расчеты начислений и удержаний для каждого работника. Все данные для этого имеются, и нужно просто сложить нужные суммы с разных расчетных листов. Вы без труда сможете самостоятельно выполнить эту работу при необходимости.
Описанные приемы работы позволяют создать сложную, практически полностью автоматизированную систему расчета заработной платы с помощью электронных таблиц Excel.