如何在Power BI中基于员工特定日期列表计算标准差?
在Power Query中按员工专属日期范围计算价格变动标准差
以下分两种常见场景给出具体实现方法:
场景1:每行对应单个员工+单个日期+单个价格变动值
如果你的原始数据是每行对应员工的某一个日期及对应价格变动(且员工的所有行已经是其专属日期范围的数据),直接按员工分组计算即可:
- 加载数据到Power Query编辑器
- 选中「员工」列,点击顶部菜单栏的转换 → 分组依据
- 在弹出的分组窗口中:
- 分组依据:选择「员工」
- 新增列名:输入
价格变动标准差 - 操作:选择「标准差」(若需要总体标准差,后续可手动替换公式为
List.StandardDeviationPopulation) - 列:选择「价格变动值」
- 点击确定后,即可得到每个员工对应自身日期范围的价格变动标准差。
场景2:每行对应员工+专属日期范围/日期列表+价格变动值列表
如果你的数据是每行对应一个员工,同时包含该员工的专属日期范围(开始/结束日期)或日期列表,以及对应的价格变动值列表,需要先筛选出匹配日期的价格值再计算标准差:
情况A:员工有明确的开始/结束日期+全量日期价格列表
添加自定义列,输入以下M代码(替换括号内的列名为你实际的列名):
List.StandardDeviation( List.Transform( List.Select([全量日期价格列表], each [日期] >= [员工开始日期] and [日期] <= [员工结束日期] ), each [价格变动值] ) )
- 代码逻辑:先从全量价格列表中筛选出该员工日期范围内的记录,再提取价格变动值,最后计算样本标准差。若要总体标准差,把
List.StandardDeviation换成List.StandardDeviationPopulation。
情况B:员工有专属日期列表+对应价格变动值列表
如果日期列表本身就是该员工的专属范围,直接对价格变动值列表计算标准差即可:
List.StandardDeviation([价格变动值列表])
如果需要验证日期和价格的对应关系,可先将两个列表配对后筛选(确保无错位):
List.StandardDeviation( List.Transform( List.Zip({[专属日期列表], [价格变动值列表]}), each _{1} ) )
内容的提问来源于stack exchange,提问作者user21196480
相关产品推荐
相关产品推荐

