如何计算选定范围内SMA(简单移动平均线)度量的最大值?
解决DAX计算SMA最大值返回1的问题
场景说明
数据表allDataCSV每行对应一条带日期的事件记录,已创建以下两个DAX度量:
- 事件计数度量:
Count = COUNTROWS()
- 5日简单移动平均线(SMA)度量:
CountSMA5Days = AVERAGEX( DATESINPERIOD(allDataCSV[Day],LASTDATE(allDataCSV[Day]),-5,DAY), [Count])
问题描述
尝试用以下公式计算SMA的最大值时,返回结果始终为1:
MaxSMA = MAXX(allDataCSV,[CountSMA5Days])
原因是直接遍历allDataCSV表时,会逐行(单条事件记录)计算CountSMA5Days,此时上下文是单个事件行,导致计算出的SMA结果为1。
正确解决方案
使用ALL(allDataCSV[Day])获取所有独立的日期值,遍历每个日期计算对应的SMA后取最大值,公式如下:
MaxSMA = MAXX( all(allDataCSV[Day]) ,[CountSMA5Days] )
内容的提问来源于stack exchange,提问作者Kaikus
相关产品推荐
相关产品推荐

