我正在计算员工加班的日子;但该函数保持给出错误功能。 搜索后使用(;)代替(,);但仍然不断收到错误。
功能:
=SUMIFS(LeaveTracker[Days],LeaveTracker[Employee Name],valSelEmployee,WEEKDAY(LeaveTracker[Start Date]),">5",WEEKDAY(LeaveTracker[End Date]),">5",LeaveTracker[Type of Leave],'Leave Types'!B8)
错误消息: 您键入的公式包含错误。
答案 0 :(得分:1)
正如我在评论中写的那样,criteria_range
参数必须是范围。您有两个不是:WEEKDAY(LeaveTracker[Start Date])
和WEEKDAY(LeaveTracker[End Date])
不返回范围。它们返回一系列工作日数字。因此你的错误。
您可以添加两个辅助列,其中仅包含引用开始日期和结束日期的工作日编号,然后使用这些列代替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))
答案 1 :(得分:0)
SUMIFS的语法是:
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
如果:
LeaveTracker [Days]是sum_range和
LeaveTracker [员工姓名]是criteria_range
什么是valSelEmployee?
根据语法,它应该是第一个标准。它是否包含要搜索的员工姓名?如果是这样,它应该有一个运算符(=,> etc)