在 PowerBI 中计算新列

Calculating new columns in PowerBI

我有这个 table 我在 PowerBI 中定义:

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

一个例子:

年运动百分比

1986 水上运动 0.0%

我该怎么做?

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

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

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

通过创建计算 table,您可以对数据执行的操作受到限制,因为它被硬编码为过滤到美国并且仅基于年份和运动。虽然这是当前的要求,但如果它们发生变化怎么办?然后你必须重新编码你的 table 或者再做一个。

我的建议是采取措施来完成这项任务,方法如下...

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

根据这些数据,我创建了一个简单的度量来计算行数以获得奖牌数。

Medal Count = COUNTROWS(Olympics)

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

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

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

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

从该矩阵中,我们可以看出美国在 2000 年赢得了所有奖牌的 25%。他们在运动 B 中获得的 2 枚奖牌占当年所有奖牌的 33.33%。

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

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