如何比较Excel中的多个字段

我有两个电子表格,我想比较多列。如何使用Vlookup或其他types的公式来获得正确的结果?

表1具有以下信息。

表2具有以下信息; column H是预期结果列。

我希望能够将公式input到工作表2中,以便从工作表1(列A)中抽取与工作表1中的说明和计费编号相匹配的行号。

试试这个数组公式(在input公式时按Ctrl + Shift + Enter而不是Enter):

 =INDEX(Sheet1!$A$2:$A$7,MATCH(D2&A2,Sheet1!$B$2:$B$7&Sheet1!$C$2:$C$7,0)) 

假设你将这个公式放在表2中的column E中,那么:

 =INDEX(Sheet1!$A:$A,MATCH(1,(Sheet1!$B:$B=Sheet2!$D2)*(Sheet1!$C:$C=$A2),0)) 

把这个放在E2中 ,然后由于这是一个数组公式,所以按ctrl + shift + 回车计算公式。 然后复制并拖动公式以查找其他结果。

我将展示另一种数组函数的方式。 这应该工作得很好,但它是计算密集型的,因为它会查看两个标准列中的所有值来查找您要查找的内容。 对于几百行,这是好的,但如果你使用数十万行,那么你可能会看到性能问题。 数组函数可能很昂贵。

我要做的第一件事就是创build一个帮助器列,将Charge number和Description字段组合到Sheet1上的一个字段中。 这将是您查看从Sheet1获取所需信息的价值。 为了使用VLOOKUP这将需要是您正在查找的表中最左边的一列(表1中的表格)。 然后,我使用Sheet2上的VLOOKUP公式从Sheet1中检索相关信息。

  • 在Sheet1上,右键单击A列标题并selectInsert(这将在左侧添加一个新列)
  • 在这个新的列A中,键入公式=CONCATENATE(B2,C2) (假设你的数据从第二行开始,占第一行的标题,如果不使用=CONCATENATE(B1,C1) )。 这将结合列B和C的值
  • 在Sheet2上,将下列公式input到要在Sheet1中显示行号的单元格中: =VLOOKUP(CONCATENATE(A2,D2),Sheet1!$A:$D,2,FALSE)并向下填充此公式

如果你想的话,你可以通过右键点击列标题然后隐藏来隐藏我们在第一步中所做的那一列。

现在,为了解释这个魔法( VLOOKUP ):

第一个参数是你想要查找的值。 在这种情况下,我们希望find组合的费用编号+描述,因为这些是我们创build的帮助者列中的值。

第二个参数是说:“查看Sheet1,列A到D”。 这是包含要查找和检索的信息的表格。

第三个参数说:“如果列A中有一个匹配(记住这是我们通过组合费用数+描述组成的帮助列),然后从左边的第二列返回值”

FALSE的最后一个参数意味着find与我正在查找的值完全匹配的值,而不是一个近似值。

这个方法有一个一步一步的例子 ,可能会派上用场。