TOP

VLOOKUP 根据两个条件进行组合 (VLOOKUP3)

描述

让我们考虑函数 VLOOKUP - VLOOKUP3 的改进版本,它使我们有机会在两个条件匹配时替换值。当我们需要执行组合的字段中没有唯一值的情况下,此函数非常有用。


一个问题的例子

假设我们需要连接两个表,但没有唯一值:

正如您所看到的,我们有相同姓氏的借款人以及具有相同编号的贷款协议。与普通功能结合 VLOOKUP 将会出现问题,因为它一次只匹配一个条件,并且只匹配找到的第一个值。

让我们重做我们习惯的事情 VLOOKUP 用于根据两个条件替换值。

VBA 函数 VLOOKUP3 的代码

打开菜单 服务-宏-编辑器Visual Basic , 插入新模块 (菜单 Insert - Module )并将该文本复制到那里 功能:

Function VLOOKUP3(Table1       As Range, _
                  SearchValue1 As Variant, _
                  Table2       As Range, _
                  SearchValue2 As Variant,_
				  ResultColumn As Range)
  'moonexcel.com.ua
  Dim i As Integer
               
  For i = 1 To Table1.Rows.Count
    If Table1.Cells(i, 1) = SearchValue1 Then
      If Table2.Cells(i, 1) = SearchValue2 Then
        VLOOKUP3 = ResultColumn.Cells(i, 1)
        Exit For
      End If
    End If
  Next i
                
End Function 

关闭 Visual Basic 编辑器并返回到 Excel。

使用功能

现在在 函数向导 在类别中 用户自定义 您可以找到我们的 VLOOKUP3 函数并使用它。该函数的语法如下:

=VLOOKUP3(范围1 ; 搜索值1 ; 范围2 ; 搜索值2 ; 我们替换值的范围

也就是说,为了正确地用姓氏和协议编号替换贷款金额,您需要在单元格 E15 中输入以下内容:

=VLOOKUP3(2 澳元:11 澳元 ; A15 ; $B$2:$B$11 ; B15 ; 2 加元:11 加元

另外,不要忘记用美元符号($)来修复范围,这样我们在复制公式时就不会错过范围(为了快速修复,您也可以使用F4键)。

有关该主题的文章: