骰子的表格就像这样:
Day Throw 1 Throw 2
1 1 3
2 3 2
3 6 6
必须转换为此表:
Day 1 2 3 4 5 6
1 1 1
2 1 1
3 2
因此,我没有注意到每天的个人投掷,而是希望列中的所有可能结果,以便我可以读取该数字的出现次数。 (投掷的顺序可以忽略不计。)
我知道我可以在SQL Server ETL过程中执行此操作,但我想知道是否可以在Power BI Desktop中完成此操作?
此转换的目的是获得一种高效的方式来报告某些日期范围内某些骰子投掷的发生次数。也许有可能在没有这种转变的情况下获得报告?
答案 0 :(得分:2)
第1步
除了上面的表格之外,您还需要一个表格来表示每个可能的掷骰子。 (如果数字1-6已在结果中显示,则可能没有必要这样做,但由于您的示例没有反映出这一点,我假设不能假设)
Die
---
1
2
3
4
5
6
第2步
将两个表加载到Power BI Desktop。 Die表可以无需修改即可加载。上面的结果表(我将称之为“投掷”)将需要忽略不计。点击“编辑查询”并突出显示投掷1&抛出2列,然后点击转换> Unbivot Columns>取消透视列。重命名不透明的列。我最终得到了:
Day | Throw | Result
--------------------
1 | Throw 1 | 1
1 | Throw 2 | 3
2 | Throw 1 | 3
... | ....... | ...
第3步
将2个表加载到数据模型中后,将它们相互关联(将die列与结果列相关联)。
第4步
创建新措施:
Count of Result = COUNT(Throws[Result])
假设您的表名为Throws,结果列名为Result
第5步
在画布上,选择矩阵视觉效果。使用结果计数作为您的值,死作为您的列,日作为您的行。然后,在右侧,单击Die旁边的小向下箭头,然后选择显示没有数据的项目以获取数字4& 5从你的例子中出现,即使他们没有被抛出。您现在应该得到一个反映您想要的结果的结果(总计)。
希望这有帮助!