我有一张看起来像这样的桌子
其中列 exclusive 包含基于列重要性的列名称(来自 a、b、c),用 '>' 表示: a > b > c
例如,如果列 a、b、c 都有一个值(如第 5 行),则选择 a 作为唯一值,因为它是最重要的 - 并且当 b & 时c 在同一行中有一个值,b 被选中。仅当 a 和 b 都没有值时才会选择 c。
由此我们可以绘制这样的图表
问题 是否可以使用 DAX 从同一个表创建这样的图表,其中包含独立于其他列的 a、b、c 列中每个值列的总和?:
我当前的解决方案涉及重复数据,这会增加数据大小而不增加信息内容 - 所以我想避免它。
喜欢这张表:
此表允许我生成两个图表,后者通过使用 full 和 value 列。前一个图表通过过滤 is_exclusive 并使用 exclusive 和 value 列。
作为一项高级奖励,我可以执行上述所有操作并具有不同的重要性吗?例如,选择 c > b > a 或任意组合。
您可以创建与此类似的度量:
By Column =
SWITCH(SELECTEDVALUE(YourTable[exclusive]),
"a", CALCULATE(SUM(YourTable[value]), REMOVEFILTERS('YourTable'[exclusive]), YourTable[a] = 1),
"b", CALCULATE(SUM(YourTable[value]), REMOVEFILTERS('YourTable'[exclusive]), YourTable[b] = 1),
"c", CALCULATE(SUM(YourTable[value]), REMOVEFILTERS('YourTable'[exclusive]), YourTable[c] = 1)
)
然后使用
[exclusive]
作为 X 轴,并使用新的度量作为值。
理想情况下,您应该有一个单独的表来表示 a、b、c 或类别。
示例:
表:
Dim Category
类别 |
---|
a |
b |
c |
然后您可以将其用于图表 X 轴,并将度量更新为:
By Column =
SWITCH(SELECTEDVALUE(`Dim Category`[Category]),
"a", CALCULATE(SUM(YourTable[value]), YourTable[a] = 1),
"b", CALCULATE(SUM(YourTable[value]), YourTable[b] = 1),
"c", CALCULATE(SUM(YourTable[value]), YourTable[c] = 1)
)
为了完整性 - 您可以对第一个图表进行此测量:
By Exclusivity =
var thisCat = SELECTEDVALUE(`Dim Category`[Category])
return CALCULATE( SUM(YourTable[value]), YourTable[exclsuive] = thisCat )