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

结果: