DAX SWITCH 根据另一列和切片器值更改值
DAX SWITCH change a value based on another column and a slicer value
我很熟悉在 SWITCH 语句中使用带有 SELECTEDVALUE 的切片器来更改值,但我还需要根据另一列中的数据进行更改。
Number Letter EW
1 A East
2 A East
3 P West
4 P West
根据上述 table,我想根据切片器选择将 'EW' 列的值动态更改为东或西。每个字母都有自己的切片器。一个用于 A,一个用于 P。这些切片器中的每一个都可以让您选择东方或西方。
所以对于 'A' 切片器,假设我选择 'West'。 table 中 Letter = 'A' 中的每一行都会将 'EW' 值更改为 West。
我过去曾使用以下代码允许根据切片器选择更改数据,但当我需要根据 Letter 列更改 EW 列时,它对我没有帮助。
NewEW = SWITCH(
SELECTEDVALUE(Letter[Letter]),
"A", "East",
"West")
据我了解,您的 table 带有两个支持 table(驱动切片器):
那么一个解决方案就是设置这个措施:
NewEW =
VAR VrCurrRow = SELECTEDVALUE(Letter[Letter];"")
VAR VrSlicerA =
CALCULATE(
SELECTEDVALUE('Slicer A'[EW];"")
)
VAR VrSlicerB =
CALCULATE(
SELECTEDVALUE('Slicer B'[EW];"")
)
VAR Result =
SWITCH(
VrCurrRow;
"A";VrSlicerA;
VrSlicerB
)
RETURN
Result
结果:
我很熟悉在 SWITCH 语句中使用带有 SELECTEDVALUE 的切片器来更改值,但我还需要根据另一列中的数据进行更改。
Number Letter EW
1 A East
2 A East
3 P West
4 P West
根据上述 table,我想根据切片器选择将 'EW' 列的值动态更改为东或西。每个字母都有自己的切片器。一个用于 A,一个用于 P。这些切片器中的每一个都可以让您选择东方或西方。
所以对于 'A' 切片器,假设我选择 'West'。 table 中 Letter = 'A' 中的每一行都会将 'EW' 值更改为 West。
我过去曾使用以下代码允许根据切片器选择更改数据,但当我需要根据 Letter 列更改 EW 列时,它对我没有帮助。
NewEW = SWITCH(
SELECTEDVALUE(Letter[Letter]),
"A", "East",
"West")
据我了解,您的 table 带有两个支持 table(驱动切片器):
那么一个解决方案就是设置这个措施:
NewEW =
VAR VrCurrRow = SELECTEDVALUE(Letter[Letter];"")
VAR VrSlicerA =
CALCULATE(
SELECTEDVALUE('Slicer A'[EW];"")
)
VAR VrSlicerB =
CALCULATE(
SELECTEDVALUE('Slicer B'[EW];"")
)
VAR Result =
SWITCH(
VrCurrRow;
"A";VrSlicerA;
VrSlicerB
)
RETURN
Result
结果: