Страницы: 1
RSS
Наиболее распространенная цена, Power Pivot, Dax
 
Всем доброго времени суток,

Подскажите пожалуйста, как расчитать в Dax наиболее распространеную цену товара.
Тоесть нужна мера которая выведет цену, по которой был продан максимальный объем продаж.
 
Доброе время суток.
Как-то так
 
@Андрей VG Спасибо огромное!!! Очень помогли!!!
 
@Андрей VG
На практике не работает, так как в оригинальных данных очень много строк и нужно делать как то через меру суммы объема продаж.

А как не могу понять(((
Изменено: dvoinykh - 04.07.2020 14:07:44
 
Цитата
dvoinykh написал:
На практике не работает,
Это не мешало бы доказать ;)   Для вас ниет никакой разницы между первым набором данных и вторым?
Там только один момент, который вы постеснялись разобрать - что если для одному и тому же объёму продажи соответствует более одной цены?
 
Андрей VG
Правильнее наверное сказать, что я плохо подобрал пример (который не учитывает, как данные устроены в реальной модели).

Да, объемы и цены могут быть в любых комбинациях с практически любыми цифрами.

PS: В реальной модели более 18 млн строчек, делаю в Power BI.
 
dvoinykh, ответ на вопрос
Цитата
Андрей VG написал:
что если для одному и тому же объёму продажи соответствует более одной цены?
будет?
 
Андрей VG
Да, для одного и того же объёма продаж может быть несколько цен.

Например продали:
сегодня Яблоки 85руб. 10 кг
сегодня Яблоки 90руб. 15 кг

вчера Яблоки 85руб. 15 кг
вчера Яблоки 90руб. 10 кг
 
Цитата
Kirill_KN написал:
может быть несколько цен.
закончите фразу, тогда
Цитата
dvoinykh написал:
наиболее распространеную цену товара.
считаем :qstn:
 
да, считаем.
По какой цене было продано больше всего объема, для каждого товара.
 
Цитата
Kirill_KN написал:
да, считаем.
Что считаем? Вчера вы продали яблок 1000 кг по цене 55 и 800 кг по 50, а сегодня 1000кг по 50 и 800кг по 55. Какая из этих цен 50 и 55 для максимального объёма продажи 1000кг - наиболее распространённая цена товара?
 
при цитировании тоже нужно думать [МОДЕРАТОР]

Конечно ситуация когда в сумме получается одинаковый объем для двух цен на практике может и не случиться, но в этом случае можно вывести тогда верхнюю цену.

В файле примера который я обновил (мое сообщение 4 Июл 2020 14:05:57) данные теперь сформированы максимально приближено к модели.
Апельсины по 85руб. в сумме было продано 1600
Апельсины по 90руб. в сумме было продано 1750

Изначальная мера которую написали, для апельсинов выводит наиболее распространенную цену в 85 руб. а правильный ответ должен быть по 120 так как по этой цене сумма объема продаж выше.

PS: обновленный файл с примером прикладываю.
 
Цитата
Kirill_KN написал:
можно вывести тогда верхнюю цену.
Верхняя это что? Вариант, что под этим подразумевается максимальная цена
Код DAX:
MCP =
VAR countByPrice =
    SUMMARIZE (
        'Data';
        'Data'[Цена продажи];
        "count by price"SUM ( 'Data'[Объем продаж] )
    )
VAR maxVolume =
    MAXX ( countByPrice; [count by price] )
VAR rowsWithMaxVolume =
    FILTER ( countByPrice; [count by price] = maxVolume )
RETURN
    MAXX ( rowsWithMaxVolume; 'Data'[Цена продажи] )
 
Вариант:
Код
MCP2 =
MAXX(
    TOPN( 1, VALUES( Data[Цена продажи] ), [Total Volume], DESC ),
    Data[Цена продажи]
)

на таком объеме разница практически незаметна, но план запроса значительно короче
F1 творит чудеса
 
Максим Зеленский, Андрей VG,
Спасибо огромное!!!
Применил на реальной модели на 18 млн строк, оба варианта работают очень быстро и практически одинаково, разница во времени обработки 10-20 миллисекунд. MCP 2 - получился чуть чуть быстрее.
Страницы: 1
Наверх