原始需求: 【已答】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. 导出
报表示例
|