这篇文章来研究一下在PowerBI如何通过两个切片器动态的生成一张矩阵表,切片器分别为:维度切片器,度量切片器。
假设数据表如下,现在假设维度有2个:班级、性别,度量有2个:总分、平均分

在当前PowerBI中,切片器值的来源必须是一列数据,现在这里有2个切片器,一列是维度,一列是度量值,如下:
维度:

度量:

将维度列、度量列分别放到两个切片器上,这时也可看不出来什么效果

结合最终的效果图考虑接下来的动作。
先考虑维度列,当维度切片器进行筛选时,该维度对应的值要展示出来,这些维度的值是我们原表中一列一列的数据,那怎么让维度列与原表产生联系,达到我们想要的结果?见下图

Dax公式:

这时我们可以新建一张视图-矩阵表,将值列放入矩阵的row ,看看效果


从上图看到,当dim选择不同的维度时,矩阵的行也会变化,正是我们想要的。
再来考虑度量列,当度量切片器进行筛选时,矩阵表的列要展示出对应的度量来,这个时候需要我们来写一个度量值,该度量值能够计算矩阵表行和列交叉处的值。
建立以下度量:
学生数量:

学生成绩:

矩阵行列交叉点的度量:

以上度量建立完成后,我们看一下最终的效果
将dim表中的values 放入 行,kpi表中的kpi放入 列,M1 度量值 放入 值


到这里就实现了 单维度切换、多维度展示的效果,现在总结一下:
1. 建立两张单独的表,分别存放维度与度量 2. 建立一个计算行列交叉处的度量 3. 建立一个矩阵表,利用维度表的dim列作为筛选器,维度表中的Values作为矩阵的行字段,度量表的kpi作为矩阵的列字段
经过上述三个步骤,就可以完成FreeReport的制作,不过这种方法是有些缺陷的,度量可以展示多列,维度只能一个一个的展示。
如果你有更好的方法,可以进行讨论
文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




