尝试在Power Bi中创建自定义列

时间:2020-01-31 13:18:14

标签: powerbi

我正在尝试将此excel公式放入Power BI(将单元格引用替换为字段引用),但它不喜欢舍入或最大值。知道如何解决这个问题吗?

ROUNDUP(MAX(
IF([Wk 1 Tot]=0,-100,[Wk 1 Av]-([Wk 1 Tot]*0.1)),
IF([Wk 2 Tot]=0,-100,[Wk 2 Av]-([Wk 2 Tot]*0.1)),
IF([Wk 3 Tot]=0,-100,[Wk 3 Av]-([Wk 3 Tot]*0.1)),
IF([Wk 4 Tot]=0,-100,[Wk 4 Av]-([Wk 4 Tot]*0.1)),
IF([Wk 5 Tot]=0,-100,[Wk 5 Av]-([Wk 5 Tot]*0.1)),
IF([Wk 06 Tot]=0,-100,[Wk 06 Av]-([Wk 06 Tot]*0.1)),
IF([Wk 07 Tot]=0,-100,[Wk 07 Av]-([Wk 07 Tot]*0.1))),0)

2 个答案:

答案 0 :(得分:0)

这不像excel那样简单。在Power BI中,max函数最多只能包含两个参数。有两种解决方法:

  1. 编写具有两个参数的max函数的嵌套循环
  2. 在功率查询本身中创建最大统计信息(这可能涉及为所有if条件创建计算字段)

以上两种方法在下面的链接中都有详细说明。希望这会有所帮助。

https://community.powerbi.com/t5/Desktop/Get-MAX-value-of-dates-across-multiple-columns/td-p/614305

答案 1 :(得分:0)

这是使用MAXXtable constructor的DAX等效项。

= ROUNDUP (
    MAXX (
        {
            IF ( [Wk 1 Tot] = 0, -100, [Wk 1 Avg] - 0.1 * [Wk 1 Tot] ),
            IF ( [Wk 2 Tot] = 0, -100, [Wk 2 Avg] - 0.1 * [Wk 2 Tot] ),
            IF ( [Wk 3 Tot] = 0, -100, [Wk 3 Avg] - 0.1 * [Wk 3 Tot] ),
            IF ( [Wk 4 Tot] = 0, -100, [Wk 4 Avg] - 0.1 * [Wk 4 Tot] ),
            IF ( [Wk 5 Tot] = 0, -100, [Wk 5 Avg] - 0.1 * [Wk 5 Tot] ),
            IF ( [Wk 6 Tot] = 0, -100, [Wk 6 Avg] - 0.1 * [Wk 6 Tot] ),
            IF ( [Wk 7 Tot] = 0, -100, [Wk 7 Avg] - 0.1 * [Wk 7 Tot] )
        },
        [Value]
    ),
    0
)

此外,请记住这不是最佳实践。在加载到数据模型之前(通常使用Power Query),您应该考虑unpivot数据。