На этом шаге мы приведем общие соображения по его формированию.
На рабочем листе КассаЖурнал находится табличная база данных для одновременной регистрации приходных и расходных кассовых документов (рисунок 1). По горизонтали рабочая область всей таблицы - столбцы А:N, по вертикали - с 1-й до 200-ой строки.
Рис.1. Рабочий лист КассаЖурнал для регистрации приходных и расходных кассовых ордеров
Рабочая область листа КассаЖурнал разделена на две части:
Область ввода в табличную базу данных можно условно разделить на четыре составляющих:
Если введенные данные в две последние области могут относиться как к приходным, так и расходным ордерам, то ввод данных в одной строке по первым двум областям должен быть взаимоисключен. То есть в одной строке в этих областях не могут быть одновременно введены данные по формированию приходного и расходного ордера.
Первый элемент автоматизации журнала регистрации - возможность раздельного присвоения ордерам порядкового номера. В прошлом примере номер просто увеличивался на единицу, учитывая максимальное значение номеров предыдущих строк. В этом же приложении надо учитывать, что в таблице две несмежных области ввода номеров. При этом определение номера в каждой из них должно производиться независимо от другой области. Следовательно, перед созданием алгоритма вычислений в формуле определения порядкового номера нужно задать некоторые условия, которым этот алгоритм должен удовлетворять.
Формирование порядкового номера ордеров должно выполняться, учитывая следующую последовательность:
Для выполнения всех этих условий создайте довольно простую формулу с использованием функций ЕСЛИ, ЕПУСТО и МАКС. В ячейке Е15, которая формирует порядковый номер расходных кассовых ордеров, формула:
=ЕСЛИ(ЕПУСТО(B15);ЕСЛИ(ЕПУСТО(F15);0;МАКС(E$11:E14)+1);0)
Функция ЕПУСТО в первом аргументе первой функции ЕСЛИ проверяет наличие даты в ячейке В15, которая относится к области ввода дат приходных кассовых ордеров. И если ячейка В15 заполнена, то тогда функция ЕСЛИ возвращает значение 0. Если ячейка В15 пуста, то формула переходит к решению второго аргумента первой функции ЕСЛИ.
Следующая функция ЕПУСТО в первом аргументе второй функции ЕСЛИ проверяет наличие какого-либо значения введенного в ячейку F15 (дата формирования расходного кассового ордера) и если дата отсутствует, то второй аргумент функции ЕСЛИ возвращает значение 0. Если же дата присутствует (или любое другое значение), то функция МАКС в третьем аргументе второй функции ЕСЛИ ищет максимальное значение порядкового номера в ячейках столбца Е расположенных выше и к этому значению добавляет единицу.
Проверка соседних ячеек с внесенными в них датами обоснована. Ведь если не будет этого условия (или ему подобного), то область журнала с формулами присвоения порядкового номера будет заполнена значениями, увеличивающимися на единицу в каждой нижней ячейке, независимо от того относится ли этот порядковый номер к приходным или расходным кассовым ордерам.
Или возможен другой случай - в одной строке могут находиться и заполненные области по приходному и по расходному ордеру, что может внести неоднозначное трактование записи на рабочих листах формирующих бланки приходных и расходных ордеров.
При возможных нарушениях по вводу данных в строки журнала, порядковый номер этого ордера не будет формироваться, и естественно, эти документы не будут генерироваться на рабочих листах по созданию приходного и расходного ордеров. А отсутствие документа, при заполненном журнале регистрации привлечет внимание пользователя.
Для того чтобы значение 0 не отражалось на экране, выполните команду Сервис | Параметры и в диалоговом окне Параметры на вкладке Вид в области Параметры окна щелчком мыши уберите галочку с опции Нулевые значения.
Наиболее оптимальное заполнение журнала регистрации предполагается копированием выбранной строки с наиболее удовлетворяющими данными, последующей ее вставкой в конец таблицы и редактированием содержимого ячеек, если в этом возникает необходимость. Эта операция позволит значительно увеличить быстродействие операции по заполнению журнала.
В ячейку А1 вводится наименование организации. Для контроля остатка денежных средств в кассе в ячейку А2 введите формулу:
=СУММ(C11:C200)-СУММ(G11:G200).
Если на предприятии установлен лимит кассы, то тогда размер этой суммы введите в ячейку L2 (или любую другую по усмотрению).
Для того, что видеть, не превышается ли лимит кассы, введите в ячейку F1 формулу, основанную на функции ЕСЛИ:
=ЕСЛИ(A2<L2;"";"Превышение лимита кассы!")
На следующем шаге мы продолжим изучение этого вопроса.