您可以使用 Excel VBA 自定义函数来解决您的问题:
1)。首先,您应该使用反映员工姓名、月薪、开始日期和结束日期的数据结构填充 Excel 工作表,如下例所示:
Employee M.Salary Start Date EndDate
John $15,000.00 7/18/2014 10/12/2014
Ann $20,000.00 7/19/2014 10/13/2014
Peter $16,000.00 7/20/2014 10/14/2014
Jeff $25,000.00 7/21/2014 10/15/2014
2)。日期范围内的DAYS可以通过减法(EndDate-StartDate)简单地找到,因为底层数据类型为整数
3)。对于问题的一般解决方案(计算任意时期和月薪的补偿),您需要创建自定义 VBA 公式并在每个员工的单独列中使用它。解释参考这篇文章:Create a custom worksheet function in Excel VBA
4)。与固定日期范围的特定情况相关,基于 Excel 工作表公式(无 VBA)的简化解决方案如下所述:
Employee MoSalary Start End Days FullMo FirstMo LastMo Total
John $15,000.00 7/18/2014 10/12/2014 87 30000.00 $6,774.19 $6,000.00 $42,774.19
Ann $20,000.00 7/18/2014 10/12/2014 87 40000.00 $9,032.26 $8,000.00 $57,032.26
Peter $16,000.00 7/18/2014 10/12/2014 87 32000.00 $7,225.81 $6,400.00 $45,625.81
Jeff $25,000.00 7/18/2014 10/12/2014 87 50000.00 $11,290.32 $10,000.00 $71,290.32
4a)。在从第 2 行开始的 E 列中,为 DAYS 添加公式:=(D2-C2)+1 并将其扩展到整个范围
4b)。在 F 列从第 2 行开始添加整个月份的公式:=2*B2 并将其扩展到整个范围
4c)。在从第 2 行开始的 G 列中,添加第一个月的公式:=14*B2/31 并将其扩展到整个范围
4d)。在从第 2 行开始的 H 列中添加上个月的公式:=12*B2/30 并将其扩展到整个范围
4e)。在从第 2 行开始的第一列中,添加总补偿公式:=SUM(F2:H2) 并将其扩展到整个范围
希望这会有所帮助。最好的问候,