Прошу сразу не кидаться тапками, так как у меня нет опыта в обращениях и оформлениях тем, но есть искреннее желание и потребность справиться с поставленной задачей, какой бы смешной и лёгкой на первый взгляд она не показалась.
О себе: Имею скромный опыт работы с функциями эксель и макросами. Использую обычно эксель для автоматизации рутинных процессов на работе. По большей части допиливаю готовые наработки для своих нужд, за что спасибо огромное данному форуму, и людям, делящимися своим опытом, знаниями, и самое не мало важное временем, что позволяет решать поставленные самим же собой задачи.
Предыстория: Ко мне обратился отец с просьбой о помощи переделать таблицу прихода-расхода расходного материала. На данный момент собралось множество строк и столбцов за последние 5 лет его работы на складе. Он вручную вносит новые поступления в отдельную строку по каждому материалу, а так же создает для каждого последующего месяца новые столбцы для контроля выдачи расходного материала в данном месяце и наличия запасов на складе. Ведется это все в рамках одной страницы (лист 1).
Задача: Организовать контроль прихода, расхода, текущего баланса и формирование отчетов прихода-расхода по месяцам. Задача усложняется тем моментом, что поступают расходники с одинаковыми партийными номерами, но разной стоимостью и наименованием от производителя. Выдаются соответственно от старого поступления к новому, что важно учитывать в расходе и балансе материала. Необходимо визуально-логически простая реализация, при том опционально информативная. И самое главное с заделом на будущее.
Как я вижу реализацию задачи: Разделение файла по годам на стадии обсуждения (один файл - один год). Планирую разделить приходную часть и расходную по разным листам. Сделать простую форму для внесения прихода и расхода материалов при помощи макросов в таблицы с данными. При внесении данных в приходную часть, уникальные позиции (ранее не числящиеся по партийному номеру в базе прихода) вносятся в том числе на третий лист баланса, где при помощи формул отслеживается количество на начало и конец месяца, считая сколько и кому было выдано. На основе базы данных прихода и расхода, а также баланса будут формироваться отчеты (возможно на основе сводных таблиц).
Ввиду конфиденциальности данных, вынужден прикрепить файл с примером с "примитивным" содержимым. Файл с заготовкой моей реализации будет чуть позже. В связи отсутствия финансирования в данном вопросе, решил обратиться к знатокам своего ремесла. Альтернативные системы складского учёта, помимо экселя, не рассматриваются.
Буду рад любой Вашей помощи, будь это ссылки на соответствующие/похожие темы, фрагменты кода, наведение на мысли, либо же просто предложение логической структуры задачи. Заранее благодарен буду всем!
p.s. Готовым файлом обещаю поделиться в будущем, может кому пригодится.
Добрый день! Краткие комментарий: Любой учет начинается с инвентаризации, которая делается затем периодически, например, на начало года. Ваш отец правильно учитывает приход товаров отдельной строкой. В ней же указывают количество и цену поступившего товара. Аналогично и с расходом (отгрузкой) - отдельной строкой либо с признаком расхода, либо на отдельном листе. Цена товара для отгрузки рассчитывается по методу FIFO (почитайте где-то, на форуме тоже обсуждалось, у Дмитрийя (The_Prist) Щербакова на сайте есть), принцип - как Вы и описали: цена определяется ценами партий остатков, собираемых, начиная от самых старых.
Обычно создают справочник товаров с уникальным внутренним кодом и этот код прописывается в таблицах прихода и расхода чтобы корректно кодом считать цену партии отгрузки и для любых отчетов.
Накапливать данные в столбцах не нужно, форма, которую Вы приложили, скорее отчетная, чем рабочая, она трудно поддается обработке кодом, так как "резиновая". Листы: справочник, инвентаризация, приход, расход, отчеты. Лист Справочника: Уникальный код товара, Наименование, Группа и т.п. в зависимости от необходимых отчетов. Лист Прихода: Дата, Уникальный код (справочника), Наименование (может подтягиваться из справочника или из формы ввода), Цена 1 шт, Количество, Доп. столбцы (при необходимости : от кого получено, кто принял, комментарии и т.п.) Аналогично – листы Расхода и Инвентаризации. Такая не меняющаяся структура листов и базовых полей (столбцов) упрощают автоматизацию расчета остатков, FIFO цены, а также автоматическое создание отчетов и инвентаризаций.
По-моему, есть бесплатные системы складского учета, в том числе в Excel - поищите в сети, сэкономите много времени, если, конечно, не стоит задача самому потренироваться.
Делюсь примитивным решением сделанном на коленке. адаптировать можно, но осторожно Все в одной таблице и приход и расход. Для удобства связанные выпадающие списки с фильтрацией сделаны, но это специфика, подчиненным проще выбирать не из длинного списка картриджей, а их номенклатура большая, а сразу отсечь по принтеру или расположению ....
Полностью согласен с Владимиром. Инвентаризация и остатки заносятся как приход, дальше изменения и накопительные итоги в отчеты.
Добрый день! Я сторонник того что исходные данные - база - чем проще тем лучше для обработки и вывода интересующей информации. Например вот в первом файле не подсчитать сколько наработал Петров во втором квартале. Остаток на любой месяц сразу не найдёшь, аналитику вообще никак не сделать.... Да и заносить туда инфу не так просто, легко накосячить Я за формы для ввода данных, сводные-диаграммы-графики-KPI для вывода интересующего, а вся база - прямая таблица с понятными полями. Могут быть несколько баз, ну и справочники. Тогда всё намного проще, и этот вывод/анализ в любой момент можно переделать, дополнить, написать что-то новое.
Владимир, добрый. Спасибо. Как и писал на коленке набросал, чтоб парням было удобнее и старался как можно проще сделать. Вот беда надо это на Р7 перенести и там не все уже так просто.
Цитата
ZVI написал: Для примера автору темы не хватает только цен.
цен и привязки к партии. Мне это не важно было, хотя для контроля качества стали помечать дату поставки, ибо потом не понятно в кого тапки кидать если картридж бракованный. А вот как у автора с этим - я не знаю, но в целом все можно реализовать. Вопрос цели.
написал: Цена товара для отгрузки рассчитывается по методу FIFO (почитайте где-то, на форуме тоже обсуждалось, у Дмитрийя (The_Prist) Щербакова на сайте есть), принцип - как Вы и описали: цена определяется ценами партий остатков, собираемых, начиная от самых старых.
Благодарю за наводку, покопаюсь в ближайшее время в надежде найти готовый пример реализации задачи.
Цитата
написал: Обычно создают справочник товаров с уникальным внутренним кодом и этот код прописывается в таблицах прихода и расхода чтобы корректно кодом считать цену партии отгрузки и для любых отчетов.
В моём случае так и пришлось сделать, попрошу глянуть наброски в файле, который прикреплю следом. Единственное, в процессе создания листов, понял, что будет достаточно ограничиться лишь балансом вместо справочника. В комментариях к файлу опишу подробнее.
Цитата
написал: По-моему, есть бесплатные системы складского учета, в том числе в Excel - поищите в сети, сэкономите много времени, если, конечно, не стоит задача самому потренироваться.
Помимо "профессионального" интереса и личностного развития, есть потребность максимально адаптировать под цели и задачи отца. К сожалению, готовые решения очень примитивны, и даже близко похожие найти не смог.
написал: Делюсь примитивным решением сделанном на коленке
Благодарю за ваш пример! Но к сожалению в рамках поставленной задачи полезным для меня он не оказался. Как писал Hugo, я тоже сторонник упрощенной работы с набором данных, и придерживаюсь политики (особенно актуально для возрастной категории, которым является мой отец) упрощения ввода и поиска данных. В моём случае было решено отдать каждой операции по листу (приход, расход, баланс, отчеты...). Файл с примером исполнения прикреплю следом.
написал: Тогда всё намного проще, и этот вывод/анализ в любой момент можно переделать, дополнить, написать что-то новое.
Именно такие цели и преследую. Единственное, на данный момент необходимо продумать дополнительные поля, которые в будущем помогут модернизировать файл-программу. Например для удобства инвентаризации, отдельным листом вывести все стеллажи и полки, и исходя из них уже отображать находящиеся позиции (расходники в моем случае) на них.
Выкладываю промежуточный файл-наброски примерного решения моей задачи. Позвольте детально опишу составные части, вдруг у кого-то будут дополнения/рекомендации (очень на это надеюсь). Заранее сообщу, что в последующем будут прикручены макросы к книге, на данный момент лишь визуально.
Листы/описание:
Изначальный способ - то, как вёлся складской учет до. Для примера и наглядности. Допускаю некоторые расхождения в последующих листах, так как вносил все вручную.
Справочник - база данных партийных номеров, наименований (есть возможность поменять наименования во всей книге; не путать с названием - название от партии к партии может быть разное) и единиц измерений.
Приход - база данных прихода с формой ввода. Пожалуй главный лист, который распределяет данные в базу прихода, баланс и справочник (если обнаружен новый партийный номер).
Расход - база данных расхода с формой ввода. Столкнулся с задачей - как вывести список, чтоб отображались все стеллажи и полки хранения по указанному партийному номеру, и цена/стоимость от старой к новой в окне с информацией?
Баланс - текущий баланс по партийным номерам вне зависимости от партий. Содержит фильтр (основанный на формулах), отображающий количество на начало и конец фильтруемого периода, кол-во прихода и расхода расходников. Загвоздка возникла с формулами - идентичные формулы работают для прихода, но не работают для расхода, в связи с непонятием ошибки не могу продолжить работу с началом и концом периода.
Поля ввода содержат формулы подсказок для ускорения ввода данных и контроля правильности ввода. Строки, помеченные серым цветом будут скрыты, необходимы для работы макросов.
По логике работы формул, можно не использовать лист со справочником, ибо в баланс будут поступать идентичные записи, что и в справочник. Можно переделать так, чтоб форма прихода искала партийник в балансе, и если не нашла его, то вносилась данная позиция новой строкой.
Дорогие форумчане и знатоки своего ремесла. Какие будут предложения, замечания, либо пути решения? Впереди предстоит создать макросы, с ними думаю разберусь, но перед их созданием, хотелось бы "отполировать" каркас.
написал: Здравствуйте, в личное сообщение скинул вам ссылку на готовое решение
Доброго дня! Благодарю за ссылку. Думаю, мне будет что подчерпнуть из данного готового решения. Но в любом случае, оно не перекрывает все необходимые потребности, в связи с чем задача остается открытой.