我有一个使用 Switch 来获得不同结果的方法。 我遇到的问题是,如果我单独按 Switch 的值之一过滤对象,我将获得结果,但不会获得小计。
我告诉你:
在第 1 点,有我选择的级别(都是费用)。 在点矩阵中,我可以单独看到它,但看不到小计(级别“I”)。
我给你展示一下措施:
Neto Analitica Unitario = IF(OR(SELECTEDVALUE(Analitica[Nivel1]) = "COSTE INDIRECTO CAMPO", SELECTEDVALUE(Analitica[Nivel1]) = "COSTE INDIRECTO SALIDAS"), CALCULATE([Neto Analitica Unitario Prev.]),SUMX(values(Articulo[FamiliaSuperior]), [Neto Analitica Unitario Prev.]))
这一措施取决于我们有开关的地方:
Neto Analitica Unitario Prev. = VAR _Calculo = SWITCH (
SELECTEDVALUE ( Analitica[Nivel1] ),
"VENTAS", DIVIDE([Total Venta Analitico], [Peso Neto Salidas]),
"COSTE DIRECTO ENTRADAS", [Coste Unitario Directo Entradas Año Natural],
"COSTE DIRECTO SALIDAS", DIVIDE( [Coste Directo Salida], [Peso Neto Salidas]),
"MARGEN BRUTO",
ROUND(DIVIDE([Total Venta Analitico], [Peso Neto Salidas]),2)
- ROUND([Coste Unitario Directo Entradas Año Natural],2)
- ROUND(DIVIDE( [Coste Directo Salida], [Peso Neto Salidas]),2),
"COSTE INDIRECTO SALIDAS", DIVIDE([Coste Indirecto Salidas] * ( -1 ), [Peso Neto Salidas]),
"COSTE INDIRECTO CAMPO", DIVIDE([Coste Indirecto Campo], [Peso Neto Salidas Proveedor Interno]) * (-1),
"COSTE DIRECTO CAMPO",[Coste Unitario Directo Campo Prev.],
"MARGEN NETO",
ROUND(CALCULATE(ROUND(DIVIDE( [Total Venta Analitico], [Peso Neto Salidas]),2)
- ROUND([Coste Unitario Directo Entradas Año Natural],2)
- ROUND(DIVIDE( [Coste Directo Salida], [Peso Neto Salidas]),2)
- ROUND(DIVIDE([Coste Indirecto Salidas] * ( -1 ), [Peso Neto Salidas]),2)
+ ROUND(DIVIDE([Coste Indirecto Campo], [Peso Neto Salidas Proveedor Interno]),2)
- ROUND([Coste Unitario Directo Campo Prev.],2)),2))
RETURN IF([Peso Neto Salidas] <> BLANK(), _Calculo, BLANK())
你知道我如何获得小计吗?会不会是表之间的关系有问题?
用
SUMX
包裹起来,类似于:
daxNeto Analitica Unitario Prev. =
var _Calculo =
SUMX(
DISTINCT(Analitica[Nivel1]),
(
SWITCH( Analitica[Nivel1],
...
)
)
)
return IF([Peso Neto Salidas] <> BLANK(), _Calculo, BLANK())