多个 Excel 表中的 VLOOKUP 和 IF

多个 Excel 表中的 VLOOKUP 和 IF

我的工作簿中有两张 Excel 表,如下所示

第 1 和第 2 页:

在此处输入图片描述

以下是两个表之间的字段关系

  • EID 与 EmID 相同
  • DepID 与 DependentID 相同
  • DepDOB 与 DependentDOB 相同

我想将 EID 与 EmID 进行比较。如果匹配,则对 DepID 与 DependentID 进行另一次比较。如果 DepID 为空,则将 DepDOB 与 DependentDOB 进行比较。当所有这些都为真时,从 Sheet2 中获取 DependentFirstName 和 DependentLastName 并将其复制到 Sheet 1 中的新列中。

请参见下图了解我想要的结果。

输出:

在此处输入图片描述

请提供实现此目的的方法。如果必须结合使用 VLOOKUP 和 IF,请告诉我公式。这让我做噩梦 :(

答案1

按要求解决

按照您要求的方式执行此操作的一种简单方法是使用辅助列。假设工作表 1 看起来像您的输出示例,其中显示列 A:F,工作表 2 也显示 A:F。假设我们将 G 列用作每张工作表上的辅助列。

辅助列连接了三个比较值。因此,在每张表中,G2 将包含:

=A2&E2&F2

将公式复制到每张表的列中。然后比较这些值以找到所需的记录。

VLOOKUP 要求查找列位于数组的最左边。您可以使用 INDEX 加 MATCH 完成相同样式的查找,而 MATCH 没有此限制。工作表 1,C2 将包含:

=INDEX(sheet2!B:C,MATCH(G2,sheet2!G:G,0),1)

在 D2 中:

=INDEX(sheet2!B:C,MATCH(G2,sheet2!G:G,0),2)

将这些复制到列下。MATCH 查找与 Sheet 2 上的行匹配的键并返回相应的名称。

截屏

如果不想看到辅助列,可以将其隐藏。如果您好奇为什么与 DepDOB 关联的键看起来不像日期,那是因为它使用了 Excel 用来存储日期的内部表示。

更简单的解决方案

在这种情况下,您拥有填写记录中已包含的名字和姓氏字段所需的所有信息。您可以只解析 DepName 字段,而不是使用辅助列和查找。C2 将是:

=LEFT(B2,FIND(" ",B2)-1)

D2 将是:

=RIGHT(B2,LEN(B2)-FIND(" ",B2))

相关内容