首页 > 解决方案 > 如何在 Power BI 的 Switch 语句中修复 VAR 函数

问题描述

新手来了 我正在尝试根据 Power BI 中的两个条件设置一个名为“标签”的返回值。我们公司有 23 个国家。如果他们符合 3 个特定国家/地区,那么我希望标签被称为“汽车”,如下所述,如果他们不符合这些国家/地区,那么我基本上想根据我的第 2 层名称标准给它一个替代标签。

问题是,其中一些经理在这 3 个国家/地区也有员工人数,可能是照片或相机,但希望他们改为说汽车。

不幸的是,这对我不起作用。任何帮助将不胜感激。

这是我试图正确的 DAX:

Label =
  VAR _Country = SWITCH(
    TRUE (),
    ActiveHC[Country Name] = "Turkey", "Cars",
    ActiveHC[Country Name] = "Greece", "Cars",
    ActiveHC[Country Name] = "Italy", "Cars",
    Blank()
  )
  VAR _Segment = SWITCH(
    True(),
    ActiveHC[Layer 2] = "Beth", "Corporate",
    ActiveHC[Layer 2] = "Joanie", "Corporate",
    ActiveHC[Layer 2] = "Dan", "Corporate",
    ActiveHC[Layer 2] = "Bill", "Corporate",
    ActiveHC[Layer 2] = "Christina", "Corporate",
    ActiveHC[Layer 2] = "Steven", "Cars",
    ActiveHC[Layer 2] = "Bobby", "Audio",
    ActiveHC[Layer 2] = "Matt", "Photos",
    ActiveHC[Layer 2] = "Peter", "Photos",
    ActiveHC[Layer 2] = "Edward", "Photos",
    ActiveHC[Layer 2] = "Joey", "Software",
    ActiveHC[Business Unit] = "Cameras", "Cameras",
    BLANK ()
    )
RETURN IF(ISBLANK(_Country), _Segment, _Country) 

我本质上希望能够创建一个这样的表:

Label   Count
Cars    7
Imaging 1
Audio   1
Corporate   1
Software    1
Photos  1

我还想将该字段用作过滤器,并将此计算列添加到带有其他数据的表中作为记录导出。

任何帮助将非常感激。非常感谢!!!

![数据样本] https://imgur.com/a/Q5ZTgR9

标签: switch-statementpowerbidax

解决方案


在模型中创建一个计算列,如下所示:

Country Name Filtered =
SWITCH (
    TRUE (),
    ActiveHC[Country Name] = "Turkey", "Cars",
    ActiveHC[Country Name] = "Greece", "Cars",
    ActiveHC[Country Name] = "Italy", "Cars",
    BLANK ()
)

然后,创建另一个名为段的计算列:

Segment =
SWITCH (
    TRUE (),
    ActiveHC[Layer 2] = "Beth", "Corporate",
    ActiveHC[Layer 2] = "Joanie", "Corporate",
    ActiveHC[Layer 2] = "Dan", "Corporate",
    ActiveHC[Layer 2] = "Bill", "Corporate",
    ActiveHC[Layer 2] = "Christina", "Corporate",
    ActiveHC[Layer 2] = "Steven", "Cars",
    ActiveHC[Layer 2] = "Bobby", "Audio",
    ActiveHC[Layer 2] = "Matt", "Photos",
    ActiveHC[Layer 2] = "Peter", "Photos",
    ActiveHC[Layer 2] = "Edward", "Photos",
    ActiveHC[Layer 2] = "Joey", "Software",
    ActiveHC[Business Unit] = "Cameras", "Cameras",
    BLANK ()
)

将这些列组合成另一个,称之为混合或其他东西:

Blended =
IF ( ISBLANK ( Table[Country Name Filtered] ), Table[Segment], Table[Country Name Filtered] )

现在您可以在切片器中引用这些值或更容易测量:

Count Values :=
COUNT ( Table[Blended] )

因此,您基本上可以使用 Table[Blended] 作为您的行值和 [Count Values] 作为您的度量来创建一个表格或矩阵视觉对象。

这不是一个优雅的解决方案,但它会起作用。

希望能帮助到你!!!


推荐阅读