Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 试图理解DAX中的计算和过滤_Powerbi_Dax_Powerbi Desktop - Fatal编程技术网

Powerbi 试图理解DAX中的计算和过滤

Powerbi 试图理解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" ) 接下来,我将创建一个度量来计算订单总数

我正在尝试使用过滤器和计算DAX表达式。我想了解不同订单中价格低于该类别平均成本的产品的数量:自行车。 首先,我创建了一个计算自行车平均成本的指标,即913.61

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
度量值可能会起到作用。不过,我需要查看模型关系图才能确定。