如何将明细数据关联对照表后生成汇总统计表
原始需求:
【已答】003 如何利用刷卡机产生的 Excel 纪录,自动产出餐费及统计报表?
现有这样的食堂就餐刷卡统计表
我们希望按下图的样子统计
按照人员、时间区间、部门自动计算并合计。
制作关键点:
1. 根据刷卡时间判断早中晚等
2. 不同级别餐费不同,要根据卡号查出员工对应的级别然后统计餐费
数据文件:
制表过程:
-
启动润乾报表工具
-
新建空白报表
3. 设置报表的数据集为 脚本数据集
打开”脚本数据集”设置界面,如下
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 画出表格基本结构
4.2 取数编写计算表达式
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. 保存,预览
6. 导出
C3 格为啥要 group? 一个人不是只有一个部门么
应该不需要