На этом шаге мы рассмотрим алгоритм расчета этого налога.
Для промежуточного расчета суммы налога на добавленную стоимость используется область столбцов АА:АD (рисунки 1 и 2).
Рис.1. Область расчета НДС с формулами
Рис.2. Область расчета НДС с числовыми значениями
В формуле, введенной в ячейку АВ5, использована функция ЕСЛИ, которая в своем первом аргументе сравнивает: введен ли признак НДС в ячейку Е10 на рабочем листе ИсхДанные. Если признак не введен, то формула возвращает значение 0, в противном случае возвращает дату, введенную в ячейку D10 на рабочем листе ИсхДанные.
В формуле в АС5 в первом аргументе функции ЕСЛИ сравнивается значение ячейки АВ5 со значением 0 и, если условие не выполняется, то функция МЕСЯЦ определяет номер месяца в дате, возвращаемого формулой в ячейке АВ5.
Формула в ячейке AD5 аналогична формуле в ячейке АС5, но возвращает значение, содержащееся в ячейке О10 на рабочем листе ИсхДанные (сумма НДС).
В столбце АА вводятся порядковые номера 12-ти месяцев года, которые будут использоваться в формулах диапазона ячеек Е5:Е16 как условие поиска данных для расчета суммарного налога за месяц.
В ячейке Е5 использована функция СУММЕСЛИ, которая по номеру месяца в ячейке АА5 производит сравнение с номерами месяцев, определенных в столбце АС, и при выполнении условия выполняет операцию суммирования значений в столбце АD.
Исходя из заданных ранее условий, при которых область таблицы на рабочем листе ИсхДанные может быть использована до строки 5000, формулы в диапазоне ячеек АВ5:АD5 должны быть скопированы до строки 4995. При таком количестве формул файл ДенежныеПотоки увеличится на несколько мегабайт, что, впрочем, не является критичным. Плохо то, что время выполнения макросов на рабочем листе ИсхДанные будет увеличено в десятки раз, потому что формулы на листе Налоги будут участвовать в процессе проводимых вычислений. Желательно, чтобы эти формулы создавались непосредственно в момент проведения расчетов, а после определения месячных оборотов по НДС область промежуточных расчетов была очищена. Эта задача будет выполняться макросом РасчетНДС.
Перед записью макроса введите формулы, описанные выше и после записи макроса, отредактируйте код VBA.
Рис.3. Подпрограмма РасчетНДС
На следующем шаге мы рассмотрим расчет суммы налога с оборота.