找回密码
 立即注册

QQ登录

只需一步,快速开始

Chelsey.Wang 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-6-23 11:06  /   查看:2838  /  回复:0
本帖最后由 Chelsey.Wang 于 2022-8-16 17:23 编辑

一些格友们可能有这样的疑问:怎么在报表中自定义每行每列的单元格数量呢?
本贴以制作一个自定义日历打卡报表为例,和大家说明一下这个小技巧~

自定义日历打卡报表:
每行展示10天的打卡数据,每10天自动换行,展示日期、星期、初次打卡、最后一次打卡时间,按照部门、姓名分组
image.png347502745.png
原始数据:
image.png889543456.png

实现思路:
1.通过矩表实现自定义换行,使用公式字段作为辅助字段
2.使用表格分组实现按照部门、姓名分组
image.png909121093.png
画出期望的报表样式,观察可知:10格/行时,可以建立一个如图的坐标系,每一列日期值除以10的余数都是相同的,每一行日期除以10的商也都是相同的。
因此我们可以通过公式字段构建出用于行列分组的辅助字段,然后在矩表中通过辅助字段进行分组,实现换行效果。

实现步骤:

【准备工作 - 公式字段】
1.公式字段取到日期的天数
  1. DAY([日期])
复制代码
image.png77252806.png

2.取日期除以10的余数,作为“辅助”字段。日期的字段类型是整数,10也是整数,整形相除向下取整得到日/10的商,日-(日/10)*10 可以计算出日期除以10后的余数。
  1. [日]-([日]/10)*10
复制代码
image.png736910400.png
3.公式字段计算行分组,1-10、11-20、21-30、31号的行分组分别为0、1、2、3;
特别地,10、20、30这些可以被10整除的日期,需要在商的基础上再-1
  1. IF([辅助]=0,([日]/10)-1,[日]/10)
复制代码
image.png796761169.png

4.公式字段计算列分组特别地,为了排序,余数为0时规定列分组是10
  1. IF([辅助]=0,[辅助]+10,[辅助])
复制代码
image.png505664672.png



【设计报表】
1.创建矩表,借助行列辅助字段换行,绘制出日历(注意按照升序排序)
image.png378923644.png
预览效果:
image.png619746703.png

2.在矩表的基础上,在分组内插入行列,绑定星期、上下班打卡时间数据
image.png200851744.png
预览效果:
image.png862050170.png

3.删除矩表中多余的行列
删除行列.gif

4.创建表格,按照部门、姓名分组,并删除多余行列
image.png839904479.png

5.将刚刚整理好的矩表嵌入表格当中
image.png492371215.png

6.整理一下样式,我这里主要调整了单元格边框的样式,把一些边框的线形调整为了“无”
image.png240671691.png

附上demo
自定义日历报表.fgcc (94.21 KB, 下载次数: 259)

评分

参与人数 2满意度 +10 收起 理由
sz_xd + 5
赛龙周 + 5

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部