Средневзвешенное с фильтрами в DAX - PullRequest
0 голосов
/ 27 января 2020

Я хочу рассчитать цену «корзины товаров» на основе средневзвешенной цены товара и веса, который я выберу для каждой категории. Моя база данных просто так:

Продукт ------ Категория ----------- Группа ----------- Цена S1, смартфон -------------- ------- ------- мобильный телефон x1 S2, смартфон -------------- ------- ------- мобильный телефон x2 Р1 -------------- -------------- Принтер Вычислительный ------- у1 P2 -------------- -------------- Версия Вычислительный ------- y2 N1 -------------- Notebook ---------- Computing ------- z1 N2 -------------- Notebook ---------- Computing ------- z2

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

Категория ----------- Вес Смартфон -------- w1 Версия для печати ------------------ w2 Ноутбук ----------- w3

Группа --------------- Вес Смартфона -------- q1 Печать ------------------ q2 Ноутбук ------------ q3

Средневзвешенное значение:

Price = [(x1+x2)/2]*[q1/q1][w1/(w1+w2+w3)] + [(y1+y2)/2]*[q2/(q2+q3)][w2/(w1+w2+w3)] + [(z1+z2)/2]*[q3/(q2+q3)][w3/(w1+w2+w3)]

В моей панели инструментов есть срезы, которые позволяют пользователю фильтровать категории, которые он хочет рассмотреть в этой мере. Например, если пользователь выберет в слайсере только Smarthphone и Printer, цена будет:

Price = [(x1+x2)/2]*[q1/q1][w1/(w1+w2)] + [(y1+y2)/2]*[q2/(q2)][w2/(w1+w2)]

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

Это это, я надеюсь, что кто-то даст мне ответ, потому что у меня есть проблемы с этим расчетом с прошлой недели, и у меня есть срок на завтра: (

...