Sumif Excel 函数错误

Sumif Excel Function Error

我正在尝试计算员工加班的天数;但函数一直给出错误函数。 我在搜索后尝试使用 (;) 而不是 (,);但仍然不断出现错误。

函数:

=SUMIFS(LeaveTracker[Days],LeaveTracker[Employee Name],valSelEmployee,WEEKDAY(LeaveTracker[Start Date]),">5",WEEKDAY(LeaveTracker[End Date]),">5",LeaveTracker[Type of Leave],'Leave Types'!B8)

错误信息: 您输入的公式有误。

SUMIFS 的语法是:

SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

如果:

LeaveTracker[Days] 是 sum_range 和

LeaveTracker[员工姓名] 是 criteria_range

什么是 valSelEmployee?

按照语法,应该是第一个条件。它是否包含要搜索的员工姓名?如果是这样,它应该有一个运算符(=,>等)

正如我在评论中所写,criteria_range 参数需要是范围。你有两个不是:WEEKDAY(LeaveTracker[Start Date])WEEKDAY(LeaveTracker[End Date]) 不 return 一个范围。他们 return 是一组工作日数字。因此你的错误。

您可以添加两个仅包含参考开始日期和结束日期的工作日编号的辅助列,然后将这些列用于 criteria_range 来代替您拥有的内容。

因此添加一个名为 StartWeekDay 的列,公式为:=WEEKDAY([@[Start Date]]) 并类似地添加一个名为 EndWeekDay

的列

那么你可以使用SUMIFS:

=SUMIFS(LeaveTracker[Days],LeaveTracker[Employee Name],valSelEmployee,(LeaveTracker[StartWeekDay]),">5",(LeaveTracker[EndWeekDay]),">5",LeaveTracker[Type of Leave],'Leave Types'!B8)

或者您可以使用 SUMPRODUCT 函数,它可以在您现有的数据上执行该逻辑,而不需要辅助列。

=SUMPRODUCT(LeaveTracker[Days]*(LeaveTracker[Employee Name]=valSelEmployee)*(WEEKDAY(LeaveTracker[Start Date])>5)*(WEEKDAY(LeaveTracker[End Date])>5)*(LeaveTracker[Type of Leave]='Leave Types'!B8))