修法布施得聪明智慧 , 多分享让生活更美好 。 上次分享《Excel文本索引自定义数》 , 用TEXTSY处理从文本中分离合并需要的字串文本功能更强大和使用方便 。 VLOOKUP函数在数组第一列中查找 , 然后在行之间移动以返回单元格的值 。 VLOOKUP函数无法达到任列查另列数据和重复查找数据 。 下面分享另一个自定义函数VLOOKUPAR能处理这些问题 。 0Excel文本索引自界说函数
需要这些哦
Microsoft Office Excel 2007
Excel VBA
一、函数VLOOKUPAR1功能:在数组任一列(可以反复)中查找另一列 , 然后在行之间移动以返回单位格的值(不反复值) , 找不到返回错误值#N/A 。
2语法:
【Excel数组任列查找另一列不重复值自定义函数】VLOOKUPAR(lookup_value,col_index_num1 , table_array,col_index_num2,range_lookup)
Lookup_value 为需要在表格数组任一列中查找的数值 。 Lookup_value 可觉得数值或引用 。
col_index_num1 为 table_array 中Lookup_value列序号
Table_array 为两列或多列数据 。 利用对区域或区域名称的引用 。 table_array 任一列中的值是由 lookup_value 搜刮的值 。 这些值可所以文本、数字或逻辑值 。 文本区分大小写 。
Col_index_num2 为 table_array 中待返回的匹配值的列序号 。 Col_index_num2 为 1 时 , 返回 table_array 第一列中的数值;col_index_num2 为 2 , 返回 table_array 第二列中的数值 , 以此类推 。
若是 col_index_num2 :
小于 1 , VLOOKUPAR 返回错误值 #VALUE! 。
大于 table_array 的列数 , VLOOKUPAR 返回错误值 #REF! 。
Range_lookup 为Lookup_value上行Lookup_value值区域单位格 。
2
二、函数VLOOKUPAR编制1起首打开Microsoft Office Excel 2007 , 新建文档并保留文件名《Excel数组任列查找另一列不反复值自界说函数.xlsm》(演示文件 , 下面代码复制到能运行宏的工作簿都可以)如图 。
文章插图
2然后按下快捷键ALT+F11打开VBE(宏)编纂界面 , 然后点菜单栏【插入】下拉中列表中点【模块(M)】如图 。
文章插图
3然后插入了一个模块1 , 在代码框中复制如下代码:
Function VLOOKUPAR(mr, n1, mb As Range, n2, mrs As Range)
'2020-10-25 21:35:26
Dim mmr, nn1, mmb, nn2, mmrs, mbr As Long, mbc As Long
Dim i As Long, n As Long, k As Long
On Error Resume Next
mmr = mr.Value
If Err.Number <> 0 Then
mmr = mr
Err.Clear
If
nn1 = n1.Value
If Err.Number <> 0 Then
nn1 = n1
Err.Clear
If
nn2 = n2.Value
If Err.Number <> 0 Then
nn2 = n2
Err.Clear
If
mbr = mb.Rows.Count
mbc = mb.Columns.Count
If nn1 < 1 Or nn2 < 1 Then VLOOKUPAR = "#VALUE!"
If nn1 > mbc Or nn2 > mbc Then VLOOKUPAR = "#REF!"
n = Application.WorksheetFunction.CountIf(mrs, mr)
k = 0
For i = 1 To mbr
推荐阅读
- 怎样用EXCEL画箭头
- Excel多条曲线图怎么做
- excel如何将单元格数值设置成上标呢
- excel复制带有图片的表格后图片变形了怎么办
- Excel 中如何快速批量加字
- Excel中怎么按照某一列排序
- excel2019如何解决打印时字体太小的问题
- Excel中怎么打勾
- excel怎么制作份额图
- Excel 如何快速提取复合文本中的数字