使用Excel创建比较表的最有效方法?

时间:2015-06-10 11:53:27

标签: excel vba

使用Excel(主要是VBA部分),我想做以下事情:

我有两个不同类型的数据表,但它们至少共有4个以下列:

  • 员工姓名
  • 他所从事的项目名称
  • 他工作的那天
  • 他当天工作的小时数。

其中一个表格代表了计划的工作时间(例如,该员工应该在项目A上工作x小时,在5月5日项目B上工作时间......)另一个表格代表实际工作时间,我。即员工实际花在项目上的时间。

员工工作的实际项目可能与计划的项目不同,或者可能相同,但他可能花了不同的时间。

成为Excel的新手我想知道你是否有人能以最有效的方式向我提出想法。由于我有很多行,我对使用太多循环的想法有点沉默。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果这些是结构化表格(我们在Excel中说明其工作表名称为PlannedActual),我会创建一个MS查询,如下所示:

SELECT Plan.Employee, Plan.Project, SUM(Plan.PlannedHrs), SUM(Act.ActualHrs),SUM(Act.ActualHrs) / SUM(Plan.PlannedHrs)
FROM [Planned$] as Plan 
INNER JOIN [Actual$] as Act 
ON Plan.Project = Act.Project AND Plan.Employee=Act.Employee
GROUP BY Plan.Employee, Plan.project, Act.Project, Act.Employee

以上查询将比较每个项目的小时数(计划与实际)。这只是一个示例,因为您可以计算其他指标。

使用MS查询?:Data->From Other Sources->From Microsoft Query 或者使用我的SQL AddIn(仅用于创建查询):http://www.analystcave.com/excel-tools/excel-sql-add-in-free/