电子表格中根据现有相邻值(或缺少)计算应计假期的公式
Formula in spreadsheet that counts accrued holiday based on the existing adjacent values (or lack of)
我正在制作一个用于管理员工出勤、休假和应计假期的电子表格(见下面的屏幕截图)。我正在从我在网上找到的模板扩展它。
查看活动单元格 NL8,在这里我想提出一个公式,根据员工工作的天数计算应计假期的总和。
当前的内容与'Leave Days (Month)'基本相同,并计算针对该员工的任何值(休假天数)。
因为这个表格中设置了全年,所以其他公式是这样的:
=ArrayFormula(SUMPRODUCT((OFFSET($A7,0,31*($A-1)+1,1,31)<>"")*(IF(OFFSET($A7,0,31*($A-1)+1,1,31)=$NZ,0.5,IF(OFFSET($A7,0,31*($A-1)+1,1,31)=$NZ,0.5,1))*(OFFSET($A,0,31*($A-1)+1,1,31)))))
(只是为了给你一个例子,说明他们每个月是如何抵消的)
假期按每个日历月 2.33 天的比率累积。我需要在“应计假期”列中将其合计,但理想情况下不必在每个员工的单元格中标记每个出勤日。有没有一种方法可以通过仅计算从开始日期到当前日期的每月 2.33 来完成?
编辑
如果有帮助,here is a read-only copy of my sheet 您可以复制一份。
首先,您需要 set/get 每个员工的起点。所以假设员工 1 从 2/4/2019 开始(单元格 A15
):
=ARRAYFORMULA(COUNTA(UNIQUE(TEXT(TO_DATE(ROW(INDIRECT(
"A"&DATEVALUE(A15)&":A"&DATEVALUE(TODAY())))), "MM-yyyy")))-1)*2.33-
(DAYS(A15, DATE(YEAR(A15), MONTH(A15), 1))/DAY(EOMONTH(A15, 0))*100%)*2.33+
(DAYS(TODAY(), DATE(YEAR(TODAY()), MONTH(TODAY()), 1))/(DAY(EOMONTH(TODAY(), 0))-1)*100%)*2.33
公式由 3 部分组成...第一部分计算天数,然后将其转换为月数,计算唯一月份并按要求乘以 2.33
=ARRAYFORMULA(COUNTA(UNIQUE(TEXT(TO_DATE(ROW(INDIRECT(
"A"&DATEVALUE(A15)&":A"&DATEVALUE(TODAY())))), "MM-yyyy")))-1)*2.33
第二部分介绍员工不是从第一天开始的情况的更正
=(DAYS(A15, DATE(YEAR(A15), MONTH(A15), 1))/DAY(EOMONTH(A15, 0))*100%)*2.33
第三部分补偿从今天到本月底的天数
=(DAYS(TODAY(), DATE(YEAR(TODAY()), MONTH(TODAY()), 1))/(DAY(EOMONTH(TODAY(), 0))-1)*100%)*2.33
我正在制作一个用于管理员工出勤、休假和应计假期的电子表格(见下面的屏幕截图)。我正在从我在网上找到的模板扩展它。
查看活动单元格 NL8,在这里我想提出一个公式,根据员工工作的天数计算应计假期的总和。
当前的内容与'Leave Days (Month)'基本相同,并计算针对该员工的任何值(休假天数)。
因为这个表格中设置了全年,所以其他公式是这样的:
=ArrayFormula(SUMPRODUCT((OFFSET($A7,0,31*($A-1)+1,1,31)<>"")*(IF(OFFSET($A7,0,31*($A-1)+1,1,31)=$NZ,0.5,IF(OFFSET($A7,0,31*($A-1)+1,1,31)=$NZ,0.5,1))*(OFFSET($A,0,31*($A-1)+1,1,31)))))
(只是为了给你一个例子,说明他们每个月是如何抵消的)
假期按每个日历月 2.33 天的比率累积。我需要在“应计假期”列中将其合计,但理想情况下不必在每个员工的单元格中标记每个出勤日。有没有一种方法可以通过仅计算从开始日期到当前日期的每月 2.33 来完成?
编辑
如果有帮助,here is a read-only copy of my sheet 您可以复制一份。
首先,您需要 set/get 每个员工的起点。所以假设员工 1 从 2/4/2019 开始(单元格 A15
):
=ARRAYFORMULA(COUNTA(UNIQUE(TEXT(TO_DATE(ROW(INDIRECT(
"A"&DATEVALUE(A15)&":A"&DATEVALUE(TODAY())))), "MM-yyyy")))-1)*2.33-
(DAYS(A15, DATE(YEAR(A15), MONTH(A15), 1))/DAY(EOMONTH(A15, 0))*100%)*2.33+
(DAYS(TODAY(), DATE(YEAR(TODAY()), MONTH(TODAY()), 1))/(DAY(EOMONTH(TODAY(), 0))-1)*100%)*2.33
公式由 3 部分组成...第一部分计算天数,然后将其转换为月数,计算唯一月份并按要求乘以 2.33
=ARRAYFORMULA(COUNTA(UNIQUE(TEXT(TO_DATE(ROW(INDIRECT(
"A"&DATEVALUE(A15)&":A"&DATEVALUE(TODAY())))), "MM-yyyy")))-1)*2.33
第二部分介绍员工不是从第一天开始的情况的更正
=(DAYS(A15, DATE(YEAR(A15), MONTH(A15), 1))/DAY(EOMONTH(A15, 0))*100%)*2.33
第三部分补偿从今天到本月底的天数
=(DAYS(TODAY(), DATE(YEAR(TODAY()), MONTH(TODAY()), 1))/(DAY(EOMONTH(TODAY(), 0))-1)*100%)*2.33