Excel查询与多个查询

我有一个问题,我可能没有正确思考。 但是我有一个很长的excel文件,我从其他地方用以下的列来拉:

Project_Name1,Employee_Name1,Date_Worked1,Hours_Worked1

在另一张表中我有这些列

Project_Name2,Employee_Name2,Begin_Date2,End_Date2,Hours_Worked2

这第二张表充满了数据,工作得很好。 但是,事实certificate,我有一些我不知道在同一个项目上工作的员工姓名。 我需要找出雇员的姓名,然后总结一段时期内工作的小时数。 所以我需要一个三个标准的查找:

Project_Name1 = Project_Name2

Employee_Name1 <> {Employee_Name2的数组}

Begin_Date2 <= Date_Worked1> End_Date2

返回员工姓名。

一旦我有员工的名字,我可以做一个sumifs =(),并得到他们工作的总小时没有问题。

我已经尝试了一些索引匹配function的组合,使用Ctrl-Shift-Enter …并且一直无法找出它。 任何帮助将不胜感激。

你所说的做法是非常复杂的,稍微超过了Excel默认devise的目的。 但是,有几个解决方法可以用来尝试获取要查找的信息。

  1. 可以通过连接字段来执行多条件VLOOKUP和SUMIF,以形成一个多部分标识符(例如:插入一个新列并在其中包含一个forumla,例如= A1和B1)
  2. 打开一个新的工作簿并使用Microsoft Query(我不确定您是否可以从多个工作表中进行select,但是如果您可以从多个工作表中select表格,则应该可以编写一个半复杂的查询来提取数据集要。http://office.microsoft.com/en-us/excel-help/use-microsoft-query-to-retrieve-external-data-HA010099664.aspx
  3. 使用embedded式macrosfunction并使用Visual Basic脚本来写出您的业务逻辑。 (热键是ALT + F11)

一种方法是首先在表格的右侧创build一个额外的列,用于表示您要从中=ROW() employee_name: =ROW()

然后你可以使用一个数组公式,就像你试图实现拉动相应的'匹配'行:

{=SUM((project_name1=projectname2)*(employeename1<>employeename2)*(begindate<=date_worked1)*(date_worked1>end_date2)*(match_column))}

然后,您可以使用返回的match_column条目在索引中描述,以检索相应的条目。