EXCEL教程帖-如何生成上中下旬序列 下载本文

内容发布更新时间 : 2024/12/27 13:03:19星期一 下面是文章的全部内容请认真阅读。

EXCEL教程帖-如何生成上中下旬序列

前几天,一位工程师在工作中遇到一个数据汇总整理中的问题,是要将图1这种一大堆历史数据,按年,按月,按旬进行汇总统计,想得到图2这种数据表,以便进行趋势跟踪分析。但是对数据透视表迷茫的童鞋来说,只能硬着头皮想办法写公式去实现,然后试了好久死活都写不出来。于是,可以想象一顿手工敲索引序列的残酷工作场面~

图1:原始数据表

图2:需要整理得到的数据表

老天啊,看到这是要整理从2009年开炉到2017年的数据啊,一个月有3条,一年就是36条,这一下子要敲近300多条索引记录进去完成此项工作,惨不忍睹。喜欢鼓捣EXCEL的我,看过好多别人写的EXCEL教程,还从没遇到过这种实战情况,于是下班后,我决心独自尝试攻克这个问题,并记录下解决的方案。以备将来哪天我也遇到这种狗血的统计方法而悲催的要加班。不多说了,开始试验啦~

思路 1:看看聪明的EXCEL会不会在拖拉序列时自己自动按规律创建。手工录入3行,然后选中这3行开始向下拖拽,惊喜的发现,原来EXCEL自己会创建啊!

图3:鼠标拖拽自动创建索引序列

你就得意吧!你以为你解决问题了,但是新的问题来了,当拖拽到12月以后,他们变成图4这个鬼样子!没有13月份啊!不过这样做也可以省去手工敲的一大堆工作量了,只需要在每年的12月份之后手工纠正一下也能凑合对付。

图4:索引序列创建出错了

思路2:咬牙写个公式自动生成。幸亏我对EXCEL的诸多函数使用还算熟练,应该能写出来。开始试了半天IF(),IF了半天也没IF出来。分析数据序列的变化规律,年度需要每36行增加1,月度需要每12个周期一循环且每3行增加1,旬始终是在上中下旬3个之间按顺序切换。好吧,那就一个一个分解解决。

旬的切换:

=INDEX({\上旬\中旬\下旬\

图5:旬切换的方法

说明:用MOD函数返回除以3的余数,再用INDEX从数组{“上旬”,”中旬”,”下旬”}里提取。ROW()获取当前行序号。

月度的切换:

=RIGHT(\

图6:月度的切换方法

说明:也可以用旬的那种切换方式来写,但由于是数字序列,可以直接算出来就没必要去数组里调取了。INT()是取整数位。

年度的切换:

=2017+INT((ROW()-2)/36)

如果是从2009年开始统计的话,这里的2017改成2009就可以了,以后直接往下拖公式就行了。