具有多个查询的Excel查找

时间:2011-08-17 16:13:08

标签: excel lookup

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

Project_Name1,Employee_Name1,Date_Worked1,Hours_Worked1

在另一张表中,我有这些列

Project_Name2,Employee_Name2,Begin_Date2,End_Date2,Hours_Worked2

第二张表格中填充了数据,工作得很好。 然而,事实证明我有一些我不知道的员工姓名,他们也在同一个项目上工作。我需要弄清楚员工的姓名,然后总算一段时间内他们工作的小时数。 所以我需要一个有三个标准的查找:

Project_Name1 = Project_Name2

Employee_Name1<> {Employee_Name2数组}

Begin_Date2< = Date_Worked1> End_Date2

返回员工姓名。

一旦我有了员工姓名,我就可以做一个sumifs =()并获得他们工作的总时数没问题。

我尝试了多种索引匹配功能组合,使用ctrl-shift-enter ...并且无法弄清楚它。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

你所说的是非常复杂的,并且稍微超过了Excel默认设计的目的。但是,您可以使用一些变通方法来尝试获取您正在查找的信息。

  1. 可以通过连接字段来制作多部分标识符来执行多标准VLOOKUP和SUMIF(例如:插入新列并在其中设置一个论坛,如= A1& B1)
  2. 打开一个新工作簿并使用Microsoft Query(我不确定您是否可以从多个工作表中选择,但如果您可以从多个工作表中选择,如表格,您应该能够编写一个半复杂的查询来拉你想要的数据集。 http://office.microsoft.com/en-us/excel-help/use-microsoft-query-to-retrieve-external-data-HA010099664.aspx
  3. 使用嵌入式宏功能并使用visual basic脚本编写业务逻辑。 (热键是ALT + F11)

答案 1 :(得分:0)

执行此操作的一种方法是首先在您尝试从中提取employee_name的工作表右侧创建一个附加列:=ROW()

然后,您可以使用类似于您尝试实现的数组公式来拉出相应的“匹配”行:

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

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