ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1757|回复: 8

[求助] 弹性上班考勤表的修改

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-7-21 19:37 | 显示全部楼层 |阅读模式

考勤表.zip (44.47 KB, 下载次数: 34)
在“上下班时间sheet”中获取到“源数据sheet”每一行日期单元格内最早和最晚的打卡时间使用的是“=IFERROR(TRIM(LEFT(SUBSTITUTE(源数据!G2,CHAR(10),REPT(" ",99)),99)),"")”和“=IFERROR(TRIM(RIGHT(SUBSTITUTE(源数据!G2,CHAR(10),REPT(" ",99)),99)),"")”,读取一个单元格中第一列和最后一列的数据
在“打卡sheet”中已经把上述判断迟到和弹性打卡的规则写在公式里了,但是有个问题,当我判断周六日这种没有打卡的日子时,公式会显示false,读取不了,同时放假后的第一天上班的打卡会统计不了,麻烦帮忙看一下该怎么改
弹性打卡机制:
下班时间x上班迟到时间
当日9:30<x<当日21:30 次日9:30
当日21:30≤x<当日24:00次日10:00
次日00:00≤x<次日1:00次日11:00
次日1:00≤x≤次日2:00次日2:00
次日2:00<x<次日6:00x+12小时

还有就是如果需要使用vlookup函数达到输入一个人的姓名就能当初生成一个人的考勤情况,又应该怎么处理


TA的精华主题

TA的得分主题

发表于 2020-7-22 13:13 | 显示全部楼层
1、按照这个公式看的话,只有一个打卡记录的数据需要核查,不然像29号的数据只有01:25的打卡下班数据,但是表格显示的却是正常上班。
2、你的公式本身有点小问题,打卡情况的表格里判定适用规则出现了不对应的问题,比如H2的公式里面判断H3的规则的地方你写成了G2,所以导致了26号(日),也出现了错误。相关其他公式上的错误自行勘察哈。
3、其余因为没有打卡的日子而显示的FALSE问题,主要是因为没有对应的适用规则导致而成的,我把下面的修改为“规则1”之后也验证了这点。所以对应解决方法我觉得可以添加一个休、假的规则。

考勤表.rar

48.47 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2020-7-22 13:16 | 显示全部楼层
本帖最后由 会走路的哈哈镜 于 2020-7-22 16:24 编辑

而你疏导了需要适用vlookup函数打到输入一个人的姓名就能生成这个人的考勤情况这个能否说具体一点呢?因为我看到你的表里面是有一个月度汇总的,里面应该还蛮直观的呀


TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-22 16:00 | 显示全部楼层
会走路的哈哈镜 发表于 2020-7-22 13:16
而你疏导了需要适用vlookup函数打到输入一个人的姓名就能生成这个人的考勤情况这个能否说具体一点呢?因为 ...

第一个问题:上面的功能完整描述应该是,我拿到一个个人考勤记录的通用查询表,表头对应日期、姓名,打卡时间、请假状况等,通过vlookup和index函数,达到在姓名输入一个人的姓名,能从"其他负责数据清洗的sheet"中调取数据,分别填充到对应的表头中,从而实现输入一个人的名字输出此人一月中每一天的状况
第二个问题:表里有的那个月度汇总是需求,是希望达到的效果。
麻烦了。
我在制作的过程中,前面提出的问题有解决的思路了,但是带来一个新的问题,一个单元格内的公式太长了,不方便维护,所以是否能够将一些固定的公式存储在库中,然后一个单元格读取这个函数呢?

TA的精华主题

TA的得分主题

发表于 2020-7-22 16:09 | 显示全部楼层
微地时厘 发表于 2020-7-22 16:00
第一个问题:上面的功能完整描述应该是,我拿到一个个人考勤记录的通用查询表,表头对应日期、姓名,打卡 ...

好的 我看一下
话说我也想吐槽你的公式太长了哈哈哈哈,上午看你的公式看了老半天了。至于你说的存储的话,我觉得VBA应该蛮复合你的想法的

TA的精华主题

TA的得分主题

发表于 2020-7-22 17:10 | 显示全部楼层
稍微梳理了一下“上班迟到情况”对应的公式
微信截图_20200722170331.png
上面箭头所指的地方,六个小括号我有一部分可能看不太懂  不知道是不是因为这个的原因影响到最后一段的判断和理解,同样最后一段的公式我也是没有看懂的!如果可以的话还得麻烦您解答一下我好理解一下!
微信截图_20200722170216.png
这是我梳理出来的思维导图,同样有个问题是“规则5”一经套用那无论何种情况都会显示“正常上班”(如果这是设计的本意的话那么理应选择更加简洁的表达方法哈!)

本人对公式的熟悉程度也是很浅的程度,vba也是近期才起步学习的,可能不能一针见血地解决你的痛点,敬请原谅!

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-24 17:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
会走路的哈哈镜 发表于 2020-7-22 17:10
稍微梳理了一下“上班迟到情况”对应的公式

上面箭头所指的地方,六个小括号我有一部分可能看不太懂  ...

规则1-5都是为了判断是否迟到,至于规则无论如何都会显示正常上班是错误的,因为当天的上班时间是需要从上一天的下班时间判断的,如果使用规则5,也会出现造成迟到的情况。
最后一条意义不明的公式,是为了解决节假日的问题,因为周末不上班的话,是读取不到上一天的下班打卡时间的,所以相当于周一默认是9:30上班,是为了计算迟到时间的

TA的精华主题

TA的得分主题

发表于 2021-12-5 14:46 | 显示全部楼层
还有问题想请教,可否回复
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-13 17:02 , Processed in 0.025537 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表