Powerbi DAX测量-显示最佳日期的值

Powerbi DAX测量-显示最佳日期的值,powerbi,dax,Powerbi,Dax,在PowerBI(2017年10月发布)中,我有一些数据显示了一些太阳能电池板每隔五分钟的快照输出 目前,我有一个计算每天总产量的方法,即获取当天的瞬时读数之和,除以12(因为每小时有12个读数),然后显示当前上下文中任何时间段内该日产量的平均值: Avg Daily Production (KWh) = AVERAGEX(SUMMARIZE('Solar Output', 'Solar Output'[Date], "Daily Production (KWh)", SUM('So

在PowerBI(2017年10月发布)中,我有一些数据显示了一些太阳能电池板每隔五分钟的快照输出

目前,我有一个计算每天总产量的方法,即获取当天的瞬时读数之和,除以12(因为每小时有12个读数),然后显示当前上下文中任何时间段内该日产量的平均值:

Avg Daily Production (KWh) = 
    AVERAGEX(SUMMARIZE('Solar Output', 'Solar Output'[Date], "Daily Production (KWh)", SUM('Solar Output'[Production (KW)]/12), [Daily Production (KWh)]) 
对于我的可视化,我想展示一张图表,其中显示了一天中不同时间的平均产量与最佳日期的产量,即
[Avg Daily production(KWh)]
的最高值

以下是我迄今为止的工作:

通过使用

Best Day = TOPN(1, SUMMARIZE('Solar Output', 'Solar Output'[Date], "Daily Production (KWh)", [Avg Daily Production (KWh)]), [Daily Production (KWh)], DESC)
但这会产生一行,而不是一个标量,我不太明白如何获取该日期并将其用作此类度量的过滤器:

Production On Best Day (KW) = 
    CALCULATE(SUM([Production (KW)]), FILTER(ALL('Solar Output'[Date]), 'Solar Output'[Date] = [Best Day]))


我想要的图表是这样的,选定日期的平均产量用绿色表示,然后是另一个系列,显示最佳日期的产量,用红色表示。

我无法真正理解所涉及的计算,但我希望我能满足您的要求

因此,您希望在同一图表上绘制两条线,一条始终是最佳日期的数据作为参考,另一条是从日期过滤器中选择的数据,对吗

根据上面给出的信息,您实际上非常接近解决方案

我刚刚将您的DAX修改为:

Production On Best Day (KW) = 
CALCULATE(
    SUM('Solar Output'[Average]),
    FILTER(
        ALL('Solar Output'[Date]),
        'Solar Output'[Date] = VALUES('Best Day'[Date])
    )
)
(不太确定如何计算中间度量值,因此可能需要根据度量值进行调整)

是的,
TOPN()
返回一个表,因此您可以使用
VALUES('Best Day'[date])
获取日期值并将其用于比较

结果:


解决此问题的另一种方法是使用
MAXX()
函数从
TOPN()
返回的表中获取标量值

这适用于
MAX()
不适用的情况,因为
MAXX()
接受表表达式作为其第一个参数(表表达式是
TOPN()
函数的结果),其中
MAX()
仅从现有表中获取列

Best Day = MAXX(TOPN(1, 
                     SUMMARIZE(ALL('Solar Output'), 
                               'Solar Output'[Date], 
                               "Daily Production (KWh)", 
                               [Avg Daily Production (KWh)]), 
                     [Daily Production (KWh)], 
                     DESC), 
                [Date])

这种方法的好处是,它应该在没有计算表支持的DAX版本中工作(例如SSAS 2014、Excel 2013)。

您介意共享一个.pbix文件/数据集示例吗?我不熟悉在这里发布文件,我将了解如何…抱歉,我在工作中连接到文件托管站点时遇到问题。类似的数据可以在这里找到,我认为FIRSTNONBLANK函数可以工作,例如,围绕您的Best Day表达式。我不是100%确定,今天也没有时间玩它,但是HTH。@MikeHoney
FIRSTNONBLANK(ColumnName,Expression)
需要一个列引用作为参数,但是
TOPN()
返回一个表…所以我可以把它作为一个计算表,而不是作为一个度量标准?您是否在同一表格中有多个太阳能电池板的数据?或者换一种方式说,您的
最佳日是否会根据其他过滤器而改变?不,当前的值将是相同的,无论其他过滤器如何。稍微修改:
最佳日的产量(KWh)=计算(平均值([Production(KW)]))、过滤器(全部('Solar Output'[Date].[Date])、'Solar Output'[Date].[Date]=值('Best Day'[日期])
我认为这与正确使用隐式日期层次结构有关。那么这个解决方案应该可以工作。否则,我们需要一个
最佳日期
度量值
的解决方案,因为计算表只会在刷新数据集时刷新,并且在报表使用期间保持静态。