让我们考虑函数 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($A$2:$A$11; A15; $B$2:$B$11; B15; $C$2:$C$11)
另外,不要忘记用美元符号固定范围 ($) ,这样我们在复制公式时就不会错过范围(为了快速修复,也可以使用F4键)。