代码之家  ›  专栏  ›  技术社区  ›  Hend A.

Sumif Excel函数错误

  •  0
  • Hend A.  · 技术社区  · 7 年前

    我试图计算员工加班的天数;但该函数始终给出一个误差函数。

    功能:

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

    错误消息: 您键入的公式包含错误。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Ron Rosenfeld    7 年前

    正如我在评论中所写, criteria_range 参数必须是范围。您有两个不是: WEEKDAY(LeaveTracker[Start Date]) WEEKDAY(LeaveTracker[End Date])

    您可以添加两个助手列,其中只包含引用到开始和结束日期的工作日编号,然后将这些列用于 取代你所拥有的。

    因此,添加一个名为 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))
    
        2
  •  0
  •   Rob Anthony    7 年前

    SUMIFS的语法为:

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

    LeaveTracker[天]是sum_范围和

    LeaveTracker[员工姓名]是criteria\u范围

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