Powerbi 试图理解DAX中的计算和过滤
我正在尝试使用过滤器和计算DAX表达式。我想了解不同订单中价格低于该类别平均成本的产品的数量:自行车。 首先,我创建了一个计算自行车平均成本的指标,即913.61Powerbi 试图理解DAX中的计算和过滤,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我正在尝试使用过滤器和计算DAX表达式。我想了解不同订单中价格低于该类别平均成本的产品的数量:自行车。 首先,我创建了一个计算自行车平均成本的指标,即913.61 avg product cost bikes = CALCULATE ( AVERAGE ( AW_Product_DIM[ProductCost] ), AW_Product_Categories_DIM[CategoryName] = "Bikes" ) 接下来,我将创建一个度量来计算订单总数
avg product cost bikes =
CALCULATE (
AVERAGE ( AW_Product_DIM[ProductCost] ),
AW_Product_Categories_DIM[CategoryName] = "Bikes"
)
接下来,我将创建一个度量来计算订单总数
Total Orders =
DISTINCTCOUNT ( AW_Sales[OrderNumber] )
接下来,我有一个带过滤器的计算函数来计算订单总数,订单中的产品成本低于所有产品的平均成本913.61
Sales less than Bike's avg =
CALCULATE (
[Total Orders],
FILTER (
AW_Product_DIM,
AW_Product_DIM[ProductCost] < [avg product cost bikes]
)
)
销量低于自行车平均销量=
算计(
[订单总数],
滤器(
AW_产品尺寸,
AW_产品尺寸[产品成本]<[平均产品成本]
)
)
你能帮我理解为什么我的销售额没有比自行车的平均值列少多少吗?配件和服装类的所有产品均低于自行车的平均成本913.61。因此,在配件和服装方面,自行车的平均销量应分别低于16983辆和6976辆。所有的自行车都超过1000辆,所以应该是空的
请参阅
它具有我试图可视化的矩阵视图。度量值是在调用它的上下文中计算的。当您在过滤器(或任何迭代器函数)内部调用度量值时,它是,并且可以是每行的不同值 解决此问题的一种方法是,在筛选器外部计算一次,然后对筛选器迭代的每一行重新使用该值,如下所示:
Sales less than Bike's avg =
VAR AvgBikeCost = [avg product cost bikes]
RETURN
CALCULATE (
[Total Orders],
FILTER (
AW_Product_DIM,
AW_Product_DIM[ProductCost] < AvgBikeCost
)
)
销量低于自行车平均销量=
VAR AvgBikeCost=[平均产品成本]
返回
算计(
[订单总数],
滤器(
AW_产品尺寸,
AW_产品尺寸【产品成本】
这正是我想要实现的目标。因为,我正在学习PowerBI,我想知道有没有其他方法可以达到这个结果,比如使用DAX函数的组合,如计算和移除过滤器等?可以调整过滤器中的上下文使其工作,但这远远低于只计算一次值的效率。是的,你能告诉我怎么做吗?请仅出于理解目的,将ALL(AW_Product\u Categories\u DIM)
(或REMOVEFILTERS
而不是ALL
)作为CALCULATE
中的另一个参数添加到您的第一个avg
度量值可能会起到作用。不过,我需要查看模型关系图才能确定。