首页 > 解决方案 > 期末平均值 - 列与行总计

问题描述

我需要计算截至任何给定时间点结束时的平均消费协议的平均值。Agreement Data如果他们在该期间的最后一天在我的表格中没有条目,则应显示为空白。平均值应该是该时间点所有协议的平均值。电流输出图解,带有注释的所需输出。在以下示例中,协议 1 和 2 分别在 2015 年和 2016 年 12 月 31 日之前结束。

在此处输入图像描述

期望的输出:

在此处输入图像描述

DAX 如下所示,我想我知道行总计显示了该LASTNONBLANK()值,但是对于协议 1 和 2,它们理想情况下会显示为空白,因为它们在 2016 年 12 月 31 日不活跃:

Average Consumption:=
CALCULATE(
    AVERAGEX('Agreement Data','Agreement Data'[ConsumptionPercentage])
    ,LASTNONBLANK('Calendar'[ActualDate]
            ,CALCULATE(
                AVERAGEX('Agreement Data','Agreement Data'[ConsumptionPercentage])
                )
            )
    )

任何想法都非常感激。从Agreement Datato的关系在两个表中Calendar的列上。DateKey

我还要补充一点,年份也是顶部的年/月/日层次结构的一部分,所以如果我深入到日级别,我希望这个原则能够奏效。

标签: excelpivot-tabledax

解决方案


我认为你可以让它变得更简单一些。尝试这样的事情:

Average Consumption :=
IF( LASTDATE( 'Agreement Data'[DateKey] ) < LASTDATE( 'Calendar'[DateKey] ),
    BLANK(),
    AVERAGE( 'Agreement Data'[ConsumptionPercentage] )
)

如果您的列是日历表的层次结构,那么您钻取到的任何时期的最后日期应该是LASTDATE('Calendar'[DateKey]),而该时期的最后交易日期是LASTDATE('Agreement Data'[DateKey]). 如果这些不匹配,则填空,否则平均百分比。


编辑:回应您的评论...

如果DateKey不是日期格式,那么您可以使用MAX代替LASTDATE或使用日期格式的列。


推荐阅读