如果其他值的总和

如果其他值的总和

我想按部门统计工作时间少于 50% 的员工数量。员工可以通过数字来识别。一个员工可以在一个部门内从事不同的工作,该部门由 3 乘以 20% 组成。因此,我必须先将每个员工的总工作时间加起来,然后计算出有多少员工的工作时间是 50% 或更少。由于有数千个,我想使用每个部门的公式来执行此操作。我可以使用 sum if 和 count if 来做到这一点,但每个员工需要一个公式。是否可以用每个部门一个公式来做到这一点?任何帮助都非常感谢。 模型表 使用总计和计数来计算每个员工的总数 如果可能的话,首选解决方案

员工编号 部门 职位描述 全日制
1 内政 研究 20%
1 内政 行政 20%
1 人力资源 管理 30%
2 人力资源 行政 80%
3 外部事务 研究 100%
4 内政 管理 50%
5 人力资源 行政 30%
5 人力资源 招聘 40%
6 外部事务 管理 100%

模型表

答案1

有很多方法可以解决这个问题,但就可读性而言,也许可以使用 GROUPBY()PIVOTBY()

在此处输入图片描述


=GROUPBY(B2:B10,N(D2:D10<0.5),SUM,,0)

Excel或者,如果目前还无法使用上面提到的功能,MS365那么可以使用以下命令:

=LET(
     _data, A2:D10,
     _department, INDEX(_data,,2),
     _uniq, UNIQUE(_department),
     _counts, BYROW(_uniq,LAMBDA(b, SUM(--(b=_department)*(TAKE(_data,,-1)<0.5)))),
     VSTACK({"Department","Counts"},HSTACK(_uniq,_counts)))

或者,使用MMULT()

=LET(
     _dept, B2:B10,
     _fte, D2:D10<0.5,
     UNIQUE(HSTACK(_dept,MMULT(N(_dept=TOROW(_dept)),--_fte))))

或者,使用COUNTIFS()

=LET(
     _dept, B2:B10,
     UNIQUE(HSTACK(_dept, COUNTIFS(_dept,_dept,D2:D10,"<.5"))))

正如你所见,有很多方法可以解决这个问题,但就灵活性,我会POWER QUERY在这里使用毫不费力地实现自动化从而节省时间和精力. Power Query,有Windows Excel 2010+Excel 365 (Windows or Mac). 观看演示以供参考。

在此处输入图片描述


要使用 Power Query,请按照以下步骤操作:

  • 首先将源范围转换为表格并进行相应命名,在此示例中,我将其命名为Table1

  • Data接下来,从Tab --> Get & Transform Data--> Get Data--> From Other Sources-->打开一个空白查询Blank Query

  • 上面的命令可以Power Query打开窗口,现在从HomeTab --> Advanced Editor--> 删除您看到的任何内容并粘贴以下内容M-Code,然后按Done

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Filtered Rows" = Table.SelectRows(Source, each [FTE] < 0.5),
    #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Department"}, {{"Count", each Table.RowCount(_), Int64.Type}})
in
    #"Grouped Rows"

在此处输入图片描述


  • 最后,将其导回Excel--> 单击Close & LoadClose & Load To--> 第一个单击的将创建一个New Sheet具有所需输出的,而后者将提示一个窗口询问您将结果放在何处。

在此处输入图片描述


相关内容