将一维考勤表向二维透视! wps函数pivotby是一个超级透视表函数
网友求助SOS:如何将表①布局的考勤记录转换成表②布局的考勤记录。
对于财务部门或人力资源部门进行考勤统计工作,大多数情况下都是考勤机导出表②表格形式的记录,然后想方设法变成表①那样,他这个却是反过来的。为统计工作造成了一定的难度。

由于原表格数据量太大,我们简化数据源,用几组简单的数据还原真实的职场办公场景即可:
左侧为简单的一维格式的考勤数据,一列姓名,一列时间点,每行为一组一一对应的数据。我们要转换为右下侧二维格式的考勤数据,列标题为时间点,行标题为姓名,中间值区域为对应的个数不等的时间点记录。
- A列(A2:A8):员工姓名(张三、李四)
- B列(B2:B8):Excel日期时间序列号,格式如45778.32847。将B列设置单元格格式为数值后可查看。
日期时间序列号由整数部分(日期)和小数部分(时间)组成,例如:
- 45778→日期:2025-5-1
- 0.32847→时间:7:53

我们今天讲的这个方法,不添加任何辅助列,只在一个单元格输入一组嵌套函数公式。这个公式通过Excel的日期时间序列号的特性和数组运算实现了考勤数据的二维透视。
PIVOTBY函数类似于数据透视表功能。
函数总体结构:
=PIVOTBY(
A2:A8, // 行分类字段(员工姓名)
INT(B2:B8), // 列分类字段(日期部分)
MOD(B2:B8,1),// 待聚合值(时间部分)
LAMBDA(x, TEXTJOIN(CHAR(10),,TEXT(x,"h:mm"))), // 聚合函数
,0,,0// 参数占位(不显示总计行/列)
)
我们一步一步输入公式,理解作用过程。
输入公式:
=PIVOTBY(A2:A8,INT(B2:B8),,)
行分组
根据A2:A8的姓名进行纵向分组,形成张三、李四两行。
列分组
通过INT(B2:B8)提取日期(整数部分),将不同日期的考勤横向分组。
例如:45778对应2025-5-1,45779对应2025-5-2
实际效果中的日期,需要设置单元格格式为“m"月"d"日";@”才能正常显示。

完善公式参数:
=PIVOTBY(A2:A8,INT(B2:B8),MOD(B2:B8,1),)
待聚合值处理
MOD(B2:B8,1)提取时间(小数部分)。
由于目前还没有设置第4参数,第3参数的待聚合值要靠4参数的聚合函数实现,所以暂时显示错误值。

完善公式参数:
=PIVOTBY(A2:A8,INT(B2:B8),MOD(B2:B8,1),LAMBDA(x,TEXTJOIN(CHAR(10),,TEXT(x,"h:mm"))))
用LAMBDA函数设置第4参数,聚合函数。
LAMBDA函数定义第3参数的待聚合值为x
使用TEXT(x,"h:mm"):
将小数转换为标准时间格式(如0.328472→7:54)
使用TEXTJOIN(CHAR(10),...):
用换行符合并同一单元格内的多个时间。
动态数组工作原理:
公式自动检测行/列维度组合,例如:
张三在2025-5-1日有两次打卡(7:53和17:15)
公式会自动创建二维矩阵,交叉位置合并对应时间。
实际效果中的换行符(CHAR(10))需要单元格启用自动换行功能后才能正常显示。
实际效果中的时间,需要设置单元格格式为“h:mm;@”才能正常显示。

继续完善公式:
=PIVOTBY(A2:A8,INT(B2:B8),MOD(B2:B8,1),LAMBDA(x,TEXTJOIN(CHAR(10),,TEXT(x,"h:mm"))),,0)
设置第6参数为“0”,代表不显示“总计行”。

继续完善公式:
=PIVOTBY(A2:A8,INT(B2:B8),MOD(B2:B8,1),LAMBDA(x,TEXTJOIN(CHAR(10),,TEXT(x,"h:mm"))),,0,,0)
设置第8参数为“0”,代表不显示“总计列”。

推荐阅读:
相关文章

wps表格中if函数怎么用? 掌握WPS表格中IF函数的多重嵌套技巧
刚学Excel的新手必看!IF函数多条件判断技巧解析,助你快速进阶表格处理,下面我们就来看看详细案例2025-07-02
解放双手! wps表格中函数LAMBDA代替繁琐重复的IF多层嵌套
LAMBDA函数在wps中扮演着自定义函数的角色,它赋予了用户创造自己函数的能力,且规则可由个人自行设定,它不仅具有封装复杂逻辑、提高代码可读性的显著优点,还支持一次定2025-07-02
wps excel玩转合并数据只需要1种符号+5类函数+2个实操
wps或者excel表格中经常设计多个单元格合并到一个单元格的问题,很多朋友不知道遇到不同的情况该怎么合并,下面我们就来分享用1种符号,5类函数,2个实操,玩转合并数据的2025-07-01
Excel和WPS的函数之争:DATEDIF的YD参数结果居然差一天
在Excel表格与WPS表格中,DATEDIF的结果不一致,我就自己是尝试了,果然不一致,来跟大家讲解下出来的原因,你这次支持谁呢?详细请看下文介绍2025-06-09
在实现精通 Office 的路上,表格函数一直都是绕不过的一道坎,今天就给大家整理了常用的 7 个新函数教程,希望能帮助到大家2025-05-09
vstack函数轻松搞定! wps新增工作表数据自动汇总到总表的技巧
相信大家在使用多维表时,可能都会遇到由于数据来源的不同会存在多个数据表的情况,但为了方便处理可能大家都想把他们合并到同一个数据表里,这样可以更方便的分析数据,下2025-05-08
WPS的IF函数怎么使用? wps文档运用if函数进行条件判断的技巧
在wps的日常使用中,掌握IF函数的应用将大大提高我们的工作效率,今天跟大家分享一下如何在WPS文字文档表格中运用if函数进行条件判断2025-04-09
hyperlink函数怎么用? wps超级链接函数HYPERLINK的基本用法
Excel中唯一可以生成超链接的函数,就是她——Hyperlink函数,接下来咱们就看看HYPERLINK函数的几个典型应用2025-03-21
VALUE函数怎么用? wps将文本转数字函数VALUE应用案例
wps中输入的数据是文本,不能直接进行计算,需要转换成数字后可以处理数据,该怎么转换呢?我们今天使用VALUE函数实现,详细请看下文介绍2025-03-21
wps怎么做三级下拉菜单? 利用indirect函数制作三级下拉菜单的教程
wps表格中需要一个三级下拉菜单,该怎么制作呢?我们今天使用indirect函数来制作,详细请看下文介绍2025-03-18





最新评论