Google Sheets员工月度成本计算:SOMME.SI.ENS公式返回0/空白求助
Google Sheets月度人力成本计算问题排查与解决方案
现有公式的核心问题
你当前使用的=SOMME.SI.ENS(G3:G8; C3:C8; "Yes"; A3:A8; "<="&FIN.MOIS(J3;0); E3:E8; ">"&FIN.MOIS(J3;-1))逻辑仅筛选整个目标月份全程在职的员工(入职日≤当月最后一天,且离职日>上月最后一天),完全忽略了中途入职/离职的员工。如果目标月份没有全月在职的员工,公式自然返回0或空白,和你的「按日均折算中途离职人员」需求不匹配。
修正后的计算公式(法语函数,分号分隔)
使用PRODUIT.SOMME(对应英文SUMPRODUCT)实现按在职天数比例折算成本,同时筛选符合条件的员工:
=PRODUIT.SOMME( --(C3:C8="Yes"); G3:G8; MAX(0; MIN(SI(E3:E8=""; AUJOURDHUI(); E3:E8); FIN.MOIS(J3;0)) - MAX(A3:A8; DEBUT.MOIS(J3;0)) + 1) / (FIN.MOIS(J3;0) - DEBUT.MOIS(J3;0) + 1) )
公式各部分说明
--(C3:C8="Yes"):将C列标记为"Yes"的员工转为数值1,不符合的转为0,实现筛选逻辑G3:G8:员工的月度标准人力成本MAX(0; MIN(...)-MAX(...)+1):计算员工在目标月份的实际在职天数(避免出现负数)SI(E3:E8=""; AUJOURDHUI(); E3:E8):处理未离职员工,用当前日期作为在职结束日MIN(..., FIN.MOIS(J3;0)):限制在职结束日不超过目标月份最后一天MAX(A3:A8; DEBUT.MOIS(J3;0)):限制在职起始日不早于目标月份第一天
(FIN.MOIS(J3;0)-DEBUT.MOIS(J3;0)+1):计算目标月份的总自然天数,用于折算日均成本比例
额外排查要点
- 日期格式验证:确认J3(目标月份)、A列(入职日)、E列(离职日)均为Google Sheets的日期格式,而非文本格式
- 数值格式验证:确认G列(月度成本)为数值格式,若为文本需转换为数值
- 空值处理:未离职员工的E列需留空,公式会自动用当前日期计算在职天数
内容的提问来源于stack exchange,提问作者Totopoildo
相关产品推荐
相关产品推荐

