Powerbi DAX测量-显示最佳日期的值
在PowerBI(2017年10月发布)中,我有一些数据显示了一些太阳能电池板每隔五分钟的快照输出 目前,我有一个计算每天总产量的方法,即获取当天的瞬时读数之和,除以12(因为每小时有12个读数),然后显示当前上下文中任何时间段内该日产量的平均值: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
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'[日期])
我认为这与正确使用隐式日期层次结构有关。那么这个解决方案应该可以工作。否则,我们需要一个最佳日期
为度量值
的解决方案,因为计算表只会在刷新数据集时刷新,并且在报表使用期间保持静态。