Страницы: 1
RSS
Индекс цен в сводной таблице
 
Добрый день.

Прошу подсказать решение, - необходимо рассчитать индекс цен используя сводные таблицы.
Попробовал все известные варианты, вычисляемые поля, объекты, - решение не нашёл, поиск результат не принёс.

Базовая формула для расчёта:

Где числитель - фактическая стоимость продукции анализируемого периода;
Знаменатель - условная стоимость товаров, которые закуплены по ценам прошлого периода в количестве анализируемого периода.

В прикреплённом файле выдержка из исходных данных, а также формула расчёта индекса в соседнем со сводной таблицей столбце.
Буду признателен за помощь.
 
Доброе время суток
Цитата
Евгений Валиахметов написал:
которые закуплены по ценам прошлого периода в количестве анализируемого периода.
Полагаю, что в силу этого условия вы эту задачу обычными сводными не решите. Разве что, если создадите в таблице источнике новый столбец с ценами предыдущего периода для каждого товара, возможно тогда и получится.
А существующей структуре данных - это только Power Pivot. И то я не очень себе представляю как это сделать в DAX 2010-2013. Может Максим Зеленский заглянет в тему и что-нибудь этакое выкрутит.
Если интересно, то могу вечером предоставить решение в Power BI Desktop.
 
Вариант: вывести в отдельный диапазон уникальные пары  Родитель1_Родитель2 и считать по исходным данным (макрос, СУММЕСЛИМН/СЧЕТ, СРЗНАЧЕСЛИ)
 
vikttur, не понял, как применить к сводным таблицам.

Цитата
Андрей VG написал: Если интересно, то могу вечером предоставить решение в Power BI Desktop
Да, интересно. Спасибо.
 
Цитата
vikttur написал: Вариант: ... считать по исходным данным
без сводной
 
Вариант в Power BI Desktop.
Изменено: Андрей VG - 09.09.2018 13:08:37 (Подправил, Не корректно вычислялся общий итог.)
 
Цитата
Евгений Валиахметов написал:
В логике языка буду разбираться, вопрос пока не могу задать.
Но результат решения не совпадает с расчётом "на калькуляторе".
Пример:
Полировочные пасты - рассчитанный мной индекс = 0,97
В PowerBI я вижу результат 0,91.
Можете уточнить, по какой причине расхождение?
Я не специалист в вашей области деятельности. В Использовал максимальную цену (что в прочем видно в приложенном файле) по году для данной номенклатуры. Именно по ней и получается 0,91. Если использовать среднюю цену, то получится 0,99. Тогда в приложенном файле приведите методику расчёта на листе "Полировочные пасты", как вы получили 0,97. Расчёт был от минимальных цен?
 
Андрей VG, в расчёте индекса не используется максимальное или среднее значение цены.
Используется средневзвешенная цена (в данном случае весом выступает количество отчётного периода, а цены - отчётного и предыдущего периодов).
Вот пример (во вложении - лист 'Свод', поле 'Индекс цен в разрезе группы'):



 
Цитата
Евгений написал:
в расчёте индекса не используется максимальное или среднее значение цены.Используется средневзвешенная цена
Тогда не вижу ваших проблем с модернизацией меры. Замените максимум цены на сумму стоимостей, делённую на сумму количеств - получите как раз средневзвешенную цену. ;)
 
Господа модераторы, между моими 6 и 7 сообщениями было сообщение Евгения. А куда оно делось? Или это у меня был глюк и я сам себе отвечал? Не уж то телепатом становлюсь :)
 
Я не трогал )
 
И я ни при чем. Сегодня еще не злой, удалил только оду тему и по просьбе автора.
Мышка бежала, хвостиком зацепила...

P.S. Когда увидел цитату в сообщении №7, пролистал туда-сюда тему... Решил, что автор в личку обращался.
 
Юрий М, vikttur, посыпаю голову пеплом, приношу свои извинения. И правда там не было ничего. Пора сдаваться медведю негром на его плантации, чтобы не было никакого компа, а только делай отсюда и до отъезда  :)
 
Медведю? От его самокрутки надышишься - ещё не такое померещится )
 
Андрей VG,
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Андрей VG ,
Михаил, да не проблема для меня, главное что не щипчиками для бровей. Проблема для тебя - я не разу с таким агрегатом не работал ;)  
А ТС затих. толи взлетело, толи нет :(
 
Off
Цитата
Андрей VG написал:
я не разу с таким агрегатом не работал
то есть с тем что на первом плане знакомство имеется. Андрей вот так все и вскрывается. :-)
По вопросам из тем форума, личку не читаю.
 
КолВо
Код
= SUM ( Data[Количество] )
СрВзвЦена
Код
= [Стоим-ть] / [КолВо]
Стоим-ть
Код
= SUM ( Data[Стоимость] )
Вес индекса
Код
= SUMX (
         VALUES (   Data[Номенклатура] );
         [КолВо]
             * CALCULATE (
                   [СрВзвЦена];
                 FILTER ( ALL ( Data[Год] ); Data[Год] = MAX (   Data[Год] ) - 1 )
             )
     )
Индекс
Код
= IF (
         ISFILTERED ( Data[Номенклатура] );
         BLANK ();
         DIVIDE ( [Стоим-ть]; [Вес индекса] )
     )
F1 творит чудеса
 
вот в файле. 0,97 вроде получилось :)
F1 творит чудеса
 
Максим Зеленский, спасибо, буду разбираться в power pivot и языке (dax, верно?).

Андрей VG, работал)), добрался, разбираюсь!

Спасибо всем за участие!
 
Цитата
Максим Зеленский написал:
вот в файле. 0,97 вроде получилось
Максим, смотрел в эту сторону. Но, что если на самом деле в реальных данных у Евгения, ситуация может быть как в этой теме? Допустим количество номенклатур текущего года больше чем число предыдущего?
Изменено: Андрей VG - 10.09.2018 21:56:17
 
Цитата
Андрей VG написал:
количество номенклатур текущего года больше чем число предыдущего?
хм... ну тогда, конечно, надо брать прошлогоднюю номенклатуру like-for-like для числителя:
Числитель L4L
Код
=
     CALCULATE (
           [Стоим-ть];
         CALCULATETABLE (
             VALUES (   Data[Номенклатура] );
             FILTER ( ALL ( Data[Год] ); Data[Год] = MAX (   Data[Год] ) - 1 )
         )
     )
Индекс L4L
Код
=
     IF (
         ISFILTERED ( Data[Номенклатура] );
         BLANK ();
         DIVIDE ( [Числитель L4L], [Вес индекса] )
     )
Но тут уж автор сам должен сказать, как надо :)
F1 творит чудеса
 
Цитата
Андрей VG написал:
Но, что если на самом деле в реальных данных у Евгения, ситуация может быть как в этой  теме ? Допустим количество номенклатур текущего года больше чем число предыдущего?
Андрей, для анализа буду брать только позиции, закупавшиеся в обоих периодах. Либо данные будут подготовлены, либо использую предложение Максима относительно внесения изменений в логику расчёта (LFL).
По сути индекс подразумевает только такой вариант.
Спасибо.
 
Цитата
Максим Зеленский написал:
Но тут уж автор сам должен сказать, как надо
Автор написал
Цитата
Евгений написал:
буду брать только позиции, закупавшиеся в обоих периодах
Но бережённого... Сколько тут таких, а я тут забыл, тут пропустил, я просто ошибся... :)
Спасибо Максим за вариант, а самое главное за указание - чего собственно я на текущий период средневзвешенную цену взялся считать... Не нужна она в данном случае никак.
Страницы: 1
Наверх