英文:
Sum monthly hires and spill by discipline in excel
问题
我有一个名为StaffDetailsTbl的表格,其中包含员工的相关纪律和入职日期,如下所示:
我想要在一个新的数据集中按纪律来统计每月的新员工数量,如下所示:
K2中的时间范围(从2017年8月开始)由以下公式确定,其中StudioProjectedOperatingMonths是一个具有值401的定义名称:
=EDATE(StudioStartDate, SEQUENCE(1,StudioProjectedOperatingMonths,0))
J3中的纪律(从Programming开始)通过以下公式拆分:
=FILTER(DisciplineTbl, {1,0,0,0})
是否有一个公式可以输入到K3中,以便对StaffDetailsTbl中的每个新员工从入职日期开始,在定义的时间范围内进行求和,并将数据溢出到J列的纪律中?
例如,2017年8月将有5名员工,2019年12月将有6名员工,2020年1月将有8名员工。
StaffDetailsTbl 数据:
员工名字 | 纪律 | 入职日期 | 离职日期 |
---|---|---|---|
Bob | 编程 | 2017年08月01日 | |
Dave | 编程 | 2017年08月01日 | 2021年10月20日 |
Wesley | 编程 | 2019年12月01日 | |
Peter | 编程 | 2017年08月01日 | |
Jack | 编程 | 2019年12月01日 | |
Richard | 艺术 | 2017年08月01日 | |
Rodney | 质量保证 | 2019年12月01日 | |
Proj 1 - 招聘1 | 生产 | 2019年12月01日 | |
Roger | 质量保证 | 2017年08月01日 | |
Steve | 运营 | 2019年12月01日 | |
Rachel | 艺术 | 2019年12月01日 | |
Proj 1 - 招聘2 | 编程 | 2020年01月01日 | |
Proj 1 - 招聘3 | 设计 | 2020年01月01日 | |
Proj 1 - 招聘4 | 编程 | 2020年01月01日 | |
Proj 2 - 招聘1 | 编程 | 2020年01月01日 | |
Proj 2 - 招聘2 | 编程 | 2020年01月01日 | |
Proj 4 - 招聘1 | 编程 | 2020年01月01日 | |
招聘总监 1 | 运营 | 2020年01月01日 | |
Proj 4 - 招聘2 | 编程 | 2020年01月01日 |
更新
我现在有以下公式,可以将内容溢出到多个列中:
=LET(StartDateToCompare, K$1#,
YearToUse, YEAR(StartOfMonthToCompare),
MonthToUse, MONTH(StartOfMonthToCompare),
DaysInMonth, DAY(DATE(YearToUse, MonthToUse +1, 1) -1),
EndDateToCompare, DATE(YEAR(K$1#),MONTH(K$1#),DAY(DATE(YEAR(K$1#), MONTH(K$1#) +1, 1) -1)),
EmployeeDateToCompare, StaffDetailsTbl[[Employment Start Date]:[Employment Start Date]],
COUNTIFS(StaffDetailsTbl[[Discipline]:[Discipline]],$J2, EmployeeDateToCompare,"<="&EndDateToCompare, EmployeeDateToCompare,">="&StartDateToCompare)
)
是否有一种方法可以调整它,以便它也可以溢出到DisciplineTbl的行数,这样我就可以只插入一个公式,而不必为所有行拖动复制它?
英文:
I have a table called StaffDetailsTbl that has employee data with associated discipline and start date as below:
I'd like to sum the number of hires per month by discipline in a new dataset like below:
The timeframe in K2 (starting from Aug-17) is determined by the following formula where StudioProjectedOperatingMonths is a defined name with the value of 401:
=EDATE(StudioStartDate, SEQUENCE(1,StudioProjectedOperatingMonths,0))
The Disciplines in J3 (starting with Programming) is spilt with the following formula:
=FILTER(DisciplineTbl, {1,0,0,0})
Is there a formula that can be entered in to K3 such that it sums each new employee from the Employment Start Date in the StaffDetailsTbl for the duration of the defined timeline and spills the data for the disciplines in column J?
For example, August 2017 would have 5, December 2019 would be 6 and Jan 2020 would be 8.
StaffDetailsTbl data:
Employee | Discipline | Employment Start Date | Employment End Date |
---|---|---|---|
Bob | Programming | 01/08/2017 | |
Dave | Programming | 01/08/2017 | 20/10/2021 |
Wesley | Programming | 01/12/2019 | |
Peter | Programming | 01/08/2017 | |
Jack | Programming | 01/12/2019 | |
Richard | Art | 01/08/2017 | |
Rodney | QA | 01/12/2019 | |
Proj 1 - Hire 1 | Production | 01/12/2019 | |
Roger | QA | 01/08/2017 | |
Steve | Operations | 01/12/2019 | |
Rachel | Art | 01/12/2019 | |
Proj 1 - Hire 2 | Programming | 01/01/2020 | |
Proj 1 - Hire 3 | Design | 01/01/2020 | |
Proj 1 - Hire 4 | Programming | 01/01/2020 | |
Proj 2 - Hire 1 | Programming | 01/01/2020 | |
Proj 2 - Hire 2 | Programming | 01/01/2020 | |
Proj 4 - Hire 1 | Programming | 01/01/2020 | |
Recruitment Director 1 | Operations | 01/01/2020 | |
Proj 4 - Hire 2 | Programming | 01/01/2020 |
Update
I now have the following formula that will spill the contents for the number of columns:
=LET(StartDateToCompare, K$1#,
YearToUse, YEAR(StartOfMonthToCompare),
MonthToUse, MONTH(StartOfMonthToCompare),
DaysInMonth, DAY(DATE(YearToUse, MonthToUse +1, 1) -1),
EndDateToCompare, DATE(YEAR(K$1#),MONTH(K$1#),DAY(DATE(YEAR(K$1#), MONTH(K$1#) +1, 1) -1)),
EmployeeDateToCompare, StaffDetailsTbl[[Employment Start Date]:[Employment Start Date]],
COUNTIFS(StaffDetailsTbl[[Discipline]:[Discipline]],$J2, EmployeeDateToCompare,">="&StartDateToCompare, EmployeeDateToCompare,"<="&EndDateToCompare)
)
Is there a way to adjust this so it will also spill for the number of rows in the DisciplineTbl so I can just insert the one formula and not have to drag copy it for all the rows?
答案1
得分: 1
如果我正确理解你的问题,考虑使用"Countifs" 函数,它允许你基于多个条件计算项目的数量。对于你的情景,我看到你想要计算以下情况下的项目数量:
- 数据表的专业与报告标题上显示的专业相匹配,
- 数据表的开始日期大于或等于报告标题日期(将报告标题中的日期设置为每个月的第一天;它们仍然可以格式化为仅显示月份和年份),以及
- 开始日期小于或等于报告标题日期的月底日期。
我不清楚你的J和K列在哪里,因为我只在第一张图片中看到了列标题,但假设在第二张图片中,你选择的单元格是B3,那么我会使用以下公式:
=COUNTIFS(StaffDetailsTbl![专业列],$A3,StaffDetailsTbl![开始日期列],"">="&B$2,StaffDetailsTbl![开始日期列],"<="&EOMONTH(B$2,0))
英文:
If I'm understanding your question correctly, consider using "Countifs" which allows you to count the number of items based on multiple criteria. For your scenario, I'm seeing you want it to count the item if:
- The datasheet discipline matches the discipline shown on the report header,
- The datasheet start date is greater than or equal to the report header date (set the dates in the report headers to the first of the month; they can still be formatted to only show month and year), and
- The start date is less than or equal to the end-of-month date of the header date.
I'm not clear on where your J and K columns are as I'm only seeing column headers in the first image, but assuming in the second image, your selected cell is B3, then I would use the formula:
=COUNTIFS(StaffDetailsTbl![discipline column],$A3,StaffDetailsTbl![start date column],">="&B$2,StaffDetailsTbl![start date column],"<="&EOMONTH(B$2,0))
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论