Совокупная годовая проблема
Совокупная годовая проблема
Очухавшись от многократных празднований Нового года, белорусские граждане обнаружили еще один подарок. Нашли они его, правда, не под елкой, а на стенке в метро, но от этого острота ощущений нисколько не пострадала.
Едва переварив салаты, многие из нас столкнулись с необходимостью отчитаться перед любимым государством за "совокупный годовой доход", от которого, разумеется, после месячных праздников не осталось ни рожек, ни ножек. Постпраздничная головная боль сменилась новой.
Все принялись считать. Наиболее башковитые начали складывать суммы и брать проценты в уме. Другие принялись царапать карандашом бумажки, мысленно чертыхаясь по поводу получающихся некрасивых чисел. Тем, кто писать и считать уже давно разучился, ничего не остается, как привлечь на помощь компьютер. Благо отсутствием упомянутых навыков, как известно, отличаемся как раз мы - пользователи.
Калькулятор, который есть в Windows, хорошее подспорье, но и он не позволяет увидеть картину в целом. Если подсчитать, сколько придется отстегнуть государству за прошлогодние трудовые потуги, на нем еще можно, то разработать стратегию смягчения последствия "подарка" на новый финансовый год уж точно не получится. Тут надо что-нибудь помощнее...
Как-то утром в понедельник я проснулся со стойким ощущением, что пора заняться расчетами и мне. Посмотрев на чересчур длинные числа, которые предстояло обрабатывать по неведомым правилам, я понял, что справиться с этим может только Excel. Уважаемая корпорация Microsoft не только осложняет жизнь пользователям, ее продукты иногда приходят им на помощь. Проверим это на практике?
Приступая к возне с непонятной задачей, как я еще помню из программистского прошлого, желательно перво-наперво определить, что хотелось бы увидеть в качестве ее решения. В случае с совокупным годовым доходом (тьфу, выражение-то какое противное, лучше буду звать его трехбуквенным словом - СГД) это более или менее понятно. Приятно было бы увидеть сам СГД, затем ознакомиться с тем, сколько из него уже изъято в виде налогов, сколько хочет получить государство и, наконец, сколько еще придется доплатить.
Таким образом, получаются четыре переменные, которые я расположил в ячейках C1, C2, C3 и C4 соответственно. В столбце В я поместил комментарии, которые отнюдь не излишни, если вам придется воспользоваться расчетной таблице через пару дней после ее создания.
Итак, выходные переменные определены. Согласно правилам теперь стоит прикинуть, на основании чего можно их вычислить. В нашем тяжелом случае входными данными для расчета послужит любезно предоставляемая предприятиями в распоряжение налоговой инспекции информация о полученных вами за год доходах и удержанных по ним налогах. Эти сведения можно поместить в табличку из двух колонок. Пусть в ячейках В7:В16 будут проставлены начисленные суммы, а справа, в ячейках С7:С16, - соответствующие им налоговые отчисления.
Есть кроме того, слабая надежда вывести из-под молота налога некоторые суммы, объявив их льготируемыми, материальными затратами - ну, вы знаете, и прочая такая чепуха. Громко назвав это все льготируемым доходом, помещаю еще одну табличку для ввода значений в ячейках В18:В27. Расположение таблиц для ввода данных и выходных переменных рекомендую посмотреть на копии экрана, чтобы не пытаться переварить в уме диапазоны ячеек и прочую белиберду. Наш лозунг - пусть Excel думает!
Теперь надо заняться программированием расчетной таблицы. Это не так сложно, раз даже с утречка в понедельник за десять минут можно справиться.
Прежде чем приступить к установлению связей между ячейками расчетной таблицы давайте занесем в нее шкалу налоговых ставок, по которой, собственно, все и будет неизвестным пока путем рассчитываться. Из газеты я почерпнул необходимые сведения. В ячейки с Е2 по Е8 в столбец я занес суммы, при превышении которых изменяется взимаемый с нас, бедных, процент. Отсутствие числа в ячейке Е2 пусть вас не смущает - так компьютер показывает ноль в денежном формате. Остальные числа пояснять, надеюсь, не требуется.
Рядом, в ячейках F2:F8, я поместил то, что называлось в газете "n-ная сумма плюс некоторый процент". В принципе, эти числа можно было бы не заносить в готовом виде, так как они элементарно равняются максимальному налогу по предыдущей процентной ставке, но зачем переутомлять даже компьютер? Пусть хоть немного почувствует заботу владельца.
Третья колонка - ячейки G2:G8 - содержат, как видите, те самые проклятые, то есть прогрессивные процентные ставки. Начинаясь с умеренных 9%, которые я лично заплатить не возражаю, они доходят до безумных 50%, от которых хочется купить билет на самолет, что с серебристым крылом, и...
Ладно, константы для расчета тоже введены. Следующий этап - придумывание формул и их запись в соответствующие ячейки расчетной таблицы.
Легче всего мне далось вычисление СГД. Он просто равен сумме ячеек В7:В16, поэтому в ячейку С1 таблицы я смело поставил формулу =СУММ(B7:B16). Легко далась и ячейка "Удержано", в которую по аналогии с предыдущей я поставил =СУММ(C7:C16), то есть сумму удержанных налогов. Чуть более сложная формула, а именно =C1-СУММ(B18:B27), попала в ячейку Е1. Имени этой ячейке я давать не стал, но запомнил, что в ней будет храниться СГД минус то, что удастся объявить льготируемым доходом и расходами.
Самая интересная с точки зрения программирования (хотя истинные программеры от возмущения сейчас плеваться будут) часть работы состоит в вычислении прогрессивного налога. В ячейки Н2:Н8 я, не долго размышляя, вписал формулы, вычисляющие разность между облагаемой суммой (из Е1) и пороговыми значениями из ячеек Е2:Е8. Проще говоря, в ячейку Н2 я записал =E1-E2, в Н3 - =E1-E3, в Н4 - =E1-E4 и так далее. В ячейке Н8 оказалась формула =E1-E8, а в лежащую под ней Н9 я записал число -1. Скоро поймете почему.
В ячейках I2:I8 логично поместить формулы, вычисляющую процентную добавку к сумме из столбца F. Эти формулы выглядят очень просто: =H2*G2, =H3*G3 и так далее - до =H8*G8. Что и неудивительно, ведь надо всего лишь умножить разность, подсчитанную в ячейке Н i, на процентную ставку, взятую из ячейки G i.
Располагая этими числами, вычислить сумму налога нетрудно: надо лишь сложить ячейки F i и I i. Однако как потом определить, в какой строке записана искомая сумма налога? Вручную вы с самого начала находите строчку таблицы, в которую попадает ваш доход, и считаете только по указанной в ней процентной ставке. Мы же просчитали значения налога для всех строк, но надо взять одно.
Маленькая хитрость - если к числу прибавлять нули, то числу это абсолютно безразлично. Следовательно, если во всех ячейках диапазона J2:J8, кроме содержащей нужную величину, исхитриться проставить нули, то в ячейку С3, в которой должна стоять сумма полного налога, можно ввести формулу =СУММ(J2:J8). Так и сделаем.
Остается вопрос: как заполнить ненужные ячейки нулями? Для этого надо, скажем, в J2, записать формулу =ЕСЛИ((H3)*И(H2=0);I2+F2;0).
Что это значит? Сия конструкция говорит Excel, что в ячейку J2 надо поставить сумму I2+F2 только в том случае, когда в ячейке Н3 окажется отрицательное число и в ячейке Н2 число будет положительным. Отрицательное число в ячейке Н3 (обратите внимание - в ячейке следующей строки) говорит о том, что ваш СГД не превышает следующее пороговое значение. А в текущей строке разность положительная (значение в Н2 больше или равно нулю), то есть ваш СГД больше или равен соответствующему ей пороговому значению из столбца Е. Совпадение этих двух условий дает единственно правильную величину налога. Кстати, -1 в ячейке Н9 стоит для того, чтобы Excel не отказался взимать с вас налог по максимальной ставке.
Уф-ф! Осталось последнее. В ячейку С4 заносим формулу =C3-C2, которая и покажет, сколько еще денег надо выложить, чтобы рассчитаться за полученное в прошлом году.
Еще несколько замечаний, касающихся данной расчетной таблицы и ей подобных вообще. Обратите внимание, что часть таблицы (все ячейки справа от столбца D) носит сугубо служебный характер. Чтобы они не отвлекали от расчетов, рекомендую их спрятать. Далее, только часть ячеек подлежит заполнению во время расчетов - это таблички, в которые вводятся суммы доходов, налогов и льгот. Остальная часть таблицы в изменениях не нуждается. Советую ее защитить от модификации, чтобы случайно не испортить. Для этого сначала выделите всю таблицу и включите флажок в окне "Формат ячеек / Защита". Затем выделите те диапазоны ячеек, ввод для которых разрешен, и отключите для них защиту, после чего воспользуйтесь командой меню "Сервис" / "Защита" / "Защитить лист".
И самое последнее. Подобно Microsoft, автор отказывается нести любую ответственность за любые последствия, причиненные или не причиненные в результате любого обращения с его детищем. Вот так. Не гарантирую я ничего, ведь в понедельник с бодуна этот апплет склепал.
Роман Соболенко
roman-sobolenko@usa.net - титульная страница
Очухавшись от многократных празднований Нового года, белорусские граждане обнаружили еще один подарок. Нашли они его, правда, не под елкой, а на стенке в метро, но от этого острота ощущений нисколько не пострадала.
Едва переварив салаты, многие из нас столкнулись с необходимостью отчитаться перед любимым государством за "совокупный годовой доход", от которого, разумеется, после месячных праздников не осталось ни рожек, ни ножек. Постпраздничная головная боль сменилась новой.
Все принялись считать. Наиболее башковитые начали складывать суммы и брать проценты в уме. Другие принялись царапать карандашом бумажки, мысленно чертыхаясь по поводу получающихся некрасивых чисел. Тем, кто писать и считать уже давно разучился, ничего не остается, как привлечь на помощь компьютер. Благо отсутствием упомянутых навыков, как известно, отличаемся как раз мы - пользователи.
Калькулятор, который есть в Windows, хорошее подспорье, но и он не позволяет увидеть картину в целом. Если подсчитать, сколько придется отстегнуть государству за прошлогодние трудовые потуги, на нем еще можно, то разработать стратегию смягчения последствия "подарка" на новый финансовый год уж точно не получится. Тут надо что-нибудь помощнее...
Как-то утром в понедельник я проснулся со стойким ощущением, что пора заняться расчетами и мне. Посмотрев на чересчур длинные числа, которые предстояло обрабатывать по неведомым правилам, я понял, что справиться с этим может только Excel. Уважаемая корпорация Microsoft не только осложняет жизнь пользователям, ее продукты иногда приходят им на помощь. Проверим это на практике?
Приступая к возне с непонятной задачей, как я еще помню из программистского прошлого, желательно перво-наперво определить, что хотелось бы увидеть в качестве ее решения. В случае с совокупным годовым доходом (тьфу, выражение-то какое противное, лучше буду звать его трехбуквенным словом - СГД) это более или менее понятно. Приятно было бы увидеть сам СГД, затем ознакомиться с тем, сколько из него уже изъято в виде налогов, сколько хочет получить государство и, наконец, сколько еще придется доплатить.
Таким образом, получаются четыре переменные, которые я расположил в ячейках C1, C2, C3 и C4 соответственно. В столбце В я поместил комментарии, которые отнюдь не излишни, если вам придется воспользоваться расчетной таблице через пару дней после ее создания.
Итак, выходные переменные определены. Согласно правилам теперь стоит прикинуть, на основании чего можно их вычислить. В нашем тяжелом случае входными данными для расчета послужит любезно предоставляемая предприятиями в распоряжение налоговой инспекции информация о полученных вами за год доходах и удержанных по ним налогах. Эти сведения можно поместить в табличку из двух колонок. Пусть в ячейках В7:В16 будут проставлены начисленные суммы, а справа, в ячейках С7:С16, - соответствующие им налоговые отчисления.
Есть кроме того, слабая надежда вывести из-под молота налога некоторые суммы, объявив их льготируемыми, материальными затратами - ну, вы знаете, и прочая такая чепуха. Громко назвав это все льготируемым доходом, помещаю еще одну табличку для ввода значений в ячейках В18:В27. Расположение таблиц для ввода данных и выходных переменных рекомендую посмотреть на копии экрана, чтобы не пытаться переварить в уме диапазоны ячеек и прочую белиберду. Наш лозунг - пусть Excel думает!
Теперь надо заняться программированием расчетной таблицы. Это не так сложно, раз даже с утречка в понедельник за десять минут можно справиться.
Прежде чем приступить к установлению связей между ячейками расчетной таблицы давайте занесем в нее шкалу налоговых ставок, по которой, собственно, все и будет неизвестным пока путем рассчитываться. Из газеты я почерпнул необходимые сведения. В ячейки с Е2 по Е8 в столбец я занес суммы, при превышении которых изменяется взимаемый с нас, бедных, процент. Отсутствие числа в ячейке Е2 пусть вас не смущает - так компьютер показывает ноль в денежном формате. Остальные числа пояснять, надеюсь, не требуется.
Рядом, в ячейках F2:F8, я поместил то, что называлось в газете "n-ная сумма плюс некоторый процент". В принципе, эти числа можно было бы не заносить в готовом виде, так как они элементарно равняются максимальному налогу по предыдущей процентной ставке, но зачем переутомлять даже компьютер? Пусть хоть немного почувствует заботу владельца.
Третья колонка - ячейки G2:G8 - содержат, как видите, те самые проклятые, то есть прогрессивные процентные ставки. Начинаясь с умеренных 9%, которые я лично заплатить не возражаю, они доходят до безумных 50%, от которых хочется купить билет на самолет, что с серебристым крылом, и...
Ладно, константы для расчета тоже введены. Следующий этап - придумывание формул и их запись в соответствующие ячейки расчетной таблицы.
Легче всего мне далось вычисление СГД. Он просто равен сумме ячеек В7:В16, поэтому в ячейку С1 таблицы я смело поставил формулу =СУММ(B7:B16). Легко далась и ячейка "Удержано", в которую по аналогии с предыдущей я поставил =СУММ(C7:C16), то есть сумму удержанных налогов. Чуть более сложная формула, а именно =C1-СУММ(B18:B27), попала в ячейку Е1. Имени этой ячейке я давать не стал, но запомнил, что в ней будет храниться СГД минус то, что удастся объявить льготируемым доходом и расходами.
Самая интересная с точки зрения программирования (хотя истинные программеры от возмущения сейчас плеваться будут) часть работы состоит в вычислении прогрессивного налога. В ячейки Н2:Н8 я, не долго размышляя, вписал формулы, вычисляющие разность между облагаемой суммой (из Е1) и пороговыми значениями из ячеек Е2:Е8. Проще говоря, в ячейку Н2 я записал =E1-E2, в Н3 - =E1-E3, в Н4 - =E1-E4 и так далее. В ячейке Н8 оказалась формула =E1-E8, а в лежащую под ней Н9 я записал число -1. Скоро поймете почему.
В ячейках I2:I8 логично поместить формулы, вычисляющую процентную добавку к сумме из столбца F. Эти формулы выглядят очень просто: =H2*G2, =H3*G3 и так далее - до =H8*G8. Что и неудивительно, ведь надо всего лишь умножить разность, подсчитанную в ячейке Н i, на процентную ставку, взятую из ячейки G i.
Располагая этими числами, вычислить сумму налога нетрудно: надо лишь сложить ячейки F i и I i. Однако как потом определить, в какой строке записана искомая сумма налога? Вручную вы с самого начала находите строчку таблицы, в которую попадает ваш доход, и считаете только по указанной в ней процентной ставке. Мы же просчитали значения налога для всех строк, но надо взять одно.
Маленькая хитрость - если к числу прибавлять нули, то числу это абсолютно безразлично. Следовательно, если во всех ячейках диапазона J2:J8, кроме содержащей нужную величину, исхитриться проставить нули, то в ячейку С3, в которой должна стоять сумма полного налога, можно ввести формулу =СУММ(J2:J8). Так и сделаем.
Остается вопрос: как заполнить ненужные ячейки нулями? Для этого надо, скажем, в J2, записать формулу =ЕСЛИ((H3)*И(H2=0);I2+F2;0).
Что это значит? Сия конструкция говорит Excel, что в ячейку J2 надо поставить сумму I2+F2 только в том случае, когда в ячейке Н3 окажется отрицательное число и в ячейке Н2 число будет положительным. Отрицательное число в ячейке Н3 (обратите внимание - в ячейке следующей строки) говорит о том, что ваш СГД не превышает следующее пороговое значение. А в текущей строке разность положительная (значение в Н2 больше или равно нулю), то есть ваш СГД больше или равен соответствующему ей пороговому значению из столбца Е. Совпадение этих двух условий дает единственно правильную величину налога. Кстати, -1 в ячейке Н9 стоит для того, чтобы Excel не отказался взимать с вас налог по максимальной ставке.
Уф-ф! Осталось последнее. В ячейку С4 заносим формулу =C3-C2, которая и покажет, сколько еще денег надо выложить, чтобы рассчитаться за полученное в прошлом году.
Еще несколько замечаний, касающихся данной расчетной таблицы и ей подобных вообще. Обратите внимание, что часть таблицы (все ячейки справа от столбца D) носит сугубо служебный характер. Чтобы они не отвлекали от расчетов, рекомендую их спрятать. Далее, только часть ячеек подлежит заполнению во время расчетов - это таблички, в которые вводятся суммы доходов, налогов и льгот. Остальная часть таблицы в изменениях не нуждается. Советую ее защитить от модификации, чтобы случайно не испортить. Для этого сначала выделите всю таблицу и включите флажок в окне "Формат ячеек / Защита". Затем выделите те диапазоны ячеек, ввод для которых разрешен, и отключите для них защиту, после чего воспользуйтесь командой меню "Сервис" / "Защита" / "Защитить лист".
И самое последнее. Подобно Microsoft, автор отказывается нести любую ответственность за любые последствия, причиненные или не причиненные в результате любого обращения с его детищем. Вот так. Не гарантирую я ничего, ведь в понедельник с бодуна этот апплет склепал.
Роман Соболенко
roman-sobolenko@usa.net - титульная страница
Компьютерная газета. Статья была опубликована в номере 04 за 1998 год в рубрике soft :: субд