Stepa Пользователь Сообщений: 17 |
Задача посчитать остатки товара по каждому виду на текущую дату при этом цена продажи (операция продажа) не имеет никакого значения, списывается в данном случае товар по цене первого по времени прихода , пока он не кончится , потом вторго и т.д. В результате надо посчитать кол-во единиц остатка и их общую себестоимость на Дату. |
Микки Пользователь Сообщений: 3280 |
Господа спецы помогите девушке плиз , тут похоже макрос нужен формулами у меня не получается. |
Stepa Пользователь Сообщений: 17 |
Господа специалисты, срочно нужна ваша помощь в решении этого вопроса. |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 02:07}{thema=}{post}Написал функцию(FIFO). В файле описано подробней. Будут вопросы — пишите.{/post}{/quote} |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 02:23}{thema=}{post}Я именно над этим сейчас работаю. Не совсем понял как именно подсчитывать…{/post}{/quote} |
Stepa Пользователь Сообщений: 17 |
{quote}{login=The_Prist}{date=26.02.2009 02:23}{thema=}{post}Я именно над этим сейчас работаю. Не совсем понял как именно подсчитывать…{/post}{/quote Большое Вам спасибо, но мне необходимо подсчитать стоимость остатка на конец каждого дня. Стоимость расчитывается по методу FIFO — First In First Out. |
Stepa Пользователь Сообщений: 17 |
{quote}{login=The_Prist}{date=26.02.2009 02:07}{thema=}{post}Написал функцию(FIFO). В файле описано подробней. Будут вопросы — пишите.{/post}{/quote} Уважаемый Прайст, Вы все же поможете мне решить задачу по определению стоимости? |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 04:46}{thema=}{post}Вот. Условия те же. Добавил функцию подсчета сумм. Проверяйте.{/post}{/quote} |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 04:57}{thema=}{post}Пробуйте, как и с любой функцией должно получиться — но…{/post}{/quote} |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 04:46}{thema=}{post}Вот. Условия те же. Добавил функцию подсчета сумм. Проверяйте.{/post}{/quote} |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 06:00}{thema=}{post}Микки — ты за проверяющего. Давай ломай дальше функцию, ищи косяки. :-){/post}{/quote} |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 06:00}{thema=}{post}Микки — ты за проверяющего. Давай ломай дальше функцию, ищи косяки. :-){/post}{/quote} |
Igor67 Пользователь Сообщений: 3729 |
Имхо, но надо просто делать доп столбец и потихонько макросом «списывать» остатки, в верхней строчке. Возможно, как только остаток =0, строку можно в архив, на другой лист. А в конце дня просто сводной остаток на дату снимать. Как только будет пропуск — можно косячок получить. |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=26.02.2009 06:00}{thema=}{post}Микки — ты за проверяющего. Давай ломай дальше функцию, ищи косяки. :-){/post}{/quote} |
{quote}{login=Микки}{date=27.02.2009 09:18}{thema=Re: }{post}{quote}{login=The_Prist}{date=26.02.2009 06:00}{thema=}{post}Микки — ты за проверяющего. Давай ломай дальше функцию, ищи косяки. :-){/post}{/quote} Я на цену продажи даже не обращаю внимания. Просто надо попробовать учесть все варианты. |
|
Stepa Пользователь Сообщений: 17 |
Всем большое спасибо за участие в решении моей проблемы. Но все же очень хочется достичь правильного результата. Это возможно? |
{quote}{login=Stepa}{date=27.02.2009 09:27}{thema=}{post}Всем большое спасибо за участие в решении моей проблемы. Но все же очень хочется достичь правильного результата. Это возможно?{/post}{/quote} Щаз именно над этим работаю. |
|
Stepa Пользователь Сообщений: 17 |
{quote}{login=}{date=27.02.2009 09:48}{thema=Re: }{post}{quote}{login=Stepa}{date=27.02.2009 09:27}{thema=}{post}Всем большое спасибо за участие в решении моей проблемы. Но все же очень хочется достичь правильного результата. Это возможно?{/post}{/quote} Щаз именно над этим работаю. Дальше написания формулы по расчету количества у меня дело не пошло, потому надеюсь на Вас. |
Stepa Пользователь Сообщений: 17 |
{quote}{login=The_Prist}{date=27.02.2009 01:11}{thema=Re: }{post}{quote}{login=The_Prist}{date=27.02.2009 01:09}{thema=}{post}Очередная доработка.{/post}{/quote} Я еще критерий добавил — Qantity: Количество оставшегося товара. Ураа, большое спасибо. Смотрю. |
Микки Пользователь Сообщений: 3280 |
{quote}{login=The_Prist}{date=27.02.2009 01:11}{thema=Re: }{post}{quote}{login=The_Prist}{date=27.02.2009 01:09}{thema=}{post}Очередная доработка.{/post}{/quote} Я еще критерий добавил — Qantity: Количество оставшегося товара. |
Stepa Пользователь Сообщений: 17 |
{quote}{login=The_Prist}{date=27.02.2009 01:11}{thema=Re: }{post}{quote}{login=The_Prist}{date=27.02.2009 01:09}{thema=}{post}Очередная доработка.{/post}{/quote} Я еще критерий добавил — Qantity: Количество оставшегося товара. Prist, скажите, пожалуйста, почему не меняется кол-во и соответственно стоимость если я меняю кол-во в основной таблице? |
Stepa Пользователь Сообщений: 17 |
{quote}{login=The_Prist}{date=27.02.2009 01:35}{thema=}{post}Особенность пользовательских функций. Не всегда рассчитываются автоматом. Просто скопируйте формулу в одной ячейке и протяните по всем. Они пересчитаются.{/post}{/quote} Ага, поняла. Вобщем все просто супер! Буду пользовать. Еще раз спасибо. |
ZVI Пользователь Сообщений: 4328 |
Чтобы пересчитывались ячейки, от которых зависит результат, достаточно в декларации функции добавить последний виртуальный параметр ParamArray Dependences(): Function FIFO_Count(MyDate, Criteria, DateRange, ParamArray Dependences()) Function FIFO_Summ(MyDate, Criteria, DateRange, Qantity, ParamArray Dependences()) А в вызове функции добавить диапазоны ячеек, изменения которых должны вызывать пересчет функции. Например, так можно добавить автопересчет при изменении ячеек номенклатуры и количества С3:D10: А здесь добавлены зависимости диапазона ячеек от номенклатуры C3:C10 до стоимости F3:F10: |
{quote}{login=ZVI}{date=27.02.2009 10:30}{thema=Как добавить автопересчет в пользовательскую функцию}{post}Чтобы пересчитывались ячейки, от которых зависит результат, достаточно в декларации функции добавить последний виртуальный параметр ParamArray Dependences(){/post}{/quote} Спасибо за полезную (думаю не только мне) информацию! |
|
{quote}{login=The_Prist}{date=27.02.2009 01:09}{thema=}{post}Очередная доработка.{/post}{/quote} Добрый вечер, не могли бы вы пояснить макрос комментариями, что куда и зачем пишется, чтобы понять используемые объекты. |
|
Max Пользователь Сообщений: 61 |
Господа, искренне благодарю! Разобрался, адаптировал под себя, все отлично. Кроме одного: быстродействие на больших объемах данных оставляет желать лучшего. Подскажите как можно ускорить функцию? Первое, что приходит на ум — это построить логику так, чтобы получать данные в один проход по циклу вместо двух (например использовать массивы). Второе — это вообще отказать от цикла и переходить по артикулам с помощью поиска, например. Насколько это возможно и целесообразно? |
Max Пользователь Сообщений: 61 |
Т.е. вариант: В одном цикле проходим по всем записям и сохраняем данные по нужному артикулу в массив. Потом запускаем цикл по массиву. будет быстрее текущего варианта? А вариант: Заменить оба цикла на перебор значений по артикулу с помощью Find. будет медленнее всех? Я просто с VBA на Вы, кодить могу, а вот понять на что повлияет выбор того или иного варианта не знаю как. Кодить все варианты, чтобы сравнить не хочется (опять же потому что с VBA на Вы). |
Igor67 Пользователь Сообщений: 3729 |
#28 13.12.2010 21:52:40 Попробуйте вариант FIFO_Count() на массиве. Function FIFO_Count(MyDate, Criteria, DateRange As Range) |
Главная » Мои надстройки »
4 Июнь 2012 46643 просмотров
Что это такое методы LiFo и FiFo? В принципе, разрабатывая данную надстройку я рассчитывал на то, что люди, которые будут ей пользоваться уже знают что это за методы. Но не исключаю того варианта, что надстройкой будут пользоваться люди, не имеющие понятия о методах LIFO и FIFO, но в силу рода своей деятельноси им все же понадобилось это знать или использовать. Поэтому решил в общих чертах ввести в общий курс дела.
LIFO(от английского Last In, First Out — последним пришел, первым ушел) — метод бухгалтерского учёта товарно-материальных ценностей (в дальнейшем ТМЦ), в соответствии с которым, ТМЦ, которые были поставлены на учёт последними, с учёта выбывают первыми. Соответственно, по цене товаров, прибывших последними.
Особенности учета по методу LIFO:
- редко учитывается фактическое движение запасов товаров;
- предполагается, что все товары, приобретенные в течение периода, могут быть выставлены на продажу, независимо от даты их покупки;
- запасы на конец периода оцениваются по стоимости первых закупок.
Данный принцип используется на складах с узкой номенклатурой и большими объемами товаров, для которых не важен срок хранения и отгрузки. Это различные промышленные товары, многие товары народного потребления и т. д.
FIFO(от английского First In, First Out — первым пришел, первым ушел) — метод бухгалтерского учёта ТМЦ, в соответствии с которым ТМЦ, поставленные на учёт первыми выбывают с учёта тоже первыми. Соответственно, по цене товаров, прибывших первыми(которые и списываются).
Используется на складах для скоропортящихся товаров, товаров пищевой, фармацевтической, косметической и химической промышленности, других товаров с ограниченным сроком годности или товаров разового спроса(например, газет).
Стандартных формул для подсчета количество товара, а так же суммы товара данными методами в Excel нет. Ниже вы сможете скачать мою надстройку, которая умеет это делать. В надстройке реализованы пользовательские функции:
- LIFO_Count — подсчет остатков товара на складе на указанную дату методом LIFO.
- LIFO_Summ — выводит общую сумму остатков на указанную дату. Сумма рассчитывается методом LIFO.
- FIFO_Count — подсчет остатков товара на складе на указанную дату методом FIFO.
- FIFO_Summ — выводит общую сумму остатков на указанную дату. Сумма рассчитывается методом FIFO.
В архиве расположена сама надстройка и файл помощи, в котором подробно описаны все функции и их аргументы. Как установить надстройку: Установка надстроек
Если Вы используете Excel 2007 или 2010, то отобразится вкладка Надстройки и в ней будет панель, с которой можно вызвать любую из функций надстройки или справку по функциям
Для Excel 2003 будет создана отдельная панель с аналогичным содержимым.
Для того, чтобы воспользоваться функцией необходимо выделить ячейку на листе и вызвать нужную функцию с панели простым нажатием. Появиться стандартное окно ввода аргументов функции. Задаете аргументы(лучше сначала пользоваться справкой, прилагаемой к надстройке, чтобы задавать аргументы правильно) и жмете Ок. Функция в ячейке. Если все верно введено — увидите результат. Если результатом будет ошибка — проверьте сначала верно ли указаны все аргументы(например не указано ли вместо номер столбца его буква или диапазон ячеек).
Скачать надстройку:
FIFO_LIFO_addin.zip (83,1 KiB, 4 749 скачиваний)
Надстройка распространяется бесплатно с открытыми исходными кодами: изучайте коды, алгоритмы, правьте коды под себя.
Many years ago on a friend’s father asked me to create a First in First Out FIFO calculator for stocks which he held. It appears the taxation on stock purchases becomes increasingly difficult when you are purchasing the same stock multiple times. Tracking the P&L on a stock becomes difficult based on a first in first out (FIFO) basis. This article will focus on some solutions to the FIFO conundrum.
My understanding of FIFO is that goods purchased are sold bases on the price of the earliest purchased product. I will use a simple example;
We buy 2 stocks for a price of $10 each. On Tuesday we purchase 2 more stocks for $15 each. Now on Wednesday we sell 3 of the stocks for $17 each. We need to work out the profit or loss for taxation purposes. If we use FIFO we have a profit of:
17 * 2 — 10 * 2 + 1 * 17 — 1 * 15
or
34 — 20 + 17 — 15
=$16
So we have made a $16 profit according to FIFO. This becomes more and more difficult to track the more items which are purchased and sold for different prices.
The following is a more complex FIFO calculation based on the attached file.
This is where Excel VBA can help. The following is a very handy FIFO procedure which will sort the closing price for a FIFO calculation.
FIFO Function in Excel
While working with the CPA for a webinar I extended the FIFO calculation into a custom function. It is quite straight forward. Here is some raw data, we can use this data to calculate FIFO. The custom function will do the work for us.
Now let’s say we need to calculate the FIFO on the following:
Oct USB Stick 420 = ??????
SO we need to work out what the cost of goods sold is for 420 items at 4 different price points.
80 x 1.10 = $88
200 x 8 1.05 = $210
120 x 1.10 = $132
20 x 1.03 = $20.60
Total = $450.60
Once again performing the FIFO calculation manually is a laborious task, especially if you have to do this for multiple items or multiple dates.
Here is a solution using a custom FIFO function.
The following is the FIFO formula:
=FIFO(ExA!$C$2:$D$6,C2)
Where C2:D6 is the quantity and the cost (in that order). And C2 contains the FIFO quantity sold.
The attached file shows basic and more advanced FIFO calculation. It takes the simple example above a step further. It is very useful and can be extended a lot further if need be. The FIFO function provided above is a small glimpse into the world of the First in First Out inventory calculation.
The above is an example of the results from the file. It takes the concept a step further to calculate the value of the remaining inventory. It shows how the FIFO Function can be extended to multiple criteria and products.
Финансы в Excel
Стоимость складского запаса
- Подробности
- Создано 13 Февраль 2014
В одном из вопросов, пришедших на сайт, была затронута интересная тема учета запасов на складе в стоимостном выражении. В нашей программе стоимостной учет остатков не автоматизирован – показалось, что организовать расчеты на уровне формул, слишком сложно. Но в качестве теоретического примера эту задачу вполне можно решить и с помощью электронных таблиц.
В финансовом учете существуют несколько методов ценовой политики для расчета себестоимости произведенной продукции и складских остатков:
- FIFO (first in – first out)
- LIFO (last in – first out)
- «По среднему»
Первый и второй метод предполагают партионный учет каждой поставки с использованием конкретной цены закупки в себестоимости производства или запаса. В FIFO используются партии запасов в хронологическом порядке от самой ранней к самой поздней, в LIFO, наоборот, от последней к первой по времени.
Метод «по среднему» подразумевает пересчет цены материала после каждой поставки. Новое значение стоимости определяется как средневзвешенное по количеству значение между стоимостью запаса и стоимостью поступившей партии.
Каждый метод имеет свои преимущества и недостатки. В бухгалтерском учете наиболее популярен вариант учета FIFO – для его реализации обычно используется автоматизированная учетная система (бухгалтерская программа).
Обработать даже небольшой массив информации с учетом партий закупки в Excel достаточно сложно — требуется много промежуточных расчетов. Пример подобного расчета в приложенном к статье файле на листе FIFO.
В идеале, хотелось бы видеть стоимость каждой партии остатка на складе после каждой операции, но добиться этого не получилось. Формулы для расчета только последней стоимости запасов получились настолько сложными, что, пожалуй, даже лучше было бы написать UDF-функцию, скрывающую все промежуточные расчеты.
Еще одна проблема такого сложного расчета – это заметное ухудшение производительности на больших объемах данных. А складские данные даже на небольших предприятиях обычно измеряются тысячами записей.
Расчеты по LIFO в электронных таблицах связаны с теми же проблемами, пример делать не стали. А вот расчет по средневзвешенной цене запаса реализовать в Excel не очень сложно. В примере к статье такой расчет приведен на листе Average.
Здесь, в отличие от FIFO, рассчитывается цена на складе после каждой операции. Поступления товаров изменяют среднюю стоимость единицы товара с учетом нового количества и цены. Операции по расходу не влияют на цену товара на складе. Единственная сложная формула предназначена для поиска последней операции с текущим товаром (Avarage!I6):
{ =MAX(IF(C$5:C5=$C6;ROW(I$5:I5)-ROW(I$5);0))}
Здесь организуется поиск в вертикальном массиве в обратную сторону (MATCH наоборот). В результате определяется относительное смещение от заголовка таблицы (строка 5).
Следует заметить, что объем данных также будет влиять на производительность, но на порядок меньше, чем в случае формул для FIFO-метода расчетов.
Смотри также
» Расчет расхода по спецификациям
Материальная составляющая производственного процесса в большинстве случаев описывается через вхождение компонентов в готовые…
» Складской учет
Программа предназначена для материального учета ресурсов различного типа. Возможна реализация учета в стоимостном…
» Редактирование сводной таблицы
Сводные таблицы Excel является мощным средством анализа данных. При этом исходные данные могут храниться как в электронных таблицах, так…
Автор:
John Stephens
Дата создания:
2 Январь 2021
Дата обновления:
15 Апрель 2023
Содержание
- Шаг 1
- Шаг 2
- Шаг 3
- Шаг 4
- Шаг 5
- Шаг 6
- Шаг 7
Бухгалтеры используют электронные таблицы и специальные методы для оценки и отслеживания запасов.
Бухгалтерский термин FIFO относится к методу управления активами инвентаризации и оценки активов «первым пришел — первым вышел». В отличие от его родственной методологии «первым пришел — первым вышел», этот термин определяет, что первые продукты, внесенные в инвентарь, являются первыми предметами, которые были изъяты. В периоды роста цен это означает, что более старые запасы — первый инвентарь в наличии — имеют более низкую стоимость в бухгалтерских книгах, оставляя более новые и более дорогие запасы в балансе. Это приводит к снижению себестоимости проданных товаров и увеличению чистой прибыли. По налоговым соображениям IRS позволяет компаниям рассчитывать только на один метод оценки без переключения между ними в течение года без разрешения.
Шаг 1
Просмотрите уравнение инвентаризации, чтобы понять, как настроить электронную таблицу для FIFO. Уравнение: Начальный запас + Чистые покупки — Стоимость проданных товаров = Конечный запас. Метод FIFO означает, что первый продукт, который входит в инвентарь, является первым проданным продуктом.
Шаг 2
Откройте электронную таблицу Excel. Создайте столбцы со следующими заголовками: «Начальный запас», «Чистые закупки», «Стоимость проданных товаров» и «Конечный запас».
Шаг 3
Введите сумму вашего начального инвентаря. Допустим, у вас есть кофейня, и на следующий день вы производите 100 чашек кофе, которые продаются по цене от 1 до 100 долларов, и продаются по средней цене 2 доллара каждая.
Шаг 4
Пометьте первый ряд под заголовками столбцов как «День 1». Начальная стоимость инвентаря для первого дня — 100 чашек кофе по цене 1 доллар. Общая стоимость начальной стоимости — 100 долларов. Обозначьте вторую строку «День 2», и теперь это значение составляет 200 долларов или 2 раза по 100.
Шаг 5
Добавьте количество покупок, которые вы делаете, чтобы пополнить свой инвентарь в таблицу. Допустим, вы покупаете 100 чашек кофе по цене 3 доллара за чашку. Введите эту сумму во втором столбце как чистые покупки.
Шаг 6
Введите стоимость первых чашек кофе в качестве стоимости товаров, проданных в следующем столбце. Вы продали 200 чашек кофе. Первые 100 чашек кофе стоят 100 долларов, а следующие 100 — 2 доллара. Общая стоимость товаров, проданных за эти дни, составляет 300 долларов.
Шаг 7
Рассчитайте конечный запас, используя уравнение, введенное в поле электронной таблицы для окончания запаса, на основе заголовка каждого столбца: Начальный запас + Чистые покупки — Стоимость проданных товаров = Конечный запас. Это должно быть $ 300 + $ 300 — $ 300 = $ 300.
Наконечник
Добавив формулу Excel, которая соответствует перечисленным ячейкам, вы можете скопировать и вставить формулу в столбец «Конечный инвентарь», чтобы вам не приходилось каждый раз заново его создавать.
Предупреждение
Используйте функцию защиты в Excel, чтобы защитить формулу от случайных изменений.