如何将明细数据关联对照表后生成汇总统计表

原始需求:

【已答】003 如何利用刷卡机产生的 Excel 纪录,自动产出餐费及统计报表?

现有这样的食堂就餐刷卡统计表

imagepng

我们希望按下图的样子统计

imagepng

按照人员、时间区间、部门自动计算并合计。

制作关键点

1. 根据刷卡时间判断早中晚等

imagepng

2. 不同级别餐费不同,要根据卡号查出员工对应的级别然后统计餐费

imagepng

数据文件:

食堂就餐刷卡统计表

员工信息表

制表过程:

  1. 启动润乾报表工具

  2. 新建空白报表

imagepng

3. 设置报表的数据集为 脚本数据集

imagepng

打开”脚本数据集”设置界面,如下

imagepng

A1:

$select * from 食堂就餐刷卡统计表.xlsx a left join 员工信息表.xlsx b on a. 卡号 =b. 卡号

意为:通过简单类 SQL 语法格式,对 excel 文件的数据进行关联取数

A2:

=A1.new(‘a. 姓名’: 姓名,

‘a. 卡号’: 卡号,

‘a. 日期时间’: 日期时间,

string(‘a. 日期时间’,“yyyy-MM-dd”): 日期,

time(‘a. 日期时间’): 时间,

if(时间 >=time(“7:00:00”) && 时间 <=time(“8:59:59”),“早餐”,if(时间 >=time(“11:00:00”) && 时间 <=time(“12:59:59”),“午餐”,if(时间 >=time(“16:00:00”) && 时间 <=time(“17:59:59”),“晚餐”,“宵夜”))): 餐别,

‘b. 级别’: 职务,

‘b. 部门’: 部门,

if(职务 ==“经理” || 职务 ==“主任” || 职务 ==“襄理”:case( 餐别,“早餐”:10,“午餐”:20,“晚餐”:20;5), 职务 ==“役员” || 职务 ==“聘雇”:case(餐别,“早餐”:15,“午餐”:45,“晚餐”:36;5),null): 餐费 )

意为:

从 A1 的结果集中整理出后续报表计算所需的数据列;

表达式中斜体部分为文章开头关键点处理,我们只需在数据整理的同时计算出餐别与对应餐费即可。

4. 制作报表(编写表达式、设置样式等)

4.1 画出表格基本结构

imagepng

4.2 取数编写计算表达式

imagepng

A3: =&B3 左主格为:B3

B3:=ds1.group(姓名; 姓名:1)

C3:=ds1.group(部门; 部门:1)

D3:=ds1.group(餐别; 餐别:-1)

E2:=ds1.group(day( 日期); 日期:1)

E3:=ds1.sum(餐费)

F3:=sum(E3{})

G3:=sum(E3{}) 显示格式为:¥#0.00

H3:=sum(E3{}) 左主格为:B3

5. 保存,预览

003webgif

6. 导出

gif

报表示例