根据切片器选择的表格外观

时间:2019-08-05 09:36:41

标签: powerbi dax

我有一个表格可视化图片,每个分公司的员工总数(根据切片器中的“区域”选择)应为公司总数。

要求:如果在切片器中选择了North区域,则表格视觉应显示北部区域中分支的值。

问题:根据切片器,我无法在表格中获取分支明智的值。

我尝试为分支创建度量并将其添加到视觉效果,但是当选择另一个区域时,没有数据。

有关更多详细信息,请参见下面的屏幕截图: enter image description here enter image description here

我使用的度量:

Company Total = 
VAR _TotalAvg =
    CALCULATE (
        CALCULATE (
            DISTINCTCOUNT ( EmployeeCount[EmployeeID]),
            ALL (Branch[Region] ),
            ALLSELECTED ( 'Date'[Year] )
        )
    )
RETURN
    IF (
        HASONEVALUE ( EmployeeCount[weeknum]),
        _TotalAvg,
        SUMX ( VALUES ( EmployeeCount[weeknum]), _TotalAvg )
    )

这是下面的一个,用于显示值应如何显示所选区域中所有分支的可视表。

Manang = CALCULATE (
    DISTINCTCOUNT ( EmployeeCount[EmployeeID]),
    FILTER ( branch, branch[Branch] = "Manang" )
)

任何人都可以让我知道如何实现这一目标吗?

这是一个驱动器上缩小的.pbix文件。 https://1drv.ms/u/s!Ave_-9o8DQVEgQ0MjEg21sSb38lT?e=pakuIP

谢谢

2 个答案:

答案 0 :(得分:2)

基于切片器选择,无法动态更改Table视觉效果中显示的度量。

相反,请考虑使用具有基于DISTINCTCOUNT ( EmployeeCount[EmployeeID])的新度量的Matrix视觉效果,然后将BRANCH用作视觉效果中的列切片器。

不幸的是,此技术还会对每个分支重复[公司总计]度量,这可能不是您想要的。

但是,通常,对于这些“列表”类型的报告,请考虑使用Power BI Paginated Report Builder,它可以使您更好地控制数据在行和列中的显示方式。

答案 1 :(得分:1)

没有简单的方法可以做到这一点,但是在技术上是可行的。

如果必须的话,我会大致按照以下方法进行处理:

  1. 使用slicer之类的方法创建一个计算表SUMMARIZE(branch, branch[Region], branch[branch]),用于您的区域切片器和分支列。

  2. 将该表与区域和度量的叉积相结合。也就是说,区域{NORTH, SOUTH}和您要使用的任何度量名称{weeknum, DayOfTheWeek, CompanyTotal}

CrossJoinTable =
CROSSJOIN (
    SELECTCOLUMNS ( { "North", "South" }, "Region", [Value] ),
    SELECTCOLUMNS ( { "weeknum", "DayOfTheWeek", "CompanyTotal" }, "Measure", [Value] )
)

  1. 创建一个切换量度,该量度在切片器表的branch列中读取(现在也包括量度名称)并返回适当的量度。像这样:
    Switching Measure = 
    VAR branch = SELECTEDVALUE(slicer[branch])
    RETURN
        SWITCH ( branch,
            "weeknum", [weeknum measure],
            "DayOfTheWeek", [DayOfTheWeek measure],
            "Company Total", [Company Total],
            CALCULATE(
                DISTINCTCOUNT ( EmployeeCount[EmployeeID] ),
                branch[Branch] = branch
            )
        )

在矩阵中,将StartDate放入行中,将slicer[branch]放入列中,并将[Switching Measure]放入值中。


正如@Dan指出的那样,可能有更好的工具来完成这项工作,但有时如果您确实需要它,则可以采取解决方法。