【问题标题】:Power BI: Calculating average of a column's current row divided by the firstPower BI:计算列当前行的平均值除以第一行
【发布时间】:2020-03-01 04:36:42
【问题描述】:

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

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 公式可以使用更多的细化。

如果您能在正确的方向上提供任何帮助或指导,我将不胜感激。感谢您的宝贵时间。

【问题讨论】:

    标签: powerbi average dax


    【解决方案1】:

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

    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
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2022-07-08
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 2023-03-27
      • 2020-08-23
      相关资源
      最近更新 更多