如何比较 Excel 中的多个字段

How to compare multiple fields in Excel

我有两个展开sheet,我想比较其中的多个列。如何使用 Vlookup 或其他某种公式来获得正确的结果?

Sheet 1 有以下信息。


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

我希望能够在 sheet 2 中输入一个公式,以从 sheet 1(A 列)中提取与 [= 中的相同描述和收费编号相匹配的行号23=] 1.

试试这个作为数组公式(输入公式时按 Ctrl+Shift+Enter 而不是只按 Enter):

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

假设您将此公式放入 column E in SHEET 2 然后:

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


把这个放在E2然后因为这是一个数组公式,所以按ctrl+shift+输入计算公式。 然后复制并向下拖动公式以找到其他结果。

我将展示数组函数的另一种方法。这应该可以正常工作,但它是 calculation-intensive 因为它会查看 both 标准列中的 all 值来找到你想要的寻找。对于几百行,这很好,但如果您使用数十万行,那么您可能会遇到性能问题。数组函数可能很昂贵。

我要做的第一件事是创建一个辅助列,将费用编号和描述字段合并到 Sheet1 上的一个字段中。这将是您查找以从 Sheet1 获取所需信息的值。为了使用 VLOOKUP,这需要是您正在查找的 table 中的 left-most 列(工作表 1 中的 table)。然后我在 Sheet2 上使用 VLOOKUP 公式从 Sheet1 中检索相关信息。

  • 在工作表 1 上,right-click 列 A header 和 select 插入(这将在左侧添加一个新列)
  • 在这个新的 A 列中,键入公式 =CONCATENATE(B2,C2)(假设您的数据从第二行开始,占第一行的 header。如果不使用 =CONCATENATE(B1,C1) ).这将合并 B 列和 C 列的值。
  • 在 Sheet2 上,将以下公式输入到要显示 Sheet1 中的行号的单元格中:=VLOOKUP(CONCATENATE(A2,D2),Sheet1!$A:$D,2,FALSE) 并向下填写此公式

如果您愿意,可以通过右键单击列 header 然后隐藏来隐藏我们在第 1 步中创建的列。

现在,对于魔法的解释(VLOOKUP):

第一个参数是您要查找的值。在这种情况下,我们想要找到合并的费用编号 + 描述,因为这些是我们创建的辅助列中的值。

第二个参数是"Look in Sheet1, columns A through D"。这是包含您要查找和检索的信息的 table。

第三个参数表示"If there is a match in column A (remember this is our helper column that we made by combining charge number + description) then return the value in the second column from the left"

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

还有一个 step-by-step illustration of this method 可能也会派上用场。