让我们考虑函数 VLOOKUP - VLOOKUP3 的改进版本,它使我们有机会在两个条件匹配时替换值。当我们需要执行组合的字段中没有唯一值的情况下,此函数非常有用。
假设我们需要连接两个表,但没有唯一值:
正如您所看到的,我们有相同姓氏的借款人以及具有相同编号的贷款协议。与普通功能结合 VLOOKUP 将会出现问题,因为它一次只匹配一个条件,并且只匹配找到的第一个值。
让我们重做我们习惯的事情 VLOOKUP 用于根据两个条件替换值。
打开菜单 服务-宏-编辑器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键)。