矩阵中自定义双 header 的错误值
wrong values with customized double header in matrix
我为 header 使用自定义计算的 table,这是我之前问题的答案:
度量 AN
是在以下脚本中计算的:
dimensionmeasure 的目标是计算 fact_an 12 个月累计的行数,其中
Fact_AN[Vitesse_Transf_Mois]<=
SELECTEDVALUE(Dim_VieillissementAN[ID_Tranche])
AN =
VAR a = SELECTEDVALUE(Dim_DateFicheAgent[ID_DateFicheAgent])
VAR b =SELECTEDVALUE('Seniority banking'[banking seniority])
RETURN
CALCULATE(
COUNTROWS(FILTER(Fact_AN;
(Fact_AN[banking seniority]<=b && NOT ISBLANK (Fact_AN[banking seniority]))));
DATESBETWEEN (
Dim_DateFicheAgent[ID_DateFicheAgent];
NEXTDAY ( SAMEPERIODLASTYEAR (LASTDATE ( Dim_DateFicheAgent[ID_DateFicheAgent] ) ));
LASTDATE ( Dim_DateFicheAgent[ID_DateFicheAgent] )
))
度量 DimensionMeasure returns 错误的值,矩阵中所有中间值几乎相同。
如何更正?
我使用星型模式,这意味着;我只有一个事实 table fact_an
。
table 事实通过 code_produit 链接到 dim_produit。
tabledim_produit的描述:
Codeproduit Dim5Rapport Dim6rapport
我试试
Formules =
VAR Top1 = SELECTEDVALUE ( EnteteRapportAgentClient[Top] )
VAR Middle = SELECTEDVALUE ( EnteteRapportAgentClient[Middle] )
VAR BottomIndex = SELECTEDVALUE ( EnteteRapportAgentClient[Index3] )
VAR Val =
SWITCH (
TRUE ();
Top1 = "Nombre de leads"; [Lead]+ 0;
Top1 = "Affaires nouvelles" && BottomIndex <> 0; [AN]+0;
Middle = "Total AN";[AN]+ 0;
Middle = "Taux Transfo"; DIVIDE([AN];[Lead])
)
VAR ValF=
IF( Middle = "Taux Transfo";
FORMAT ( Val; "0.0%" );
FORMAT ( Val; "0" ))
VAR Val2=
IF (ValF="0";"";ValF
)RETURN Val2
但是returns总是报错。我在这里举个例子https://drive.google.com/file/d/1i5HEnpoJ5mgEl98xUZzPFo7D6S0C-_tm/view?usp=drivesdk
AN 的错误值returns到处都是相同的值
这是预期的结果:
这里的关键是您需要将 header 上下文作为过滤器上下文传递给您的度量。
例如,代替行
Top1 = "Affaires nouvelles" && BottomIndex <> 0, [AN]+0,
您需要将 [AN]
替换为
CALCULATE ( [AN], Dim_Produit[Dim5Rapport] = Middle, Dim_Produit[Dim6Rapport] = Bottom )
哪里
VAR Middle = SELECTEDVALUE ( EnteteRapportAgentClient[Middle] )
VAR Bottom = SELECTEDVALUE ( EnteteRapportAgentClient[Bottom] )
同样适用于所有不同的计算。如果 header 是基于您的实际尺寸而不是人工构造的 header.
,您需要设置您期望的过滤器上下文
我为 header 使用自定义计算的 table,这是我之前问题的答案:
度量 AN
是在以下脚本中计算的:
dimensionmeasure 的目标是计算 fact_an 12 个月累计的行数,其中
Fact_AN[Vitesse_Transf_Mois]<=
SELECTEDVALUE(Dim_VieillissementAN[ID_Tranche])
AN =
VAR a = SELECTEDVALUE(Dim_DateFicheAgent[ID_DateFicheAgent])
VAR b =SELECTEDVALUE('Seniority banking'[banking seniority])
RETURN
CALCULATE(
COUNTROWS(FILTER(Fact_AN;
(Fact_AN[banking seniority]<=b && NOT ISBLANK (Fact_AN[banking seniority]))));
DATESBETWEEN (
Dim_DateFicheAgent[ID_DateFicheAgent];
NEXTDAY ( SAMEPERIODLASTYEAR (LASTDATE ( Dim_DateFicheAgent[ID_DateFicheAgent] ) ));
LASTDATE ( Dim_DateFicheAgent[ID_DateFicheAgent] )
))
度量 DimensionMeasure returns 错误的值,矩阵中所有中间值几乎相同。
如何更正?
我使用星型模式,这意味着;我只有一个事实 table fact_an
。
table 事实通过 code_produit 链接到 dim_produit。
tabledim_produit的描述:
Codeproduit Dim5Rapport Dim6rapport
我试试
Formules =
VAR Top1 = SELECTEDVALUE ( EnteteRapportAgentClient[Top] )
VAR Middle = SELECTEDVALUE ( EnteteRapportAgentClient[Middle] )
VAR BottomIndex = SELECTEDVALUE ( EnteteRapportAgentClient[Index3] )
VAR Val =
SWITCH (
TRUE ();
Top1 = "Nombre de leads"; [Lead]+ 0;
Top1 = "Affaires nouvelles" && BottomIndex <> 0; [AN]+0;
Middle = "Total AN";[AN]+ 0;
Middle = "Taux Transfo"; DIVIDE([AN];[Lead])
)
VAR ValF=
IF( Middle = "Taux Transfo";
FORMAT ( Val; "0.0%" );
FORMAT ( Val; "0" ))
VAR Val2=
IF (ValF="0";"";ValF
)RETURN Val2
但是returns总是报错。我在这里举个例子https://drive.google.com/file/d/1i5HEnpoJ5mgEl98xUZzPFo7D6S0C-_tm/view?usp=drivesdk
AN 的错误值returns到处都是相同的值
这是预期的结果:
这里的关键是您需要将 header 上下文作为过滤器上下文传递给您的度量。
例如,代替行
Top1 = "Affaires nouvelles" && BottomIndex <> 0, [AN]+0,
您需要将 [AN]
替换为
CALCULATE ( [AN], Dim_Produit[Dim5Rapport] = Middle, Dim_Produit[Dim6Rapport] = Bottom )
哪里
VAR Middle = SELECTEDVALUE ( EnteteRapportAgentClient[Middle] )
VAR Bottom = SELECTEDVALUE ( EnteteRapportAgentClient[Bottom] )
同样适用于所有不同的计算。如果 header 是基于您的实际尺寸而不是人工构造的 header.
,您需要设置您期望的过滤器上下文