powerbi - 如何计算标准。开发。使用 DAX/PowerBI 聚合行后的度量
问题描述
我有一个这样的表,其中包含计算的步率列。我想获得 5 周前某些小时的汇总步率。
这是总结的步率。
然后我想得到标准。开发。这些总结的步率。
如何在此处创建一个采用这五个值的标准差的度量?当我试图解决这个问题时,我最终只是在汇总表中添加了 Step Rates,这给了我一个巨大的错误值。
这是我现在使用的获得高价值的 DAX:如果这里有更简单的方法,请告诉我。
Daily Base Fare StdDev N Weeks =
var _curr = max(' Booking'[Hour Offset]) //current selection
var _currDOW = max(' Booking'[Day of Week]) //selection dow
var _currHour = max(' Booking'[Hour]) //selection hour
var _N = 5 //weeks to go back
var _offset = _curr -24*7*(_N) //oldest datehour in range
var _steprate = sum(hourlyfunnelsteps[stepRate])
var x_sum = calculate(_steprate,
filter(all(' Booking'),
' Booking'[Hour Offset] >= _offset &&
' Booking'[Hour Offset] < _curr &&
' Booking'[Day of Week] = _currDOW &&
' Booking'[Hour] = _currHour
))
var mean = divide(x_sum,_N)
var dev_sq_sum = sumx(
filter(all(' Booking'),
' Booking'[Hour Offset] >= _offset &&
' Booking'[Hour Offset] < _curr &&
' Booking'[Day of Week] = _currDOW &&
' Booking'[Hour] = _currHour),
power(_steprate - mean,2))
var result = sqrt(dev_sq_sum / _N)
return
x_sum
解决方案
您的测量肯定不会按预期工作,因为您正在尝试使用 CALCULATE 修改常量。
[...]
var _steprate = sum(hourlyfunnelsteps[stepRate])
var x_sum = calculate(_steprate,
[...]
不过,关于您的更大问题,我认为您可以按照以下方式写一些东西:
StdDevCalc =
VAR < ...selections... >
VAR Summary =
SUMMARIZE (
FILTER ( ALL ( ' Booking' ), < ...filter conditions... > ),
' Booking'[Hour Offset],
"StepRate", [SumNextStep] / [SumCurrentStep]
)
RETURN
STDEVX.P ( Summary, [StepRate] )
内置的STDEVX.P 函数可以对任何表表达式进行操作,包括创建和存储为变量的表表达式。
推荐阅读
- jquery - 保持按钮禁用,直到满足某些条件
- python - 为什么这个 TensorFlow 代码会引发 tf.errors.OutOfRangeError?
- python - Pandas,Jupyter Notebook 中的规范化错误
- android - 如何在状态栏中显示所有通知,直到用户点击 android FCM Like Whatsapp
- jquery - 预加载程序未捕获的错误“e.indexOf - 不是函数”。
- javascript - 用多维数组填充标题
- javascript - 触发全球事件 Polymer 2
- java - 在 selenium 中使用 gecko 时发生错误
- android - Lint HTML/PDF 报告
- javascript - 使用 chart.js 导出图表时添加文本