平均测量
Averaging From Measure
我是 Power BI 的新手,我正在尝试了解一些功能。
我尝试了两种方式:
1 - 明确在 AVERAGEX 函数中进行计算
平均 X = AVERAGEX(产品,
产品[数量]*产品[折扣])
2 - 我试图通过先在度量中计算 Products[Amount]*Products[Discount] 来简化上述内容,然后在 AVERAGEX 中使用它
平均 = AVERAGEX(产品,
[总和])
但是,我在 table
的最后一行得到 2 个不同的值
问题是 AVERAGEX
迭代的 table 中存在重复行。
AVERAGEX(Products, [Sumx])
将对 Products
的每一行计算一次 [Sumx]
,每次用一个 row-context 对应于迭代访问的行。
{("Red", 50, TRUE(), 2)}
行的第一个和第二个副本都将被访问;并设置为迭代步骤的当前 row-context。
在每个迭代步骤中,[Sumx]
会将此 row-context 转换为过滤器上下文(由于隐式 context-transition 测量适用),并将获得过滤器上下文 ("Red", 50, TRUE(), 2)
。此筛选器上下文匹配两行 Products
,因此内部 SUMX(Products,Products[Amount]*Products[Discount])
将迭代两行。
最终结果是 AVERAGEX(Products, [Sumx])
计算出以下错误值:
(
2000*2
+(50*2+50*2) //Both `{("Red", 50, TRUE(), 2)}` rows included in filter context of SUMX
+(50*2+50*2) //Both `{("Red", 50, TRUE(), 2)}` rows included in filter context of SUMX again.
)
/3 //3 rows in Products (when Color="Red")
AVERAGEX(Products, Products[Amount]*Products[Discount])
不会将上下文转换应用于行上下文并迭代此新过滤器上下文中的行,因此 Products[Amount]*Products[Discount]
计算为 [= 当前迭代行的正确值14=].
我是 Power BI 的新手,我正在尝试了解一些功能。
我尝试了两种方式:
1 - 明确在 AVERAGEX 函数中进行计算 平均 X = AVERAGEX(产品, 产品[数量]*产品[折扣])
2 - 我试图通过先在度量中计算 Products[Amount]*Products[Discount] 来简化上述内容,然后在 AVERAGEX 中使用它 平均 = AVERAGEX(产品, [总和])
但是,我在 table
的最后一行得到 2 个不同的值问题是 AVERAGEX
迭代的 table 中存在重复行。
AVERAGEX(Products, [Sumx])
将对 Products
的每一行计算一次 [Sumx]
,每次用一个 row-context 对应于迭代访问的行。
{("Red", 50, TRUE(), 2)}
行的第一个和第二个副本都将被访问;并设置为迭代步骤的当前 row-context。
在每个迭代步骤中,[Sumx]
会将此 row-context 转换为过滤器上下文(由于隐式 context-transition 测量适用),并将获得过滤器上下文 ("Red", 50, TRUE(), 2)
。此筛选器上下文匹配两行 Products
,因此内部 SUMX(Products,Products[Amount]*Products[Discount])
将迭代两行。
最终结果是 AVERAGEX(Products, [Sumx])
计算出以下错误值:
(
2000*2
+(50*2+50*2) //Both `{("Red", 50, TRUE(), 2)}` rows included in filter context of SUMX
+(50*2+50*2) //Both `{("Red", 50, TRUE(), 2)}` rows included in filter context of SUMX again.
)
/3 //3 rows in Products (when Color="Red")
AVERAGEX(Products, Products[Amount]*Products[Discount])
不会将上下文转换应用于行上下文并迭代此新过滤器上下文中的行,因此 Products[Amount]*Products[Discount]
计算为 [= 当前迭代行的正确值14=].