例题描述
有商品日销售记录表sales.xlsx,有些日期没有销售记录,部分数据如下图所示:
1、需要以日期为左表头、产品为上表头做一个交叉统计表,且要同时列出没有销售数据的日期,如下图所示:
2、需要以周为左表头、产品为上表头做一个交叉统计表,且要同时列出没有销售数据的周,如下图所示:
实现步骤
1、 运行集算器
可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。
2、 编写脚本:
(1)按日期统计
A1定义保存文件的目录
A2读入sales.xlsx文件数据,选项@t表示首行是列标题
A3对A2的数据进行转置分组,按saledate分组为左表头,product列的值为上表头,amout为交叉统计值
A4求A3中的最小日期
A5求A3中的最大日期
A6把从最小日期到最大日期的所有日期按顺序组成一个序列
A7把A3转置分组的saledate按A6的顺序对齐
A8用new函数重新定义A7的每一行,#表示A7的当前行号,取A6中的同行号的日期值为saledate,再取A7当前行的bread、cookie、milk值
A9把A8中的结果保存到文件sales_day.xlsx中
(2)按周统计
编写代码如下:
A1定义保存文件的目录
A2读入sales.xlsx文件数据,选项@t表示首行是列标题
A3对A2的数据按saledate所在的周日进行转置分组并命名为Sunday,product列的值为上表头,本周各产品的amout之和为交叉统计值。pdate@w(saledate)表示求saledate所在周的周日。
A4求A3中的最小周日
A5求A3中的最大周日
A6把从最小周日到最大周日的所有周日按顺序组成一个序列
A7把A3转置分组的Sunday按A6的顺序对齐
A8用new函数重新定义A7的每一行,#表示A7的当前行号,取A6中的同行号的周日值按格式转成串再拼上它加6天后的周六值按格式转成串,命名为week,再取A7当前行的bread、cookie、milk值
A9把A8中的结果保存到文件sales_day.xlsx中
3、 按F9运行以上两段程序,运行结束后就可以在E:/pivot目录中看到生成的文件,其结果正如本文开头所示。
网友评论