Power BI:计算一列当前行的平均值除以第一行

时间:2019-11-04 20:28:41

标签: powerbi average dax

请在以下链接中查看我共享的文件:

https://drive.google.com/file/d/1q7FE85qHoB_OhAm4hlmFidh6WP3m-UnK/view?usp=sharing

我有一个数据集,其中包含不同日期的各种项目的值。我首先需要通过将特定日期的项目值除以所选日期过滤器中的最早值来计算比率。然后,我需要显示所有项目(列I和J)的每日比率作为期望的输出。

我可以使用以下公式在过滤后的表格中获取“第一个值”:

first_cr = 
VAR item = MAX('Table 1'[item])
VAR min_updated = CALCULATE(
    MIN('Table 1'[last_updated]),
    'Table 1'[item] = item,
    ALLSELECTED('Table 1')
)
RETURN
CALCULATE(
    AVERAGE('Table 1'[cr]),
    'Table 1'[last_updated] = min_updated,
    'Table 1'[item] = item,
    ALLSELECTED('Table 1'[fk])
)

但是,我无法弄清楚如何仅在日期级别上计算所有单个项目比率的平均值。我想我需要以某种方式使用AVERAGEX,但不确定如何使用。也许我的first_cr公式可以使用更多改进。

我希望您能向正确的方向提供帮助或指导。感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

我能够使用以下公式获得答案。如果有人可以改善它,请这样做,否则几天后我会接受我的回答。

ret = 
var lastUpdated = MAX(Sheet1[Date])
var tbl = ALLSELECTED(Sheet1)
RETURN 
CALCULATE(
    AVERAGEX(
        Sheet1,
        var i = Sheet1[Item]
        var minUpdated = CALCULATE(
            MIN(Sheet1[Date]),
            Sheet1[Item] = i,
            tbl
        )
        var first_cr = CALCULATE(
            AVERAGE(Sheet1[Return]),
            Sheet1[Date] = minUpdated,
            Sheet1[Item] = i,
            tbl
        )

        RETURN Sheet1[Return] / first_cr
    ),
    Sheet1[Date] = lastUpdated,
    tbl
)