二维码 购物车
部落窝在线教育欢迎您!

如何计算Excel中单列数据的移动平均值,用power query!

 

作者:过儿来源:部落窝教育发布时间:2021-06-24 10:40:39点击:7449

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

移动平均值,是最老也是最流行的数据分析工具,用来预测未来一段时间内公司产品的需求量、公司产能等。今天,小E就和大家一起来学习如何用Excel计算移动平均值的方法……

 

哈喽,大家好,今天给大家带来的案例是如何计算移动平均值;

移动平均值的话题之前公众号有相关的教程:怎么用EXCEL跨表格查询成本价格并计算移动平均成本

这篇教程中,有比较完整的说明:有入库清单,还有订购清单,然后通过合适的数量匹配找到对应的移动平均价格。考虑的维度比较多,可以说很实用了~

 

但是很多时候,大家需要解决的问题仅限于一个维度,不用考虑太多维度。比如财务计算问题:持续的应收账款周转天数、存货周转天数等。

 

下面是某公司产品一年内的进价金额记录表,如何计算全年的移动平均价格,一起来看看吧!

以下是数据源(数据源共345行,此为部分截图):

 

 

问题:计算该产品最近30天内,每一天进价金额的移动平均数值,比如35日的移动平均数值就是26日到35日的数值之和除以有数值的天数。

 

注意:数据源中的日期列没有按照时间先后顺序排列,但是没关系,本篇文章介绍的方法强大之处之一就是就算日期是乱的,它也可以按正常的日期顺序计算移动平均

 

下面大家一起用power query来完成这个移动平均值的计算问题。

 

先来看看最终效果图:

 

 

Step 01 准备数据

选中数据源区域后,用鼠标依次点击“数据”、“自表格/区域,勾选包含标题后,点击确定按钮,将数据加载到power query的编辑器。

 

然后,选中日期列后,把此列的数据类型更改为数值——“小数”,如下图。

 

 

注意:

因为PQ中的日期不能直接跟数字相加减,所以要先转换为数字

 

Step 02 Table的应用

如下图,依次点开“添加列”、“自定义列”后,在“新列名”中写一个自定义的名字,笔者在这里写的是“移动平均”。然后录入以下公式:Table.SelectRows(更改的类型,(中娃)=>中娃[日期]>[日期]-30 and 中娃[日期]<=[日期])

 

 

 

用鼠标点击“确定”以后,大家就会看到新增的一个名为“移动平均”的数据列。

 

 

函数解析:

Table.SelectRows的语法是Table.SelectRows(,筛选条件)

① 第1参数“更改的类型”,是PQ完成第二个步骤后的表。

数据加载进PQ后,可通过“应用的步骤”查看历史步骤,历史步骤的前两步是将数据加载进PQ后自动生成的(“源”和“更改的类型”),后面的步骤是在操作过程中生成的。比如,当笔者添加完自定义列,点击确定后,出现步骤——“已添加自定义”。

 

 

② 公式中将“table”命名为“中娃”,大家也可以将它命名为别的汉字或字母,这个完全是看个人习惯。

2参数“(中娃)=>中娃[日期]>[日期]-30 and 中娃[日期]<=[日期]中,“()=>”是固定写法,表示将后面的环境传到前面。它此时的环境指向“更改的类型”这个步骤。

④ 中娃后面加个[日期]表示的是步骤“更改的类型”中表的日期列。第2[日期]前没有加“中娃”表示的就是此时正在操作的这张表的日期列。

④ 公式的意思就是在“更改的类型”的表中做筛选。筛选的是“更改的类型”这张表的日期列中所有大于本行的日期减去30(计算最近30天的移动平均,减30;如果要算最近一周的移动平均,可以写减7并且大于等于【本行的日期】,最后返回的日期范围就是本行日期的最近30天的明细。

 

补充:认识Table

点击不同的Table单元格后,可以看到Table里包含的数据出现在表格下方,它们各不相同,但都有跟原表同样的数据结构(含日期列、进价金额列)。

 

 

总结:

tablePQ中的一个很重要的存储数据方式之一,不同于我们的普通工作表,只有单元格一种存储数据的方式噢~ PQ的精髓就是可以灵活的运用各种存储数据的方式来进行建模计算

 

Step 03

经过上一步,大家已经将每一行日期对应的最近30天的数据全部筛选出来,并且存放在数据类型table中了。下面,大家再做一个小小的操作,在上一步生成的公式后插入[进价金额]

 

 

注意:和上一步中的一样,中括号中的是列名

 

加了[进价金额]后,大家可以发现,原来的table变成了List,并且其中只有[进价金额]一列了,如下图。

 

 

Step 04 平均值计算

接下来就是“万事具备只欠东风”了,只要对这些List中的值进行求平均就行了。

办法就是在Table.SelectRows最外层套上一个List.Average

 

 

这样,就求出了每一天的移动平均。

 

做完前面的步骤以后,大家可以将数据格式变成自己想要的,比如日期列改成日期格式,移动平均列改成保留两位小数的数值。

 

 

最后,关闭并上载至工作表就可以了。后期数据源有变化时,可以通过点击鼠标右键来实现动态刷新噢!

 

本文配套的练习课件请加入QQ群:902294808下载。

Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

怎么用EXCEL跨表格查询成本价格并计算移动平均成本
瞬间整理完上千条数据,Excel中的Power Query工具也太好用了吧!

表头顺序不一致的工作簿如何合并?用Power Query一秒搞定!

按指定次数重复数据就用PQ!

版权申明:

本文作者过儿;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。