-1

所以我有这个问题,我有两张表,一张是员工,另一张是项目。

员工表:

年份 名称 类型 一月 二月

2018 凯文 工资 5000 2000

2018 凯文保险 200 400

2018 亚历克斯 工资 3000 4000

2018 亚历克斯保险 300 400

项目表

年份 Project_Name Employee_Name Jan_Hours_Worked Feb_Hours_Worked

2018 苹果亚历克斯 7 5

2018 苹果凯文 5 0

2018 LG凯文 0 3

现在我正在创建一个所有项目的结果列表和为他们重复发生的成本,我需要为表 2 中的每个项目找到涉及的员工,然后使用它从表 1 中找到员工的相关成本并计算该项目的总成本。

(例如,对于 LG 项目,我让 Kevin 在 2 月份进行这项工作,公司在 2 月份为他支付了 4400(工资+保险),LG 项目的重复成本将是 4400 除以 Kevin 在项目上花费的总小时数3 小时;例如 2 对于 Apple 项目,这将是相同的,但是 Kevin 和 Alex 从 1 月到 2 月的成本总和,所以 Kevin:5200/5 + Alex:3300/7 + 4400/5)

现在我有一个公式可以计算 1 个月,就像这样

=SUMPRODUCT(SUMIFS(Employees[Jan],Employees[Name],Project[Employee_Name],Employees[Year],2018)/Project[Jan_Hours_Worked],--(Project[Project_Name]=K14))

我需要找到如何在不重复公式 12 次的情况下获得每个项目的年度结果,同样使用这个公式,当员工在特定月份没有工作时,我会得到 div 到 0 错误,因此需要以某种方式进行排序。有什么帮助吗?

4

1 回答 1

0

我建议您更改存储数据的方式。如果您可以进行一些小的更改,那么您可以通过一种简单的方法来获取您想要的信息,以及一个数据透视表,其中包含每个项目的重复成本摘要以及哪个员工产生了该成本。

重要提示:要使此答案起作用,您必须确保每个员工的姓名都是唯一的。如果没有,请调整示例以尝试创建员工 ID 或其他内容。

另外,请注意我有一个西班牙版本的 Excel,所以截图是西班牙文,但我会翻译公式:)

好的,首先,我更改了您的员工表的设计。每个月创建一个专栏有点烦人。仅使用一列来获取月份。您可以像在单元格中输入月份一样01/2018,Excel 会立即将其更改为 mmm-yy 格式(1 月 18 日)

这是您的员工表的外观:

在此处输入图像描述

该列TOTAL COST只是 SALARY + INSURANCE 的总和。如果您有任何其他概念,只需将其添加为列并修改 TOTAL COST COLUMN 以包含它。

二、表Project,我觉得应该是这样的:

在此处输入图像描述

该列Employee Cost有一个数组公式。

重要提示:按CTRL+ SHIFT+插入数组公式ENTER

公式是(我对表格使用了相同的名称,所以复制粘贴应该适合你):

=INDEX(Employees;MATCH(Project[[#This row];[Employee_Name]]&Project[[#This row];[Month]];Employees[Name]&Employees[Month];0);COLUMN(Employees[[#Headers];[TOTAL COST]]))

如果您输入正确的公式,您应该会在开始时看到{并在末尾看到} 。

中的公式Cost Recurred to Project只是 的除法Employee Cost / Hours。当工作时间为 0 时添加一个IFERROR,然后显示 0。

=IFERROR(Project[[#This row];[Employee Cost]]/Project[[#This row];[Hours]];0)

最后一步,您的数据透视表。创建一个并组织它以获得每个小时和每个月的总和,并根据您的需要进行项目。你可以得到一个像下面这样的:

在此处输入图像描述

如您所见,例如对于 Apple 项目,您可以看到总成本为 2.391,43,但您也可以看到每个员工的成本。我觉得很酷。

我真的希望您可以修改数据的设计,因为 Excel 旨在向下工作(我的意思是使用行)而不是使用列。Excel 2007 有超过 100 万行和大约 16.000 列,因此它被设计为垂直工作。

希望这会有所帮助,或者至少可以为您提供如何进行的线索:)

于 2018-05-09T00:22:02.427 回答