在PowerBI中计算新列

时间:2019-05-13 15:38:24

标签: bigdata powerbi business-intelligence powerbi-desktop

我已经在PowerBI中定义了此表:

enter image description here

我想定义一个新表格,其中包含美国赢得的奖牌占当年每种运动获得的奖牌总数的百分比。

一个例子:

年度运动百分比

1986 Aquatics 0.0%

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以使用SUMMARIZE()来计算新表:

NewTable = 
SUMMARIZE(
    yourDataTable;
    [Year];
    [Sports];
    "Pct"; 
    DIVIDE(
        CALCULATE(
            COUNTROWS(yourDataTable);
            yourDataTable[Nat] = "USA"
        );
        CALCULATE(
            COUNTROWS(yourDataTable);
            ALLEXCEPT(
                yourDataTable;
                yourDataTable[Year];
                yourDataTable[Sports]
            )
        );
    0
)

答案 1 :(得分:1)

我知道答案已经被接受,但是我觉得我应该提供建议的解决方案以利用Power BI的所有功能。

通过创建计算表,您只能处理数据,因为它很难编码以过滤到美国,并且仅基于Year和Sport。虽然这是当前的要求,但是如果它们发生变化怎么办?然后,您必须重新编码表或制作另一个表。

我的建议是采取措施来完成此任务,这是...

首先,这是我的示例数据集。

Sample Data

利用这些数据,我创建了一个简单的度量,可以对行进行计数以获得奖牌数。

Medal Count = COUNTROWS(Olympics)

将基本矩阵与该度量值放在一起,我们可以看到这样的数据。

basic matrix

然后可以创建第二个度量以获取特定国家/地区的百分比。

Country Medal Percentage = DIVIDE([Medal Count], CALCULATE([Medal Count], ALL(Olympics[Country])), BLANK())

将该度量添加到矩阵中,我们就可以开始查看百分比了。

expanded matrix

从该矩阵中,我们可以看到,美国在2000年获得了所有奖牌的25%。而在体育B中获得的两枚奖牌则占当年所有奖牌的33.33%。

这样,您可以利用切片器和矩阵布局来获得所需的百分比。这是一个带有显示相同数字的国家和年份切片器的小示例。

slicer matrix

从这里您可以按任何运动或年份切割数据,并查看任何选定国家(地区)的百分比。