如何高效统计多员工日历中的带薪休假(PTO)条目并生成汇总日历
如何高效统计多员工日历中的带薪休假(PTO)条目并生成汇总日历
嘿,我来帮你搞定这个PTO统计的麻烦事儿!看你的描述,现在手动调整单元格引用的方式确实太费时间了,给你几个高效的解决方案,不用再挨个改公式:
一、用动态数组批量统计(适合新版Excel/Google Sheets)
假设你的汇总表A列已经列好了全年所有日期(比如A2是2024年1月1日,往下依次排),每个员工的休假记录都在类似'2024 PTO Tracker by LeaveBoard'这样的工作表里。
你可以用这个公式直接统计当天所有请假的员工数,不用手动调整单元格引用:
=COUNTA(IFERROR(FILTER('2024 PTO Tracker by LeaveBoard'!$A$1:$Z$100, ISNUMBER(SEARCH(A2, '2024 PTO Tracker by LeaveBoard'!$A$1:$Z$100))*(ISNUMBER(SEARCH({"S","V"}, '2024 PTO Tracker by LeaveBoard'!$A$1:$Z$100))), ""), ""))
- 要是你用的是旧版Excel,输入完公式得按
Ctrl+Shift+Enter触发数组计算;新版Excel或Google Sheets直接回车就行,下拉填充整个日期列就搞定。 - 公式逻辑:先找到所有包含当前日期的单元格,再筛选出里面带
S或V的,最后统计这些单元格的数量——也就是当天请假的员工数。
如果有多个员工工作表,直接把所有员工sheet名称放进数组里就行,不用逐个写公式:
=COUNTA(IFERROR(FILTER(INDIRECT("'"&{"员工张三","员工李四","员工王五"}&"'!$A$1:$Z$100"), ISNUMBER(SEARCH(A2, INDIRECT("'"&{"员工张三","员工李四","员工王五"}&"'!$A$1:$Z$100")))*(ISNUMBER(SEARCH({"S","V"}, INDIRECT("'"&{"员工张三","员工李四","员工王五"}&"'!$A$1:$Z$100"))), ""), ""))
二、用SUMPRODUCT简化单个员工统计
如果你不想用动态数组,SUMPRODUCT公式也能帮你摆脱手动改引用的麻烦,它能直接遍历员工的整个日历区域:
=SUMPRODUCT(--(ISNUMBER(SEARCH(A2, '2024 PTO Tracker by LeaveBoard'!$A$1:$Z$100))), --(ISNUMBER(SEARCH({"S","V"}, '2024 PTO Tracker by LeaveBoard'!$A$1:$Z$100))))
这个公式会自动统计符合条件的单元格数量,你只需要把$A$1:$Z$100改成你员工日历实际覆盖的区域,下拉填充整个日期列就好,绝对引用会帮你固定住员工的日历范围,不会跑偏。
三、长期优化建议:调整日历结构
要是以后想让统计更简单,建议把每个员工的小网格日历改成日期+请假类型的表格形式:
- 员工表:A列放完整日期,B列放请假标记(比如
S、V、S-0.5这类) - 汇总表统计的时候,用
COUNTIFS就能轻松搞定:
=COUNTIFS(员工张三!$A:$A, A2, 员工张三!$B:$B, "*S*") + COUNTIFS(员工张三!$A:$A, A2, 员工张三!$B:$B, "*V*")
多个员工的话,直接把每个员工的统计结果加起来就行,逻辑更清晰,维护也方便。
附上你提供的员工日历截图:
备注:内容来源于stack exchange,提问作者h.a.s.
相关产品推荐
相关产品推荐

